## Basic tool info Model name: alibaba/qwen image 3.0 pro Model description: Alibaba’s Qwen Image 3.0 Pro generates and edits PNG images from long prompts and up to 3 reference images, built for dense layouts and small text. Model cover: https://cdn.wiro.ai/uploads/models/alibaba-qwen-image-3-0-pro-cover.webp Model categories: - tool - partner - nogpu-pipeline - alibaba - quick-showcase - text-to-image - image-to-image Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/alibaba/qwen-image-3-0-pro Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Images help: Optional. Up to 3 images to edit or use as reference. Leave empty to generate from the prompt alone. Refer to them in the prompt as image 1, image 2 and so on. Each input image is billed. type: combinefileinput default: alibaba-qwen-image-3-pro-sampleinput-1.jpeg - name: prompt label: prompt help: Required. The prompt to generate the image. Max 4500 characters. type: textarea default: Replace the beach with an indoor professional volleyball court, polished wood floor with painted lines, a packed crowd in the stands and bright arena lighting. Keep both players, their poses and their outfits exactly the same. - name: resolution label: Resolution help: Required. Quality tier for the generated image. type: select default: 1K options: - value: "1K" label: 1K - value: "2K" label: 2K - name: ratio label: Ratio help: Optional. Aspect ratio of the output. Auto follows the first input image, or gives a square when there is no input image. type: select default: auto options: - value: "auto" label: auto - value: "1:1" label: 1:1 - value: "16:9" label: 16:9 - value: "9:16" label: 9:16 - value: "4:3" label: 4:3 - value: "3:4" label: 3:4 - value: "3:2" label: 3:2 - value: "2:3" label: 2:3 - value: "21:9" label: 21:9 - name: n label: Number of Images help: Optional. How many images to generate, up to 6. Each generated image is billed. type: number default: 1 - name: negativePrompt label: Negative Prompt help: Optional. Specify what to exclude from the output. type: textarea default: - name: promptExtend label: Prompt Extend help: Optional. Rewrites and expands the prompt for better detail, with slightly longer latency. Useful for short prompts. type: select default: true options: - value: "true" label: true - value: "false" label: false - name: promptExtendMode label: Prompt Extend Mode help: Optional. Direct suits most cases. Agent rewrites more heavily but works only without an input image, otherwise it falls back to direct. type: select default: direct options: - value: "direct" label: direct - value: "agent" label: agent - name: enableThinking label: Thinking Mode help: Optional. Improves output quality at the cost of longer generation time. Needs Prompt Extend to be true. The price is the same either way. type: select default: true options: - value: "true" label: true - value: "false" label: false - name: seed label: Seed help: Optional. Random seed for reproducibility (0-2147483647). type: number default: ## Model Parameter Inspires: - prompt: Replace the beach with an indoor professional volleyball court, polished wood floor with painted lines, a packed crowd in the stands and bright arena lighting. Keep both players, their poses and their outfits exactly the same. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/alibaba-qwen-image-3-pro-sampleinput-1.jpeg - prompt: Turn this into a detailed pencil and ink sketch on textured cream paper, with fine cross hatching for the shadows, loose linework in the grass and the sky left mostly blank. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/alibaba-qwen-image-3-pro-sampleinput-2.jpeg - prompt: Change the man into an older man with grey hair and glasses wearing a brown corduroy jacket, put a newspaper on the table instead of the laptop, and make the street outside sunny and dry with daytime crowds. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/alibaba-qwen-image-3-pro-sampleinput-3.jpeg - prompt: Change the cake to a tall three layer chocolate cake with pink frosting and the number 7 on top, turn the paper decorations into gold balloons floating above the table, and add a banner between the trees that reads 'HAPPY BIRTHDAY MAYA'. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/alibaba-qwen-image-3-pro-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/alibaba/qwen-image-3-0-pro" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": "alibaba-qwen-image-3-pro-sampleinput-1.jpeg", "prompt": "Replace the beach with an indoor professional volleyball court, polished wood floor with painted lines, a packed crowd in the stands and bright arena lighting. Keep both players, their poses and their outfits exactly the same.", "resolution": "1K", "ratio": "auto", "n": 1, "negativePrompt": "", "promptExtend": "true", "promptExtendMode": "direct", "enableThinking": "true", "seed": null, "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.