Nodes/WIP Conditioning Toolkit/Load and Apply Redux Embedding
ComfyUI Node

Load and Apply Redux Embedding

Use a saved Redux style embedding without the CLIP vision model

By silveroxides·Created about a year ago·Updated 5 months ago· 5
Load and Apply Redux Embedding
  • conditioning
  • CONDITIONING
embedding_name
strength1.000
strength_type

If you've built the ComfyUI "IPAdapter style" workflow - the one with a StyleModelLoader, a CLIPVisionLoader and a StyleModelApply - you know the ritual: every generation needs the CLIP vision model and the style model loaded just to paste the same style onto a new prompt. LoadReduxEmb is the "stop doing that" node. It loads a Redux style embedding you saved earlier (see SaveReduxEmb) and applies it to your conditioning, doing the job of StyleModelApply while skipping the style model and the vision model entirely.

Here's the mechanism. The SDXL Redux style models - the ip-adapter_sdxl_redux_style-class files that StyleModelLoader pulls in - don't modify your model's weights. A style model is a small projector: it takes the CLIP vision embedding of a reference image and turns it into a fixed set of extra tokens that get appended to your text conditioning. StyleModelApply does exactly that cat() of style tokens onto your prompt tokens. This node does the same concatenation, but instead of calling style_model.get_cond(clip_vision_output) live, it loads a redux tensor out of a safetensors file you saved beforehand. The output is a CONDITIONING that goes straight into the sampler, just like the StyleModelApply output would.

The inputs that matter:

  • conditioning - your text conditioning, from a normal CLIP Text Encode. The style embedding is appended to it, so the prompt is still fully yours.
  • embedding_name - dropdown of files in ComfyUI/models/conds/, where SaveReduxEmb writes.
  • strength - 0 to 10, default 1. With multiply, that scales the style tokens directly; 0 effectively disables the style, 1 is full strength, and you can push past 1 for a heavier look.
  • strength_type - multiply or attn_bias. The attn_bias option is the pack's extra: instead of scaling the embedding, it adds log(strength) to the attention-mask cells around the style tokens, so you can tune how hard the model attends to the style without touching its magnitude. Same effect family, different dial.

Output: one CONDITIONING into your KSampler.

Why you'd bother. Three reasons stack up. First, VRAM: a saved embedding is a few MB on disk and a small tensor in RAM, versus a CLIP vision encoder plus style model resident in VRAM for every run. Second, reuse: encode the style once, then regenerate with different prompts, seeds, or LoRAs without re-running the vision pass. Third, shareability: that redux_embeddings/ComfyUI_style_embed_redux_00001.safetensors file is a self-contained style you can drop in a folder and hand to someone. It's the same caching philosophy as the pack's SaveCondsEmb/LoadTEConds pair, applied to style rather than text.

Installing. It's one of six nodes in silveroxides/ComfyUI_CondsUtils, a WIP conditioning toolkit (empty README, code-is-docs, zero dependencies beyond torch and comfy.utils). ComfyUI Manager → search "CondsUtils", or:

cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI_CondsUtils

then restart. The author, silveroxides, is the same handle behind the Chroma GGUF quants on HuggingFace and the ComfyUI_SamplingUtils pack.

Where people get burned. The obvious one: the saved file only contains the style embedding - you still need your own text conditioning wired into conditioning, or you're feeding a sampler a conditioning with no prompt in it. And a saved Redux embedding is tied to the model family it was made for; a style embedding computed through an SDXL-style vision model isn't guaranteed to behave on something newer. When the style looks absent, check strength first - attn_bias at 1.0 is literally log(1) = 0, a no-op by design, so if you set it and forgot to turn strength up, nothing visibly changes.

Categoryconditioning/style_model

Inputs (4)

NameTypeDefaultDescription
conditioningCONDITIONING
embedding_nameCOMBO0 options:
strengthFLOAT1.0000–10
strength_typeCOMBO2 options: multiply, attn_bias

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING