## Basic tool info Model name: MiniMax/h3 max r2v Model description: Create 5–15 second videos from a prompt plus optional image, video, and audio references. Use references to keep character identity, motion, and sound consistent. Model cover: https://cdn.wiro.ai/uploads/models/minimax-h3-max-r2v-cover.mp4 Model categories: - tool - use-agent - nogpu-pipeline - image-to-video - partner - quick-showcase Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/minimax/h3-max-r2v Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Reference Images help: Optional. Subject or style references. Up to 9 images. Cite them in the prompt as Image 1, Image 2, and so on. At least one image or video is required when audio is used. Images, videos, and audio together max 12 files. type: combinefileinput default: https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-1.webp - name: prompt label: Prompt help: Required. Describe the video and refer to inputs by order: Image 1, Video 1, Audio 1, and so on. type: textarea default: Image 1 is the snow globe. A little girl in a cozy knit sweater sits by a crackling fireplace on a winter evening, picks up the snow globe with both hands, gently shakes it and watches with wide eyes as the snow swirls and slowly falls over the tiny village, firelight glowing on her face. Slow cinematic push-in. - name: duration label: Duration (seconds) help: Required. Length of the video in whole seconds, between 5 and 15. type: number default: 5 - name: resolution label: Resolution help: Required. Default 768P. Choose 480P for a faster, cheaper result. type: select default: 768P options: - value: "480P" label: 480P - value: "768P" label: 768P - name: inputVideo label: Reference Videos help: Optional. Motion references. Up to 3 clips, each 2–15 seconds, total at most 15 seconds. Cite them in the prompt as Video 1, Video 2, and so on. type: combinefileinput default: - name: inputAudio label: Reference Audios help: Optional. Voice or sound references. Up to 3 clips, each 2–15 seconds, total at most 15 seconds. Cannot be used alone — add at least one image or video. Cite them in the prompt as Audio 1, Audio 2, and so on. type: combinefileinput default: - name: ratio label: Aspect Ratio help: Optional. Default 9:16. adaptive picks the best ratio from the inputs. type: select default: 9:16 options: - value: "adaptive" label: adaptive - value: "21:9" label: 21:9 - 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 - name: promptExpansionMode label: Prompt Expansion help: Optional. Default balanced. How much the model rewrites and expands your prompt before generating. disabled uses the prompt as written; quality expands it the most. type: select default: balanced options: - value: "disabled" label: disabled - value: "balanced" label: balanced - value: "quality" label: quality ## Model Parameter Inspires: - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-1.webp - prompt: Image 1 is the snow globe. A little girl in a cozy knit sweater sits by a crackling fireplace on a winter evening, picks up the snow globe with both hands, gently shakes it and watches with wide eyes as the snow swirls and slowly falls over the tiny village, firelight glowing on her face. Slow cinematic push-in. - ratio: 9:16 - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-2.webp - prompt: Image 1 is the red rotary telephone. The red rotary telephone rings on a small teak side table in a sunlit 1960s style apartment, a young woman with a short bob haircut in a polka dot dress walks over, lifts the handset to her ear and smiles as she starts talking, twirling the coiled cord with her finger. Bright morning light, steady medium shot. - ratio: 9:16 - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-3.webp - prompt: Image 1 is the bonsai tree. A young woman in a linen kimono jacket kneels on a wooden veranda of a traditional Japanese house beside the bonsai tree, carefully trims a small branch with tiny scissors and gently brushes the foliage with her fingers, a light breeze moving the maple leaves in the garden behind her. Soft daylight, slow camera arc around her. - ratio: 9:16 - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-4.webp - prompt: Image 1 is the lemon pitcher. A smiling woman in a white sundress sits at a mosaic table on a sunny terrace above the Amalfi Coast, lifts the lemon pitcher and pours lemonade into a glass, sets the pitcher back down, then raises the glass toward the camera and smiles, the turquoise sea and colorful cliffside houses behind her. Bright Mediterranean sunlight, one continuous shot, steady medium shot. - ratio: 9:16 ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="YOUR_WIRO_API_KEY"; 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/minimax/h3-max-r2v" \ -H "Content-Type: application/json" \ -H "x-api-key: ${YOUR_API_KEY}" \ -H "x-nonce: ${NONCE}" \ -H "x-signature: ${SIGNATURE}" \ --data-binary @- <<'JSON' { "inputImage": [ "https://cdn.wiro.ai/uploads/sampleinputs/minimax-h3-max-r2v-sampleinput-1.webp" ], "prompt": "Image 1 is the snow globe. A little girl in a cozy knit sweater sits by a crackling fireplace on a winter evening, picks up the snow globe with both hands, gently shakes it and watches with wide eyes as the snow swirls and slowly falls over the tiny village, firelight glowing on her face. Slow cinematic push-in.", "duration": 5, "resolution": "768P", "inputVideo": "", "inputAudio": "", "ratio": "9:16", "promptExpansionMode": "balanced", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." } JSON ``` ## 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: application/json" \ -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: application/json" \ -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: application/json" \ -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: application/json" \ -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: application/json" \ -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.