Nodes/ComfyUI/Apply USO Style Reference
ComfyUI Node Runs on cloud

Apply USO Style Reference

Reference-image styling for Flux without a LoRA

By Comfy-Org·Created 4 years ago·Updated 32 minutes ago· 129,926
Apply USO Style Reference
  • model
  • model_patch
  • clip_vision_output
  • MODEL

USO is ByteDance's shot at the problem that every style-transfer method has been trying to crack: take one reference image, apply its style to your subject, and do it without training a LoRA or writing a paragraph of style description. This node is ComfyUI's native way to apply USO to Flux-family models. You hand it a style image, it extracts the style, and your Flux render comes out wearing it.

The value is real and specific. Style LoRAs need training data and hours of compute; style text prompts are unreliable. USO takes the "just give me a reference" route that IP-Adapter-style methods pioneered on SDXL. Early community comparisons (the big September 2025 style-transfer shootout that pitted every open method against each other) found USO competitive with the field - sometimes losing the color reproduction to Flux Redux, but holding its own on overall stylistic transfer and combining well with other approaches.

How it works

This node is an apply step in the same family as the controlnet applies, but for a style projector. A ModelPatchLoader loads the USO projector weights as a MODEL_PATCH; this node fuses that patch into your base Flux model and wires in the style image's features.

The style features come from a CLIP Vision encode of the reference image - the node stacks three layers of the vision model's hidden states (the last-20th, last-11th, and penultimate layer outputs) to build a rich style embedding. It then installs a post-input patch on the model so the projected style tokens get injected into the model's forward pass at the right point. The prompt still drives the subject and composition; the USO projection drives the look.

It's marked experimental in ComfyUI core, and it's architecture-specific - the category says model/patch/flux, so plan for Flux-family checkpoints (including Chroma-style Flux derivatives, which the community runs heavily).

Inputs and what to set

Three inputs, all wired from other nodes:

  • model - your Flux-family model (unpatched base).
  • model_patch - the MODEL_PATCH from ModelPatchLoader, pointing at the USO projector file. That file lives in ComfyUI/models/model_patches/ and is loaded by filename.
  • clip_vision_output - the CLIP Vision encode of your style reference image, from a CLIPVisionLoader + CLIPVisionEncode pair.

Output is a single MODEL for the sampler. All three inputs are required; there are no strength or blend sliders on this node - if you want to weaken the effect you dial the effect at the prompt or by combining with other patches.

Common issues & troubleshooting

No style effect usually means a wrong CLIP Vision model. USO's projector expects the vision model it was trained against. If you feed it a mismatched CLIP Vision variant, you get silently bad or nonexistent transfer. Match what the USO release specifies.

It's Flux-family only. This won't apply to Z-Image or Qwen. Different architectures, different feature layouts - the node's model/patch/flux category is the honest boundary.

Expect tuning, not magic. The September 2025 shootout found no method won every case - USO sometimes nails the style but mangles color reproduction, and it combines better with a Redux/Flux workflow than alone. Treat a bad single result as a reroll, and consider pairing it with a controlnet if you need the subject layout held too.

Categorymodel/patch/flux

Inputs (3)

NameTypeDefaultDescription
modelMODEL
model_patchMODEL_PATCH
clip_vision_outputCLIP_VISION_OUTPUT

Outputs (1)

NameTypeDescription
MODELMODEL