Elements To Video
Version: v3.0
Last Updated: 2026-04-17
Maintained by: Video Rebirth team
Multi-element video generation API - Create dynamic videos from multiple images and text descriptions
API Endpoints
Create Task: POST /api/vdr/videos/elements2video
Query Task: GET /api/vdr/videos/elements2video/{task_id}
Authentication: Bearer Token
Create Task
Endpoint: POST /api/vdr/videos/elements2video
Request Example:
curl -X POST 'https://api-gen-na.bach.art/api/vdr/videos/elements2video' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"reference_inputs": [
{
"type": "subject",
"images": [
"https://example.com/hero-front.jpg",
"https://example.com/hero-side.jpg"
],
"subject": {
"subject_name": "Hero Character",
"subject_desc": "Warrior in golden armor",
"subject_style": "realistic",
"subject_type": "character"
}
},
{
"type": "image",
"url": "https://example.com/castle-background.jpg"
}
],
"prompt": "Hero walks toward castle, sunlight gleaming on armor, camera slowly pushes in",
"negative_prompt": "blur, low quality, distorted",
"duration": 6,
"resolution": "720p",
"aspect_ratio": "16:9",
"fps": 30,
"seed": 42,
"generate_audio": false
}'
Success Response:
{
"code": 0,
"message": "Success",
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": 1678886400
}
}
Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
reference_inputs | Array | ✅ Yes | - | Reference input list, max 9 elements; supports image and subject types, see details below |
prompt | String | ✅ Yes | - | Video content description, max 10000 characters |
duration | Number | ✅ Yes | - | Video duration in seconds, range: 1-6 |
resolution | String | ✅ Yes | - | Video resolution: 720p / 1080p |
aspect_ratio | String | No | "16:9" | Aspect ratio: "16:9" landscape / "9:16" portrait / "1:1" square |
negative_prompt | String | No | - | Unwanted content description, max 10000 characters |
fps | Number | No | 30 | Frame rate: 24 / 30 |
seed | Number | No | Random | Random seed, range 0-10000000, same seed produces similar results |
generate_audio | Boolean | No | false | Whether to generate audio |
audio_prompt | String | No | - | Audio description, max 200 characters, requires generate_audio: true |
callback_url | String | No | - | Callback URL (HTTP/HTTPS), max 500 characters, notified upon completion |
reference_inputs Details
Supports two input types:
Type 1: Single Image (type: "image")
Use a single image as video material.
{
"type": "image",
"url": "<your image url>"
}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | String | ✅ Yes | - | Fixed value "image" |
url | String | ✅ Yes | - | Publicly accessible HTTP/HTTPS image URL |
Type 2: Subject Composition (type: "subject")
Subject refers to the core object in the video that requires consistent appearance characteristics, such as a character, brand IP, or specific item. By providing 2-4 multi-angle photos of the same object, the model can maintain stable reference to the subject's appearance, clothing, and overall style during video generation, improving subject consistency.
To generate custom subjects from text descriptions, see Custom Subject Documentation.
Use 2-4 photos of the same character or object to establish subject reference for video generation.
{
"type": "subject",
"images": [
"https://example.com/hero-front.jpg",
"https://example.com/hero-side.jpg"
],
"subject": {
"subject_name": "Hero Character",
"subject_desc": "Warrior in golden armor",
"subject_style": "realistic",
"subject_type": "character"
}
}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | String | ✅ Yes | - | Fixed value "subject" |
images | Array | ✅ Yes | - | List of 2-4 image URLs |
subject.subject_name | String | ✅ Yes | - | Subject name, max 50 characters |
subject.subject_desc | String | No | - | Subject description, max 500 characters |
subject.subject_style | String | No | "realistic" | Style: realistic / anime / cartoon / 3d / pixel |
subject.subject_type | String | No | "character" | Subject type: character / object |
Response Parameters
Create Task Response
Success (code: 0):
{
"code": 0,
"message": "Success",
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": 1678886400
}
}
Failure (code: non-zero):
{
"code": 1000,
"message": "Specific error reason",
"data": {}
}
Query Task
Endpoint: GET /api/vdr/videos/elements2video/{task_id}
Path Parameters:
task_id(string, required): Task ID returned from create task request
Request Example:
curl -X GET 'https://api-gen-na.bach.art/api/vdr/videos/elements2video/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer YOUR_API_KEY'
Response:
{
"code": 0,
"message": "Success",
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "TASK_SUCCEEDED",
"video_url": "https://cdn.bach.art/videos/xxx.mp4"
}
}
Task Status Values
| Status | Description |
|---|---|
TASK_PENDING | Task submitted, awaiting processing |
TASK_PROCESSING | Task in progress |
TASK_SUCCEEDED | Video generation succeeded |
TASK_FAILED | Video generation failed |
Completion Example:
{
"code": 0,
"data": {
"task_id": "550e8400-xxx",
"status": "TASK_SUCCEEDED",
"video_url": "https://cdn.bach.art/videos/xxx.mp4"
}
}
Version: v3.0
Last Updated: 2026-04-17
© 2026 Video Rebirth team. All rights reserved.