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.
微信扫一扫