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:

bash
Copy
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:

json
Copy
{
  "code": 0,
  "message": "Success",
  "data": {
    "task_id": "550e8400-e29b-41d4-a716-446655440000",
    "created_at": 1678886400
  }
}

Request Parameters

ParameterTypeRequiredDefaultDescription
reference_inputsArray✅ Yes-Reference input list, max 9 elements; supports image and subject types, see details below
promptString✅ Yes-Video content description, max 10000 characters
durationNumber✅ Yes-Video duration in seconds, range: 1-6
resolutionString✅ Yes-Video resolution: 720p / 1080p
aspect_ratioStringNo"16:9"Aspect ratio: "16:9" landscape / "9:16" portrait / "1:1" square
negative_promptStringNo-Unwanted content description, max 10000 characters
fpsNumberNo30Frame rate: 24 / 30
seedNumberNoRandomRandom seed, range 0-10000000, same seed produces similar results
generate_audioBooleanNofalseWhether to generate audio
audio_promptStringNo-Audio description, max 200 characters, requires generate_audio: true
callback_urlStringNo-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.

json
Copy
{
  "type": "image",
  "url": "<your image url>"
}
ParameterTypeRequiredDefaultDescription
typeString✅ Yes-Fixed value "image"
urlString✅ 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.

json
Copy
{
  "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"
  }
}
ParameterTypeRequiredDefaultDescription
typeString✅ Yes-Fixed value "subject"
imagesArray✅ Yes-List of 2-4 image URLs
subject.subject_nameString✅ Yes-Subject name, max 50 characters
subject.subject_descStringNo-Subject description, max 500 characters
subject.subject_styleStringNo"realistic"Style: realistic / anime / cartoon / 3d / pixel
subject.subject_typeStringNo"character"Subject type: character / object

Response Parameters

Create Task Response

Success (code: 0):

json
Copy
{
  "code": 0,
  "message": "Success",
  "data": {
    "task_id": "550e8400-e29b-41d4-a716-446655440000",
    "created_at": 1678886400
  }
}

Failure (code: non-zero):

json
Copy
{
  "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:

bash
Copy
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:

json
Copy
{
  "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

StatusDescription
TASK_PENDINGTask submitted, awaiting processing
TASK_PROCESSINGTask in progress
TASK_SUCCEEDEDVideo generation succeeded
TASK_FAILEDVideo generation failed

Completion Example:

json
Copy
{
  "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.

Previous
Text to Subject
Next
Batch upload Asset
On this page