Text to Video

doubao-seedance-2-mini

Draft model pending operator verification

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-mini","prompt":"Ocean waves at sunrise","duration":5,"size":"16:9","resolution":"720p","generate_audio":false,"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-mini",
  "prompt": "Ocean waves at sunrise",
  "duration": 5,
  "size": "16:9",
  "resolution": "720p",
  "generate_audio": false,
  "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 input mode: prompt only, image frames, role-labelled frames, reference video, or reference video with audio.

modelstringrequireddefault: "doubao-seedance-2-mini"

Stable public model ID for this request.

promptstring

Video content description. Required when no source media is supplied; otherwise use it to direct action, camera movement, and style.

Length: 1–4000

  • Keep the instruction focused on the intended motion and scene.
  • The supported maximum is 4,000 characters.
durationintegerdefault: 5

Requested output duration in seconds.

Range: 4–15

Note:Use a plain JSON number and one of the duration values supported by this model.

sizestringdefault: "16:9"

Output aspect ratio. adaptive follows 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 source media.
16:99:161:14:33:421:9adaptive
resolutionstringdefault: "720p"

Output resolution tier.

Allowed: 480p, 720p

Field description

480p
Standard definition
720p
High definition
1080p
Full HD
4k
Ultra HD
480p720p
seedinteger

Optional random seed for similar, but not bit-identical, repeatability.

generate_audiobooleandefault: false

Whether to generate synchronized audio with the video. Set false for silent output.

Allowed: false, true

return_last_framebooleandefault: false

Whether to return the final frame as an image that can start a following generation.

Allowed: false, true

image_urlsarray<string>

Image array for image-to-video. One image supplies the first frame; two images supply the first and last frames.

Items: 1–9

  • Up to 9 images are supported.
[
  "https://example.com/opening-frame.jpg"
]

Note:Do not send image_urls together with image_with_roles.

image_with_rolesarray<object>

Image objects whose roles explicitly identify opening, ending, or reference frames.

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.
[
  {
    "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 first_frame or last_frame is used, do not also provide video_urls or audio_urls.

video_urlsarray<string>

Reference-video 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 below 15.2 seconds.
[
  "https://example.com/reference.mp4"
]

Note:Do not combine a reference video with first_frame or last_frame roles.

audio_urlsarray<string>

Reference-audio array for an audio-conditioned request.

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.

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-mini",
  "prompt": "A kitten yawning at the camera",
  "duration": 5,
  "resolution": "720p",
  "size": "16:9",
  "generate_audio": true
}

Image-to-video

Use one image as the opening visual context.

{
  "model": "doubao-seedance-2-mini",
  "prompt": "Slow camera push-in as the subject looks toward the horizon",
  "image_urls": [
    "https://example.com/opening-frame.jpg"
  ],
  "duration": 5
}

First/last-frame video

Set both endpoints explicitly with role-labelled images.

{
  "model": "doubao-seedance-2-mini",
  "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 with audio

Provide reference video and audio together.

{
  "model": "doubao-seedance-2-mini",
  "prompt": "A person speaks to the camera",
  "video_urls": [
    "https://example.com/reference.mp4"
  ],
  "audio_urls": [
    "https://example.com/speech.wav"
  ],
  "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-mini",
  "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.