Eric Qwen-Edit Component Loader
Swap just the transformer, VAE, or text encoder of Qwen-Edit without re-downloading the 54 GB model
- pipeline
Qwen-Image-Edit is three models stacked: a ~38 GB 20B-parameter MMDiT transformer, a ~15.5 GB Qwen2.5-VL text encoder, and a small ~0.24 GB VAE. When someone releases a fine-tuned version, they usually fine-tune one of those. Eric Qwen-Edit Component Loader lets you load each component from a different directory - so testing a community fine-tune means swapping one folder, not duplicating the entire ~54 GB model.
That's the whole pitch: fine-tuned transformer only? Point transformer_path at it and keep everything else from the base. Quantised text encoder? Point text_encoder_path at it. Everything stock? Use the plain Eric Qwen-Edit Loader instead - this node's complexity buys nothing if you're not mixing components.
The critical rule
base_pipeline_path is always required, even if you override all three components. The base path provides the scheduler config, tokenizer, and processor files that have no separate override. It doesn't need the big weights if every component is overridden - just model_index.json, scheduler/, tokenizer/, and processor/.
Architecture lock-in is absolute. The text encoder is Qwen2.5-VL (Qwen2_5_VLForConditionalGeneration), not CLIP. You cannot plug in a Stable Diffusion UNet, a CLIP model, or an unrelated VAE. What you can swap are different fine-tuned or quantized versions of the same Qwen-Image-Edit components - the same lock-in rule as every modern base, per the KB.
The inputs
base_pipeline_path- the complete model directory (always required).transformer_path- custom transformer; a folder withconfig.json+ shards, a parent folder with atransformer/subfolder, or a single.safetensorsloaded as a state dict.vae_path- custom VAE (config.json+ one safetensors).text_encoder_path- custom text encoder (config + 4 shards).precision- bf16 (recommended for RTX 40/50 series), fp16, fp32.device- cuda / cuda:0 / cuda:1 / cpu.keep_in_vram- cache between runs (faster, more memory).offload_vae- move VAE to CPU during transformer inference (saves ~2 GB).attention_slicing- lower peak VRAM, slightly slower.sequential_offload- aggressive CPU offload; very slow, but handles huge images.vae_tile_blend-cosine(default; C¹-smooth, kills faint grid lines on gradients) vslinear(original diffusers behavior, may show seams at high res). This matters if you decode large images and see grid artifacts.
Output: a pipeline that feeds any edit node.
Installing it
ComfyUI Manager → "Eric Qwen-Edit", or:
cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Eric_Qwen_Edit_Experiments.git
Restart, download Qwen/Qwen-Image-Edit-2511 (~54 GB) as your base. Dependencies: diffusers>=0.34,<0.38, transformers>=4.50,<5 - the transformers cap matters (5.x broke HybridCache used by older diffusers). Note the brief's default base_pipeline_path is H:\Training\Qwen-Image-Edit-2511 - that's the author's own Windows path, not a suggestion; set your own.
Gotchas
- "Module not found"-style load errors after swapping - you swapped in an architecture-incompatible component. Run the Diagnose LoRA / check the configs against the Qwen-Image-Edit architecture before blaming the loader.
- Overriding nothing but still using this node - fine, but pointless; the plain Loader is simpler.
- Grid-line artifacts on big decodes - switch
vae_tile_blendtocosine, which is the whole reason that toggle exists. - VRAM still too tight - that's what
offload_vae,attention_slicing, andsequential_offloadare for, in increasing order of pain.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| base_pipeline_path | STRING | H:\Training\Qwen-Image-Edit-2511 | Path to complete Qwen-Image-Edit model (provides config, scheduler, tokenizer, processor) |
| transformer_pathopt | STRING | Path to custom/fine-tuned transformer. Can be a folder or single .safetensors file. Leave empty to use base. | |
| vae_pathopt | STRING | Path to custom VAE. Leave empty to use base. | |
| text_encoder_pathopt | STRING | Path to custom text encoder. Leave empty to use base. | |
| precisionopt | COMBO | bf16 | Model precision (bf16 recommended for RTX 40/50 series) |
| deviceopt | COMBO | cuda | Device to load model on |
| keep_in_vramopt | BOOLEAN | true | Keep model in VRAM between runs (faster but uses memory) |
| offload_vaeopt | BOOLEAN | false | Move VAE to CPU during transformer inference (saves ~2GB VRAM) |
| attention_slicingopt | BOOLEAN | false | Enable attention slicing (reduces VRAM, slightly slower) |
| sequential_offloadopt | BOOLEAN | false | Aggressive CPU offloading - very slow but handles huge images |
| vae_tile_blendopt | COMBO | cosine | Tile-seam blending for tiled VAE decode/encode. • cosine — C¹-smooth blend (zero slope at tile edges), eliminates faint grid lines on smooth gradients. • linear — original diffusers behaviour. Slightly sharper at tile edges; may show faint seams at high resolutions. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipeline | QWEN_EDIT_PIPELINE | — |