⬡ Polyhedron Dual Sigma Curve
The dual-pass schedule generator
- sigmas_high
- sigmas_low
Wan 2.2 runs two passes - a high-noise expert that shapes structure and motion, and a low-noise expert that polishes detail. If you're feeding those two experts with one schedule, you're making the low pass work on a curve designed for the high pass, which is a compromise nobody asked for. The Dual Sigma Curve is the pack's answer: two separate sigma schedules, one per pass, joined at a defined handoff.
The required inputs are the two curve shapes (schedule_high and schedule_low), a shared noise range (sigma_max/sigma_min, the same flow-vs-k-diffusion numbers as the single curve - 1.0/0.002 for Wan, 14.61/0.029 for SDXL-class), and the two numbers that define the split: total_steps and split_step. split_step is where the HIGH pass ends and the LOW pass begins - the handoff, in step terms rather than noise-level terms. Each side also gets its own rho (rho_high, rho_low) because the shape parameter is per-curve.
Outputs are sigmas_high and sigmas_low, two SIGMAS curves. Keep total_steps and split_step in agreement with the samplers' own step settings - the curve's lengths are the schedules, and a mismatch between them silently shifts where the handoff actually lands. The handoff is described as seamless: the high segment ends where the low begins, which is exactly the segment contract the pack's own Sampler expects when you feed it sigmas_high/sigmas_low (the tooltip there notes each is a segment, not a full curve).
Where it fits
In a dual-expert workflow you'd feed sigmas_high to the high-noise sampler path and sigmas_low to the low path, and the split gives each expert a schedule shaped for its job - steeper or gentler per pass. The one conceptual trap is the same as every sigma node: the curve defines the distribution of steps, not the model's flow-matching shift. On Wan 2.2 you still need the sigma shift (8.0 is the standard) applied on top - the curve and the shift are separate mechanisms, and both have to be right.
Installing it
It's part of the Polyhedron Suite pack:
cd ComfyUI/custom_nodes
git clone https://github.com/PolyhedronAI/ComfyUI-PolyhedronLoRAStack.git
# restart ComfyUI
or ComfyUI Manager, search "Polyhedron Suite". No extra dependencies.
Honest take: this is a power-user node. If you're still getting your head around basic samplers, the single Universal Sigma Curve and default samplers will serve you better - but the moment you're tuning a dual-expert run and wondering why the low pass feels under-fed, the answer is usually that it's inheriting the high pass's schedule. That's the problem this node removes.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| schedule_high | COMBO | karras | Sigma curve for HIGH pass (structure phase) |
| schedule_low | COMBO | bong_tangent | Sigma curve for LOW pass (detail phase) |
| total_steps | INT | 202–300 | Total steps across both passes |
| split_step | INT | 81–299 | Where HIGH ends and LOW begins |
| sigma_max | FLOAT | 1.0000.0001–1000 | Flow-matching (WAN/FLUX/SD3): 1.0 — k-diffusion (SDXL/SD1.5): 14.61 |
| sigma_min | FLOAT | 0.00200.00001–100 | Flow-matching (WAN/FLUX/SD3): 0.002 — k-diffusion (SDXL/SD1.5): 0.029 |
| rho_high | FLOAT | 7.00.1–20 | Shape param for HIGH schedule (karras/exponential/laplace only) |
| rho_low | FLOAT | 7.00.1–20 | Shape param for LOW schedule (karras/exponential/laplace only) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas_high | SIGMAS | — |
| sigmas_low | SIGMAS | — |