ComfyUI Node

HyperSDXL1StepUnetScheduler

The Hyper-SD 1-step scheduler that turns SDXL into a sketchpad

By fofr·Created 2 years ago·Updated 2 years ago· 11
HyperSDXL1StepUnetScheduler
  • model
  • SIGMAS
steps1

This node exists for exactly one reason: to make a distilled SDXL model generate in a single denoising step. One step. Not "fast-ish in four steps," a single pass through the UNet. It's the noise-schedule half of ByteDance's own Hyper-SD 1-step workflow, ported into a standalone scheduler by fofr, the community toolmaker who's also behind a pile of other handy ComfyUI packs.

If that sounds like a gimmick, here's the honest framing from the distillation playbook: Hyper-SD is ByteDance's trajectory segmented consistency distillation, the sibling of SDXL Lightning that splits the denoising path into segments and trains the student to nail each one in a single jump. The 1-step variant is the most aggressive end of that spectrum - quality is rough by design. Think seed farming, composition sketches, and instant previews, not final renders. The KB's take on distilled models applies fully here: use it to find a composition fast, then re-render with the full model for actual quality. People even ran the 1-step Hyper-SD on CPU via FastSD back in 2024, which tells you the whole point is speed above everything.

How it actually works

The mechanism is charmingly tiny. Open the node's source and get_sigmas hardcodes a single timestep, 800, converts it to a sigma through the loaded model's noise schedule, and appends a zero. That's your entire schedule: [sigma, 0] - one real denoise step, then the "done" step. Output is a SIGMAS tensor you feed straight into a SamplerCustom (or the sigmas input of a KSampler). Wire the model input to the Hyper-SD 1-step SDXL checkpoint you load with a standard checkpoint/UNet loader.

Here's the gotcha the source reveals that the README never mentions: the steps input (default 1, min 1, max 10) is completely ignored. The node always emits the same single-step schedule no matter what you type. It's vestigial, a leftover from the port. So don't go looking for a "quality vs. speed" knob here - you get one step, that's the deal. If you want the 2/4/8-step Hyper-SD variants, you want their matching schedulers instead.

The two inputs that matter

  • model (MODEL) - the Hyper-SD 1-step SDXL checkpoint, loaded like any other. This node computes its sigma from this model's own sampling schedule, so don't swap in a random SDXL and expect magic; you need the distilled weights from ByteDance's ByteDance/Hyper-SD repo (the SDXL 1-step ComfyUI checkpoint, plus its matching LoRA if you're going the LoRA route).
  • steps (INT) - as above, ignored. Set it and forget it.

Output is a single SIGMAS, the two-element schedule, wired into SamplerCustom.

Installing it

ComfyUI Manager is the easy road - search HyperSDXL1StepUnetScheduler and install. Or clone it straight into your custom nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler

Restart ComfyUI. No Python dependencies, no requirements.txt - the node only imports comfy and torch, so there's nothing extra to pip install. The real "install" is the model file itself: grab the Hyper-SD SDXL 1-step checkpoint from HuggingFace, because the pack ships zero weights.

Where people get burned

  • Forgetting CFG. Hyper-SD's guidance is baked into the student, so run CFG at 0 (or near it). Crank it to 7 like a normal SDXL and you get oversaturated, artifacted garbage - the classic distilled-model mistake.
  • Wrong sampler. Pair this scheduler with Euler, matching ByteDance's reference workflow. Schedulers and samplers are not interchangeable with distilled models; the sigma it hands you is tuned for that pairing.
  • Expecting final quality. One-step output is a sketch, not a portfolio piece. Treat it as an idea generator and re-render.

The 1-step Hyper-SD setup is a niche tool, but when the job is "show me twenty compositions in thirty seconds," nothing in the full-step world touches it.

Categorysampling/custom_sampling/schedulers

Inputs (2)

NameTypeDefaultDescription
modelMODEL
stepsINT11–10

Outputs (1)

NameTypeDescription
SIGMASSIGMAS