gpt-image-edit

โดย doany-ai

Edit 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 language, multilingual in-image text editing, multi-reference up to 10 images, layout / typography precision), the schema, and when to route to Nano Banana Edit / Flux Kontext / GPT Image 2 t2i instead. Calls...

npx skills add https://github.com/doany-ai/skills --skill gpt-image-edit

GPT Image Edit — Pro Pack on RunComfy

runcomfy.com · Edit endpoint · Text-to-image sibling · GitHub

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).

npx skills add agentspace-so/runcomfy-skills --skill gpt-image-edit -g

When to pick this model (vs siblings)

You wantUse
Edit multilingual / embedded text in imageGPT Image Edit
Identity preservation through translated headline variantsGPT Image Edit
Layout-precise edit (move headline, swap CTA, etc.)GPT Image Edit
Up to 10 reference imagesGPT Image Edit
Batch up to 20 images consistentlyNano Banana Edit
Single-shot precise local edit, source-fidelity-firstFlux Kontext
Generate from scratch with GPT Image 2sibling gpt-image-2 skill
Batch SKU galleries with stable identityNano Banana Edit

Prerequisites

  1. RunComfy CLInpm i -g @runcomfy/cli
  2. RunComfy accountruncomfy login opens a browser device-code flow.
  3. CI / containers — set RUNCOMFY_TOKEN=<token> instead of runcomfy login.

Endpoints + input schema

openai/gpt-image-2/edit

FieldTypeRequiredDefaultNotes
promptstringyesEdit instruction. Lead with preservation, end with the change.
imagesstring[]yesUp to 10 publicly-fetchable HTTPS URLs. First is primary; rest are auxiliary.
sizeenumnoautoauto (preserve input), 1024_1024 (1:1), 1024_1536 (2:3 portrait), 1536_1024 (3:2 landscape).

size=auto preserves the input ratio — strongly recommended unless the edit explicitly changes framing.

How to invoke

Single-ref preservation edit:

runcomfy run openai/gpt-image-2/edit \
  --input '{
    "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.",
    "images": ["https://.../portrait.jpg"]
  }' \
  --output-dir <absolute/path>

Multilingual text rewrite (preserve everything except the headline):

runcomfy run openai/gpt-image-2/edit \
  --input '{
    "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.",
    "images": ["https://.../poster-en.jpg"]
  }' \
  --output-dir <absolute/path>

Multi-ref composition:

runcomfy run openai/gpt-image-2/edit \
  --input '{
    "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.",
    "images": ["https://.../subject.jpg", "https://.../room.jpg"]
  }' \
  --output-dir <absolute/path>

Prompting — what actually works

Lead with preservation goals. Always: "Keep [face / pose / clothing / brand / framing] unchanged." Then state the change. The model honors what's stated up front.

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.

Directional language for spatial edits. Concrete spatial scopes work: "move the headline from top-right to bottom-center", "remove the leftmost object only", "replace the watermark in the bottom-right corner".

Multi-ref numbering. When passing multiple images, refer to them by number: "subject from image 1, lighting from image 2, color palette from image 3". The model routes cues correctly.

Use size: "auto" to preserve input ratio. Only override when the edit explicitly changes framing (e.g. cropping a 16:9 to 1:1).

Anti-patterns:

  • Long compound edit instructions ("change A and B and C and D") → drift increases per added scope.
  • Missing preservation goals → model subtly rewrites the face / brand / framing.
  • Paraphrasing in-image text instead of quoting it → text comes out different.
  • Asking for size outside the 3 fixed values + auto → 422.

Where it shines

Use caseWhy GPT Image Edit
Multilingual ad localizationOne source asset → many language variants of the same headline
Brand-safe headline / CTA swapsLayout precision + preservation language hold the rest stable
Multi-ref composition (subject from one, scene from another)Numbered refs route cues correctly
Layout-precise repositioningDirectional language ("top-right to bottom-center") honored
Identity preservation across signage editsStrongest in class for face / brand preservation through targeted edits

Sample prompts (verified to produce strong results)

Background swap with full preservation (page example):

Turn the background into a bright minimal white-to-soft-gray studio
sweep with gentle floor shadow; add a large headline in-image that
reads "OPEN STUDIO" in a bold clean sans-serif, high contrast, centered;
keep the main person or product, pose, and face identity unchanged

Multilingual variant:

Keep the photograph, layout, lighting, 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.

Multi-ref composition:

Compose subject from image 1 into the kitchen from image 2.
Match the warm window light and color palette of image 2.
Keep subject identity (face, pose, clothing) from image 1 unchanged.

Limitations

  • size: 3 fixed values + auto — anything else 422s.
  • images: up to 10 — first is primary, rest are auxiliary cues.
  • Long compound prompts drift — split into multiple passes when needed.
  • For batch consistency across many SKU images, Nano Banana Edit (up to 20) is better.
  • Photorealism on portraits — Nano Banana Pro wins head-to-head.

Exit codes

codemeaning
0success
64bad CLI args
65bad input JSON / schema mismatch
69upstream 5xx
75retryable: timeout / 429
77not signed in or token rejected

Full reference: docs.runcomfy.com/cli/troubleshooting.

How it works

The skill invokes runcomfy run openai/gpt-image-2/edit with a JSON body matching the schema. The CLI POSTs to https://model-api.runcomfy.net/v1/models/openai/gpt-image-2/edit, polls the request, fetches the result, and downloads any .runcomfy.net/.runcomfy.com URL into --output-dir. Ctrl-C cancels the remote request before exit.

Security & Privacy

  • Token storage: runcomfy login writes the API token to ~/.config/runcomfy/token.json with mode 0600 (owner-only read/write). Set RUNCOMFY_TOKEN env var to bypass the file entirely in CI / containers.
  • Input boundary: the user prompt is passed as a JSON string to the CLI via --input. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.
  • Third-party content: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.
  • Outbound endpoints: only model-api.runcomfy.net (request submission) and *.runcomfy.net / *.runcomfy.com (download whitelist for generated outputs). No telemetry, no callbacks.
  • Generated-file size cap: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.

Skills เพิ่มเติมจาก doany-ai

image-edit
doany-ai
แก้ไขภาพบน RunComfy — ทักษะนี้เป็นเราเตอร์อัจฉริยะที่จับคู่ความตั้งใจของผู้ใช้กับโมเดลแก้ไขที่เหมาะสมในแคตตาล็อก RunComfy เลือก Nano Banana Edit (ชุดสูงสุด 20 รายการ, ค่าเริ่มต้นรักษาเอกลักษณ์), OpenAI GPT Image 2 Edit (เขียนข้อความในภาพหลายภาษา, ประกอบหลายอ้างอิง, ความแม่นยำในการจัดวาง), Flux Kontext Pro (แก้ไขเฉพาะจุดความเที่ยงตรงสูงอ้างอิงเดียว), หรือ Z-Image Turbo Inpaint (แก้ไขพื้นที่แม่นยำด้วยมาสก์) รวมรูปแบบการแจ้งเตือนที่บันทึกไว้ของแต่ละโมเดลเพื่อให้ทักษะได้รับ...
creativeimagemedia
seedance-v2
doany-ai
สร้างวิดีโอสั้นแบบภาพยนตร์ด้วย ByteDance Seedance 2.0 Pro บน RunComfy อธิบายจุดแข็งของ Seedance 2.0 Pro (การอ้างอิงหลายรูปแบบ — รูปภาพสูงสุด 9 ภาพ, วิดีโอ 3 เรื่อง, เสียง 3 รายการ — เสียงที่ซิงค์ในคลิปพร้อมลิปซิงค์ธรรมชาติ, การปรับแต่งการเคลื่อนไหวแบบภาพยนตร์), รูปแบบระยะเวลา 4–15 วินาที และเมื่อใดควรเปลี่ยนไปใช้ HappyHorse 1.0 / Wan 2
videocreativemedia
kling-3-0
doany-ai
การสร้างวิดีโอ Kling 3.0 บน RunComfy Kling 3.0 (หรือที่เรียกว่า Kling V3.0) คือโมเดลวิดีโอหลายช็อตรุ่นที่สามของ Kuaishou Technology ที่มีเสียงซิงค์แบบเนทีฟและเอกลักษณ์ตัวละครที่สอดคล้องกันในทุกช็อต ทักษะนี้ครอบคลุมปลายทาง Kling 3.0 ทั้งหกจุด ครอบคลุมสามระดับการเรนเดอร์ (Standard, Pro, 4K) และสองโหมด (ข้อความเป็นวิดีโอ, รูปภาพเป็นวิดีโอ) การเรียก runcomfy run kling/kling-3.0/ / ผ่าน CLI RunComfy ในเครื่อง ทริกเกอร์เมื่อ "kling", "kling 3.0", "kling v3", "kling pro",...
videocreativemedia
face-swap
doany-ai
Swap a face / character into video or images on RunComfy via the `runcomfy` CLI. Routes across community Wan 2-2 Animate (audio-driven character animation + identity swap), GPT Image 2 Edit (single-shot precise face swap on still images via reference composition), Nano Banana Edit (batch identity-preserving swap), Flux Kontext (single-ref high-fidelity local face edit), and Kling 2-6 Motion Control Pro (transfer motion from one performance onto a target character). Picks the right model for...
creativevideoimage
video-outpainting
doany-ai
Video outpainting on RunComfy via the `runcomfy` CLI — extend the spatial canvas of a video, change aspect ratio (9:16 vertical to 16:9 horizontal or vice versa), add environment beyond the original frame while preserving the central action. Routes prompt-shaped spatial extension through Wan 2-7 edit-video and points the agent at dedicated ComfyUI outpaint workflows when seam quality matters for hero delivery. Triggers on "video outpaint", "video outpainting", "extend video canvas", "expand...
videocreativemedia
ai-avatar-video
doany-ai
Create AI avatar, talking-head, and lip-sync videos on RunComfy via the `runcomfy` CLI. Routes across ByteDance OmniHuman (audio-driven full-body avatar), Wan-AI Wan 2-7 (audio-driven mouth sync via `audio_url` on a portrait), HappyHorse 1.0 (Arena #1 t2v / i2v with in-pass audio), and Seedance v2 Pro (multi-modal cinematic with reference audio + reference subject). Picks the right model for the user's actual intent — UGC voiceover, virtual presenter, dubbed product demo, lip-synced...
videocreativemedia
flux-kontext
doany-ai
แก้ไขภาพด้วย Flux 1 Kontext Pro (โมเดลแก้ไขภาพเฉพาะจุดที่แม่นยำจาก Black Forest Labs) บน RunComfy — มาพร้อมกับรูปแบบการเขียนคำสั่งที่บันทึกไว้ของโมเดล เพื่อให้สกิลได้ผลลัพธ์ที่คมชัดกว่าการใช้คำสั่งแบบทั่วไปกับโมเดลเดียวกัน บันทึกจุดแข็งของ Flux Kontext (การแก้ไขเฉพาะจุดที่แม่นยำจากภาพอ้างอิงเดียว, การควบคุมคำสั่งที่แข็งแกร่ง, ผลลัพธ์คุณภาพสูงที่สม่ำเสมอ), โครงสร้าง (ภาพเดียว + คำสั่ง), และเวลาที่ควรเปลี่ยนไปใช้ Nano Banana Edit / GPT Image 2 edit / Flux 2 Klein แทน เรียก...
creativeimagedocument
relight
doany-ai
Relight a still image — change the lighting setup, color temperature, direction, or mood — on RunComfy via the `runcomfy` CLI. Routes to Qwen Edit 2509's dedicated `relight` LoRA endpoint for purpose-built relighting, with fallback to identity-preserving edit endpoints (Nano Banana 2 Edit, GPT Image 2 Edit, FLUX Kontext Pro) when prose lighting language is enough. Use for product relighting (studio softbox → window light), portrait mood shift (overcast → golden hour), or color-grade change....
creativeimagemedia