Eric Qwen-Image Component Loader
Swap a fine-tuned transformer without re-downloading 38 GB
- pipeline
Eric Qwen-Image Component Loader is the advanced loader for the generation pipeline: it lets you mix and match the three big sub-models - transformer, VAE, text encoder - from different directories, instead of loading one monolithic model folder. The pitch is testing fine-tuned components without keeping full copies of everything. Got a fine-tuned transformer you want to try on the 2512 base? Point this at your fine-tune folder and reuse the base's tokenizer, scheduler, and text encoder.
The one rule you can't break
base_pipeline_path is always required - even if you override all three components. The base path provides the plumbing that has no separate override: model_index.json, the scheduler/ config, and the tokenizer/. If you don't override a component, its weights are loaded from the base path too. The source makes the constraint explicit: the generation pipeline has no processor (unlike the edit pipeline), so the base folder needs model_index.json, scheduler/, and tokenizer/ at minimum.
The override paths (transformer_path, vae_path, text_encoder_path) each expect a folder with that component's config.json plus its weight files - or, for the transformer, a single .safetensors file (loaded as a state dict into the base architecture). Leave an override empty and you get the base's component.
Architecture constraints - read before you get clever
Everything you override must be architecture-compatible with Qwen-Image. The text encoder is Qwen2.5-VL, not CLIP; the VAE is the Qwen VAE; the transformer is the 20B MMDiT. You cannot plug in an SDXL UNet, a standard CLIP, or a random VAE - the pack loads through the diffusers from_pretrained path, which will either reject the mismatch or produce noise. What you can do is swap fine-tuned or quantized versions of the same Qwen-Image components. The README's table of scenarios is the honest shape of it: fine-tuned transformer → override transformer_path; quantized text encoder → override text_encoder_path; everything stock → just use Eric Qwen-Image Loader instead.
The rest is the standard loader surface
precision-bf16default (recommended for RTX 40/50),fp16,fp32.device-cuda,cuda:0,cuda:1,cpu.keep_in_vram(True) - cache between runs.offload_vae(False) - VAE to CPU during transformer inference, saves ~1 GB.attention_slicing(False) - lower peak VRAM, slower.sequential_offload(False) - aggressive CPU offload, very slow, survives huge images.vae_tile_blend-cosine(default) vslineartile-seam blending.
Output is one pipeline (QWEN_IMAGE_PIPELINE), wired into Generate, Multi-Stage, UltraGen, or Apply LoRA.
Why you'd bother
The whole point is disk and iteration economy. A full Qwen-Image-2512 folder is ~50 GB; if a community fine-tune only ships the transformer shards (the 38 GB part), you can drop that into transformer_path and inherit the base's ~15 GB text encoder and VAE rather than juggling a second full model directory. This is the node for people A/B-testing fine-tunes - which, for a model the community says "responds insanely well to LoRAs," happens a lot.
Install: ComfyUI Manager search "Eric Qwen Edit", or git clone https://github.com/EricRollei/Eric_Qwen_Edit_Experiments into custom_nodes/ and restart. And remember the pack-wide gotcha: it pins diffusers<0.38 / transformers<5, so a too-new diffusers from another pack can break the from_pretrained load here.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| base_pipeline_path | STRING | Path to complete Qwen-Image model (provides config, scheduler, tokenizer, and defaults for unset components) | |
| transformer_pathopt | STRING | Path to custom/fine-tuned transformer. 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 ~1 GB) |
| 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_IMAGE_PIPELINE | — |