{ "model_id": "bytedance/seedance-2.5", "provider_id": "bytedance", "name": "Seedance 2.5", "description": "ByteDance's next-generation video model with a unified multimodal reference-to-video architecture. Generates video from text, up to 30 reference images, 10 reference videos, and 10 reference audio clips \u2014 including audio-only input with no image or video required. Supports first/last-frame image-to-video, video editing, video extension, intelligent duration (including automatic selection), and adaptive aspect ratio.", "task": "Text-to-Video", "tags": [ "Video Generation", "Image-to-Video", "Reference Images", "Reference Videos", "Reference Audio", "Audio Generation", "Multimodal" ], "context_length": null, "max_output_tokens": null, "schema_version": "1.0.0", "pricing": { "@480p non-video input (per second)": 0.1028, "@720p non-video input (per second)": 0.2312, "@480p video input (per second)": 0.4304, "@720p video input (per second)": 0.9676, "Default (per second)": 0.2312 }, "examples": [ { "name": "Simple Video", "description": "Basic text-to-video with default settings (adaptive aspect ratio, 720p)", "input": { "prompt": "A golden retriever running through a field of sunflowers on a sunny day", "duration": 5, "generate_audio": false, "resolution": "720p" }, "output": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/simple-video.mp4" }, "raw_response": { "state": "Completed", "result": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/simple-video.mp4" }, "gatewayMetadata": { "keySource": "Unified" } }, "code_snippets": [ { "label": "typescript", "language": "typescript", "code": "const response = await env.AI.run(\n 'bytedance/seedance-2.5',\n {\n prompt: 'A golden retriever running through a field of sunflowers on a sunny day',\n duration: 5,\n resolution: '720p',\n },\n)\nconsole.log(response)" }, { "label": "curl", "language": "bash", "code": "curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \\\n --header \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data '{\n \"model\": \"bytedance/seedance-2.5\",\n \"input\": {\n \"prompt\": \"A golden retriever running through a field of sunflowers on a sunny day\",\n \"duration\": 5,\n \"resolution\": \"720p\"\n }\n}'" } ] }, { "name": "Cinematic Wide Shot", "description": "Longer cinematic video with an explicit 16:9 aspect ratio", "input": { "prompt": "A dramatic drone shot flying through misty mountain peaks at sunrise, cinematic lighting with volumetric fog", "aspect_ratio": "16:9", "duration": 12, "generate_audio": false, "resolution": "720p" }, "output": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/cinematic-wide-shot.mp4" }, "raw_response": { "state": "Completed", "result": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/cinematic-wide-shot.mp4" }, "gatewayMetadata": { "keySource": "Unified" } }, "code_snippets": [ { "label": "typescript", "language": "typescript", "code": "const response = await env.AI.run(\n 'bytedance/seedance-2.5',\n {\n prompt:\n 'A dramatic drone shot flying through misty mountain peaks at sunrise, cinematic lighting with volumetric fog',\n aspect_ratio: '16:9',\n duration: 12,\n resolution: '720p',\n },\n)\nconsole.log(response)" }, { "label": "curl", "language": "bash", "code": "curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \\\n --header \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data '{\n \"model\": \"bytedance/seedance-2.5\",\n \"input\": {\n \"prompt\": \"A dramatic drone shot flying through misty mountain peaks at sunrise, cinematic lighting with volumetric fog\",\n \"aspect_ratio\": \"16:9\",\n \"duration\": 12,\n \"resolution\": \"720p\"\n }\n}'" } ] }, { "name": "First and Last Frame", "description": "Generate a video that transitions between a given first-frame and last-frame image", "input": { "image": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg", "last_frame_image": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic2.jpg", "prompt": "The character slowly turns to face the camera and smiles", "duration": 5, "generate_audio": false, "resolution": "720p" }, "output": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/first-and-last-frame.mp4" }, "raw_response": { "state": "Completed", "result": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/first-and-last-frame.mp4" }, "gatewayMetadata": { "keySource": "Unified" } }, "code_snippets": [ { "label": "typescript", "language": "typescript", "code": "const response = await env.AI.run(\n 'bytedance/seedance-2.5',\n {\n image: 'https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg',\n last_frame_image: 'https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic2.jpg',\n prompt: 'The character slowly turns to face the camera and smiles',\n duration: 5,\n resolution: '720p',\n },\n)\nconsole.log(response)" }, { "label": "curl", "language": "bash", "code": "curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \\\n --header \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data '{\n \"model\": \"bytedance/seedance-2.5\",\n \"input\": {\n \"image\": \"https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic1.jpg\",\n \"last_frame_image\": \"https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_tea_pic2.jpg\",\n \"prompt\": \"The character slowly turns to face the camera and smiles\",\n \"duration\": 5,\n \"resolution\": \"720p\"\n }\n}'" } ] }, { "name": "Portrait Video with MOV Output", "description": "Vertical video for social media, encoded as mov for higher color fidelity", "input": { "prompt": "Abstract ink drops spreading through water, vivid colors mixing in slow motion", "aspect_ratio": "9:16", "duration": 5, "generate_audio": false, "resolution": "720p", "output_format": "mov" }, "output": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/portrait-video-with-mov-output.mov" }, "raw_response": { "state": "Completed", "result": { "video": "https://examples.aig.cloudflare.com/bytedance/seedance-2.5/portrait-video-with-mov-output.mov" }, "gatewayMetadata": { "keySource": "Unified" } }, "code_snippets": [ { "label": "typescript", "language": "typescript", "code": "const response = await env.AI.run(\n 'bytedance/seedance-2.5',\n {\n prompt: 'Abstract ink drops spreading through water, vivid colors mixing in slow motion',\n aspect_ratio: '9:16',\n duration: 5,\n resolution: '720p',\n output_format: 'mov',\n },\n)\nconsole.log(response)" }, { "label": "curl", "language": "bash", "code": "curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \\\n --header \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n --header \"Content-Type: application/json\" \\\n --data '{\n \"model\": \"bytedance/seedance-2.5\",\n \"input\": {\n \"prompt\": \"Abstract ink drops spreading through water, vivid colors mixing in slow motion\",\n \"aspect_ratio\": \"9:16\",\n \"duration\": 5,\n \"resolution\": \"720p\",\n \"output_format\": \"mov\"\n }\n}'" } ] } ], "default_example": null, "code_snippets": [], "supports_async": false, "zdr": false, "zdr_comment": null, "external_info": null, "terms": null, "cover_image_url": null, "metadata": { "Aspect Ratios": "16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive", "Max Duration": "30 seconds", "Max Reference Audio Clips": "10", "Max Reference Images": "30", "Max Reference Videos": "10", "Native Audio": "Yes", "Resolutions": "480p, 720p" }, "request_formats": null, "providers": null, "provider_details": [ { "id": "bytedance", "pricing": { "480p_non_video_in": 0.1028, "720p_non_video_in": 0.2312, "480p_video_in": 0.4304, "720p_video_in": 0.9676, "default": 0.2312 } } ], "banner": null, "created_at": "2026-08-07 19:10:41", "schema": { "input": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "prompt": { "description": "Text prompt describing the video to generate. Optional when at least one reference image, video, or audio clip is provided (Seedance 2.5 supports audio-only input).", "type": "string", "maxLength": 25000 }, "image": { "description": "First-frame reference image (HTTP(S) URL or base64 data URI) for image-to-video", "type": "string" }, "last_frame_image": { "description": "Last-frame reference image (HTTP(S) URL or base64 data URI). Requires a first-frame image to also be given.", "type": "string" }, "reference_images": { "description": "Reference images (0-30, HTTP(S) URLs or base64 data URIs) to guide multimodal video generation, editing, or extension.", "maxItems": 30, "type": "array", "items": { "type": "string" } }, "reference_videos": { "description": "Reference videos (0-10, HTTP(S) URLs or base64 data URIs) for style/motion guidance, video editing, or video extension. Total duration of all reference videos must not exceed 30 seconds.", "maxItems": 10, "type": "array", "items": { "type": "string" } }, "reference_audios": { "description": "Reference audio clips (0-10, HTTP(S) URLs or base64 data:audio/... URIs). Supports audio-only input (no image or video required). Total duration of all audio clips must not exceed 30 seconds.", "maxItems": 10, "type": "array", "items": { "type": "string" } }, "duration": { "default": 5, "description": "Generated video duration in seconds. Supported range: 4-30, or -1 for automatic selection. For multimodal reference-to-video requests that edit an input reference video, only -1 is supported and the output duration is kept close to the input.", "anyOf": [ { "type": "number", "const": -1 }, { "type": "integer", "minimum": 4, "maximum": 30 } ] }, "resolution": { "default": "720p", "description": "Video resolution", "type": "string", "enum": [ "480p", "720p" ] }, "aspect_ratio": { "default": "adaptive", "description": "Video aspect ratio. \"adaptive\" automatically matches the aspect ratio of the provided reference image or video when applicable. First/last-frame generation always uses \"adaptive\"; any supplied value is overridden.", "type": "string", "enum": [ "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive" ] }, "fps": { "default": 24, "description": "Frame rate (frames per second)", "type": "number", "const": 24 }, "camera_fixed": { "default": false, "description": "Whether to fix camera position. Not currently supported by the provider; has no effect.", "type": "boolean" }, "generate_audio": { "description": "Whether to generate audio with the video", "type": "boolean" }, "watermark": { "default": false, "description": "Whether to add a watermark to the output video", "type": "boolean" }, "seed": { "description": "Random seed. Passing this does not error, but reproducibility is not guaranteed and is not documented by the provider.", "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "output_format": { "default": "mp4", "description": "Output video container format. \"mp4\" offers the best compatibility and smaller file size; \"mov\" preserves higher color fidelity for professional post-production workflows at the cost of a larger file.", "type": "string", "enum": [ "mp4", "mov" ] }, "use_virtual_avatar": { "default": false, "description": "Route image reference inputs (image, reference_images, last_frame_image) through ByteDance's trusted virtual avatar asset library before generation. Intended for AI-generated/virtual character avatars that would otherwise be blocked by face or deepfake detection", "type": "boolean" } }, "required": [ "duration", "resolution", "aspect_ratio", "fps", "camera_fixed", "watermark", "output_format", "use_virtual_avatar" ], "additionalProperties": false }, "output": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "video": { "type": "string", "format": "uri", "description": "URL to the generated video" } }, "required": [ "video" ], "additionalProperties": false } } }