Text to Video

doubao-seedance-2-5

Video generation with text, image, video, audio, first/last-frame, edit, and extend workflows.

POST /v1/videos/generationsAsync generation

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

HeaderRequiredDescription
AuthorizationYesBearer token for an Artany API key.
Content-TypeYesMust be application/json.
Idempotency-KeyRecommended8–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.

modelstringrequireddefault: "doubao-seedance-2-5"

Stable public model ID for this request.

promptstringrequired

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."
resolutionstringdefault: "720p"

Output resolution tier.

Allowed: 480p, 720p

Field description

480p
Standard resolution
720p
Default high-definition resolution
480p720p

Note:1080p, 2k, and 4k are not supported.

sizestringdefault: "adaptive"

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.
16:94:31:13:49:1621:9adaptive
durationintegerdefault: 5

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.

generate_audiobooleandefault: true

Whether the generated video includes synchronized audio. Defaults to true.

seedinteger

Optional random seed. Reusing a seed may produce similar, but not identical, results.

output_formatstringdefault: "mp4"

Output container.

Allowed: mp4, mov

Field description

mp4
Default output
mov
Higher color precision; useful for edit or extension workflows
mp4mov
image_urlsarray<string>

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_with_rolesarray<object>

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"
  }
]
video_urlsarray<string>

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"
]
audio_urlsarray<string>

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"
]
return_last_framebooleandefault: false

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.