Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DecartAI/ai-sdk-provider/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Decart image models support optional settings to customize the generation behavior. These settings are passed to the generateImage() function alongside the model and prompt.
import { decart } from '@decartai/ai-sdk-provider';
import { generateImage } from 'ai';

const { image } = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'Three dogs playing in the snow',
  aspectRatio: '16:9',  // Optional: control dimensions
  seed: 42,              // Optional: reproducible results
});

Supported Settings

aspectRatio

aspectRatio
string
default:"undefined"
Controls the aspect ratio of the generated image. Only two values are supported:
  • "16:9" - Landscape orientation
  • "9:16" - Portrait orientation
If not specified, the model uses its default aspect ratio.

Landscape (16:9)

Ideal for wide scenes, panoramic views, and horizontal compositions:
const { image } = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A serene beach at sunset with palm trees',
  aspectRatio: '16:9',
});

Portrait (9:16)

Ideal for vertical compositions, portraits, and tall subjects:
const { image } = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A tall lighthouse on a rocky cliff',
  aspectRatio: '9:16',
});
Unsupported Aspect RatiosOnly 16:9 and 9:16 are supported. Other aspect ratios (e.g., 1:1, 4:3, 21:9) will generate a warning and fall back to the default behavior:
{
  "type": "unsupported-setting",
  "setting": "aspectRatio",
  "details": "Only 16:9 and 9:16 aspect ratios are supported."
}

seed

seed
number
default:"undefined"
Sets a seed value for deterministic, reproducible image generation. When you use the same seed with the same prompt and settings, you’ll get the same image.
  • Use any integer value
  • Useful for A/B testing and iterative refinement
  • Omit for random generation

Basic Usage

const { image } = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A cozy cabin in the mountains',
  seed: 12345,
});

Reproducible Results

Generate the same image multiple times:
// First generation
const result1 = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A robot painting a landscape',
  seed: 42,
  aspectRatio: '16:9',
});

// Second generation - identical to first
const result2 = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A robot painting a landscape',
  seed: 42,
  aspectRatio: '16:9',
});

// Images are identical

Iterative Refinement

Test variations by changing only the seed:
const baseConfig = {
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A futuristic city at night',
  aspectRatio: '16:9' as const,
};

// Generate variations
const seeds = [100, 200, 300, 400, 500];
const variations = await Promise.all(
  seeds.map(seed => 
    generateImage({ ...baseConfig, seed })
  )
);

Unsupported Settings

The following AI SDK settings are not supported by Decart models and will generate warnings if used:

size

The size parameter is not supported. Use aspectRatio instead:
// ❌ Not supported
const result = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A mountain landscape',
  size: '1024x1024', // Will generate warning
});

// ✅ Use aspectRatio instead
const result = await generateImage({
  model: decart.image('lucy-pro-t2i'),
  prompt: 'A mountain landscape',
  aspectRatio: '16:9',
});
Warning output:
{
  "type": "unsupported-setting",
  "setting": "size"
}

Implementation Details

Internal Conversion

When you specify an aspectRatio, it’s converted to an orientation value that’s sent to the Decart API:
  • "16:9""landscape"
  • "9:16""portrait"
This conversion is handled automatically by the provider (see decart-config.ts:14).

API Request Format

Settings are sent as form data to the Decart API:
// Internal implementation (from decart-image-model.ts:57-66)
const formData = new FormData();
formData.append('prompt', prompt);

if (seed !== undefined) {
  formData.append('seed', seed.toString());
}

if (orientation !== undefined) {
  formData.append('orientation', orientation);
}

Complete Example

import { decart } from '@decartai/ai-sdk-provider';
import { generateImage } from 'ai';
import fs from 'fs';

async function generateCustomImage() {
  const { image, warnings } = await generateImage({
    model: decart.image('lucy-pro-t2i'),
    prompt: 'A majestic eagle soaring over snow-capped mountains',
    aspectRatio: '9:16',  // Portrait orientation
    seed: 777,            // Reproducible results
  });

  // Check for warnings
  if (warnings && warnings.length > 0) {
    console.warn('Warnings:', warnings);
  }

  // Save the image
  const filename = `eagle-${Date.now()}.png`;
  fs.writeFileSync(filename, image.uint8Array);
  console.log(`Image saved to ${filename}`);
}

generateCustomImage();

Next Steps

Models

Learn about lucy-pro-t2i capabilities

Examples

See real-world usage examples

Build docs developers (and LLMs) love