What does bc-image-roaster do?
Read RULES.md, then the reference for the step you are in. Light, fast edits on top of an existing image; the core is the prompt, because the user writes rough English (not their first language). No compositing or masking: drift is fought with wording, checking and retries.
Prerequisites
- Rook connected (
rhino_pingreturns pong);rhino_render_viewreachable. - Python 3.11 with Pillow (no numpy needed) for the scripts.
- The input image on disk; any reference image (an object to insert) on disk too.
Workflow
- Read the image. Intent: a scene inventory of targets, look-alikes and at-risk items (RULES EDT_01) → image-reading.md.
- Edit spec. Intent: what changes, what stays, anchors for size and position; ask back only when needed (EDT_02).
- Prompt. Intent: the spec in the prompt template, shown to the user before it runs (EDT_03) → prompting.md, edit-types.md.
- Run. Intent: one call through Rook on the prepared input (MOD_01) → models.md.
- Check. Intent: change done, nothing else changed; retry with one prompt fix (CHK_01, CHK_02) → check.md.
- Deliver. Intent: final image, compare sheet, one line per failed try (CHK_03).
A prompt the user hands in: tighten it in steps 1–3, show it, then run it (steps 4–6) unless the user said not to. A follow-up edit: EDT_04.
Parameters
| Parameter | Default | Where |
|---|---|---|
| model | fal-ai/nano-banana-2 | models.md |
| resolution | 2K | models.md |
| aspect_ratio | the input's ratio, or auto | models.md |
| retry cap | 3 tries | RULES CHK_02 |
| drift review threshold | 3 % per region | check.md |
Task router
- Image reading: the scene inventory
- Prompting: template, rules, failure → prompt fix
- Edit types: templates and vocabulary per kind of edit
- Models: model choice, the Rook call, limits, prices
- Check: judging a try, retries, delivery
- Maintaining: skill changes, Git, sync
Repository map
| Topic | Reference | Code |
|---|---|---|
| Input preparation, the Rook call | references/models.md | scripts/prep_input.py |
| Drift per region | references/check.md | scripts/compare.py |
| Compare sheet | references/check.md | scripts/sheet.py |
Run a script with python -I <skill>/scripts/<name>.py --help for its arguments.
Example output
A work folder in the current project, image-roaster/<yymmdd>-<short-name>/, holding try-01.png
… (the last one is the result), sheet.jpg (input and every try side by side, each labelled with
model and verdict) and log.md (request, inventory, each prompt, each check).