Wiro Image Fill
Overview
Generate real images via Wiro and write a mapping from placeholder keys to generated asset paths for later replacement.
How-to (quick start)
- •Get API credentials from Wiro dashboard for the target project.
- •Provide credentials using one of the options below.
- •Run the generator script with a prompt.
- •Use the mapping output to update image references.
Option A: export environment variables in the shell session.
export WIRO_API_KEY="your_project_api_key" export WIRO_API_SECRET="your_project_api_secret"
Option B: create a .env file in the project root (user creates this file).
WIRO_API_KEY=your_project_api_key WIRO_API_SECRET=your_project_api_secret
If .env does not exist, the script creates it with placeholder WIRO_API_KEY and WIRO_API_SECRET lines.
The script reads .env by default if it exists. Use --env-file path/to/.env to point to a different file.
Workflow
- •Locate missing images.
- •Draft a prompt from nearby UI context.
- •Run the generator script.
- •Use the mapping to update image references.
1) Locate missing images
Use ripgrep to find placeholders:
rg -n "src=\"\"|src=''|placeholder\.png" <project-root>
Capture the placeholder key you will map (the literal placeholder string or path).
2) Draft a prompt
Use nearby UI copy, alt text, component names, and page intent. Keep the prompt short and specific to the UI need.
3) Run the generator script
Set credentials:
export WIRO_API_KEY="..." export WIRO_API_SECRET="..."
Run per placeholder:
python3 scripts/wiro_generate_image.py \ --model "google/nano-banana-pro" \ --prompt "Modern dashboard hero showing analytics cards on a clean desk." \ --map-key "placeholder.png"
Notes:
- •Default output dir:
public/generatedifpublic/exists, elseassets/generated, elsegenerated/. - •Mapping file default:
<output-dir>/image-map.json. - •Use
--output-diror--mapping-fileto override. - •
--input-imagecan be repeated or comma-separated. - •
--body-mode multipart(default) sends multipart form fields; use--body-mode jsonif needed. - •IPv4 is preferred by default to avoid IPv6 delays. Use
--ip-mode autoto disable IPv4 forcing. - •Timeouts:
--connect-timeout(default 5s),--read-timeout(default 30s),--task-timeout(default 180s). - •
--verboseprints run/poll progress to stderr; helpful for diagnosing stalls. - •Network retries use
--request-retries(default 2) and--retry-wait(default 1s backoff).
4) Apply the mapping
Use the JSON mapping file to replace placeholders in code or templates. The script only writes the mapping entry when --map-key is provided.
References
Read references/wiro_api.md for endpoint and status details.
Scripts
- •
scripts/wiro_generate_image.py: Run Wiro generation, poll task status, download output, and update mapping.