Apply Reference Images
Fold a style-reference bundle into your conditioning
- conditioning
- clip_vision
- style_model
- references
- conditioning
The business end of the reference-image pair. You build a bundle of references with one or more ETN_ReferenceImage nodes - each with its own weight and timing - and ETN_ApplyReferenceImages takes that bundle, runs it through a CLIP Vision model and a style model, and folds the result into your conditioning. After this node, your prompt "knows about" the reference images, and the sampler generates toward them.
This is the apply half of the style-reference feature in Acly's ComfyUI Nodes for External Tooling, the CLIP-Vision + style-model (Flux Redux–family) path. It's the same reference-image capability exposed in his Krita AI Diffusion plugin - one of the community's favorite ways to drive ComfyUI as a backend - and here it's laid out as raw nodes you can wire into any graph.
How it works
Style-model reference conditioning works by encoding your reference image with a CLIP Vision model into image embeddings, then projecting those through a style model so they slot in alongside your text conditioning. This node does that for the whole bundle at once, respecting each reference's weight and range from the ETN_ReferenceImage nodes that built it. The output is a modified CONDITIONING - your text prompt, now carrying the visual influence of the references.
Because it operates on conditioning rather than the model, it composes cleanly with the rest of your positive-prompt stack. You're adding image guidance on top of text guidance, not replacing it.
The inputs and outputs that matter
All four inputs are required - this node needs the full kit to do anything:
conditioning(CONDITIONING) - your positive prompt, from CLIP Text Encode. The references get mixed into this.clip_vision(CLIP_VISION) - the CLIP Vision model, from a CLIP Vision Loader. This is what "sees" the reference images.style_model(STYLE_MODEL) - the style model, from a Style Model Loader. This projects the image embeddings into conditioning. Use the style model that matches your base (e.g. a Flux Redux model for Flux).references(ReferenceImage) - the bundle from your ETN_ReferenceImage chain.
Output:
conditioning(CONDITIONING) - the reference-infused positive conditioning. Wire it into your KSampler's positive input in place of the plain text conditioning.
How to install it
Install the pack once. ComfyUI Manager: search ComfyUI Nodes for External Tooling, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Acly/comfyui-tooling-nodes.git
then restart. The node pack is light, but the CLIP Vision and style-model files are separate downloads - you supply those through the standard loader nodes, and they're not tiny. Grab the CLIP Vision model and the style model that match your base architecture.
Common issues & troubleshooting
Type mismatch on the loaders. The CLIP Vision model and the style model have to match each other and your base model's family. A Flux Redux style model wants the CLIP Vision it was trained with, feeding a Flux base. Mixing an SDXL-era CLIP Vision with a Flux style model won't work.
References have no visible effect. Check upstream: your ETN_ReferenceImage weights might be near zero, or their active range might be a sliver. Also confirm the references bundle actually reaches this node - an unconnected chain applies nothing.
The references dominate the prompt. That's set on the ETN_ReferenceImage nodes, not here - lower each reference's weight and narrow its range so the images guide rather than overwrite. This node faithfully applies whatever strength the bundle carries.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | — | |
| clip_vision | CLIP_VISION | — | |
| style_model | STYLE_MODEL | — | |
| references | ReferenceImage | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |