ModelsPricingEnterprise
500+ AI Model API, All In One API.Just In CometAPI
Models API
Developer
Quick StartDocumentationAPI Dashboard
Company
About usEnterprise
Resources
AI ModelsBlogChangelogSupport
Terms of ServicePrivacy Policy
© 2026 CometAPI · All rights reserved
Home/Models/Vidu/Vidu Q3 Turbo
V

Vidu Q3 Turbo

Per Second:$0.028
A fast video generation model from the Vidu Q3 series, supporting text-to-video, image-to-video, and first-to-last-frame video generation. It supports up to 1080p resolution and videos up to 16 seconds, making it ideal for rapid iteration and batch short-form video production.
New
Commercial Use
Overview
Features
Pricing
API
Versions

Technical Specifications of Vidu Q3 Turbo

ItemVidu Q3 Turbo
Model IDviduq3-turbo
ProviderVidu
Model FamilyVidu Q3 Series
Model TypeVideo Generation
Input TypesText, Image, Start Image + End Image
Output TypeVideo with optional synchronized audio
Resolution540p, 720p, 1080p
Duration Range1–16 seconds
Frame Rate24 FPS
Audio GenerationNative audio-video generation
Text-to-VideoSupported
Image-to-VideoSupported
Start-End-to-VideoSupported
Reference-to-VideoSupported via Q3 Turbo workflow
Aspect Ratios16:9, 9:16, 3:4, 4:3, 1:1
Primary FocusFast, low-latency video generation

What is Vidu Q3 Turbo?

Vidu Q3 Turbo is the speed-optimized version of the Vidu Q3 video generation model. It is designed for creators and developers who need rapid iteration while maintaining synchronized audio-video output. Unlike earlier video models that required separate audio production pipelines, Q3 Turbo can generate dialogue, narration, sound effects, music, and video together in a single generation workflow.

Main Features of Vidu Q3 Turbo

  • Native audio-video generation: Produces video, dialogue, narration, sound effects, and music together in a synchronized output.
  • Fast inference pipeline: Optimized for lower latency than standard Vidu Q3 while preserving visual consistency.
  • 16-second generation support: Can generate complete narrative clips up to 16 seconds in a single run.
  • Multiple creation modes: Supports text-to-video, image-to-video, and start/end-frame video generation.
  • Flexible output resolutions: Supports 540p, 720p, and 1080p generation.
  • Frame-level storytelling control: Supports detailed camera movement and pacing instructions for cinematic outputs.

Benchmark Performance of Vidu Q3 Turbo

Vidu has not publicly released standardized benchmark scores comparable to AI language-model benchmarks such as MMLU or SWE-Bench. Instead, Vidu positions Q3 Turbo around production metrics:

CapabilityPublicly Reported
Single-generation durationUp to 16 seconds
ResolutionUp to 1080p
Native audio supportYes
Multi-speaker dialogueSupported
Multilingual video generationEnglish, Japanese, Chinese

Because no official benchmark leaderboard has been published for Q3 Turbo, independent benchmark comparisons are currently unavailable.

Vidu Q3 Turbo vs Vidu Q3 vs Kling 2.1

FeatureVidu Q3 TurboVidu Q3Kling 2.1
Generation SpeedFastest in Q3 familyHigher quality focusCompetitive
Native AudioYesYesLimited depending on workflow
Max Duration16s16sVaries
ResolutionUp to 1080pUp to 1080pUp to 1080p
Text-to-VideoYesYesYes
Image-to-VideoYesYesYes
Best ForRapid iterationPremium narrative outputCinematic generation

Known Limitations

  • Maximum clip length is 16 seconds per generation.
  • Long-form productions require stitching multiple clips together.
  • No publicly available standardized benchmark suite currently exists.
  • Quality may be slightly lower than premium-focused variants when maximum generation speed is prioritized.

Representative Use Cases

Short Drama Production

Generate complete narrative scenes with synchronized speech, sound effects, and music.

Social Media Content

Rapidly create TikTok, Reels, Shorts, and advertising videos with minimal post-production.

Storyboarding and Previsualization

Convert scripts or concept art into animated sequences for creative review.

Marketing Videos

Produce product showcases, promotional clips, and branded storytelling content.

Character Animation

Animate reference images while preserving visual consistency across scenes.

Model Version Notes

Vidu Q3 Turbo belongs to the Q3 generation of Vidu models and is positioned as the lower-latency alternative to standard Q3. The model emphasizes production speed, synchronized audio generation, and creator-focused storytelling workflows while retaining support for 1080p video output and 16-second clip generation.

How to Access and Deploy the viduq3 Turbo API on CometAPI

Step 1: Register or Sign in to CometAPI and Obtain Your viduq3 Turbo API Key

Create your CometAPI account or sign in to an existing account to access the API once it becomes available (viduq3 Turbo API). After release, you will be able to obtain a HappyHorse-1.0 API key from the platform and be ready for testing or integration.

Step 2: Test the viduq3 Turbo API for Free in the Playground

Before deployment, you can try out the viduq3 API directly in the CometAPI playground. This provides an easy way to explore output quality, test hints, or image inputs, and gain a clearer understanding of the viduq3 Turbo API's performance before using it in production.

Step 3: Deploy the viduq3 API in Production

After testing, the next step is to deploy the viduq3 API to your own application, product, or internal environment. This allows you to use the viduq3 API in real-world video generation scenarios where stable access and practical integration are crucial.

FAQ

Can the Vidu Q3 Turbo API generate video and audio at the same time?

Yes. Vidu Q3 Turbo supports native audio-video generation, allowing dialogue, narration, sound effects, music, and visuals to be produced together in a synchronized output.

What is the maximum video length supported by Vidu Q3 Turbo API?

Vidu Q3 Turbo supports video durations from 1 to 16 seconds per generation, depending on the selected workflow and settings.

When should I use Vidu Q3 Turbo instead of Vidu Q3?

Choose Vidu Q3 Turbo when generation speed and rapid iteration are priorities. Standard Vidu Q3 is generally positioned toward higher-quality narrative outputs where latency is less important.

Does the Vidu Q3 Turbo API support image-to-video generation?

Yes. The model supports image-to-video workflows, enabling users to animate still images into motion clips while maintaining visual consistency.

Can Vidu Q3 Turbo create videos in vertical formats for TikTok and Shorts?

Yes. The API supports multiple aspect ratios including 9:16, making it suitable for TikTok, YouTube Shorts, and Instagram Reels.

What output resolutions are available in Vidu Q3 Turbo?

Vidu Q3 Turbo supports 540p, 720p, and 1080p video generation at 24 FPS.

What are the main limitations of the Vidu Q3 Turbo API?

The model is optimized for short-form generation and currently limits a single clip to 16 seconds. Longer productions require combining multiple generated scenes during editing.

Pricing for Vidu Q3 Turbo

Explore competitive pricing for Vidu Q3 Turbo, designed to fit various budgets and usage needs. Our flexible plans ensure you only pay for what you use, making it easy to scale as your requirements grow. Discover how Vidu Q3 Turbo can enhance your projects while keeping costs manageable.

Vidu Video Generation Pricing

Pricing (Per Second)

Model360p540p720p1080p
viduq3$0.056$0.056$0.1232$0.1232
viduq3-turbo$0.028$0.028$0.0616$0.0616

💡 Billed per second. Total cost = price per second × video duration (seconds).

Sample code and API for Vidu Q3 Turbo

Access comprehensive sample code and API resources for Vidu Q3 Turbo to streamline your integration process. Our detailed documentation provides step-by-step guidance, helping you leverage the full potential of Vidu Q3 Turbo in your projects.
POST
/v1/videos
Python
JavaScript
Curl
# Create a video with viduq3-turbo using raw HTTP requests
import os
import time
import requests

api_key = os.environ.get("COMETAPI_KEY")
base_url = "https://api.cometapi.com/v1"
headers = {"Authorization": f"Bearer {api_key}"}

# Step 1: Submit the video generation request
print("Submitting video generation request...")
response = requests.post(
    f"{base_url}/videos",
    headers=headers,
    files={
        "model": (None, "viduq3-turbo"),
        "prompt": (None, "Ultra-realistic cinematic shot of an astronaut walking slowly through soft fog, volumetric light in light blue and pale amber tones, shallow depth of field, 35mm film texture, graceful camera movement."),
        "seconds": (None, "1"),
        "size": (None, "960x528"),
    },
)

result = response.json()
print(f"Response: {result}")

video_id = result.get("id") or result.get("task_id")
print(f"Video ID: {video_id}")

# Step 2: Poll for progress until 100%
print("
Checking video generation progress...")
while True:
    try:
        status_response = requests.get(f"{base_url}/videos/{video_id}", headers=headers)
        status_result = status_response.json()

        data = status_result.get("data") or status_result
        progress = data.get("progress", "0%")
        status = data.get("status", "unknown")

        print(f"Progress: {progress}, Status: {status}")

        if status in ["FAILURE", "failed", "error"]:
            print("Video generation failed!")
            print(status_result)
            exit(1)

        if progress == "100%" or progress == 100 or status in ["completed", "success"]:
            print("Video generation completed!")
            break
    except Exception as e:
        print(f"Temporary error: {e}, retrying...")

    time.sleep(10)

# Step 3: Download the video to output directory
print(f"
Downloading video to ./output/{video_id}.mp4...")
os.makedirs("./output", exist_ok=True)

video_response = requests.get(f"{base_url}/videos/{video_id}/content", headers=headers)

output_path = f"./output/{video_id}.mp4"
with open(output_path, "wb") as f:
    f.write(video_response.content)

if os.path.exists(output_path):
    file_size = os.path.getsize(output_path)
    print(f"Video saved to {output_path}")
    print(f"File size: {file_size} bytes")
else:
    print("Failed to download video")
    exit(1)

Python Code Example

# Create a video with viduq3-turbo using raw HTTP requests
import os
import time
import requests

api_key = os.environ.get("COMETAPI_KEY")
base_url = "https://api.cometapi.com/v1"
headers = {"Authorization": f"Bearer {api_key}"}

# Step 1: Submit the video generation request
print("Submitting video generation request...")
response = requests.post(
    f"{base_url}/videos",
    headers=headers,
    files={
        "model": (None, "viduq3-turbo"),
        "prompt": (None, "Ultra-realistic cinematic shot of an astronaut walking slowly through soft fog, volumetric light in light blue and pale amber tones, shallow depth of field, 35mm film texture, graceful camera movement."),
        "seconds": (None, "1"),
        "size": (None, "960x528"),
    },
)

result = response.json()
print(f"Response: {result}")

video_id = result.get("id") or result.get("task_id")
print(f"Video ID: {video_id}")

# Step 2: Poll for progress until 100%
print("\nChecking video generation progress...")
while True:
    try:
        status_response = requests.get(f"{base_url}/videos/{video_id}", headers=headers)
        status_result = status_response.json()

        data = status_result.get("data") or status_result
        progress = data.get("progress", "0%")
        status = data.get("status", "unknown")

        print(f"Progress: {progress}, Status: {status}")

        if status in ["FAILURE", "failed", "error"]:
            print("Video generation failed!")
            print(status_result)
            exit(1)

        if progress == "100%" or progress == 100 or status in ["completed", "success"]:
            print("Video generation completed!")
            break
    except Exception as e:
        print(f"Temporary error: {e}, retrying...")

    time.sleep(10)

# Step 3: Download the video to output directory
print(f"\nDownloading video to ./output/{video_id}.mp4...")
os.makedirs("./output", exist_ok=True)

video_response = requests.get(f"{base_url}/videos/{video_id}/content", headers=headers)

output_path = f"./output/{video_id}.mp4"
with open(output_path, "wb") as f:
    f.write(video_response.content)

if os.path.exists(output_path):
    file_size = os.path.getsize(output_path)
    print(f"Video saved to {output_path}")
    print(f"File size: {file_size} bytes")
else:
    print("Failed to download video")
    exit(1)

JavaScript Code Example

// Create a video with viduq3-turbo using raw HTTP requests
import fs from "fs";
import path from "path";

const apiKey = process.env.COMETAPI_KEY;
const baseUrl = "https://api.cometapi.com/v1";
const headers = { Authorization: `Bearer ${apiKey}` };

function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// Step 1: Submit the video generation request
console.log("Submitting video generation request...");
const formData = new FormData();
formData.append("model", "viduq3-turbo");
formData.append("prompt", "Ultra-realistic cinematic shot of an astronaut walking slowly through soft fog, volumetric light in light blue and pale amber tones, shallow depth of field, 35mm film texture, graceful camera movement.");
formData.append("seconds", "1");
formData.append("size", "960x528");

const submitResponse = await fetch(`${baseUrl}/videos`, {
  method: "POST",
  headers,
  body: formData,
});

const result = await submitResponse.json();
console.log("Response:", JSON.stringify(result, null, 2));

const videoId = result.id || result.task_id;
console.log("Video ID:", videoId);

// Step 2: Poll for progress until 100%
console.log("\nChecking video generation progress...");
while (true) {
  try {
    const statusResponse = await fetch(`${baseUrl}/videos/${videoId}`, { headers });
    const statusResult = await statusResponse.json();
    const data = statusResult.data || statusResult;
    const progress = data.progress || "0%";
    const status = data.status || "unknown";

    console.log(`Progress: ${progress}, Status: ${status}`);

    if (status === "FAILURE" || status === "failed" || status === "error") {
      console.log("Video generation failed!");
      console.log(JSON.stringify(statusResult, null, 2));
      process.exit(1);
    }

    if (progress === "100%" || progress === 100 || status === "completed" || status === "success") {
      console.log("Video generation completed!");
      break;
    }
  } catch (e) {
    console.log(`Temporary error: ${e.message}, retrying...`);
  }

  await sleep(10000);
}

// Step 3: Download the video to output directory
console.log(`\nDownloading video to ./output/${videoId}.mp4...`);
fs.mkdirSync("./output", { recursive: true });

const videoResponse = await fetch(`${baseUrl}/videos/${videoId}/content`, { headers });
const outputPath = path.join("./output", `${videoId}.mp4`);
fs.writeFileSync(outputPath, Buffer.from(await videoResponse.arrayBuffer()));

if (fs.existsSync(outputPath)) {
  const stats = fs.statSync(outputPath);
  console.log(`Video saved to ${outputPath}`);
  console.log(`File size: ${stats.size} bytes`);
} else {
  console.log("Failed to download video");
  process.exit(1);
}

Curl Code Example

# Create a video with viduq3-turbo
# Step 1: Submit the video generation request
echo "Submitting video generation request..."
response=$(curl -s https://api.cometapi.com/v1/videos \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -F "model=viduq3-turbo" \
  -F "prompt=Ultra-realistic cinematic shot of an astronaut walking slowly through soft fog, volumetric light in light blue and pale amber tones, shallow depth of field, 35mm film texture, graceful camera movement." \
  -F "seconds=1" \
  -F "size=960x528")

echo "Response: $response"

# Extract video_id from response (handle JSON with spaces like "id": "xxx")
video_id=$(echo "$response" | tr -d '\n' | sed 's/.*"id"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
echo "Video ID: $video_id"

# Step 2: Poll for progress until 100%
echo ""
echo "Checking video generation progress..."
while true; do
  status_response=$(curl -s "https://api.cometapi.com/v1/videos/$video_id" \
    -H "Authorization: Bearer $COMETAPI_KEY")
  
  progress=$(echo "$status_response" | grep -o '"progress"[[:space:]]*:[[:space:]]*"\?[^",}]*"\?' | head -1 | sed 's/.*:[[:space:]]*"\?//;s/"$//')
  status=$(echo "$status_response" | grep -o '"status"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"status"[[:space:]]*:[[:space:]]*"//;s/"$//')
  
  echo "Progress: $progress, Status: $status"
  
  if [ "$status" = "FAILURE" ] || [ "$status" = "failed" ] || [ "$status" = "error" ]; then
    echo "Video generation failed!"
    exit 1
  fi
  
  if [ "$progress" = "100%" ] || [ "$progress" = "100" ] || [ "$status" = "completed" ] || [ "$status" = "success" ]; then
    echo "Video generation completed!"
    break
  fi
  
  sleep 10
done

# Step 3: Download the video to output directory
echo ""
echo "Downloading video to ./output/$video_id.mp4..."
mkdir -p ./output
curl -s "https://api.cometapi.com/v1/videos/$video_id/content" \
  -H "Authorization: Bearer $COMETAPI_KEY" \
  -o "./output/$video_id.mp4"

if [ -f "./output/$video_id.mp4" ]; then
  echo "Video saved to ./output/$video_id.mp4"
  ls -la "./output/$video_id.mp4"
else
  echo "Failed to download video"
  exit 1
fi

Versions of Vidu Q3 Turbo

The reason Vidu Q3 Turbo has multiple snapshots may include potential factors such as variations in output after updates requiring older snapshots for consistency, providing developers a transition period for adaptation and migration, and different snapshots corresponding to global or regional endpoints to optimize user experience. For detailed differences between versions, please refer to the official documentation.
version
viduq3-turbo