Text to Video
doubao-seedance-2
Draft model pending operator verification
Quick start
Submit a request with this public model ID. The API immediately returns a normalized job; poll GET /v1/jobs/{jobId} while its status is queued or running.
curl -X POST "https://api.artany.ai/v1/videos/generations" \
-H "Authorization: Bearer $ARTANY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: unique-request-id" \
-d '{"model":"doubao-seedance-2","prompt":"A kitten yawning at the camera","duration":5,"size":"16:9","resolution":"720p","generate_audio":true,"return_last_frame":false}'Request
Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Yes | Bearer token for an Artany API key. |
| Content-Type | Yes | Must be application/json. |
| Idempotency-Key | Recommended | 8–128 characters. Reusing it with an identical request prevents duplicate jobs and charges. |
Body
{
"model": "doubao-seedance-2",
"prompt": "A kitten yawning at the camera",
"duration": 5,
"size": "16:9",
"resolution": "720p",
"generate_audio": true,
"return_last_frame": false
}Request Parameters
Only fields in this model’s public request contract are shown. Defaults are applied before validation and quoting.
Note:Choose one workflow by the source media supplied: text, image, role-labelled frames, reference video, or reference video with audio.
Stable public model ID for this request.
Video content description. It is required for text-to-video and optional when image or video input supplies the visual context.
Length: 1–4000
- Describe the subject, action, camera movement, and style.
- The accepted maximum is 4,000 characters; concise prompts are generally more reliable.
Requested output duration in seconds.
Range: 4–15
Note:Use a plain JSON number and one of the duration values supported by this model.
Output aspect ratio. adaptive matches the supplied image or video when source media is present.
Allowed: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive
Field description
- 16:9
- Landscape
- 9:16
- Portrait
- 1:1
- Square
- 4:3 / 3:4
- Traditional landscape / portrait
- 21:9
- Ultra-wide
- adaptive
- Match the input image or video.
Output resolution tier.
Allowed: 480p, 720p, 1080p, 4k
Field description
- 480p
- Standard definition
- 720p
- High definition
- 1080p
- Full HD
- 4k
- Ultra HD
Optional random seed for similar, but not bit-identical, repeatability.
- Changing the seed changes the generated result for an otherwise identical request.
Whether to generate synchronized audio with the video. The default is true; set false for a silent video.
Allowed: false, true
Whether the result additionally includes a last-frame image URL.
Allowed: false, true
- Use the returned image as the next request's image_urls input for continuous video generation.
Image URL array for image-to-video. One image creates a first-frame video; two images create a first/last-frame video.
Items: 0–9
- Use this field for simple image-conditioned generation. For explicit first or last-frame placement, use image_with_roles instead.
- Up to 9 reference images are supported.
[ "https://example.com/cat.jpg" ]
Note:Do not send image_urls together with image_with_roles.
Image URL objects with explicit frame or reference roles.
Items: 1–9
Field description
- url
- Accessible image URL.
- role
- first_frame for the opening frame, last_frame for the ending frame, or reference_image for a reference portrait.
- Use first_frame and last_frame together to control both endpoints of the generated clip.
- Up to 9 images are supported.
[
{
"url": "https://example.com/day.jpg",
"role": "first_frame"
},
{
"url": "https://example.com/night.jpg",
"role": "last_frame"
}
]Note:Do not combine this field with image_urls.
Note:When using first_frame or last_frame, do not also provide video_urls or audio_urls.
Reference video URL array for video-conditioned generation.
Items: 1–3
- Up to 3 reference videos are supported. Total reference duration must be greater than 1.8 seconds and less than 15.2 seconds; source resolution must be between 480p and 720p.
[ "https://example.com/reference.mp4" ]
Note:Do not combine reference video with first_frame or last_frame roles in image_with_roles.
Reference audio URL array used with reference image or reference video input.
Items: 1–3
- Up to 3 files are supported, with combined duration of 15 seconds or less.
[ "https://example.com/speech.wav" ]
Note:Do not combine reference audio with first_frame or last_frame roles in image_with_roles.
Use Cases
Choose the request shape that matches the source media you provide. The examples use the public model ID and accepted public fields.
Text-to-video
Provide a prompt without source media.
{
"model": "doubao-seedance-2",
"prompt": "A kitten yawning at the camera",
"resolution": "720p",
"size": "16:9",
"duration": 5,
"seed": 42,
"generate_audio": true
}Image-to-video
Provide one image URL to use as the opening visual context.
{
"model": "doubao-seedance-2",
"prompt": "Gentle camera push-in as the subject looks toward the horizon",
"image_urls": [
"https://example.com/opening-frame.jpg"
],
"duration": 5
}First/last-frame video
Use role-labelled images to specify both endpoints of the clip.
{
"model": "doubao-seedance-2",
"prompt": "Transition from day to night",
"image_with_roles": [
{
"url": "https://example.com/day.jpg",
"role": "first_frame"
},
{
"url": "https://example.com/night.jpg",
"role": "last_frame"
}
],
"duration": 5
}Reference-video generation
Provide a reference clip and describe the desired result.
{
"model": "doubao-seedance-2",
"prompt": "Convert the video style to anime style",
"video_urls": [
"https://example.com/reference.mp4"
]
}Reference video with audio
Provide both reference video and audio for an audio-conditioned request.
{
"model": "doubao-seedance-2",
"prompt": "A scene of a person speaking",
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/speech.wav"
],
"size": "16:9",
"duration": 11
}Audio-enabled video
Generate synchronized audio directly from the prompt.
{
"model": "doubao-seedance-2",
"prompt": "A speaker addresses the camera in a quiet library",
"generate_audio": true
}Continuous video generation
Request the last frame, then use that image as the first frame of the next clip.
{
"model": "doubao-seedance-2",
"prompt": "The kitten continues walking toward the camera",
"image_urls": [
"https://example.com/last-frame-from-previous-result.png"
],
"return_last_frame": true
}Multi-source reference video
Combine image, video, and audio references when no first_frame or last_frame role is used.
{
"model": "doubao-seedance-2",
"prompt": "Create a first-person product advertisement using the supplied materials",
"image_urls": [
"https://example.com/product-1.jpg",
"https://example.com/product-2.jpg"
],
"video_urls": [
"https://example.com/product-reference.mp4"
],
"audio_urls": [
"https://example.com/music.mp3"
],
"generate_audio": true,
"size": "16:9",
"duration": 11
}Response and task status
A successful asynchronous submission returns HTTP 202 with a supplier-neutral job.
{
"id": "job_…",
"object": "generation.job",
"model": "doubao-seedance-2",
"status": "queued",
"progress": 0,
"output": null,
"error": null,
"billing": {
"estimated_credits": "…",
"frozen_credits": "…",
"charged_credits": "0",
"state": "frozen",
"price_version": "2026-07-18.picverse-parity"
},
"created_at": "2026-07-21T00:00:00.000Z",
"completed_at": null
}- queued / running: continue polling.
- succeeded: retrieve media URLs from
output; billing has settled. - failed / canceled: inspect
error; frozen Credits are released.