LLaDA-Image Scheduler
This scheduler reads them off the checkpoint
- model
- SIGMAS
LLaDA-Image is a flow-matching model, and flow models are picky about their noise schedule in a way SD 1.5/SDXL never taught you to expect. With those older models, "just use Karras" was a safe reflex. On a flow-matching trajectory it actively distorts the result, because the model was trained on a schedule of its own. T8LLaDAImageScheduler is that schedule - and because Base and Turbo use different ones, the node reads which variant you loaded and hands back the right sigmas automatically.
The practical upshot: in the pack's example workflows you don't pick a scheduler name at all, and the steps box sits at 0. Zero isn't a bug - it means "ask the checkpoint."
How it works
The node looks at the MODEL you feed it, checks the variant flag baked into the checkpoint, and computes the exact sigma sequence that model was trained with. The two recipes are genuinely different:
- Base warps a timestep ramp through a power curve and converts to sigmas - it's the multi-step curve that Base expects at its 50-step default.
- Turbo uses a short flow schedule (
3·s / (1 + 2·s)) tuned for a distilled 4-step trajectory.
The steps input is an integer from 0 to 1000, and the tooltip says it all: "0 selects the checkpoint default: Base 50, Turbo 4." Leave it at 0 and you always get what the model card intended, whichever checkpoint you happen to have loaded. Set it explicitly and you override - useful when you want to stress-test Base at a nonstandard count or do a quick seed farm. Most people never need to touch it.
The one input, the one output
model- the MODEL output fromT8LLaDAImageCheckpointLoader. Must be a LLaDA-Image AIO; this is how the node knows Base from Turbo.- Output SIGMAS - feed it into
SamplerCustomAdvanced's sigmas socket.
That "SamplerCustomAdvanced, not a plain KSampler" detail is the shape of the whole workflow. LLaDA-Image examples run through the modern plumbing: loader → text encode → CFGGuider → SamplerCustomAdvanced, with KSamplerSelect (Euler for Base) or the pack's Turbo sampler, RandomNoise, and this scheduler supplying the sigmas. The latent comes from EmptyFlux2LatentImage, because the model's latent format matches Flux2's - a stock EmptyLatentImage or SDXL empty will fight it.
Install
It ships with the LLaDA-Image T8 pack, so there's nothing extra to install beyond the pack itself - same git clone of T8mars/Comfyui-LLaDa-Image-T8, same pip install -r requirements.txt, same restart. Search "LLaDA-Image T8" in ComfyUI Manager if you prefer that route. You only need ComfyUI 0.34.0+.
Common issues
- Feeding it a non-LLaDA model. If MODEL doesn't come from the T8 AIO loader, the node can't tell the variant and raises an "unsupported LLaDA-Image variant" error. There's no fallback - it's a specialist node.
- Sticking the schedule into a plain KSampler. SIGMAS is not a sampler name and won't wire into KSampler's sockets. If your workflow is built on the old sampler node, you'll want to rebuild it around
SamplerCustomAdvancedusing the pack's example JSONs as a reference. - Reaching for Karras anyway. Don't. This model's schedule is already shaped for it, and aggressive rescheduling is exactly what flow models punish. If the image looks overcooked or flat, check CFG before you touch the schedule - Base wants ~5, Turbo wants 1.
When in doubt, leave steps at 0. The node's whole job is to make the correct answer the default.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| steps | INT | 00–1000 | 0 selects the checkpoint default: Base 50, Turbo 4. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |