## Basic tool info Model name: google/nano-banana-pro Model description: Google's Gemini 3 Pro Image Preview, also known as Nano Banana, model for text-to-image and image-to-image generation. Model cover: https://cdn.wiro.ai/uploads/models/google-nano-banana-pro-cover.webp Model categories: - tool - partner - google - image-to-image - quick-showcase - text-to-image - price-list - fast-inference - image-editing - use-agent - nogpu-pipeline Model tags: - google Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/google/nano-banana-pro Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Gemini 3 Pro Preview lets you to mix up to 14 reference images. These 14 images can include the following: to 6 images of objects with high-fidelity to include in the final image, to 5 images of humans to maintain character consistency type: combinefileinput default: google-nano-banana-pro-input-1-1.jpg,google-nano-banana-pro-input-1-2.jpg,google-nano-banana-pro-input-1-3.jpg,google-nano-banana-pro-input-1-4.jpg,google-nano-banana-pro-input-1-5.jpg,google-nano-banana-pro-input-1-6.jpg - name: prompt label: prompt help: The prompt to generate the image. type: textarea default: Create a realistic group photo using the people from the input images. Place all of them standing together in an open grassy field during daylight. Ensure natural proportions, accurate facial features, and consistent styling. The man should be wearing a well-fitted three-piece suit, and the women should be wearing elegant, colorful dresses. Use soft natural lighting, gentle shadows, and a balanced composition. Maintain photorealism and keep all poses natural and relaxed. - name: aspectRatio label: Aspect Ratio help: Aspect Ratio of the output image type: select default: options: - value: "" label: Match Input Image - value: "1:1" label: 1:1 (1K)1024x1024 (2K)2048x2048 (4K)4096x4096 - value: "2:3" label: 2:3 (1K)848x1264 (2K)1696x2528 (4K)3392x5056 - value: "3:2" label: 3:2 (1K)1264x848 (2K)2528x1696 (4K)5056x3392 - value: "3:4" label: 3:4 (1K)896x1200 (2K)1792x2400 (4K)3584x4800 - value: "4:3" label: 4:3 (1K)1200x896 (2K)2400x1792 (4K)4800x3584 - value: "4:5" label: 4:5 (1K)928x1152 (2K)1856x2304 (4K)3712x4608 - value: "5:4" label: 5:4 (1K)1152x928 (2K)2304x1856 (4K)4608x3712 - value: "9:16" label: 9:16 (1K)768x1376 (2K)1536x2752 (4K)3072x5504 - value: "16:9" label: 16:9 (1K)1376x768 (2K)2752x1536 (4K)5504x3072 - value: "21:9" label: 21:9 (1K)1584x672 (2K)3168x1344 (4K)6336x2688 - name: resolution label: Resolution (K) help: Default is 1K type: select default: 1K options: - value: "1K" label: 1K (Standard) - value: "2K" label: 2K (High) - value: "4K" label: 4K (Ultra High) - name: safetySetting label: Safety Setting help: Safety Setting type: select default: OFF options: - value: "BLOCK_LOW_AND_ABOVE" label: BLOCK_LOW_AND_ABOVE - value: "BLOCK_MEDIUM_AND_ABOVE" label: BLOCK_MEDIUM_AND_ABOVE - value: "BLOCK_ONLY_HIGH" label: BLOCK_ONLY_HIGH - value: "BLOCK_NONE" label: BLOCK_NONE - value: "OFF" label: OFF ## Model Parameter Inspires: - prompt: The feeling of nostalgia, depicted as a hazy, sun-drenched attic filled with forgotten toys and dust motes, soft focus. - inputImage: - prompt: A crowded, neon-drenched food stall in a Tokyo cyberpunk alley, steam rising from the grill, highly detailed, film noir color palette. - inputImage: - prompt: A medieval alchemist working in a cluttered underground laboratory, wearing a hooded cloak and leather apron, lit by a single flickering oil lamp. - inputImage: - prompt: A bright minimalist living room with floor-to-ceiling windows, natural daylight, a soft gray sofa, wooden coffee table, indoor plants, clean Scandinavian design, photorealistic materials, accurate global illumination, high-resolution interior rendering. - inputImage: - prompt: A sleek futuristic electric car parked on a wet asphalt surface, neon lights reflecting off the ground, high-detail metallic bodywork, cinematic lighting, realistic reflections, detailed environment, studio-quality automotive rendering. - inputImage: - prompt: A 25-year-old man standing on a busy city street at golden hour, soft warm sunlight hitting his face, shallow depth of field, realistic skin texture, natural expression, detailed buildings and street reflections in the background, shot on a 50mm lens. - inputImage: - prompt: Create a realistic group photo using the people from the input images. Place all of them standing together in an open grassy field during daylight. Ensure natural proportions, accurate facial features, and consistent styling. The man should be wearing a well-fitted three-piece suit, and the women should be wearing elegant, colorful dresses. Use soft natural lighting, gentle shadows, and a balanced composition. Maintain photorealism and keep all poses natural and relaxed. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-2.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-3.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-4.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-5.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-1-6.jpg - prompt: Edit the provided image: the woman should appear to have lost weight and have a normal, non-pregnant stomach. Add a toddler standing next to the couple, resembling both parents. Ensure the woman, man, and toddler are all looking towards the camera. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-2.jpg - prompt: Enhance the input image by removing all blur and improving clarity while preserving natural details. Sharpen edges, textures, and fine features without introducing artifacts. Maintain realistic colors, lighting, and proportions. The output should look as if captured with a high-resolution camera, retaining photorealism and natural depth. Mimic the effect of an AI upscaler, improving details in both foreground and background, keeping the overall image visually coherent and crisp. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-4.jpg - prompt: Replace the yellow wall in the main image with the realistic brick wall from the second image, matching texture, lighting, and perspective. Remove the window bars and green blinds completely so the elderly woman appears unobstructed and free, keeping her facial features, pose, and proportions accurate. Ensure clean edges where the bars were removed, seamless blending with the new brick wall, and consistent natural lighting across the entire scene for a polished, photorealistic result. - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-3-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/google-nano-banana-pro-input-3-2.jpg ## 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/google/nano-banana-pro" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": [ "google-nano-banana-pro-input-1-1.jpg", "google-nano-banana-pro-input-1-2.jpg", "google-nano-banana-pro-input-1-3.jpg", "google-nano-banana-pro-input-1-4.jpg", "google-nano-banana-pro-input-1-5.jpg", "google-nano-banana-pro-input-1-6.jpg" ], "prompt": "Create a realistic group photo using the people from the input images. Place all of them standing together in an open grassy field during daylight. Ensure natural proportions, accurate facial features, and consistent styling. The man should be wearing a well-fitted three-piece suit, and the women should be wearing elegant, colorful dresses. Use soft natural lighting, gentle shadows, and a balanced composition. Maintain photorealism and keep all poses natural and relaxed.", "aspectRatio": "", "resolution": "1K", "safetySetting": "OFF", "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.