Decart adapter for TanStack AI - image and video generation.
npm install @decartai/tanstack-ai @tanstack/aiSet your Decart API key as an environment variable:
export DECART_API_KEY=your-api-keyOr pass it directly when creating adapters.
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai";
const result = await generateImage({
adapter: decartImage("lucy-pro-t2i"),
prompt: "A serene mountain landscape at sunset, cinematic lighting",
});
console.log(result.images[0].b64Json); // Base64 image dataimport { createDecartImage } from "@decartai/tanstack-ai";
const adapter = createDecartImage("lucy-pro-t2i", "your-api-key");Video generation uses an async job/polling pattern.
import { setTimeout } from "node:timers/promises";
import { generateVideo, getVideoJobStatus } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai";
const { jobId } = await generateVideo({
adapter: decartVideo("lucy-pro-t2v"),
prompt: "A cat walking in a lego world",
});
let videoUrl: string | undefined;
while (true) {
const status = await getVideoJobStatus({
adapter: decartVideo("lucy-pro-t2v"),
jobId,
});
if (status.status === "failed") {
throw new Error("Video generation failed");
}
if (status.status === "completed") {
videoUrl = status.url;
break;
}
await setTimeout(2000);
}
console.log("Video ready:", videoUrl);| Model | Type | Description |
|---|---|---|
lucy-pro-t2i |
Text-to-image | Generate from text |
lucy-pro-t2v |
Text-to-video | Generate from text |
| Option | Type | Description |
|---|---|---|
seed |
number |
Reproducible generation |
resolution |
"720p" | "480p" |
Output resolution |
Full TypeScript support with model-specific type safety:
import type { DecartImageModel, DecartVideoModel } from "@decartai/tanstack-ai";MIT