Text to Video
doubao-seedance-2-5
Video generation with text, image, video, audio, first/last-frame, edit, and extend workflows.
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-5","prompt":"A cinematic miniature landscape at sunset","resolution":"720p","size":"16:9","duration":5,"generate_audio":true,"output_format":"mp4","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-5",
"prompt": "A cinematic miniature landscape at sunset",
"resolution": "720p",
"size": "16:9",
"duration": 5,
"generate_audio": true,
"output_format": "mp4",
"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:Unified workflow for text, multimodal reference, video edit, video extension, and first/last-frame generation. Public HTTPS media URLs are accepted.
Stable public model ID for this request.
Video instruction. Reference items by their one-based array order with @图片1, @视频1, or @音频1 when needed.
Length: 1–4000
"Use @视频1 for first-person framing and @音频1 as background music."
Output resolution tier.
Allowed: 480p, 720p
Field description
- 480p
- Standard resolution
- 720p
- Default high-definition resolution
Note:1080p, 2k, and 4k are not supported.
Output aspect ratio. Use adaptive for edit, extension, or first/last-frame requests.
Allowed: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Field description
- 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9
- Fixed output framing
- adaptive
- Required for edit and first/last-frame workflows; recommended for extension.
Requested output duration in seconds.
Range: 4–30
- Supported range: 4–30 seconds.
- If omitted, the request uses 5 seconds.
Note:Automatic duration (-1) is not exposed by this Artany contract.
Whether the generated video includes synchronized audio. Defaults to true.
Optional random seed. Reusing a seed may produce similar, but not identical, results.
Output container.
Allowed: mp4, mov
Field description
- mp4
- Default output
- mov
- Higher color precision; useful for edit or extension workflows
Reference image URLs. All items are treated as reference images.
Items: 0–30
- Up to 30 images are supported.
- Use image_with_roles when an opening or ending frame must be explicit.
[ "https://example.com/reference.jpg" ]
Image objects with explicit frame or reference roles.
Items: 0–30
Field description
- url
- Public HTTPS image URL.
- role
- first_frame, last_frame, or reference_image.
- When video or audio references are present, first_frame and last_frame are treated as reference images.
[
{
"url": "https://example.com/first.jpg",
"role": "first_frame"
},
{
"url": "https://example.com/last.jpg",
"role": "last_frame"
}
]Reference video URLs for video-conditioned generation, editing, or extension.
Items: 0–10
- Up to 10 MP4 or MOV clips are supported.
- Each clip must be 2–30 seconds; total reference-video duration must not exceed 30 seconds.
- Pricing includes the total reference-video duration plus generated duration.
[ "https://example.com/reference.mp4" ]
Reference audio URLs. Audio-only reference generation is supported.
Items: 0–10
- Up to 10 WAV or MP3 clips are supported.
- Each clip must be 2–30 seconds; total duration must not exceed 30 seconds.
[ "https://example.com/reference.mp3" ]
Whether the completed result also includes its final frame for a follow-up request.
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
Generate a video directly from a text prompt.
{
"model": "doubao-seedance-2-5",
"prompt": "A cinematic miniature landscape at sunset",
"size": "16:9",
"resolution": "720p",
"duration": 5
}Multimodal reference
Combine image, video, and audio references in one generation.
{
"model": "doubao-seedance-2-5",
"prompt": "Use @视频1 for first-person framing and @音频1 as background music",
"image_urls": [
"https://example.com/reference.jpg"
],
"video_urls": [
"https://example.com/reference.mp4"
],
"audio_urls": [
"https://example.com/reference.mp3"
],
"duration": 11
}Video edit
Use a source video and describe the required edit. This workflow needs adaptive framing.
{
"model": "doubao-seedance-2-5",
"prompt": "Edit the video: replace the background with a snowy mountain landscape",
"video_urls": [
"https://example.com/source.mp4"
],
"size": "adaptive",
"duration": 5,
"output_format": "mov"
}First/last-frame video
Set both endpoints explicitly using image roles.
{
"model": "doubao-seedance-2-5",
"prompt": "The scene transitions from day to night",
"image_with_roles": [
{
"url": "https://example.com/first.jpg",
"role": "first_frame"
},
{
"url": "https://example.com/last.jpg",
"role": "last_frame"
}
],
"size": "adaptive",
"duration": 5
}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-5",
"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.