Lying Sampler
Squeeze more detail out of the steps you already have
- sampler
- SAMPLER
What this thing actually does
It doesn't sample anything. wcx_LyingSampler is a wrapper: you feed it a sampler, it hands back a sampler, and the new one lies to your model about how much noise is left. The sampler still walks the same schedule at the same step count - the model just gets told "we're a little further along than we are," so it removes less each step and spends its remaining budget resolving fine texture instead of large shapes.
That's the name. It comes from Lying Sigma Sampler, alwaysbeblepping's three-knob version of the idea, and the idea itself is Detail Daemon - muerrilla's A1111/Forge extension that Jonseed ported to ComfyUI in late 2024. This node is the full Detail Daemon parameter set in one node.
The reason you'd reach for it before a detailer or an upscaler: it keeps your composition. The original port's author had been using a Multiply Sigmas node for extra Flux detail and found it "often also significantly changes the composition of an image." This adds detail without redrawing your framing, for no extra steps.
How the lie works
The node returns a KSAMPLER with a custom sampler function and a schedule baked into its options. At every model call the wrapper takes the current sigma, looks up a multiplier for that point on the schedule, and multiplies the sigma down:
adjusted_sigma = sigma * (1 - schedule_value * 0.1 * cfg_scale)
The sampler's own sigmas are untouched - you're adjusting what the model believes rather than redistributing denoising effort across the trajectory. That's the safety property, and it matters most on flow-matching models, where reshaped sigma curves are what break (Karras and exponential fail across the board on a near-straight rectified-flow path).
The schedule across your steps is a trapezoid: flat, ramp up to a peak at bias, ramp down, flat. smooth cosine-curves the ramps, exponent steepens them, and start_offset / end_offset set what happens outside the window (and shift the ramp heights). fade damps the whole curve - push it to 1 and you've switched the node off.
The knobs a beginner actually touches
Three.
detail_amount(default0.1) - the size of the lie. 0.2–0.5 is where most people live; crank it and you get crunchy, over-contrasted micro-texture and drifting prompt adherence. It's-5to5, so negatives work: a negative value raises the sigma for smoother, less busy output. Handy on models that overcook texture.start/end(defaults0.2/0.8) - the window as a fraction of the schedule. Early steps are composition and late steps are where over-sharpening shows up, so leaving both ends alone is the sane default. Narrow it (0.3–0.7) to be gentler, widen it (0.0–1.0) to affect the whole run.cfg_scale_override(default0, i.e. auto) - the author's own tooltip: "If set to 0, the sampler will automatically determine the CFG scale (if possible). Set to some other value to override." It matters because the adjustment is multiplied by CFG. On an SDXL finetune at CFG 7,detail_amount 0.15is already a real change; on Flux at CFG 1 the same number is nearly nothing, which is why you see much higher values quoted for Flux. If your guider doesn't expose a CFG, the code falls back to 1.0 and your detail amount quietly underperforms - set the override and stop guessing.
bias decides whether the peak sits early or late in the window; leave it at 0.5 unless you've got a reason.
One output: SAMPLER. Wire it into SamplerCustomAdvanced.
Install
ComfyUI Manager, search ComfyUI-Practical-Tools, or:
cd ComfyUI/custom_nodes
git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools
# restart ComfyUI
Nothing to download for this node. Note that the pack's requirements.txt pulls onnxruntime, nvidia-vfx and openai>=1.0.0 for its other nodes - if nvidia-vfx won't install on your platform, the pack still loads, because the root __init__.py imports each node file in its own try/except and prints [WCX Nodes Error] 节点文件 ... 加载失败. Grep your startup log for that string if a node goes missing.
Wiring it, and where people trip
Lying Sampler slots between sampler selection and sampling. Replace the monolithic KSampler with KSamplerSelect → wcx_LyingSampler → SamplerCustomAdvanced. That's the whole edit, and it's the first wall: if your workflow uses the all-in-one KSampler, there's no SAMPLER socket to plug into.
Other things that bite:
- You can't see the schedule. Original Detail Daemon ships a node to graph the adjusted sigmas; there's no equivalent here, so you tune by eye on a fixed seed.
- It changes prompt adherence, not just detail. In the big HiDream thread about this technique, the top reply points at the same prompt producing "plain single color dress" before and "floral print dress" after - "enough of a change to break prompt following if that wasn't asked for." It's a trade, not a free win.
- It is not a detailer. The detailer loop - detect a face, crop, re-render at higher resolution, paste back - adds actual pixels, which this can't. If a face is 70 pixels wide, no amount of sigma arithmetic will invent eyes.
- In an upscale pass it's fiddly. With Swift/Ultimate-style SD upscalers you must supply the custom sampler and the sigmas; feed one without the other and it silently falls back to the built-in sampler.
Run a 2×2 of detail_amount 0.1 vs 0.3 on one seed and pick a side. It's a tuning node: it rewards ten minutes of comparison, not a screenshot of someone else's numbers.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler | SAMPLER | — | |
| detail_amount | FLOAT | 0.10-5–5 | — |
| start | FLOAT | 0.200–1 | — |
| end | FLOAT | 0.800–1 | — |
| bias | FLOAT | 0.500–1 | — |
| exponent | FLOAT | 1.000–10 | — |
| start_offset | FLOAT | 0.00-1–1 | — |
| end_offset | FLOAT | 0.00-1–1 | — |
| fade | FLOAT | 0.000–1 | — |
| smooth | BOOLEAN | true | — |
| cfg_scale_override | FLOAT | 0.00–100 | If set to 0, the sampler will automatically determine the CFG scale (if possible). Set to some other value to override. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |