CommunityImagegithub.com

bai-ting-chen/bc-image-roaster

Quick AI edits of an existing image (render, viewport capture or photo) with Nano Banana 2 / Pro through Rook: turns the user's rough request into a precise edit prompt, runs it, checks the result for the change and for drift, and retries with a fixed prompt. Use whenever the user wants to change something in an image (swap or remove an object, change a material, planting, sky, light or season, add people), asks to "roast", touch up or AI-edit a picture, or hands over an image-edit prompt to tighten, even if they do not name the skill or the model.

What is bc-image-roaster?

bc-image-roaster is a Claude Code agent skill that quick AI edits of an existing image (render, viewport capture or photo) with Nano Banana 2 / Pro through Rook: turns the user's rough request into a precise edit prompt, runs it, checks the result for the change and for drift, and retries with a fixed prompt. Use whenever the user wants to change something in an image (swap or remove an object, change a material, planting, sky, light or season, add people), asks to "roast", touch up or AI-edit a picture, or hands over an image-edit prompt to tighten, even if they do not name the skill or the model.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bai-ting-chen/bc-image-roaster/tree/HEAD

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

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_ping returns pong); rhino_render_view reachable.
  • 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

  1. Read the image. Intent: a scene inventory of targets, look-alikes and at-risk items (RULES EDT_01) → image-reading.md.
  2. Edit spec. Intent: what changes, what stays, anchors for size and position; ask back only when needed (EDT_02).
  3. Prompt. Intent: the spec in the prompt template, shown to the user before it runs (EDT_03) → prompting.md, edit-types.md.
  4. Run. Intent: one call through Rook on the prepared input (MOD_01) → models.md.
  5. Check. Intent: change done, nothing else changed; retry with one prompt fix (CHK_01, CHK_02) → check.md.
  6. 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

ParameterDefaultWhere
modelfal-ai/nano-banana-2models.md
resolution2Kmodels.md
aspect_ratiothe input's ratio, or automodels.md
retry cap3 triesRULES CHK_02
drift review threshold3 % per regioncheck.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

TopicReferenceCode
Input preparation, the Rook callreferences/models.mdscripts/prep_input.py
Drift per regionreferences/check.mdscripts/compare.py
Compare sheetreferences/check.mdscripts/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).

Related Skills