Apply InfuseNet
The node where InfiniteYou actually happens
- positive
- id_embedding
- control_net
- image
- negative
- vae
- control_mask
- positive
- negative
Every InfiniteYou workflow funnels into Apply InfuseNet. Identity embedding, pose image, text conditioning, and the loaded InfuseNet all meet here, and what comes out is the conditioning your sampler denoises. If you landed on this page expecting the final image, get the gotcha out of the way first: the outputs are positive and negative CONDITIONING, not pixels. The image happens downstream, in the KSampler. This node just makes the person appear.
How it works
It's the "apply controlnet" step with an identity twist. The control image gets encoded to the latent through the VAE, the InfuseNet runs with the identity embedding injected as cross-attention control (that's the id_embedding hooking into the Flux transformer), and strength plus start/end percent gate how hard and how long the whole thing applies. Because InfuseNet subclasses ComfyUI's ControlNet, the mental model is exactly the ControlNet one you already know: high strength, late release, more adherence; lower strength, earlier release, more freedom.
The inputs that matter
- positive - your Flux text conditioning, from a CLIP Text Encode built for Flux.
- id_embedding - the
CONDITIONINGoutput of Extract ID Embedding. This is the person. Nothing works without it. - control_net - from Load InfuseNet.
- image - the pose control. Extract Face Pose Image's output, or a blank image if you want no pose constraint (which is what the shipped example does).
- strength (default 1.0) - how hard the identity-plus-pose condition pushes. Community consensus after running this pack for a while: if the face looks baked in or the whole image looks burnt, pull this toward 0.85 instead of slamming it to the extremes.
- start_percent (0.0) and end_percent (1.0) - when during denoising the condition applies. Standard play: end it early, around 0.8–0.9, so the late steps add natural texture instead of re-fighting the identity.
The optional inputs: negative (the example workflow uses an empty conditioning - a plain text encode of nothing works fine), vae (wire it in; it's how the control image gets encoded to latent), and control_mask - the multi-ID trick. Give it a mask and the identity applies only inside that region, which is exactly how the pack's two-person example workflow splits the canvas.
Outputs
positive and negative CONDITIONING, both of which go straight into the KSampler's positive and negative sockets. The names match the input names on purpose; they're just stronger now.
Installing
Same pack as the rest of the family, on the Comfy Registry too:
cd ComfyUI/custom_nodes
git clone https://github.com/bytedance/ComfyUI_InfiniteYou.git
cd ComfyUI_InfiniteYou
pip install -r requirements.txt
Restart, then it auto-downloads its models on first run.
Where people get burned
strengthat 0 does nothing - literally. The code short-circuits and returns the conditioning untouched. If a run "isn't applying," check that strength didn't get zeroed while you were fiddling.- This is the heaviest node in the graph. 24GB of VRAM is the fp8 floor, and community hybrid workflows stacked on top of InfiniteYou have OOM'd a 4090. When it happens, the fix that actually works is unloading models and clearing the execution cache between runs, not just clearing RAM.
- The aesthetic complaints start here, not with the face. InfiniteYou lands the likeness; the style can read as generic Flux (the infamous "Flux chin" from the release thread). That's not a strength problem - the README's own answer is layering the Realism and Anti-blur Flux LoRAs over the base model.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| id_embedding | CONDITIONING | — | |
| control_net | CONTROL_NET | — | |
| image | IMAGE | — | |
| strength | FLOAT | 1.000–10 | — |
| start_percent | FLOAT | 0.0000–1 | — |
| end_percent | FLOAT | 1.0000–1 | — |
| negativeopt | CONDITIONING | — | |
| vaeopt | VAE | — | |
| control_maskopt | MASK | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |