## Basic tool info Model name: ByteDance/seedance v2.5 reference uncensored Model description: Generate 4–30s videos from a prompt plus up to 30 images, 10 videos, and 10 audio references. Export MP4/MOV at 480p or 720p, with optional synced audio. Model cover: https://cdn.wiro.ai/uploads/models/bytedance-seedance-v2-5-reference-uncensored-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-v2-5-reference-uncensored 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-r2v-uncensored-sampleinput-1.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: [Image 1] the woman, keeping her face and hair from the image: black French lace balconette bra with scalloped edges, matching high-waist lace briefs and a sheer black silk robe hanging open off her shoulders. She stands by a tall window in a cream-toned Parisian bedroom, turns slowly toward the camera and lets the robe slide down one arm. Soft morning backlight through linen curtains catches the lace pattern and her skin. Slow dolly-in, 85mm, shallow depth of field, luxury lingerie campaign look, warm film grade. - 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 - value: "1080p" label: 1080p - name: duration label: Duration help: Required. Generated video duration in seconds. Use 'auto' to let the model choose the length. 'auto' is required when you edit a reference video (changing its lighting, style or objects), because the output then keeps the length of the input video. A number is only used when you generate from references or extend a video, where it sets the length of the new footage. The model determines the task type — generation, editing or extension — based on the prompt and the provided inputs. type: select default: auto options: - value: "auto" label: auto - 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: 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: generateAudio label: Generate audio help: Optional. 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: 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 ## 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}" | awk '{print $NF}')"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/bytedance/seedance-v2-5-reference-uncensored" -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-r2v-uncensored-sampleinput-1.jpeg", "prompt": "[Image 1] the woman, keeping her face and hair from the image: black French lace balconette bra with scalloped edges, matching high-waist lace briefs and a sheer black silk robe hanging open off her shoulders. She stands by a tall window in a cream-toned Parisian bedroom, turns slowly toward the camera and lets the robe slide down one arm. Soft morning backlight through linen curtains catches the lace pattern and her skin. Slow dolly-in, 85mm, shallow depth of field, luxury lingerie campaign look, warm film grade.", "inputVideo": "", "inputAudio": "", "resolution": "720p", "duration": "auto", "ratio": "adaptive", "generateAudio": "false", "outputFormat": "mp4", "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", "totalcost": "0.003510000000", "chargedcost": "0.002808000000", "discountamount": "0.000702000000", "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 } ``` totalcost is the list price. chargedcost is the amount actually billed after any discount (a store fee is included on store runs); discountamount is the discount. chargedcost is null until the charge is recorded (shortly after task_postprocess_end) and "0" for a failed or cancelled task. ## 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.