TK3R TextEncodeQwenImageEditPlus Ext
The multi-image encoder that makes Qwen-Image-Edit workflows work
- clip
- vae
- image1
- image2
- image3
- image4
- target_latent
- conditioning
Qwen-Image-Edit is the open instruction editor that absorbed a whole pile of old workflows - object removal, garment swaps, re-posing, all of it became "give it a picture and a sentence." In ComfyUI, the piece that makes that happen is a text encoder that turns your reference image plus your instruction into conditioning the model actually understands. TK3RTextEncodeQwenImageEditPlusExt is an enhanced take on ComfyUI's native TextEncodeQwenImageEditPlus, tuned to survive ComfyUI's constant updates.
The story behind it is worth knowing because it explains why the node exists at all: the author explicitly says this is not their code. They found an improved version of the native node somewhere, it worked by overwriting the default file - and overwriting core nodes is a great way to get your install broken by the next ComfyUI update. So they extracted it into this pack as a standalone node. Separated, it keeps working regardless of what upstream does to the stock version.
How it works
It assembles the full prompt the model expects: a system instruction describing the image and how the user's text should change it, the user's edit instruction, and an image-placeholder token for each reference image you provide (up to four). Reference images are resized to a fixed 384×384 for the vision tokens - with target_latent connected, they're instead scaled to match that latent's resolution, which matters for edits where output size must match input. If you provide a vae, the reference images are also encoded into latent space and attached to the conditioning as reference_latents, which is how the edit model gets pixel-level appearance guidance rather than just a semantic description.
Inputs and output
- clip - the Qwen-Image-Edit CLIP/text encoder.
- prompt - your instruction ("make this man lie down on an ice cave", "remove the watermark").
- vae (optional) - encode references to latents; include it for appearance control.
- image1 – image4 (optional) - reference images for multi-image editing (person+product, person+scene, and so on).
- target_latent (optional) - match reference resolution to your target latent's dimensions.
Single output: conditioning, which wires into the sampler with your patched Qwen-Image-Edit model.
Installing
Part of the TK3R Extensions pack:
- ComfyUI Manager → search "TK3R Extensions" → Install, then restart.
- Or
cd ComfyUI/custom_nodes && git clone https://github.com/TK3R/ComfyUI_TK3R_Extand restart.
The node itself needs only rich, but you need the Qwen-Image-Edit checkpoint (2509 or 2511, or a GGUF quantization of one - the 20B model at bf16 is a lot for consumer cards) plus its VAE. That's a separate download, not part of this pack.
Where people get burned
The biggest trap is expecting pixel-exact edits. Qwen-Image-Edit re-emits the whole frame, so regions you didn't touch come back close-but-not-identical, and drift compounds across a chain of edits. The community fix is to mask the region and use a crop-and-stitch / inpaint conditioning flow around the editor - the same reason you'll often see this encoder paired with inpaint nodes. Also: if you want a Qwen-Image-Edit workflow to run at all, make sure the clip here matches the edit checkpoint you're sampling with - mixing an edit encoder with a base-model checkpoint is a fast route to garbage output.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| prompt | STRING | — | |
| vaeopt | VAE | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| target_latentopt | LATENT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |