Vidu Q3 Drama
Playground
Try it on WaveSpeedAI!Vidu Q3 Drama generates complete script-driven drama videos from scripts and structured assets, including characters, scenes, tools, and references. It plans the narrative structure, scene pacing, and transitions to create a story-driven drama in one request, supporting up to 180 seconds. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Vidu Q3 Drama generates a story-driven drama video from a script and a structured asset list. It is designed for one-click drama creation: provide the story, characters, scenes, tools, and references, and the model helps organize the narrative structure, scene pacing, and final video output.
Why Choose This?
-
One-click drama generation
Generate a complete drama-style video in a single request instead of producing isolated clips one by one. -
Script-driven storytelling
Usecontentto describe the full drama plot, character actions, dialogue, emotions, camera movement, and scene details. -
Structured asset control
Define characters, scenes, and tools with IDs, names, types, reference images, and descriptions. -
Reference-based consistency
Use asset reference images to guide character identity, scene appearance, props, and visual details. -
Flexible placement control
Useimageandplacementto guide positioning, panorama, or step-based references. -
Quality and layout options
Choose quality, resolution, aspect ratio, and style to match your drama format and visual direction.
Properties
| Property | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Task name. |
| content | Yes | string | Full drama script or story content. Supports up to 5000 characters. |
| assets | Yes | array-object | Asset list. Up to 14 assets are supported; 3–10 are recommended. |
| assets.id | Yes | string | Asset ID, using numeric strings such as 01, 02, 03. |
| assets.name | Yes | string | Asset name, up to 30 characters. |
| assets.type | Yes | string enum | Asset type. Supported values: character, scene, tool. |
| assets.image_uri | Yes | string | Reference image for this asset. Supports public image URL or Base64 image data. |
| assets.description | No | string | Asset description, such as identity, appearance, age, role, scene details, or tool details. |
| image | No | string | Positioning reference image uploaded by the user. |
| placement | No | string enum | Placement mode: upload, panorama, or step. Default: upload. |
| quality | No | string enum | Quality level: standard or high. Default: high. |
| duration | No | integer | Duration value used for generation and pricing. Current pricing is calculated within the 2–30 second range. |
| resolution | No | string enum | Output resolution: 720p or 1080p. Default: 1080p. |
| aspect_ratio | No | string enum | Output aspect ratio: 9:16 or 16:9. Default: 9:16. |
| style | No | string | Video style, such as realistic, 3D modeling, or 2D animation. Limit: 30 characters; punctuation is not recommended. |
Image Requirements
assets.image_urisupports image URL or Base64 image data.- Supported image formats: PNG, JPEG, JPG, and WebP.
- Base64 input should include the content type prefix, for example:
data:image/png;base64,{base64_encode}. - Each asset can correspond to one image.
- Keep image URLs publicly accessible.
- Keep images within the documented size, aspect ratio, and request body limits.
How to Use
- Enter task name — Set
namefor the drama generation task. - Write the story — Add the full drama script or story in
content. - Add assets — Provide characters, scenes, or tools in the
assetslist. - Set asset IDs — Use numeric strings such as
01,02,03, and so on. - Upload asset images — Provide
image_urifor every asset. - Add asset descriptions optional — Describe identity, appearance, scene details, or tool details.
- Add positioning reference optional — Provide
imageand chooseplacementif needed. - Choose output settings — Select quality, resolution, aspect ratio, duration, and style.
- Submit — Generate the drama video.
Pricing
Pricing is based on the selected duration. The rate is $0.14 per second, calculated from $1.12 per 8 seconds.
| Duration | Price |
|---|---|
| 2s | $0.28 |
| 5s | $0.70 |
| 8s | $1.12 |
| 10s | $1.40 |
| 15s | $2.10 |
| 20s | $2.80 |
| 30s | $4.20 |
Best Use Cases
- Short drama generation — Create story-driven drama videos from a complete script and asset list.
- Character-driven storytelling — Generate narrative clips with defined characters, scenes, tools, and references.
- Story ads — Produce short promotional stories with structured characters and plot progression.
- Serialized hooks — Create dramatic short-form hooks for episodic content or social platforms.
- Product storytelling — Use characters, scenes, and props to present a product through a narrative format.
- Creative prototyping — Quickly test story structure, scene pacing, and character presentation.
Pro Tips
- Use clear asset IDs such as
01,02, and03to keep references organized. - Provide 3–10 assets for better structure and easier scene planning.
- Write
contentas a complete story, including plot, actions, emotions, dialogue, camera movement, and scene details. - Use detailed asset descriptions to clarify character identity, outfit, role, scene style, or tool appearance.
- Use
highquality for a more polished drama result. - Choose
9:16for vertical short drama content and16:9for widescreen storytelling. - Keep
styleconcise, such as realistic, 3D modeling, or 2D animation.
## Authentication
For authentication details, please refer to the [Authentication Guide](/api-authentication).
## API Endpoints
### Submit Task & Query Result
<ApiTabs submitUrl={model.submitUrl} resultUrl={model.resultUrl} payload={model.defaultValues} />
## Parameters
### Task Submission Parameters
#### Request Parameters
<RequestParams params={model.params} />
#### Response Parameters
<SubmitResponse />
#### Result Request Parameters
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| id | string | Yes | - | Task ID |
#### Result Response Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., "success") |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string \| object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: `created`, `processing`, `completed`, or `failed` |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |