## Basic tool info Model name: ByteDance/seedance 2.5 reference Model description: Create 4–30 second videos guided by reference clips, images, and audio. Preserve motion and timing while changing subjects, style, and scene details. Model cover: https://cdn.wiro.ai/uploads/models/bytedance-seedance-2-5-reference-cover.mp4 Model categories: - tool - use-agent - nogpu-pipeline - image-to-video - partner - quick-showcase - hero-showcase - video-to-video Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/bytedance/seedance-2-5-reference Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: reference_images help: Optional. The provider may sometimes reject human faces. 1-30 reference images. In the prompt, refer to them as [Image 1], [Image 2], etc. Reference images are not charged. type: combinefileinput default: seedance-2-5-reference-sampleinput-1.jpeg,seedance-2-5-reference-sampleinput-2.jpeg - name: prompt label: Prompt help: Optional. The prompt to generate the video. Refer to reference videos as [Video 1], images as [Image 1], audios as [Audio 1], and say what to keep and what to change. type: textarea default: Place the bottle from [Image 1] onto the counter in [Image 2], keeping its exact shape, cap and crest intact. Slow vertical dolly-in as morning light creeps across the stone and soft caustics from the glass drift over the bottle, fine dust in the sunbeam. Commercial product cinematography, shallow depth of field, 50mm. - name: inputVideo label: reference_videos help: Optional. 1-10 reference videos (mp4/mov), each 2-30 seconds, 30 seconds in total. Use them to edit or extend a video, or to copy its motion. The provider may sometimes reject human faces. Final price is calculated from actual token usage after generation, and input video duration is charged as well. type: combinefileinput default: - name: inputAudio label: reference_audios help: Optional. 1-10 reference audios (wav/mp3), each 2-30 seconds, 30 seconds in total. Used for rhythm, timing and voice. Can be used on their own. Reference audios are not charged. type: combinefileinput default: - name: resolution label: Resolution help: Required. Video resolution. type: select default: 720p options: - value: "480p" label: 480p - value: "720p" label: 720p - name: ratio label: Ratio help: Optional. Output aspect ratio. 'adaptive' lets the model choose based on prompt and inputs. When a reference video is used, the aspect ratio of that video is always kept. type: select default: adaptive options: - value: "adaptive" label: adaptive - value: "16:9" label: 16:9 - value: "4:3" label: 4:3 - value: "1:1" label: 1:1 - value: "3:4" label: 3:4 - value: "9:16" label: 9:16 - value: "21:9" label: 21:9 - name: duration label: Duration help: Required. Generated video duration in seconds. type: select default: 10 options: - value: "4" label: 4 - value: "5" label: 5 - value: "6" label: 6 - value: "7" label: 7 - value: "8" label: 8 - value: "9" label: 9 - value: "10" label: 10 - value: "11" label: 11 - value: "12" label: 12 - value: "13" label: 13 - value: "14" label: 14 - value: "15" label: 15 - value: "16" label: 16 - value: "17" label: 17 - value: "18" label: 18 - value: "19" label: 19 - value: "20" label: 20 - value: "21" label: 21 - value: "22" label: 22 - value: "23" label: 23 - value: "24" label: 24 - value: "25" label: 25 - value: "26" label: 26 - value: "27" label: 27 - value: "28" label: 28 - value: "29" label: 29 - value: "30" label: 30 - name: generateAudio label: Generate audio help: Required. Whether the generated video includes audio synchronized with the visuals. type: select default: false options: - value: "true" label: true - value: "false" label: false - name: outputFormat label: Output format help: Optional. mp4 plays everywhere and is the safe default. mov keeps higher color precision for color grading, keying and compositing, but some players cannot play it. For video editing and extension, mov input with mov output is recommended. type: select default: mp4 options: - value: "mp4" label: mp4 - value: "mov" label: mov - name: promptEnhancement label: Prompt enhancement help: Optional. Rewrites the prompt with AI into a brandless, copyright/audio-safe version before generation to reduce content-filter failures (e.g. sensitive-audio rejections). Recommended when Generate audio is on. Reference tokens like [Image 1] are preserved. type: select default: false options: - value: "true" label: true - value: "false" label: false - name: watermark label: Watermark help: Optional. Generate whether the video contains a watermark. type: select default: false options: - value: "false" label: false - value: "true" label: true ## Model Parameter Inspires: - prompt: Place the bottle from [Image 1] onto the counter in [Image 2], keeping its exact shape, cap and crest intact. Slow vertical dolly-in as morning light creeps across the stone and soft caustics from the glass drift over the bottle, fine dust in the sunbeam. Commercial product cinematography, shallow depth of field, 50mm. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-1.jpeg,https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-2.jpeg - prompt: The wool fox from [Image 1] pads along the empty shelf in [Image 2] and nudges a paperback with its nose until it tips over. Keep the fox's stitching, colour and stubby proportions exactly as in [Image 1]. Warm tungsten light, floating dust, gentle handheld follow shot. Stop-motion feel at 24fps with soft felt-on-wood sounds. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-3.jpeg,https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-4.jpeg - prompt: Slow low orbit around the motorcycle in [Image 1], drifting from front three-quarter toward the side, keeping the tank paint, spoked wheels and exhaust wrap unchanged. The overhead work lamp sways, sliding its pool of light and a long shadow across the concrete. Anamorphic look, faint film grain, low fluorescent hum. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-5.jpeg - prompt: Bring the scene in [Image 1] to life: thick golden honey pours from the jug in a slow ribbon over the pancake stack, running down the sides as the pat of butter slides and melts. Hold the same eye-level framing, plate and oak table from [Image 1]. Macro food cinematography, glossy highlights, slow-motion look with a soft viscous pour sound. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-reference-sampleinput-6.jpeg ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/bytedance/seedance-2-5-reference" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": [ "seedance-2-5-reference-sampleinput-1.jpeg", "seedance-2-5-reference-sampleinput-2.jpeg" ], "prompt": "Place the bottle from [Image 1] onto the counter in [Image 2], keeping its exact shape, cap and crest intact. Slow vertical dolly-in as morning light creeps across the stone and soft caustics from the glass drift over the bottle, fine dust in the sunbeam. Commercial product cinematography, shallow depth of field, 50mm.", "inputVideo": "", "inputAudio": "", "resolution": "720p", "ratio": "adaptive", "duration": "10", "generateAudio": "false", "outputFormat": "mp4", "promptEnhancement": "false", "watermark": "false", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.