HunyuanImage 2.1 Sigma Scheduler
HunyuanImage 2.1 Base vs Distilled, without the guesswork
- sigmas
- schedule_info
HunyuanImage 2.1 ships in two flavors that want wildly different treatment: the Base model does 50 steps at a 5.0 shift, and the step-distilled variant wants 8 steps at a 4.0 shift. Get that wrong - and people do, constantly, because the checkpoint filenames don't always scream which one you loaded - and you either get undercooked noise or a burned image. The HunyuanImage 2.1 Sigma Scheduler exists to make the variant explicit and build the matching schedule.
This is the Sigmax pattern at its most useful: explicit variant selection, fail-closed if the selection is ambiguous, and a schedule pinned to the recipe for that exact variant. No silent guessing about whether you meant the 50-step or 8-step one.
The two lanes
- Base (5.0) - the full model. Fixed unit-flow shift 5.0, official 50-step recipe, CFG 3.5 per the pack's notes. The "pinned ComfyUI-compatible lane."
- Distilled (4.0) - the step-distilled variant. Shift 4.0, 8 steps, CFG 3.25. This one is publisher-schedule-only: the pack explicitly does not claim a qualified native ComfyUI host path for it, so treat it as "the schedule the publisher specifies" rather than "proven on every setup."
Inputs that matter
- variant -
Base (5.0)orDistilled (4.0). This is the decision. Pick deliberately. - steps - default 50, which matches Base. For Distilled, set 8. The node builds whatever count you give it, but the recipe it prints in
schedule_infowill tell you when you've drifted off the official number. - strict_source - keep on to stay on the pinned recipe.
- already_shifted - set true only if a model-sampling shift has already been applied upstream. Default false for a normal path.
- start_step / end_step - slice.
Outputs are sigmas and schedule_info. Wire sigmas straight into your custom-sampling path; don't add a second scheduler.
Scope, stated by the author
The pack's compatibility doc is blunt: this covers the Base and Distilled direct-ratio schedule lanes only. Refiner, encoders, conditioning, weights, and quality claims are all explicitly excluded - it's schedule math, not a full workflow. And the Distilled lane is flagged as publisher-schedule-only without native-host qualification, so if you hit weird results on the distilled checkpoint, the honest answer is "this is the publisher's schedule, not a promise."
Installing
Whole pack, one install:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-Sigmax comfyui-sigmax
Restart, search Sigmax. ComfyUI Manager also lists "ComfyUI-Sigmax". Python 3.10+, ComfyUI 0.29.0+, no extra deps, no model downloads.
Where it bites
The double-shift trap again - connect sigmas once, don't stack another time shift. And the variant trap: if you loaded the distilled checkpoint but left the node on Base (5.0) at 50 steps, you'll get the signature symptom of a distilled model being over-sampled. Read the schedule_info line before you blame the node.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| variant | COMBO | 2 options: Base (5.0), Distilled (4.0) | |
| steps | INT | 501–10000 | — |
| strict_source | BOOLEAN | false | — |
| start_step | INT | 00–9999 | — |
| end_step | INT | -1-1–10000 | — |
| already_shifted | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| schedule_info | STRING | — |