Skip to content
Automation
Skill

/qwen-image-edit

Build Qwen Image Edit workflows covering model loading, conditioning, LoRAs, prompt patterns, and XY plot testing

From plugin
comfyui-mcp
74842 skills4 agents11 commands1 MCP
Install
$ npx -y skills add artokun/comfyui-mcp --skill qwen-image-edit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/qwen-image-edit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Build Qwen Image Edit workflows covering model loading, conditioning, LoRAs, prompt patterns, and XY plot testing

SKILL.md

qwen-image-edit.SKILL.md
name: qwen-image-edit
description: Build Qwen Image Edit workflows covering model loading, conditioning, LoRAs, prompt patterns, and XY plot testing
globs:
  - "**/*.json"

Qwen Image Edit Workflows

Overview

Qwen Image Edit uses a vision-language model (Qwen2.5-VL) to edit images based on natural language instructions. The model "sees" the source image through CLIP conditioning and generates an edited version.

Models

Required Components

| Component | Node | Model Name | Notes | |-----------|------|------------|-------| | **UNET** | `UNETLoader` | `qwen_image_edit_2511_bf16.safetensors` | Official 2511 edit model (bf16) | | **CLIP** | `CLIPLoader` (type=`qwen_image`) | `qwen_2.5_vl_7b_fp8_scaled.safetensors` | Shared across all Qwen models | | **VAE** | `VAELoader` | `qwen_image_vae.safetensors` | Qwen-specific VAE |

Alternative UNET Models

| Model | Path | Focus | |-------|------|-------| | `qwenImageEditRemix_v10` | `qwenImageEditRemix_v10.safetensors` | Community remix, general editing | | `qwenUltimateRealism_v11` | `Qwen/imageized/qwenUltimateRealism_v11.safetensors` | Product photography, hyper-realistic | | `copaxTimeless` | `Qwen/realistic/copaxTimeless_qwenUltraRealistic.safetensors` | Ultra-realistic portraits | | `qwnImageEdit_v16Bf16` | `Qwen/abliterated/qwnImageEdit_v16Bf16.safetensors` | Abliterated (uncensored) |

Conditioning Nodes

TextEncodeQwenImageEditPlusAdvance_lrzjason (Recommended)

From the `qweneditutils` custom node pack. The **Advanced** variant is preferred because it:

  • Outputs a **LATENT directly** (no need for separate EmptyLatentImage)
  • Has separate **VL-resize** and **non-resize** image slots for fine control
  • Supports **target_size** control for output resolution
  • Includes a **pad/center/disabled crop** method with pad_info output
Required Inputs:
  - clip: CLIP
  - prompt: STRING — natural language edit instruction

Optional Inputs:
  - vae: VAE — needed for image encoding and latent output
  - vl_resize_image1-3: IMAGE — images that get VL-resized (downscaled for vision encoder)
  - not_resize_image1-3: IMAGE — images kept at full resolution
  - target_size: [1024, 1344, 1536, 2048, 768, 512] (default 1024)
  - target_vl_size: [392, 384] (default 384)
  - upscale_method: [lanczos, bicubic, area]
  - crop_method: [pad, center, disabled]
  - instruction: STRING — system instruction template (has sensible default)

Outputs (10):
  [0] conditioning_with_full_ref: CONDITIONING — use as positive conditioning
  [1] latent: LATENT — auto-scaled latent, feed directly to KSampler
  [2] target_image1: IMAGE — processed target-size image
  [3] target_image2: IMAGE
  [4] target_image3: IMAGE
  [5] vl_resized_image1: IMAGE — VL-resized version
  [6] vl_resized_image2: IMAGE
  [7] vl_resized_image3: IMAGE
  [8] conditioning_with_first_ref: CONDITIONING — conditioning with only first ref
  [9] pad_info: ANY — padding info for later unpadding

**Key advantage**: Output [1] (latent) eliminates the need for a separate `EmptyLatentImage` or `VAEEncode` node. The Advanced node handles latent creation internally at the correct resolution.

Other Conditioning Variants

  • **TextEncodeQwenImageEditPlus** (Phr00t v2, built-in) is simpler: 4 image inputs, outputs only CONDITIONING. Requires separate EmptyLatentImage. Good for quick edits.
  • **TextEncodeQwenImageEditPlus_lrzjason**: 5 image inputs, resize toggles, but less control than Advance
  • **TextEncodeQwenImageEditPlusPro_lrzjason**: Per-image VL resize selection via `vl_resize_indexs` string, `main_image_index` control

Lightning LoRAs (Fast Generation)

4-Step Lightning (2511 Edit)

{
  "class_type": "LoraLoaderModelOnly",
  "inputs": {
    "model": ["<unet_node>", 0],
    "lora_name": "Qwen-Image-Edit-2511-Lightning-4steps-V1.0-bf16.safetensors",
    "strength_model": 1.0
  }
}

**Settings**: steps=4, cfg=1.0, sampler=euler, scheduler=simple, denoise=1.0

4-Step Lightning (General Qwen)

For non-edit models (txt2img, 2512):

  • `Qwen-Image-Lightning-4steps-V1.0.safetensors` (strength 1.0)

8-Step Lightning

  • `Qwen-Image-Lightning-8steps-V1.0.safetensors`, higher detail than 4-step

Sampler Settings

| Preset | Steps | CFG | Sampler | Scheduler | Denoise | LoRA | |--------|-------|-----|---------|-----------|---------|------| | Lightning 4-step (2511 edit) | 4 | 1.0 | euler | simple | 1.0 | 2511-Lightning-4steps | | Lightning 8-step | 8 | 1.0 | euler | simple | 1.0 | Lightning-8steps | | Standard edit | 40 | 4.0 | euler | simple | 0.75 | none | | Quality edit | 50 | 4.0 | euler | simple | 0.5-0.8 | none |

> **The sub-1.0 denoise rows REQUIRE a `VAEEncode` latent.** A denoise low enough to > shorten the sampling schedule — which 0.5-0.8 certainly is — keeps part of the > incoming latent, so that latent has to BE the source image. Wire `latent_image` from > a `VAEEncode` of the source (or from a node that emits a source-derived latent, like > `TextEncodeQwenImageEditPlusAdvance_lrzjason` output [1]). Pairing these rows with an > `EmptyLatentImage` runs clean and returns a flat, near-uniform field — an empty latent > has no source content to preserve. Feeding the reference through > `TextEncodeQwenImageEditPlus` does **not** rescue it: that image rides on CONDITIONING, > which steers denoising but never seeds the sampler's starting state.

**Denoise for editing**: Lower denoise = closer to source — *provided the latent IS the source*. 0.5-0.8 range for standard editing on a `VAEEncode` latent. Lightning uses 1.0 (model handles fidelity internally).

Resolutions

> **This table is for Qwen-Image TEXT-TO-IMAGE. Do not pick an edit graph's output > size from it.** An edit graph's geometry is decided by the SOURCE image, not by you > — see "Resolution on an edit graph" below. Choosing 1104x1472 here for an edit was > #2681.

Qwen-Image operates at ~1.6 megapixels natively:

| Aspect | Resolution | Use Case | |--------|-----------|----------| |

Read more
Ships withcomfyui-mcp

This project is no longer maintained. ComfyUI now ships official agent and MCP tooling — Comfy Agent and Comfy MCP — built and supported by the Comfy-Org team with deeper integration than a community project can match.

Get the whole plugin

Other skills on comfyui-mcp.