$npx -y skills add prime-skills/runcomfy-agent-skills --skill gpt-image-editEdit images with OpenAI GPT Image 2 (the /edit endpoint of ChatGPT Images 2.0) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents GPT Image Edit's strengths (preservation l
| 1 | # GPT Image Edit — Pro Pack on RunComfy |
| 2 | |
| 3 | [runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=gpt-image-edit) · [Edit endpoint](https://www.runcomfy.com/models/openai/gpt-image-2/edit?utm_source=skills.sh&utm_medium=skill&utm_campaign=gpt-image-edit) · [Text-to-image sibling](https://www.runcomfy.com/models/openai/gpt-image-2/text-to-image?utm_source=skills.sh&utm_medium=skill&utm_campaign=gpt-image-edit) · [GitHub](https://github.com/agentspace-so/runcomfy-skills/tree/main/gpt-image-edit) |
| 4 | |
| 5 | OpenAI **GPT Image 2 — `/edit` endpoint** (ChatGPT Images 2.0 image-to-image) on the **RunComfy Model API**. Strongest in its class at preserving identity through targeted edits and rewriting embedded text in any script (Latin, kana, CJK, Cyrillic, Arabic). |
| 6 | |
| 7 | ```bash |
| 8 | npx skills add agentspace-so/runcomfy-skills --skill gpt-image-edit -g |
| 9 | ``` |
| 10 | |
| 11 | ## When to pick this model (vs siblings) |
| 12 | |
| 13 | | You want | Use | |
| 14 | |---|---| |
| 15 | | Edit multilingual / embedded text in image | **GPT Image Edit** | |
| 16 | | Identity preservation through translated headline variants | **GPT Image Edit** | |
| 17 | | Layout-precise edit (move headline, swap CTA, etc.) | **GPT Image Edit** | |
| 18 | | Up to 10 reference images | **GPT Image Edit** | |
| 19 | | Batch up to 20 images consistently | Nano Banana Edit | |
| 20 | | Single-shot precise local edit, source-fidelity-first | Flux Kontext | |
| 21 | | Generate from scratch with GPT Image 2 | sibling [`gpt-image-2`](../gpt-image-2) skill | |
| 22 | | Batch SKU galleries with stable identity | Nano Banana Edit | |
| 23 | |
| 24 | ## Prerequisites |
| 25 | |
| 26 | 1. **RunComfy CLI** — `npm i -g @runcomfy/cli` |
| 27 | 2. **RunComfy account** — `runcomfy login` opens a browser device-code flow. |
| 28 | 3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>` instead of `runcomfy login`. |
| 29 | |
| 30 | ## Endpoints + input schema |
| 31 | |
| 32 | ### `openai/gpt-image-2/edit` |
| 33 | |
| 34 | | Field | Type | Required | Default | Notes | |
| 35 | |---|---|---|---|---| |
| 36 | | `prompt` | string | yes | — | Edit instruction. Lead with preservation, end with the change. | |
| 37 | | `images` | string[] | yes | — | **Up to 10** publicly-fetchable HTTPS URLs. First is primary; rest are auxiliary. | |
| 38 | | `size` | enum | no | `auto` | `auto` (preserve input), `1024_1024` (1:1), `1024_1536` (2:3 portrait), `1536_1024` (3:2 landscape). | |
| 39 | |
| 40 | `size=auto` preserves the input ratio — strongly recommended unless the edit explicitly changes framing. |
| 41 | |
| 42 | ## How to invoke |
| 43 | |
| 44 | **Single-ref preservation edit:** |
| 45 | |
| 46 | ```bash |
| 47 | runcomfy run openai/gpt-image-2/edit \ |
| 48 | --input '{ |
| 49 | "prompt": "Keep the person'\''s face, pose, and brand mark unchanged. Replace the background with a soft warm-grey studio sweep and a gentle floor shadow.", |
| 50 | "images": ["https://.../portrait.jpg"] |
| 51 | }' \ |
| 52 | --output-dir <absolute/path> |
| 53 | ``` |
| 54 | |
| 55 | **Multilingual text rewrite (preserve everything except the headline):** |
| 56 | |
| 57 | ```bash |
| 58 | runcomfy run openai/gpt-image-2/edit \ |
| 59 | --input '{ |
| 60 | "prompt": "Keep the photograph, layout, and brand mark exactly as in the input. Replace only the in-image headline. The new headline reads \"今日のおすすめ\" in bold Japanese kana, same position and font weight as before.", |
| 61 | "images": ["https://.../poster-en.jpg"] |
| 62 | }' \ |
| 63 | --output-dir <absolute/path> |
| 64 | ``` |
| 65 | |
| 66 | **Multi-ref composition:** |
| 67 | |
| 68 | ```bash |
| 69 | runcomfy run openai/gpt-image-2/edit \ |
| 70 | --input '{ |
| 71 | "prompt": "Compose subject from image 1 into the room from image 2. Match the lighting and color palette of image 2. Keep image 1 subject identity (face, pose, clothing) unchanged.", |
| 72 | "images": ["https://.../subject.jpg", "https://.../room.jpg"] |
| 73 | }' \ |
| 74 | --output-dir <absolute/path> |
| 75 | ``` |
| 76 | |
| 77 | ## Prompting — what actually works |
| 78 | |
| 79 | **Lead with preservation goals.** Always: `"Keep [face / pose / clothing / brand / framing] unchanged."` Then state the change. The model honors what's stated up front. |
| 80 | |
| 81 | **Multilingual text — quote the characters, name the script.** `"the headline reads \"コーヒー\" in bold Japanese kana"`, `"the label says \"АРОМА\" in Cyrillic, white on black"`, `"the right-margin caption reads \"تخفيض\" in Arabic right-to-left"`. Don't paraphrase — quote. |
| 82 | |
| 83 | **Directional language for spatial edits.** Concrete spatial scopes work: `"move the headline from top-right to bottom-center"`, `"remove the |