Text to Video
doubao-seedance-2-mini
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-mini","prompt":"Ocean waves at sunrise","duration":5,"size":"16:9","resolution":"720p","generate_audio":false,"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-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.
Stable public model ID for this request.
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.
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 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.
Output resolution tier.
Allowed: 480p, 720p
Field description
- 480p
- Standard definition
- 720p
- High definition
- 1080p
- Full HD
- 4k
- Ultra HD
Optional random seed for similar, but not bit-identical, repeatability.
Whether to generate synchronized audio with the video. Set false for silent output.
Allowed: false, true
Whether to return the final frame as an image that can start a following generation.
Allowed: false, true
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 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.
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.
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.