本页还没有译文
本页 47 段还没译成Français,下面显示的是英文原文。Decart
还没翻译译自英文(tanstack.com)本页 47 段都还没译
The Decart adapter provides access to Decart's image and video generation models.
Installation
npm i @decartai/tanstack-ai-adapterpnpm add @decartai/tanstack-ai-adapteryarn add @decartai/tanstack-ai-adapterbun add @decartai/tanstack-ai-adapterBasic Usage
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
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
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:
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
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
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
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
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
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:
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 keyconfig.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 keyconfig.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
AI 翻译查看英文原文