Theme
Create Start-End Frame Video Task
POST
https://www.kkiai.com/ent/v2/start-end2video
Official Documentation: https://platform.vidu.cn/docs/start-end-to-video
Request Parameters
Authorization
Add the Authorization parameter to the Header, with the value being the Token concatenated after Bearer
Example: Authorization: Bearer ********************
Header Parameters
| Parameter Name | Type | Required | Description | Example |
|---|---|---|---|---|
Authorization | string | Optional | Bearer {{YOUR_API_KEY}} | |
Content-Type | string | Optional | application/json |
Body Parameters (application/json)
| Parameter Name | Type | Required | Description |
|---|---|---|---|
model | string | Required | Model name Optional values: viduq2, viduq1, viduq3-turbo, viduq3-pro viduq3-turbo: Compared to viduq3-pro, generates faster viduq3-pro: Efficiently generates high-quality audio and video content, making video content more vivid, more intuitive, and more three-dimensional with better results viduq2: Latest model viduq1: Clear picture quality, smooth transitions, stable camera movement |
images | array[object] | Required | Images Supports input of two images. The first uploaded image is treated as the start frame, and the second image is treated as the end frame. The model will generate video based on the images passed in this parameter. Note 1: The resolution of the two start and end frame input images should be similar, with the start frame resolution/end frame resolution ratio between 0.8 and 1.25. Image aspect ratio must be less than 1:4 or 4:1; Note 2: Supports passing image Base64 encoding or image URL (ensure accessibility); Note 3: Images support png, jpeg, jpg, webp formats; Note 4: Image size does not exceed 50M; Note 5: Please note that the http request post body does not exceed 20MB, and the encoding must include an appropriate content type string, for example: data:image/png;base64,{base64_encode} |
prompt | string | Required | Text prompt Text description for generating the video. Note: Character length cannot exceed 2000 characters |
is_rec | string | Optional | Whether to use recommended prompts true: Yes, the system automatically recommends prompts and uses the prompt content to generate video, number of recommended prompts = 1 false: No, generate video based on the input prompt Note: Enabling recommended prompts consumes an additional 10 credits per task |
duration | integer | Optional | Video duration parameter, default value depends on the model: viduq3-pro, viduq3-turbo default is 5, optional: 1 - 16 viduq2: default 5 seconds, optional: 1-10 viduq1: default 5 seconds, optional: 5 |
seed | string | Optional | Random seed When not passed by default or passed as 0, a random number will be used instead Manual setting uses the set seed |
resolution | string | Optional | Resolution parameter, default value depends on model and video duration: viduq3-pro, viduq3-turbo 1-16 seconds: default 720p, optional: 540p, 720p, 1080p viduq2-pro-fast 1-8 seconds: default 720p, optional: 720p, 1080p viduq2-pro 1-8 seconds: default 720p, optional: 540p, 720p, 1080p viduq2-turbo 1-8 seconds: default 720p, optional: 540p, 720p, 1080p viduq1 and viduq1-classic 5 seconds: default 1080p, optional: 1080p vidu2.0 4 seconds: default 360p, optional: 360p, 720p, 1080p vidu2.0 8 seconds: default 720p, optional: 720p |
movement_amplitude | string | Optional | Resolution parameter, default value depends on model and video duration: viduq2 (1-10 seconds): default 720p, optional: 540p, 720p, 1080p viduq1 (5 seconds): default 1080p, optional: 1080p vidu2.0 (4 seconds): default 360p, optional: 360p, 720p |
bgm | string | Optional | Whether to add background music to the generated video. Default: false, optional values true, false When passed as true, the system will automatically select appropriate music from the preset BGM library and add it; if not passed or false, no BGM will be added. BGM has no duration limit, the system automatically adapts based on video duration |
payload | string | Optional | Pass-through parameter No processing, data transmission only Note: Maximum 1048576 characters |
watermark | string | Optional | Whether to add watermark true: add watermark; false: do not add watermark; Note 1: Currently the watermark content is fixed, generated by AI, not added by default Note 2: You can query and obtain watermarked video content through the watermarked_url parameter, see the query task interface for details |
wm_position | integer | Optional | Watermark position, indicating where the watermark appears in the image, optional values are: 1: top left 2: top right 3: bottom right 4: bottom left Default: 3 |
wm_url | string | Optional | Watermark content, this is an image URL When not passed, use default watermark: content generated by AI |
meta_data | string | Optional | Metadata identifier, json format string, pass-through field, you can customize the format or use the example format, example as follows: { "Label": "your_label","ContentProducer": "yourcontentproducer","ContentPropagator": "your_content_propagator","ProduceID": "yourproductid", "PropagateID": "your_propagate_id","ReservedCode1": "yourreservedcode1", "ReservedCode2": "your_reserved_code2" } When this parameter is empty, the metadata identifier generated by vidu is used by default |
callback_url | string | Optional | Callback protocol You need to actively set callback_url when creating a task, the request method is POST. When the video generation task status changes, Vidu will send a callback request containing the latest task status to this address. The callback request content structure is consistent with the return body of the query task API The "status" returned in the callback includes the following states: processing task is processing success task completed (if sending fails, callback three times) failed task failed (if sending fails, callback three times) Vidu uses a callback signature algorithm for authentication, see: Callback Signature Algorithm for details |
Request Example
json
{
"task_id": "911088422699962368",
"type": "headtailimg2video",
"state": "created",
"model": "viduq1",
"style": "general",
"prompt": "A little girl picking mushrooms goes up the mountain to gather mushrooms and comes across a mushroom bigger than herself.",
"images": [
"https://storage.xuanxu.net/images/1997560136907759618/1768223244152.png",
"https://storage.xuanxu.net/images/1997560136907759618/1768223372503.png"
],
"duration": 5,
"seed": 722073967,
"aspect_ratio": "",
"resolution": "1080p",
"movement_amplitude": "auto",
"created_at": "2026-01-20T06:52:02.323137590Z",
"credits": 80,
"payload": "",
"cus_priority": 0,
"off_peak": false,
"watermark": false,
"is_rec": false,
"wm_position": 1,
"wm_url": "",
"meta_data": "",
"client_request_id": ""
}cURL Example
bash
curl --location --request POST 'https://www.kkiai.com/ent/v2/start-end2video' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"task_id": "911088422699962368",
"type": "headtailimg2video",
"state": "created",
"model": "viduq1",
"style": "general",
"prompt": "A little girl picking mushrooms goes up the mountain to gather mushrooms and comes across a mushroom bigger than herself.",
"images": [
"https://storage.xuanxu.net/images/1997560136907759618/1768223244152.png",
"https://storage.xuanxu.net/images/1997560136907759618/1768223372503.png"
],
"duration": 5,
"seed": 722073967,
"aspect_ratio": "",
"resolution": "1080p",
"movement_amplitude": "auto",
"created_at": "2026-01-20T06:52:02.323137590Z",
"credits": 80,
"payload": "",
"cus_priority": 0,
"off_peak": false,
"watermark": false,
"is_rec": false,
"wm_position": 1,
"wm_url": "",
"meta_data": "",
"client_request_id": ""
}'Response
🟢 200 Success
Response Body
| Parameter Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Required | |
type | string | Required | |
state | string | Required | |
model | string | Required | |
style | string | Required | |
prompt | string | Required | |
images | array[string] | Required | |
duration | integer | Required | |
seed | integer | Required | |
aspect_ratio | string | Required | |
resolution | string | Required | |
movement_amplitude | string | Required | |
created_at | string | Required | |
credits | integer | Required | |
payload | string | Required | |
cus_priority | integer | Required | |
off_peak | boolean | Required | |
watermark | boolean | Required | |
is_rec | boolean | Required | |
wm_position | string | Required | |
wm_url | string | Required | |
meta_data | string | Required | |
client_request_id | string | Required |
Response Example
json
{
"task_id": "911088422699962368",
"type": "headtailimg2video",
"state": "created",
"model": "viduq1",
"style": "general",
"prompt": "A little girl picking mushrooms goes up the mountain to gather mushrooms and comes across a mushroom bigger than herself.",
"images": [
"https://storage.xuanxu.net/images/1997560136907759618/1768223244152.png",
"https://storage.xuanxu.net/images/1997560136907759618/1768223372503.png"
],
"duration": 5,
"seed": 722073967,
"aspect_ratio": "",
"resolution": "1080p",
"movement_amplitude": "auto",
"created_at": "2026-01-20T06:52:02.323137590Z",
"credits": 80,
"payload": "",
"cus_priority": 0,
"off_peak": false,
"watermark": false,
"is_rec": false,
"wm_position": "unspecified",
"wm_url": "",
"meta_data": "",
"client_request_id": ""
}