## Basic tool info Model name: MiniMax/image-to-video-hailuo-01-subject Model description: Generate 6s videos with an image. (Also known as Hailuo) MiniMax/image-to-video-01-subject is a variant of MiniMax’s image-to-video model that focuses on the main subject within the image. It generates short video clips by applying motion and animation specifically to the person or central object, while keeping the background relatively stable. This results in more focused and engaging animations. Model cover: https://cdn.wiro.ai/uploads/models/MiniMax-image-to-video-hailuo-01-subject-cover.mp4 Model categories: - tool - image-to-video - partner - MiniMax Model tags: - video generator Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/MiniMax/image-to-video-hailuo-01-subject Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImageFirstUrl label: Subject Reference Image URL help: The model will generate a video based on the subject uploaded through this parameter. Currently, only a human face accepted. type: text default: - name: prompt label: prompt help: The prompt to generate the video. type: textarea default: A cinematic, sun-drenched photograph of a stylish woman walking on a sidewalk in Los Angeles. The scene is framed by a row of iconic palm trees lining the street, their fronds swaying gently against a clear blue sky. The woman is dressed in fashionable, casual clothing suitable for the warm weather, and she has a relaxed and confident stride. The light is golden, suggesting either early morning or late afternoon, creating long, dramatic shadows. In the background, there are hints of classic L.A. architecture and the cityscape. The image should be captured with a wide-angle lens to emphasize the scale of the palm trees and the expansive urban environment, with a shallow depth of field to focus on the woman. ## Model Parameter Inspires: - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/input-scribble-controlnet.jpg - prompt: This is a rough black‐and‐white pencil scribble of a tree silhouette on a blank background. Animate it by having the trunk grow upward from the bottom, branches extend outward, and leaves gradually sprout in green. Finally, let a gentle breeze sway the branches and leaves. - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/input-seg-controlnet.jpg - prompt: This is a segmented rendering containing distinct color regions: a blue sky, green hill, and a red barn. Create a video where first the sky fades in with drifting clouds, then the green hillside rolls into view from the bottom, and finally the red barn structure rises up block by block, with gentle camera zoom‐out at the end. - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/mustang.jpeg - prompt: This is a photograph of a classic Ford Mustang parked on an open road with mountains in the background. Turn it into a short driving clip: the Mustang’s engine revs, the wheels start spinning, and the camera tracks alongside as it accelerates down the highway at sunset, with dust kicking up behind. - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/view-outpainting.png - prompt: This is an outpainted panoramic cityscape showing a central modern skyscraper and extending architecture on both sides. Animate it by beginning zoomed in on the skyscraper’s glass facade, then smoothly panning outward to reveal the full skyline, with clouds drifting overhead and distant traffic lights flickering to life. - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/input-image-2-video.jpg - prompt: This is a staged photo of a single person standing in front of a textured wall with dramatic lighting. Create a subtle looped animation: have the lighting shift as if a soft spotlight moves across, the person’s hair and clothing gently sway in an imagined breeze, and the camera slowly zooms in for a 3D parallax effect. - inputImageFirst: https://cdn.wiro.ai/uploads/sampleinputs/input-couple-1.jpg - prompt: This is a portrait of a smiling couple standing in a park under a tree. Animate it by introducing slow-moving falling leaves in the background, a slight golden‐hour glow shifting across their faces, and have them turn to walk hand‐in‐hand down a path that emerges from the frame. ## 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/MiniMax/image-to-video-hailuo-01-subject" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImageFirstUrl": "input-woman-1.jpg", "prompt": "A cinematic, sun-drenched photograph of a stylish woman walking on a sidewalk in Los Angeles. The scene is framed by a row of iconic palm trees lining the street, their fronds swaying gently against a clear blue sky. The woman is dressed in fashionable, casual clothing suitable for the warm weather, and she has a relaxed and confident stride. The light is golden, suggesting either early morning or late afternoon, creating long, dramatic shadows. In the background, there are hints of classic L.A. architecture and the cityscape. The image should be captured with a wide-angle lens to emphasize the scale of the palm trees and the expansive urban environment, with a shallow depth of field to focus on the woman.", "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.