AI Docs
Adapters
- OpenAIUpdated
- Anthropic
- Google Gemini
- Google Vertex AI
- Ollama
- Grok (xAI)
- GroqUpdated
- Mistral
- Cohere
- TypeSafe
- Ollaya
- ElevenLabs
- fal.ai
- Reactor
- World Labs
- OpenRouter AdapterUpdated
- Perplexity Search
- Vercel AI Gateway
- Lovable AI Gateway
- OpenAI-CompatibleUpdated
- LLM Gateway
- CloudflareUpdated
- Claude Code
- Codex
- OpenCode
- Grok Build
- ACP-Compatible
- Amazon BedrockUpdated
- BytePlus
Community Adapters
AI/LLM: This documentation page is available in plain markdown format at/ai/latest/docs/community-adapters/decart.md
Community Adapters
Decart
The Decart adapter provides access to Decart's image and video generation models.
Installation#
shell
npm i @decartai/tanstack-ai-adaptershell
pnpm add @decartai/tanstack-ai-adaptershell
yarn add @decartai/tanstack-ai-adaptershell
bun add @decartai/tanstack-ai-adapterBasic Usage#
ts
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai-adapter";
const result = await generateImage({
adapter: decartImage("lucy-pro-t2i"),
prompt: "A serene mountain landscape at sunset",
});Basic Usage - Custom API Key#
ts
import { generateImage } from "@tanstack/ai";
import { createDecartImage } from "@decartai/tanstack-ai-adapter";
const adapter = createDecartImage("lucy-pro-t2i", process.env.DECART_API_KEY!);
const result = await generateImage({
adapter,
prompt: "A serene mountain landscape at sunset",
});Configuration#
ts
import { createDecartImage, type DecartImageConfig } from "@decartai/tanstack-ai-adapter";
const config: Omit<DecartImageConfig, "apiKey"> = {
baseUrl: "https://api.decart.ai", // Optional, for custom endpoints
};
const adapter = createDecartImage("lucy-pro-t2i", process.env.DECART_API_KEY!, config);Image Generation#
Generate images with lucy-pro-t2i:
ts
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai-adapter";
const result = await generateImage({
adapter: decartImage("lucy-pro-t2i"),
prompt: "A futuristic cityscape at night",
});
console.log(result.images[0]?.b64Json);Image Model Options#
ts
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai-adapter";
const result = await generateImage({
adapter: decartImage("lucy-pro-t2i"),
prompt: "A portrait of a robot artist",
modelOptions: {
resolution: "720p",
orientation: "portrait",
seed: 42,
},
});| Option | Type | Default | Description |
|---|---|---|---|
| resolution | "720p" | "720p" | Output resolution |
| orientation | "portrait" | "landscape" | "landscape" | Image orientation |
| seed | number | - | Seed for reproducible generation |
Video Generation#
Video generation uses an async job/polling architecture.
Creating a Video Job#
ts
import { generateVideo } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";
const { jobId } = await generateVideo({
adapter: decartVideo("lucy-pro-t2v"),
prompt: "A cat playing with a ball of yarn",
});
console.log("Job started:", jobId);Polling for Status#
ts
import { getVideoJobStatus } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";
const jobId = "example-job-id";
const status = await getVideoJobStatus({
adapter: decartVideo("lucy-pro-t2v"),
jobId,
});
console.log("Status:", status.status); // "pending" | "processing" | "completed" | "failed"
if (status.status === "completed" && status.url) {
console.log("Video URL:", status.url);
}Complete Example with Polling#
ts
import { generateVideo, getVideoJobStatus } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";
async function createVideo(prompt: string) {
const adapter = decartVideo("lucy-pro-t2v");
// Create the job
const { jobId } = await generateVideo({ adapter, prompt });
console.log("Job created:", jobId);
// Poll for completion
let status = "pending";
while (status !== "completed" && status !== "failed") {
await new Promise((resolve) => setTimeout(resolve, 5000));
const result = await getVideoJobStatus({ adapter, jobId });
status = result.status;
console.log(`Status: ${status}`);
if (result.status === "failed") {
throw new Error("Video generation failed");
}
if (result.status === "completed" && result.url) {
return result.url;
}
}
}
const videoUrl = await createVideo("A drone shot over a tropical beach");Video Model Options#
ts
import { generateVideo } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";
const { jobId } = await generateVideo({
adapter: decartVideo("lucy-pro-t2v"),
prompt: "A timelapse of a blooming flower",
modelOptions: {
resolution: "720p",
orientation: "landscape",
seed: 42,
},
});| Option | Type | Default | Description |
|---|---|---|---|
| resolution | "720p" | "480p" | "720p" | Output resolution |
| orientation | "portrait" | "landscape" | "landscape" | Video orientation |
| seed | number | - | Seed for reproducible generation |
Environment Variables#
Set your API key in environment variables:
shell
DECART_API_KEY=your-api-key-hereGetting an API Key#
- Go to Decart Platform
- Create an account and generate an API key
- Add it to your environment variables
API Reference#
decartImage(model, config?)#
Creates a Decart image adapter using environment variables.
Parameters:
- model - Model name ("lucy-pro-t2i")
- config.baseUrl? - Custom base URL (optional)
Returns: A Decart image adapter instance.
createDecartImage(model, apiKey, config?)#
Creates a Decart image adapter with an explicit API key.
Parameters:
- model - Model name ("lucy-pro-t2i")
- apiKey - Your Decart API key
- config.baseUrl? - Custom base URL (optional)
Returns: A Decart image adapter instance.
decartVideo(model, config?)#
Creates a Decart video adapter using environment variables.
Parameters:
- model - Model name ("lucy-pro-t2v")
- config.baseUrl? - Custom base URL (optional)
Returns: A Decart video adapter instance.
createDecartVideo(model, apiKey, config?)#
Creates a Decart video adapter with an explicit API key.
Parameters:
- model - Model name ("lucy-pro-t2v")
- apiKey - Your Decart API key
- config.baseUrl? - Custom base URL (optional)
Returns: A Decart video adapter instance.
Next Steps#
- Decart Platform - Visit Decart's platform to generate API keys
- API Documentation - View complete API reference
- GitHub Repository - Explore the adapter source code
- Image Generation Guide - Learn about image generation
- Video Generation Guide - Learn about video generation