Video · Image to video · Text to video

Vidu Q4 API

Vidu Q4. Video with native audio from a first frame, or from reference images and voice clips; 3-16 seconds, 540p to 4K. No text-only mode.

Price
From $0.14 per run from $0.045/s
Typical time
~2 min
Model id
vidu_q4

Vidu Q4 runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.

POST /v2/tools/video/call
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "vidu_q4",
  "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let'\''s go.\"",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
    }
  ],
  "resolution": "720p",
  "duration": 5
}'

Vidu Q4 pricing

From $0.14 per run. Prices are in US dollars and are the provider's own, with no markup. Vidu Q4 has 2 routes: "model": "vidu_q4" picks one automatically, or pass a route key as "model" to pin it. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal from $0.045/s
    fal:fal-ai/vidu/q4/image-to-video

    Image to video Vidu Q4 image-to-video — animates a first-frame image into a 3-16 s video with native audio (dialogue, sound effects), 540p to 4K.

    Resolution 540p
    $0.045/s
    Resolution 720p
    $0.095/s
    Resolution 1080p
    $0.12/s
    Resolution 2K
    $0.19/s
    Resolution 4K
    $0.39/s
    Other
    $0.39/s
    Minimum charge
    $0.14
    Most one request can cost
    $6.24
    Typical time
    ~2 min
  • fal from $0.045/s
    fal:fal-ai/vidu/q4/reference-to-video

    Text to video, Image to video Vidu Q4 reference-to-video — up to 12 reference images and 3 voice clips keep characters, objects and voices consistent across a 3-16 s video, 540p to 4K, native audio on by default. Needs at least one reference image or voice clip (no text-only mode). Jobs with several images pin this route (auto-routing sends image inputs to image-to-video).

    Resolution 540p
    $0.045/s
    Resolution 720p
    $0.095/s
    Resolution 1080p
    $0.12/s
    Resolution 2K
    $0.19/s
    Resolution 4K
    $0.39/s
    Other
    $0.39/s
    Minimum charge
    $0.14
    Most one request can cost
    $6.24
    Typical time
    ~2 min

Vidu Q4 inputs

The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/video?model=vidu_q4

Vidu Q4 request fields
FieldWhat it does
model string requiredvidu_q4 picks a route automatically. To pin one, pass a route key from Pricing above.
prompt string —
files array of { url } —
aspect_ratio string Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto
resolution string Quality tier. Supported by this model: 480p, 720p, 1080p, 4k. Unsupported tiers fall back to the nearest available. Allowed 480p | 720p | 1080p | 4k
audio boolean Set true to generate the video with a native audio track.
duration integer Length in seconds. Supported by this model's routes: fal: integer 3-16. A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. Allowed 3–16

Provider options

Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.

provider_options.fal

Vidu Q4 options for fal
FieldWhat it does
prompt string Text prompt for video generation, max 5000 characters
reference_audio_urls array of URL strings —
reference_image_urls array of URL strings —
duration integer Duration of the video in seconds (3-16) Allowed 3–16
image_url string (URL) URL or base64 data URI of the image to use as the first frame. Supports png, jpeg, jpg and webp up to 50 MB.
resolution string Allowed 540p | 720p | 1080p | 2K | 4K
audio boolean Whether to generate audio (dialogue and sound effects) with the video. When false, the output video is silent.
aspect_ratio string Allowed 16:9 | 9:16 | 4:3 | 3:4 | 1:1

Call the Vidu Q4 API

POST https://api.varg.ai/v2/tools/video/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.

1. Send the request

cURL
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "vidu_q4",
  "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let'\''s go.\"",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
    }
  ],
  "resolution": "720p",
  "duration": 5
}'
JavaScript
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.VARG_API_KEY}`,
  'Content-Type': 'application/json',
}

const res = await fetch('https://api.varg.ai/v2/tools/video/call', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "model": "vidu_q4",
    "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let's go.\"",
    "files": [
      {
        "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
      }
    ],
    "resolution": "720p",
    "duration": 5
  }),
})
const job = await res.json() // { id: "job_…", status: "queued" }
Python
Python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}

job = requests.post(
    "https://api.varg.ai/v2/tools/video/call",
    headers=headers,
    json={
      "model": "vidu_q4",
      "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let's go.\"",
      "files": [
        {
          "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
        }
      ],
      "resolution": "720p",
      "duration": 5
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; Vidu Q4 typically takes about 2 min. The result is at output.outputs[0].url.

GET /v2/jobs/{id}
curl https://api.varg.ai/v2/jobs/$JOB_ID \
  -H "Authorization: Bearer $VARG_API_KEY"

# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].url
JavaScript
JavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000))
  current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)
Python
Python
import time

while job["status"] not in ("completed", "failed", "cancelled"):
    time.sleep(3)
    job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()

print(job["output"]["outputs"][0]["url"])
Or take a webhook instead of polling

Add options.webhook_url and varg POSTs the finished job to it.

request body
{
  "model": "vidu_q4",
  "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let's go.\"",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
    }
  ],
  "resolution": "720p",
  "duration": 5,
  "options": {
    "webhook_url": "https://your-app.com/varg-webhook"
  }
}

From Claude, ChatGPT or Cursor (MCP)

The varg MCP server, https://mcp.varg.ai/mcp, runs Vidu Q4 with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "video",
  "input": {
    "model": "vidu_q4",
    "prompt": "The woman turns toward the camera and smiles, then the shot cuts to a close-up as she says: \"Let's go.\"",
    "files": [
      {
        "url": "https://storage.googleapis.com/falserverless/web-examples/vidu/stylish_woman.webp"
      }
    ],
    "resolution": "720p",
    "duration": 5
  },
  "wait": true
}

Vidu Q4 API: questions

How much does Vidu Q4 cost on varg?
Vidu Q4 costs from $0.14 per run on varg (from $0.045/s on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
How do I call the Vidu Q4 API?
Send POST https://api.varg.ai/v2/tools/video/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "vidu_q4". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
Can I use Vidu Q4 from Claude, ChatGPT or Cursor?
Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs Vidu Q4 with call_tool, passing tool "video" and "model": "vidu_q4".
How long does a Vidu Q4 request take?
Typically about 2 min on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.

For AI agents: this page as Markdown is varg.ai/models/vidu_q4.md, and every model is listed in varg.ai/models/llms.txt.