## Basic tool info Tool name: wiro/story-diffusion Tool description: It generates comic book-style images of the entered storylines in sequence. Additionally, we can specify our comic book character in the model. Tool cover: https://cdn.wiro.ai/uploads/models/wiro-story-diffusion-cover.png Tool categories: - tool - image-to-image Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/wiro/story-diffusion Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Tool Inputs: - name: inputImageUrl label: pad-image-url help: The image we want the output to reference. type: text default: - name: inputImage2Url label: init-image-url help: init-imagurl-help type: text default: - name: prompt label: Character Detail Prompt help: If init_image is used, the 'img' trigger word must be added to character-details-prompt type: textarea default: img, a woman wearing red dress - name: generalPrompt label: prompt help: Images are produced as many times as the entered prompt amount. Format: ....|.....|.....|. If you need to change the caption, add a # at the end of each line. [NC]symbol (The [NC] symbol is used as a flag to indicate that no characters(init-image) should be present in the generated scene images. If you want do that, prepend the '[NC]' at the beginning of the line. For example, to generate a scene of falling leaves without any character, write: '[NC] The leaves are falling.'),Currently, support is only using Textual Description type: textarea default: wake up in the bed | have breakfast | is on the road, go to the company | work in the company | running in the playground | reading book in the home - name: negativePrompt label: negativeprompt help: negativeprompt-help type: textarea default: naked, deformed, bad anatomy, disfigured, poorly drawn face, mutation, extra limb, ugly, disgusting, poorly drawn hands, missing limb, floating limbs, disconnected limbs, blurry, watermarks, oversaturated, distorted hands, amputation - name: extraEventPrompts label: extra-event-prompt help: Format: ....|....|.... type: textarea default: siting on the sofa | on the bed, at night - name: styleName label: style-name help: style-name-help type: select default: Comic book options: - value: "Comic book" label: Comic book - value: "Japanese Anime" label: Japanese Anime - value: "Digital/Oil Painting" label: Digital/Oil Painting - value: "Pixar/Disney Character" label: Pixar/Disney Character - value: "Photographic" label: Photographic - value: "Line art" label: Line art - value: "Black and White Film Noir" label: Black and White Film Noir - value: "Isometric Rooms" label: Isometric Rooms - name: steps label: inferencesteps help: inferencesteps-help type: number default: 30 - name: width label: width help: width-help type: number default: 768 - name: height label: height help: height-help type: number default: 768 - name: fontSize label: font-size help: font-size-help type: number default: 30 - name: imageLength label: id-image-length help: id-image-length-help type: number default: 4 - name: scale label: guidancescale help: guidancescale-help type: float default: 2.0 - name: seed label: seed help: seed-help type: number default: 123456 ## 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/wiro/story-diffusion" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImageUrl": "bg-img2.png", "inputImage2Url": "ic-light.png", "prompt": "img, a woman wearing red dress", "generalPrompt": "wake up in the bed | have breakfast | is on the road, go to the company | work in the company | running in the playground | reading book in the home", "negativePrompt": "naked, deformed, bad anatomy, disfigured, poorly drawn face, mutation, extra limb, ugly, disgusting, poorly drawn hands, missing limb, floating limbs, disconnected limbs, blurry, watermarks, oversaturated, distorted hands, amputation", "extraEventPrompts": "siting on the sofa | on the bed, at night", "styleName": "Comic book", "steps": 30, "width": 768, "height": 768, "fontSize": 30, "imageLength": 4, "scale": "2.0", "seed": 123456, "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 ```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 } ``` ## 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.