## 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 ## Model Parameter Inspires: - 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. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-r2v-uncensored-sampleinput-1.jpeg - prompt: [Image 1] the woman, same face and body from the image, styled as deep red satin: plunging underwire bra with thin straps, matching satin briefs, sheer red thigh-high stockings with lace tops and a garter belt. She sits on the edge of a velvet chaise in a dim hotel suite, crosses her legs, and leans back with a confident look into the lens. Warm tungsten lamps and candlelight make the satin shine. Slow orbit around her, 50mm, rich contrast, high-end fashion editorial. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-r2v-uncensored-sampleinput-2.jpeg - prompt: [Image 1] the woman, keeping her face from the image: ivory Chantilly lace bodysuit with a sheer mesh panel and delicate floral embroidery, paired with an ivory tulle robe. She walks barefoot across a sunlit white bedroom toward the camera, the robe flowing behind her, then pauses and adjusts a strap over her shoulder. Bright soft daylight, airy pastel tones, gentle breeze moving her hair. Steady tracking shot, 35mm, clean bridal lingerie campaign aesthetic. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-r2v-uncensored-sampleinput-3.jpeg - prompt: [Image 1] the woman, same face from the image, styled as a black strappy harness bra with solid opaque satin cups and matching high-cut solid satin briefs with cut-out strap details, fully lined fabric with no sheer or see-through parts. She poses in a dark studio against a glossy black backdrop, rolls her shoulders and turns her hips slowly to the beat while magenta and cyan neon rim lights trace her silhouette. Light haze in the air. Slow push-in, then a low-angle arc, 50mm, bold fashion-film look, high contrast. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/seedance-2-5-r2v-uncensored-sampleinput-4.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}" | 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.