Fat Mex Reference Sampler
Same face, new pose — no LoRA, no adapters
- model
- clip
- vae
- reference_image
- images
- latent
Want the same person in a different outfit, pose, or location without training a LoRA? That's this node's whole job. Feed it one reference image - a clean photo of the face you want to keep - and it generates from it while your prompt controls everything else. This is the "reference-guided generation" slot of the Fat Mex pack, and it's the trick you'll actually reach for when consistency matters more than novelty.
It replaces the manual VAEEncode + ReferenceLatent + CLIPTextEncode x2 + KSampler + VAEDecode chain. The mechanism is native reference-latent conditioning - the same trick that makes Flux 2 and Klein good at multi-reference work - not an IP-Adapter or FaceID on top. On Klein especially, this is the built-in way to keep an identity across generations.
How it works
The node does three things in sequence:
- Encodes the reference into a latent with your VAE and attaches it as
reference_latentsconditioning on the positive side. That latent is the identity signal the model pays attention to while sampling. - Decides the starting point from
denoise. Below 1.0 it starts from the VAE-encoded reference itself (img2img mode) and refines it - think "add detail, texture, change the vibe but keep the photo." At 1.0 it starts from an empty latent and treats the reference purely as conditioning - a new image that should look like the same person. - Samples with the preset's defaults (
preset_hint, orauto→ Klein 9B settings), then decodes.
width/height default to 0 = same dimensions as the reference, which is usually what you want.
The dials that matter
denoiseis the one you'll actually tune. 0.75 is the default and a sane starting point. Crank toward 1.0 when the reference is good but you want a genuinely new image; drop toward 0.5-0.6 when you want a subtle refinement of the reference itself.reference_image- the photo doing the work. A clear, front-facing, well-lit shot gives you far more consistency than a tiny cropped face.positive_prompt/negative_prompt- normal prompting rules apply; on these low-cfg models, restate constraints as presence rather than leaning on the negative.preset_hint- match it to what you loaded in the Model Loader (Klein 9B is the pack's recommended pairing for fast reference generation).
Outputs are images and latent (the latter if you want to chain a refine or upscale pass).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/FatMex/ComfyUI-FatMex-Nodes.git FatMex-Nodes
pip install -r FatMex-Nodes/requirements.txt
Or ComfyUI Manager → search "Fat Mex Nodes" → Install → restart.
Where people get burned
- Reference conditioning is not a face clone. It holds identity loosely - great for "same woman, different outfit," weak for "must be pixel-identical to this exact person." If you need forensic likeness, add a face-swap pass (the pack's Fat Mex Face Swap fits right after this in the graph) or train a LoRA. The KB makes exactly this distinction: adapters/reference conditioning get you 80%, a post-process swap closes the gap.
- Preset mismatch again. Loaded Qwen 2512 but left
preset_hintonauto? You're sampling with Klein's settings. Match them. - Low-quality reference = low-quality identity. Garbage in, same-face-garbage out. If the reference is small or blurry, fix it before blaming the node.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The model from Fat Mex Model Loader. | |
| clip | CLIP | The CLIP model. | |
| vae | VAE | The VAE model. | |
| reference_image | IMAGE | The reference image to guide generation. | |
| positive_prompt | STRING | Describe what you want. | |
| negative_prompt | STRING | Describe what you don't want. | |
| seed | INT | 00–18446744073709550000 | — |
| denoise | FLOAT | 0.750–1 | Below 1.0 = img2img refinement from reference. 1.0 = full generation with reference conditioning. |
| preset_hintopt | COMBO | auto | 8 options: auto, Klein 9B, Klein 9B True, Qwen Image Edit 2509, Qwen Image Edit 2511, Qwen Image 2512, +2 |
| stepsopt | INT | 00–100 | Override steps (0 = preset default). |
| cfgopt | FLOAT | 0.00–100 | — |
| sampler_nameopt | COMBO | auto | 45 options: auto, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 |
| scheduleropt | COMBO | auto | 10 options: auto, simple, sgm_uniform, karras, exponential, ddim_uniform, +4 |
| widthopt | INT | 00–16384 | Output width (0 = same as reference). |
| heightopt | INT | 00–16384 | Output height (0 = same as reference). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| latent | LATENT | — |