Krea2 Multi-LoRA SuperSampler
Sample big, ship small — without a second KSampler
- model
- positive
- negative
- latent_image
- vae
- supersample_plan
- image
- latent
- working_image
- diagnostics
The Krea2SupersampledKSampler (shown as Krea2 Multi-LoRA SuperSampler) is the partner node in the lokitsar/ComfyUI-Krea2-MultiLoRA-Composer pack. The Krea2CharacterRouter upsampled its internal latent to give faces more working resolution - and a normal KSampler happily spits out that larger latent, which leaves you at the wrong size. This node is the automatic cleanup: it samples the big latent, VAE-decodes, then downsizes the result back to the canvas you originally asked for. "Transparent supersampling" in the README's words - the output resolution never changes, the quality just gets better.
You wire it in a straight line after the router: Composer model → sampler model, conditioning → positive, latent → latent_image, supersample_plan → supersample_plan, plus the Krea 2 VAE. Empty conditioning goes to negative - Krea 2 Turbo doesn't use negatives, but the input stays KSampler-compatible so existing habits keep working.
How it works
The node carries a KREA2_SUPERSAMPLE_PLAN from the router that encodes both the target canvas and the working (larger) resolution. On the way in it validates that the latent actually matches that plan - the code raises a hard error if the resolution doesn't line up, which is exactly the failure you want when you accidentally wire a latent from a different Composer. Then it runs the same KSampler machinery ComfyUI uses internally (euler/simple, 8 steps, CFG 1.0 by default), decodes with your VAE, and downsizes to the target using Lanczos, bicubic, area, or bilinear filtering.
The nice part: at supersample_scale 1.25, a 1216×832 composition is sampled internally at 1520×1040 but returned at 1216×832. The working render and the big latent are also exposed, so you're not locked into the downscaled version.
The inputs that matter
It's a KSampler with four extra faces. Set steps (default 8), cfg (1.0), sampler_name (euler) and scheduler (simple) to Krea 2 Turbo's official recipe - the defaults already point there. Two to actually think about:
supersample_scaleon the router decides the internal cost: 1.0 is 1×, 1.25 is 1.56×, 1.5 is 2.25×, 2.0 is 4× VRAM. Start at 1.25; that's the "first likeness improvement" sweet spot.downscale_method(default lanczos) - how the working image shrinks back to target. Lanczos is the sharp default;areais the token-efficient downsampler.
Outputs: image is the final downscaled render (wire this to Save/Preview), latent is the high-res latent, working_image is the full-res decode before shrinking, and diagnostics is a JSON dump of the settings it actually used.
Install
Same pack as the router - install it once and both nodes appear. ComfyUI Manager (search "Krea2 Multi-LoRA Composer") or:
cd ComfyUI/custom_nodes
git clone https://github.com/lokitsar/ComfyUI-Krea2-MultiLoRA-Composer
Restart ComfyUI and hard-refresh. No extra Python packages: the pyproject only lists torch and safetensors, both of which ComfyUI already ships.
Where people get burned
- Mismatched latent errors - the sampler rejects a latent that doesn't match its supersample plan. Both
latent_imageandsupersample_planmust come from the same Composer node. - VRAM creep - 2.0 means four times the pixel budget. Use it selectively or you're asking for OOM on mid-range cards; 1.25 is the daily driver.
- Supersampling isn't an identity fix. More working resolution helps likeness, but if the routing is wrong the bigger canvas just renders the wrong face more clearly.
- A plain KSampler works too, but at the wrong size - that's the trap this node exists to remove. If you see the working resolution as your output, you grabbed the router's latent with a stock sampler instead of this one.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| vae | VAE | — | |
| supersample_plan | KREA2_SUPERSAMPLE_PLAN | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 81–10000 | — |
| cfg | FLOAT | 1.00–100 | — |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| denoise | FLOAT | 1.000–1 | — |
| downscale_method | COMBO | lanczos | 4 options: lanczos, bicubic, area, bilinear |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| latent | LATENT | — |
| working_image | IMAGE | — |
| diagnostics | STRING | — |