FireRed Sampler (Trent)
The sentence does the editing — no mask, no ControlNet, no adapter
- firered_pipe
- image1
- image2
- image3
- IMAGE
This is where the sentence does the work. FireRed Sampler (Trent) is the generation node for FireRed-Image-Edit-1.0, and the whole pitch of the model family is that you don't build a mask, load a ControlNet, or wire an IP-Adapter - you connect a picture, write "change her dress to blue" or "remove the watermark," and the frame comes back edited. It's the same category Qwen-Image-Edit won over the adapter-and-mask stack, and since FireRed is a 2509 finetune under a different name, that's exactly the behavior you get.
The sampler is deliberately one node for three jobs: single-image editing (one image in), multi-image composition (up to three images in, which is how person+product and try-on workflows are built), and text-to-image when nothing is connected.
The inputs that matter
- prompt - write it like an instruction to a person, not tag soup. This is an LLM-encoded model; quality words like "masterpiece" do nothing, but a sentence like "make this man lie down on his back in an ice cave" works. With multiple images, reference them as "Picture 1", "Picture 2", "Picture 3".
- image1 / image2 / image3 - the inputs, each tooltipped as "Referenced as 'Picture N' in prompt." Leave them all empty and the node falls back to text-to-image with a blank canvas.
- true_cfg_scale - the guidance knob, default 4.0. This is Qwen-Edit's "true CFG" formulation; don't treat it like SDXL's CFG and crank it for adherence. 4.0 is a sane place, and higher values burn detail rather than add prompt-following.
- steps - default 40. That's a lot of steps on a 20B model; if you're iterating, drop it and see how far you can push it down.
- width / height - default 0, meaning "auto from image1's aspect ratio." The node targets roughly a megapixel and snaps to a multiple of 16. Set them explicitly if you want exact control (max 4096).
- num_images - 1 to 4 copies per run, returned as a batch so you can pick.
Output is a plain IMAGE tensor - wire it to a preview or Save node like anything else. That's the one output, and the whole point.
How it works under the hood
The node converts your ComfyUI image tensors to PIL, decides resolution (auto from the first image, snapped to 16 - the same resolution discipline the Qwen-Edit community found fixes the geometric offset problem), seeds a CPU-side generator for reproducibility, and hands everything to the diffusers pipeline with true_cfg_scale, num_inference_steps, and a callback that drives the ComfyUI progress bar. With no images connected it feeds a blank white 1024×1024 canvas instead - technically text-to-image, realistically weaker than a real T2I model, so treat that mode as a bonus, not a replacement for Qwen-Image or Z-Image.
Where people get burned
The structural weakness of this whole model family, per the KB: it re-emits the entire frame, so pixels you didn't ask about come back close but not identical - faces drift on a chain of edits, and early builds had visible offset. FireRed inherits that from 2509 wholesale. Mitigations: keep input resolution in multiples of 16 (this node does that automatically), and for edits where the untouched pixels must be sacred, mask around the region with an inpainting workflow instead. Also - 40 steps × a 20B pipeline on CPU offload is slow. Set steps down, or feed a Lightning step-reduction LoRA through the pack's LoRA loader, which is the community's real answer to iteration cost. Install: ComfyUI Manager → search "ComfyUI-FireRedTrent", or git clone https://github.com/TrentHunter82/ComfyUI-FireRedTrent into custom_nodes, restart, and let the Loader pull the weights on first run.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| firered_pipe | FIRERED_PIPE | — | |
| prompt | STRING | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 401–200 | — |
| true_cfg_scale | FLOAT | 4.01–20 | — |
| image1opt | IMAGE | Referenced as 'Picture 1' in prompt | |
| image2opt | IMAGE | Referenced as 'Picture 2' in prompt | |
| image3opt | IMAGE | Referenced as 'Picture 3' in prompt | |
| negative_promptopt | STRING | — | |
| widthopt | INT | 00–4096 | 0 = auto from image1 aspect ratio |
| heightopt | INT | 00–4096 | 0 = auto from image1 aspect ratio |
| num_imagesopt | INT | 11–4 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |