image-edit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Image Edit — Pro Pack on RunComfy

RunComfy 图片编辑专业套件

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.
bash
npx skills add agentspace-so/runcomfy-skills --skill image-edit -g
图片编辑,意图路由。该技能不会限制你使用单一模型——它会根据用户的实际需求,从RunComfy模型库中挑选合适的编辑模型:批量处理并保留主体身份、多语言文本重写、单指令精准编辑或蒙版驱动的区域替换。
bash
npx skills add agentspace-so/runcomfy-skills --skill image-edit -g

Pick the right model for the user's intent

根据用户意图选择合适模型

User intentModelWhy
Batch edit 1–20 images consistently (SKU gallery, A/B variants)Nano Banana EditUp to 20 input images per call; locked aspect/resolution for series
Swap background, preserve subject identityNano Banana EditStrong identity preservation under "keep X unchanged" prompts
Localized object removal / addition with spatial language ("the left object", "upper-right corner")Nano Banana EditHonors directional spatial scope
Multilingual / non-Latin in-image text rewrite (Japanese kana, Cyrillic, Arabic)GPT Image 2 EditStrongest in class for multilingual typography
Multi-reference composition (subject from img1, scene from img2, palette from img3)GPT Image 2 EditNumbered refs route cues correctly
Layout-precise repositioning ("move headline from top-right to bottom-center")GPT Image 2 EditDirectional language honored at layout level
Identity preservation across translated headline variantsGPT Image 2 EditSame source asset → many language variants, identity stable
Single-shot precise local edit ("she's now holding an orange umbrella")Flux Kontext ProSingle-ref single-instruction, high-fidelity preservation
Mask-driven object removal (cables, watermarks, distractions)Z-Image Turbo InpaintMask-required, strength-tunable, edge-consistent
Mask-driven region replacement (full background swap with mask)Z-Image Turbo InpaintHigh strength + clean mask = clean replacement
Default if unspecifiedNano Banana EditMost flexible, supports both single and batch
The agent reads this table, classifies the user's intent, and picks the matching subsection below.
用户意图模型适用原因
批量处理1-20张图片并保持一致性(如SKU图库、A/B测试变体)Nano Banana Edit每次调用支持最多20张输入图片;可锁定宽高比/分辨率以保证系列图片一致性
替换背景,保留主体身份Nano Banana Edit在“保持X不变”的提示下,具备出色的主体身份保留能力
使用空间语言进行局部对象移除/添加(如“左侧对象”“右上角”)Nano Banana Edit可识别并遵循方向性空间范围指令
多语言/非拉丁文字图片内文本重写(如日文假名、西里尔文、阿拉伯文)GPT Image 2 Edit在多语言排版方面表现领先
多参考图合成(图1的主体、图2的场景、图3的配色)GPT Image 2 Edit可通过编号参考图正确传递指令
布局精准调整(如“将标题从右上角移至底部中央”)GPT Image 2 Edit可在布局层面遵循方向性语言指令
翻译标题变体时保留主体身份GPT Image 2 Edit同一源资产可生成多种语言变体,主体身份保持稳定
单指令精准局部编辑(如“让她手持橙色雨伞”)Flux Kontext Pro单参考图单指令,高保真保留主体特征
蒙版驱动的对象移除(如线缆、水印、干扰元素)Z-Image Turbo Inpaint需要蒙版,强度可调,边缘过渡自然
蒙版驱动的区域替换(通过蒙版完全替换背景)Z-Image Turbo Inpaint高强度设置+清晰蒙版可实现干净的替换效果
用户未指定时的默认选择Nano Banana Edit灵活性最高,支持单张和批量处理
智能代理会读取此表格,对用户意图进行分类,并选择对应的操作流程。

Prerequisites

前提条件

  1. RunComfy CLI
    npm i -g @runcomfy/cli
  2. RunComfy account
    runcomfy login
    .
  3. CI / containers — set
    RUNCOMFY_TOKEN=<token>
    .

  1. RunComfy CLI
    npm i -g @runcomfy/cli
  2. RunComfy 账号
    runcomfy login
  3. CI/容器环境 — 设置环境变量
    RUNCOMFY_TOKEN=<token>

Route 1: Nano Banana Edit — default for general edit + batch

流程1:Nano Banana Edit — 通用编辑与批量处理默认选择

Model:
google/nano-banana-2/edit
模型:
google/nano-banana-2/edit

Schema

参数说明

FieldTypeRequiredDefaultNotes
prompt
stringyesLead with preservation goals, end with the change.
image_urls
arrayyes1–20 publicly-fetchable HTTPS URLs.
number_of_images
intno11–4 outputs per call.
aspect_ratio
enumno
auto
auto
follows input; lock for batch consistency.
resolution
enumno
1K
0.5K
/
1K
/
2K
/
4K
.
output_format
enumno
png
png
/
jpeg
/
webp
.
seed
intnoReproducibility.
enable_web_search
boolnofalseWeb-grounded edits (extra latency).
字段类型是否必填默认值备注
prompt
string先说明需要保留的内容,再说明修改需求
image_urls
array1-20个可公开访问的HTTPS链接
number_of_images
int1每次调用可生成1-4张输出图片
aspect_ratio
enum
auto
auto
跟随输入图片比例;批量处理时锁定可保证一致性
resolution
enum
1K
0.5K
/
1K
/
2K
/
4K
output_format
enum
png
png
/
jpeg
/
webp
seed
int用于生成可复现的结果
enable_web_search
boolfalse基于网络搜索的编辑(会增加延迟)

Invoke

调用示例

bash
runcomfy run google/nano-banana-2/edit \
  --input '{
    "prompt": "Keep the subject identity, pose, and clothing unchanged. Convert the background into a rainy neon cyberpunk street.",
    "image_urls": ["https://.../portrait.jpg"]
  }' \
  --output-dir <absolute/path>
Batch (lock aspect + resolution):
bash
runcomfy run google/nano-banana-2/edit \
  --input '{
    "prompt": "Replace the watermark in the bottom-right with the text \"AURA\" in clean white sans-serif. Keep everything else exactly as in the input.",
    "image_urls": ["https://.../sku-1.jpg", "https://.../sku-2.jpg", "https://.../sku-3.jpg"],
    "aspect_ratio": "1:1",
    "resolution": "1K"
  }' \
  --output-dir <absolute/path>
bash
runcomfy run google/nano-banana-2/edit \
  --input '{
    "prompt": "保持主体身份、姿势和服装不变。将背景转换为雨夜霓虹赛博朋克街道。",
    "image_urls": ["https://.../portrait.jpg"]
  }' \
  --output-dir <absolute/path>
批量处理(锁定宽高比和分辨率):
bash
runcomfy run google/nano-banana-2/edit \
  --input '{
    "prompt": "将右下角的水印替换为干净的白色无衬线字体\"AURA\"。其余内容完全保持不变。",
    "image_urls": ["https://.../sku-1.jpg", "https://.../sku-2.jpg", "https://.../sku-3.jpg"],
    "aspect_ratio": "1:1",
    "resolution": "1K"
  }' \
  --output-dir <absolute/path>

Prompting tips

提示词技巧

  • Preservation first:
    "Keep [identity / pose / brand / framing] unchanged."
    Then state the change.
  • Spatial scope: "background only", "the left object", "upper-right quadrant" — concrete locations honored.
  • Batch consistency: lock
    aspect_ratio
    and
    resolution
    across the batch.
  • Iterate small: split compound edits into multiple shorter passes.

  • 先提保留需求
    "保持[身份/姿势/品牌/构图]不变。"
    再说明修改内容
  • 明确空间范围:“仅背景”“左侧对象”“右上象限”等具体位置指令会被遵循
  • 批量处理一致性:批量处理时锁定
    aspect_ratio
    resolution
  • 分步修改:将复杂编辑拆分为多次简单操作

Route 2: GPT Image 2 Edit — multilingual text + multi-ref composition

流程2:GPT Image 2 Edit — 多语言文本与多参考图合成

Model:
openai/gpt-image-2/edit
模型:
openai/gpt-image-2/edit

Schema

参数说明

FieldTypeRequiredDefaultNotes
prompt
stringyesEdit instruction; lead with preservation.
images
string[]yesUp to 10 HTTPS URLs. First is primary; rest are auxiliary.
size
enumno
auto
auto
,
1024_1024
,
1024_1536
,
1536_1024
. Only these.
字段类型是否必填默认值备注
prompt
string编辑指令;先说明需要保留的内容
images
string[]最多10个HTTPS链接。第一个为主体图;其余为辅助参考图
size
enum
auto
auto
,
1024_1024
,
1024_1536
,
1536_1024
仅支持这些尺寸

Invoke

调用示例

Multilingual text rewrite:
bash
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.",
    "images": ["https://.../poster-en.jpg"]
  }' \
  --output-dir <absolute/path>
Multi-ref composition:
bash
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 unchanged.",
    "images": ["https://.../subject.jpg", "https://.../room.jpg"]
  }' \
  --output-dir <absolute/path>
多语言文本重写:
bash
runcomfy run openai/gpt-image-2/edit \
  --input '{
    "prompt": "完全保留照片、布局和品牌标识不变。仅替换图片内的标题。新标题为粗体日文假名\"今日のおすすめ\",位置和字重与原标题一致。",
    "images": ["https://.../poster-en.jpg"]
  }' \
  --output-dir <absolute/path>
多参考图合成:
bash
runcomfy run openai/gpt-image-2/edit \
  --input '{
    "prompt": "将图1的主体合成到图2的房间中。匹配图2的光线和配色。保持图1主体身份不变。",
    "images": ["https://.../subject.jpg", "https://.../room.jpg"]
  }' \
  --output-dir <absolute/path>

Prompting tips

提示词技巧

  • Quote in-image text exactly. Name the script for non-Latin:
    "Japanese kana"
    ,
    "Cyrillic"
    ,
    "Arabic right-to-left"
    .
  • Number multi-refs:
    "subject from image 1, lighting from image 2"
    .
  • Directional layout language:
    "move the headline from top-right to bottom-center"
    ,
    "replace the watermark in the bottom-right"
    .
  • size: "auto"
    preserves input ratio — recommended unless the edit changes framing.

  • 准确引用图片内文本:非拉丁文字需注明脚本类型:
    "日文假名"
    "西里尔文"
    "阿拉伯文从右到左"
  • 为多参考图编号
    "图1的主体,图2的光线"
  • 使用方向性布局语言
    "将标题从右上角移至底部中央"
    "替换右下角的水印"
  • 推荐使用
    size: "auto"
    :保留输入图片比例,除非编辑需要改变构图

Route 3: Flux Kontext Pro — single-shot precise local edit

流程3:Flux Kontext Pro — 单指令精准局部编辑

Model:
blackforestlabs/flux-1-kontext/pro/edit
模型:
blackforestlabs/flux-1-kontext/pro/edit

Schema (minimal)

参数说明(极简版)

FieldTypeRequiredNotes
prompt
stringyesOne declarative edit instruction.
image
stringyesSingle source image URL.
aspect_ratio
enumnoPick from supported W:H values.
seed
intnoReproducibility.
Single image only — no array. For multi-image flows, use Route 1 (Nano Banana Edit).
字段类型是否必填备注
prompt
string一条声明式编辑指令
image
string单张源图片链接
aspect_ratio
enum从支持的宽高比中选择
seed
int用于生成可复现的结果
仅支持单张图片——不支持数组。如需处理多张图片,请使用流程1(Nano Banana Edit)。

Invoke

调用示例

bash
runcomfy run blackforestlabs/flux-1-kontext/pro/edit \
  --input '{
    "prompt": "Keep the person'\''s face, pose, and clothing unchanged. Add an orange umbrella in her left hand and a slight smile.",
    "image": "https://.../portrait.jpg"
  }' \
  --output-dir <absolute/path>
bash
runcomfy run blackforestlabs/flux-1-kontext/pro/edit \
  --input '{
    "prompt": "保持人物的面部、姿势和服装不变。在她的左手添加一把橙色雨伞,并让她露出淡淡的微笑。",
    "image": "https://.../portrait.jpg"
  }' \
  --output-dir <absolute/path>

Prompting tips

提示词技巧

  • One declarative instruction. "She is now holding an orange umbrella and smiling" — imperative, single change.
  • Preservation first. Lead with
    "Keep [unchanged elements]"
    then state the change.
  • Iterate small. Compound edits drift on a single pass; split into sequential passes.

  • 使用一条声明式指令:“她现在手持橙色雨伞并微笑”——祈使句,单一修改需求
  • 先提保留需求:以
    "保持[不变元素]"
    开头,再说明修改内容
  • 分步修改:单次操作进行复杂编辑会导致偏差;拆分为多次连续操作

Route 4: Z-Image Turbo Inpaint — mask-driven precise region edit

流程4:Z-Image Turbo Inpaint — 蒙版驱动的精准区域编辑

Model:
tongyi-mai/z-image/turbo/inpainting
模型:
tongyi-mai/z-image/turbo/inpainting

Schema

参数说明

FieldTypeRequiredNotes
prompt
stringyesWhat to fill / replace; preservation constraints for the unmasked surround.
image
stringyesSource image URL.
mask_image
stringyesGrayscale mask URL (white = inpaint, black = preserve).
strength
floatno0.3–0.6 retouching, 0.7–1.0 full replacement.
control_scale
floatno0.6–0.9 typical.
aspect_ratio
enumnoW:H output ratio.
seed
intnoReproducibility.
字段类型是否必填备注
prompt
string需要填充/替换的内容;需说明蒙版外区域的保留约束
image
string源图片链接
mask_image
string灰度蒙版链接(白色=需要修复的区域,黑色=需要保留的区域)
strength
float0.3–0.6用于润色,0.7–1.0用于完全替换
control_scale
float通常设置为0.6–0.9
aspect_ratio
enum输出图片的宽高比
seed
int用于生成可复现的结果

Invoke

调用示例

Object removal (low strength):
bash
runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "Remove overhead cables; preserve rooflines and sky gradient; thin clean sky.",
    "image": "https://.../street.jpg",
    "mask_image": "https://.../cables-mask.png",
    "strength": 0.5,
    "control_scale": 0.8
  }' \
  --output-dir <absolute/path>
Region replacement (high strength):
bash
runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "Replace busy backdrop with smooth light gray studio paper; mask background only.",
    "image": "https://.../product.jpg",
    "mask_image": "https://.../bg-mask.png",
    "strength": 0.9
  }' \
  --output-dir <absolute/path>
对象移除(低强度):
bash
runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "移除架空线缆;保留屋顶轮廓和天空渐变;生成干净的天空。",
    "image": "https://.../street.jpg",
    "mask_image": "https://.../cables-mask.png",
    "strength": 0.5,
    "control_scale": 0.8
  }' \
  --output-dir <absolute/path>
区域替换(高强度):
bash
runcomfy run tongyi-mai/z-image/turbo/inpainting \
  --input '{
    "prompt": "将杂乱的背景替换为平滑的浅灰色摄影棚背景纸;仅蒙版背景区域。",
    "image": "https://.../product.jpg",
    "mask_image": "https://.../bg-mask.png",
    "strength": 0.9
  }' \
  --output-dir <absolute/path>

Prompting tips

提示词技巧

  • A mask URL is required — grayscale, white = inpaint region, black = preserve. Slight blur on mask edges (1–3px) blends better than sharp binary.
  • Strength by intent:
    0.3–0.5
    for retouching / cleanup,
    0.6–0.7
    for object replacement with style match,
    0.8–1.0
    for full-region replacement.
  • Name what stays outside the mask in the prompt:
    "preserve rooflines and sky gradient"
    ,
    "match brick pattern and mortar tone"
    .
  • Spatial labels still help even though the mask defines the region:
    "the left shelf"
    ,
    "upper-right quadrant"
    .

  • 必须提供蒙版链接——灰度图,白色=修复区域,黑色=保留区域。蒙版边缘轻微模糊(1-3像素)比锐利的黑白边界过渡更自然
  • 根据需求设置强度
    0.3–0.5
    用于润色/清理,
    0.6–0.7
    用于风格匹配的对象替换,
    0.8–1.0
    用于完全区域替换
  • 在提示词中明确蒙版外需要保留的内容
    "保留屋顶轮廓和天空渐变"
    "匹配砖块图案和砂浆色调"
  • 即使有蒙版,空间标签仍有帮助
    "左侧架子"
    "右上象限"

Limitations

局限性

  • Each route inherits its model's limits. Nano Banana: 1–20 inputs, 1–4 outputs. GPT Image 2 Edit: up to 10 refs, 4 fixed sizes. Flux Kontext: single ref. Z-Image Inpaint: mask required.
  • No multi-route blending. This skill picks one model per call.
  • Brand-specific overrides — if the user named a specific model, route to the corresponding brand skill (
    gpt-image-edit
    ,
    flux-kontext
    ,
    nano-banana-edit
    ) for fuller treatment.
  • 每个流程继承对应模型的限制:Nano Banana Edit支持1-20张输入图片,1-4张输出图片;GPT Image 2 Edit支持最多10张参考图,4种固定尺寸;Flux Kontext Pro仅支持单张参考图;Z-Image Turbo Inpaint必须使用蒙版
  • 不支持跨流程混合:该技能每次调用仅选择一个模型
  • 品牌特定覆盖——如果用户指定了特定模型,请使用对应的品牌技能(
    gpt-image-edit
    flux-kontext
    nano-banana-edit
    )以获得更完整的功能

Exit codes

退出码

codemeaning
0success
64bad CLI args
65bad input JSON / schema mismatch
69upstream 5xx
75retryable: timeout / 429
77not signed in or token rejected
代码含义
0成功
64CLI参数错误
65输入JSON错误/参数不匹配
69上游服务5xx错误
75可重试:超时/429请求过多
77未登录或令牌被拒绝

How it works

工作原理

The skill picks one of Nano Banana Edit / GPT Image 2 Edit / Flux Kontext Pro / Z-Image Turbo Inpaint based on user intent and invokes
runcomfy run <model_id>
with the matching JSON body. The CLI POSTs to the Model API, 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.
该技能会根据用户意图选择Nano Banana Edit/GPT Image 2 Edit/Flux Kontext Pro/Z-Image Turbo Inpaint中的一个模型,并调用
runcomfy run <model_id>
命令及匹配的JSON参数。CLI会向模型API发送POST请求,轮询请求状态,获取结果,并将
.runcomfy.net
/
.runcomfy.com
链接的内容下载到
--output-dir
目录。按
Ctrl-C
会在退出前取消远程请求。

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.
  • 令牌存储
    runcomfy login
    会将API令牌写入
    ~/.config/runcomfy/token.json
    ,权限设置为0600(仅所有者可读写)。在CI/容器环境中,可设置环境变量
    RUNCOMFY_TOKEN
    以绕过文件存储
  • 输入边界:用户提示词会作为JSON字符串通过
    --input
    传递给CLI。CLI不会对提示词进行shell扩展,而是直接通过HTTPS将JSON主体传输给模型API。提示词内容不存在shell注入风险
  • 第三方内容:你提供的图片/蒙版/视频链接会由RunComfy模型服务器获取,而非本地CLI。请将外部链接视为不可信;图片提示注入是所有图片/视频编辑模型的已知风险
  • 出站端点:仅与
    model-api.runcomfy.net
    (提交请求)和
    *.runcomfy.net
    /
    *.runcomfy.com
    (下载生成的输出内容白名单)通信。无遥测,无回调
  • 生成文件大小限制:CLI会中止任何超过2 GiB的单个文件下载,以防止恶意或失控的模型输出占满磁盘