Skip to content

Vidu video generation ​

Vidu's video-generation models are available in three engines:

engineNotes
viduVidu 2.0 (default / q1 models). Flat 600 Buzz. Text-to-video, image-to-video, first-last-frame interpolation, anime style.
vidu-q3Vidu Q3. Per-second pricing, 4 resolution tiers, turbo mode, native audio, first-last-frame support.
vidu-q4Vidu Q4 through FAL. Image-to-video and reference-to-video, 3–16 seconds, up to 4K, image and voice references.

Use engine: "vidu-q4" for Q4 image animation and reference-based scenes. Q3 remains available for text-to-video, turbo, and first-last-frame generation.

Submit with wait=0 and poll for completion because video generation can outlast your HTTP client's timeout.

Vidu (engine: "vidu") ​

Text-to-video ​

http
POST https://orchestration.civitai.com/v2/consumer/workflows?wait=0
Authorization: Bearer <your-token>
Content-Type: application/json

{
  "steps": [{
    "$type": "videoGen",
    "input": {
      "engine": "vidu",
      "prompt": "A cat sitting on a windowsill watching rain fall outside",
      "duration": 4,
      "aspectRatio": "16:9",
      "style": "General"
    }
  }]
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Image-to-video ​

Pass one image in images[] to animate it. The first image is the start frame; the second (optional) is the end frame:

json
{
  "engine": "vidu",
  "prompt": "The subject looks up and smiles warmly",
  "images": ["https://image.civitai.com/.../photo.jpeg"],
  "duration": 4,
  "aspectRatio": "16:9"
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

First-last-frame interpolation ​

Pass two images to interpolate between a start and end frame:

json
{
  "engine": "vidu",
  "prompt": "Smooth transition from morning to evening",
  "images": [
    "https://example.com/start.jpeg",
    "https://example.com/end.jpeg"
  ],
  "duration": 4
}

Anime style ​

json
{
  "engine": "vidu",
  "prompt": "Cherry blossoms falling gently in the breeze",
  "duration": 4,
  "style": "Anime"
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Parameters ​

FieldDefaultNotes
engine— ✅"vidu"
prompt— ✅Generation prompt.
model"default""default", "q1". "q3" is the separate vidu-q3 engine.
duration44 or 8 seconds.
aspectRationull"16:9", "9:16", "1:1". Inferred from image if omitted.
style"General""General" or "Anime".
images[][]Up to 2 images (start frame / end frame).
movementAmplitudenull"auto", "small", "medium", "large".
enableBackgroundMusicfalseAdd background music to the output.
enablePromptEnhancertrueLLM expands the prompt before generation.

Cost ​

Flat 600 Buzz per clip, regardless of duration, style, or model.


Vidu Q3 (engine: "vidu-q3") ​

Vidu Q3 offers finer resolution control, a turbo speed tier, native audio generation, and per-second pricing.

Text-to-video ​

http
POST https://orchestration.civitai.com/v2/consumer/workflows?wait=0
Authorization: Bearer <your-token>
Content-Type: application/json

{
  "steps": [{
    "$type": "videoGen",
    "input": {
      "engine": "vidu-q3",
      "prompt": "An eagle soaring over snow-capped mountain peaks at golden hour",
      "duration": 5,
      "resolution": "720p",
      "aspectRatio": "16:9"
    }
  }]
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Turbo mode ​

Turbo roughly halves cost and runtime with modest quality reduction:

json
{
  "engine": "vidu-q3",
  "prompt": "A city street at night with neon lights",
  "duration": 5,
  "resolution": "720p",
  "turbo": true,
  "enableAudio": false
}
POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

First-last-frame interpolation ​

Pass up to 2 images — the first is the start frame, the second is the end frame:

json
{
  "engine": "vidu-q3",
  "prompt": "Smooth transition from a rainy day to sunshine",
  "images": [
    "https://example.com/rainy.jpeg",
    "https://example.com/sunny.jpeg"
  ],
  "duration": 5,
  "resolution": "720p"
}

Two-image maximum

Vidu Q3 accepts at most 2 images (start + end frame). Sending more returns a 400.

Parameters ​

FieldDefaultNotes
engine— ✅"vidu-q3"
prompt— ✅Generation prompt.
duration51–16 seconds.
resolution"720p""360p", "540p", "720p", "1080p"
turbofalseFaster, cheaper generation with modest quality trade-off.
enableAudiotrueGenerate synchronized audio in the output.
aspectRationull"16:9", "9:16", "1:1", "4:3", "3:4". Inferred from images if omitted.
images[][]0–2 images (start + optional end frame).

Cost ​

Per-second pricing. total = costPerSecond × duration.

TurboResolutionBuzz/sExample — 5 s
No360p / 540p91455
No720p / 1080p2001 000
Yes360p / 540p46230
Yes720p / 1080p100500

Vidu Q4 (engine: "vidu-q4") ​

Select the operation explicitly. One reference image can be used with either operation: imageToVideo animates it as frame one; referenceToVideo uses it to guide a new scene.

Image-to-video ​

json
{
  "engine": "vidu-q4",
  "operation": "imageToVideo",
  "prompt": "The subject moves gently as the camera slowly pushes in",
  "image": "https://example.com/start.png",
  "duration": 5,
  "resolution": "720p"
}

WARNING

Replace https://example.com/start.png with your starting image URL.

PNG, JPEG and WebP are supported. Send prompt: "" for animation without text instructions. Q4 image-to-video generates audio and takes its aspect ratio from the starting image; it has no ending-frame or audio-toggle parameter.

POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Reference-to-video ​

json
{
  "engine": "vidu-q4",
  "operation": "referenceToVideo",
  "prompt": "[@reference_image_1] holds [@reference_image_2] and speaks in the voice of [reference_audio_1]",
  "referenceImages": ["https://example.com/person.png", "https://example.com/product.png"],
  "referenceAudios": ["https://example.com/voice.mp3"],
  "duration": 5,
  "resolution": "720p",
  "aspectRatio": "16:9",
  "enableAudio": true
}

WARNING

Replace the https://example.com/... URLs with your reference image and audio URLs.

Prompt tags use the references' positions, starting at 1. Image tags include @; audio tags do not. Audio clips must be MP3, each 3–12 seconds and at most 50 MB. Reference audio accepts HTTP(S) URLs or base64 audio/mpeg data URIs. Set enableAudio: true to produce dialogue or sound effects.

POST/v2/consumer/workflows
Set your Civitai API token via the Token button in the navbar to enable Try It.
Request body — edit to customize (e.g. swap the image URL or prompt)
Valid JSON

Parameters ​

FieldDefaultNotes
operationimageToVideoimageToVideo or referenceToVideo.
promptRequiredAt most 5,000 characters; may be empty for image-to-video.
duration5Integer seconds, 3–16.
resolution720p540p, 720p, 1080p, 2K, 4K; case-sensitive.
seedRandomInteger from 0 to 2,147,483,647.
imageRequired for image-to-videoOne starting image.
referenceImages[]Reference-to-video only; up to 12 images, each at most 50 MB.
referenceAudios[]Reference-to-video only; up to 3 voice clips.
aspectRatio16:9Reference-to-video only: 16:9, 9:16, 4:3, 3:4, 1:1.
enableAudiofalseReference-to-video only. Does not change the price.

Resolution tiers are nominal: actual dimensions may differ slightly from the nominal tier. The workflow preserves the provider's actual dimensions.

Cost ​

Both operations use the same rates: Buzz = seconds × Buzz/s, before any workflow-level adjustments.

ResolutionBuzz/s5-second quote
540p58.5293
720p123.5618
1080p156780
2K2471,235
4K5072,535

The quote rounds up to whole Buzz. Use a workflow cost preview for the final charge. See Payments (Buzz).


Reading the result ​

Standard videoGen output: a single video blob (shape and URL expiry).

Long-running jobs ​

Completion time depends on provider load, duration and resolution. Submit with wait=0, then prefer a webhook (workflow:succeeded / workflow:failed) or poll GET /v2/consumer/workflows/{workflowId} every 10–30 s.

Troubleshooting ​

SymptomLikely causeFix
400 with "images maxItems"More than 2 images on vidu-q3Trim to at most 2 (start + end frame).
400 with "duration must be one of"Sent 2 or 6 for viduvidu accepts only 4 or 8.
No audio in outputenableAudio: false on vidu-q3Set enableAudio: true (the default).
Silent Q4 reference videoenableAudio was omitted or falseSet enableAudio: true.
Q4 reference audio rejectedUnsupported format or durationUse MP3 clips of 3–12 seconds, at most 50 MB each.
Step failed, reason = "no_provider_available"No Vidu worker availableRetry shortly.

Civitai Developer Documentation