$npx -y skills add prime-skills/runcomfy-agent-skills --skill image-editEdit images on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Nano Banana Edit (batch up to 20, identity-preserving default), OpenAI GPT Image 2 Edit (multilingual in-image text rewrite, multi-ref comp
| 1 | # Image Edit — Pro Pack on RunComfy |
| 2 | |
| 3 | [runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Nano Banana Edit](https://www.runcomfy.com/models/google/nano-banana-2/edit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GPT Image 2 Edit](https://www.runcomfy.com/models/openai/gpt-image-2/edit?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Flux Kontext](https://www.runcomfy.com/models/blackforestlabs/flux-1-kontext-pro/image-to-image?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [Z-Image Inpaint](https://www.runcomfy.com/models/tongyi-mai/z-image/turbo/inpainting?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-edit) · [GitHub](https://github.com/agentspace-so/runcomfy-skills/tree/main/image-edit) |
| 4 | |
| 5 | **Image edit, intent-routed.** This skill doesn't lock you to one model — it picks the right edit model in the RunComfy catalog based on what the user actually wants: batch identity-preservation, multilingual text rewrite, single-shot precise edit, or mask-driven region replacement. |
| 6 | |
| 7 | ```bash |
| 8 | npx skills add agentspace-so/runcomfy-skills --skill image-edit -g |
| 9 | ``` |
| 10 | |
| 11 | ## Pick the right model for the user's intent |
| 12 | |
| 13 | | User intent | Model | Why | |
| 14 | |---|---|---| |
| 15 | | Batch edit 1–20 images consistently (SKU gallery, A/B variants) | **Nano Banana Edit** | Up to 20 input images per call; locked aspect/resolution for series | |
| 16 | | Swap background, preserve subject identity | **Nano Banana Edit** | Strong identity preservation under "keep X unchanged" prompts | |
| 17 | | Localized object removal / addition with spatial language ("the left object", "upper-right corner") | **Nano Banana Edit** | Honors directional spatial scope | |
| 18 | | Multilingual / non-Latin in-image text rewrite (Japanese kana, Cyrillic, Arabic) | **GPT Image 2 Edit** | Strongest in class for multilingual typography | |
| 19 | | Multi-reference composition (subject from img1, scene from img2, palette from img3) | **GPT Image 2 Edit** | Numbered refs route cues correctly | |
| 20 | | Layout-precise repositioning ("move headline from top-right to bottom-center") | **GPT Image 2 Edit** | Directional language honored at layout level | |
| 21 | | Identity preservation across translated headline variants | **GPT Image 2 Edit** | Same source asset → many language variants, identity stable | |
| 22 | | Single-shot precise local edit ("she's now holding an orange umbrella") | **Flux Kontext Pro** | Single-ref single-instruction, high-fidelity preservation | |
| 23 | | Mask-driven object removal (cables, watermarks, distractions) | **Z-Image Turbo Inpaint** | Mask-required, strength-tunable, edge-consistent | |
| 24 | | Mask-driven region replacement (full background swap with mask) | **Z-Image Turbo Inpaint** | High strength + clean mask = clean replacement | |
| 25 | | Default if unspecified | **Nano Banana Edit** | Most flexible, supports both single and batch | |
| 26 | |
| 27 | The agent reads this table, classifies the user's intent, and picks the matching subsection below. |
| 28 | |
| 29 | ## Prerequisites |
| 30 | |
| 31 | 1. **RunComfy CLI** — `npm i -g @runcomfy/cli` |
| 32 | 2. **RunComfy account** — `runcomfy login`. |
| 33 | 3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>`. |
| 34 | |
| 35 | --- |
| 36 | |
| 37 | ## Route 1: Nano Banana Edit — default for general edit + batch |
| 38 | |
| 39 | **Model**: `google/nano-banana-2/edit` |
| 40 | |
| 41 | ### Schema |
| 42 | |
| 43 | | Field | Type | Required | Default | Notes | |
| 44 | |---|---|---|---|---| |
| 45 | | `prompt` | string | yes | — | Lead with preservation goals, end with the change. | |
| 46 | | `image_urls` | array | yes | — | **1–20** publicly-fetchable HTTPS URLs. | |
| 47 | | `number_of_images` | int | no | 1 | 1–4 outputs per call. | |
| 48 | | `aspect_ratio` | enum | no | `auto` | `auto` follows input; lock for batch consistency. | |
| 49 | | `resolution` | enum | no | `1K` | `0.5K` / `1K` / `2K` / `4K`. | |
| 50 | | `output_format` | enum | no | `png` | `png` / `jpeg` / `webp`. | |
| 51 | | `seed` | int | no | — | Reproducibility. | |
| 52 | | `enable_web_search` | bool | no | false | Web-grounded edits (extra latency). | |
| 53 | |
| 54 | ### Invoke |
| 55 | |
| 56 | ```bash |
| 57 | runcomfy run google/nano-banana-2/edit \ |
| 58 | --input '{ |
| 59 | "prompt": "Keep the subject ident |