ReduxAdvanced
Fixing Flux Redux's one broken axis
- conditioning
- style_model
- clip_vision
- image
- mask
- CONDITIONING
- IMAGE
- MASK
If you've used BFL's official Flux Redux and typed a prompt alongside your reference image, you've hit the wall this node exists to knock down: your prompt just gets ignored. Redux hands you variations of the input image no matter what you type next to it, and there's no strength slider anywhere in the stock workflow to fix that. kaibioinfo built ReduxAdvanced as the full-control answer to that one gap - it's not a replacement for Redux, it's a knob Redux was missing.
Why Redux needs this in the first place
Redux crops your conditioning image to a square, resizes it to 384×384, slices it into a 27×27 grid of patches, CLIP-vision-encodes each one, and projects the result into T5 latent space - then appends the whole pile, 729 tokens, after your actual prompt. It's arithmetic: your prompt is usually a fraction of that length, so the image tokens outvote it. That's the stock Redux experience - conditioning image, prompt ignored.
The wider identity-preservation landscape (IP-Adapter, PuLID) solves this with a weight baked into the adapter itself. Redux, being BFL's minimal implementation, shipped without one. This node adds it back by shrinking the image's token footprint before it reaches your prompt, instead of fighting it after the fact.
Inputs that actually matter
You feed it your prompt's conditioning, the style_model (the Redux checkpoint), clip_vision (the vision encoder), and the reference image - all four required, same as any Redux setup. The tuning happens in four parameters:
- downsampling_factor (1–9, default 3) - the main dial. It merges the 27×27 patch grid into blocks and averages them: at 3 you get 9×9=81 tokens instead of 729, which is what "medium" strength means everywhere else in this pack. 1 is full strength (no downsampling, same as vanilla Redux); higher numbers weaken the image's pull.
- downsampling_function (default
area) - the same resize math as any image editor.areamatches the "medium" preset exactly;bicubicandnearest-exactare worth trying ifareagives you mushy results. - mode - how the image gets squared before encoding:
center crop (square)is stock Redux behavior;keep aspect ratiopads instead of cropping so nothing gets cut off;autocrop with maskcenters the crop on your masked region. - weight (0–1, default 1) - a second, independent lever that scales the Redux tokens by this value squared. 0.1–0.3 does something; above 0.6 is close to a no-op. Stackable with downsampling, though the author found downsampling alone usually wins.
autocrop_margin only does anything when mode is set to autocrop - it's the padding (as a fraction of image size) added around your masked region before cropping. The optional mask input lets you condition on just part of the image - say, a fabric pattern on one garment that you want transferred onto another - and the smaller that masked region is, the more you'll need to crank the strength (lower downsampling_factor) to get a visible effect, since less of the image is actually feeding the conditioning.
The node has three outputs, but you only need one: CONDITIONING is what goes into your KSampler's positive input - it already carries your prompt plus the tuned image influence. The IMAGE and MASK outputs are debug scaffolding; wire them to a Preview Image node if you want to see exactly what got cropped and masked, not because your pipeline needs them.
Installing it
Search "Advanced Reflux control" in ComfyUI Manager, or clone it straight in:
cd ComfyUI/custom_nodes
git clone https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl
Restart ComfyUI and both nodes in the pack show up. Nothing exotic to install alongside it - it runs on ComfyUI's stock STYLE_MODEL, CLIP_VISION, and CONDITIONING types, no extra Python packages to fight. You still need the models Redux itself needs: a Redux style-model checkpoint and a CLIP vision model, loaded normally and wired into style_model / clip_vision. This node ships no weights of its own - it's pure logic between them and your sampler.
Where people get stuck
If your output still looks like a straight Redux variation with your prompt nowhere in sight, you're either still on the stock StyleModelApply node or downsampling_factor is sitting too close to 1 - turn it up toward 3-5. Soft or mushy results usually mean over-downsampling or the wrong downsampling_function; try bicubic before assuming the node's broken. Non-square photos getting cropped in a way that loses the subject want keep aspect ratio instead of the default center crop. Masking a small region and seeing almost no effect is expected - per the author's own notes, small masks need higher strength to compensate for having less image to condition on. And if an old workflow loads with mismatched widgets on this node, that's the v2 redesign: the simple node stayed backward compatible, this one didn't.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| style_model | STYLE_MODEL | — | |
| clip_vision | CLIP_VISION | — | |
| image | IMAGE | — | |
| downsampling_factor | FLOAT | 3.01–9 | — |
| downsampling_function | COMBO | area | 5 options: nearest, bilinear, bicubic, area, nearest-exact |
| mode | COMBO | center crop (square) | 3 options: center crop (square), keep aspect ratio, autocrop with mask |
| weight | FLOAT | 1.000–1 | — |
| maskopt | MASK | — | |
| autocrop_marginopt | FLOAT | 0.100–1 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |
| IMAGE | IMAGE | — |
| MASK | MASK | — |