Nodes/ComfyUI nodes for ControlNext-SVD v2/ControlNext Diffusers Scheduler
ComfyUI Node

ControlNext Diffusers Scheduler

The optional scheduler that buys you 10-step ControlNeXt (ControlNext Diffusers Scheduler)

By kijai·Created 2 years ago·Updated 2 years ago· 189
ControlNext Diffusers Scheduler
    • scheduler
    scheduler
    sigma_min0.002
    sigma_max700.000

    ControlNext Diffusers Scheduler is a small utility that exists for one reason: the diffusers-wrapper path of ControlNeXt-SVD has a DIFFUSERS_SCHEDULER input on ControlNext Sampler, and this is the only node that produces that type. It's entirely optional - the sampler runs fine on the pipeline's stock scheduler if you skip it. But if you want fewer steps, or you're curious why the example workflows are fast, this is the node.

    What you get

    It builds an Euler scheduler with SVD's exact config (v-prediction, scaled_linear betas, continuous timesteps) and hands you one of three presets plus a sigma range:

    • EulerDiscreteScheduler - the plain stock scheduler. Wires nothing special in; a DIFFUSERS_SCHEDULER with default sigmas.
    • EulerDiscreteSchedulerKarras - the same scheduler with Karras sigma scheduling switched on, which is the classic "better quality per step" tweak from standard ComfyUI practice.
    • EulerDiscreteScheduler_AYS - the interesting one. It comes pre-loaded with the AYS (Align Your Steps) sigma list - [700, 54.5, 15.9, 8.0, 4.2, 1.8, 0.98, 0.40, 0.17, 0.034, 0.002] - the widely-used fixed step schedule that gets good results at around 10 steps instead of 25.

    sigma_min (default 0.002) and sigma_max (default 700) are the SVD-native noise range; you almost never touch them. If you don't pick the AYS preset, they define where the schedule starts and ends anyway.

    Output is scheduler (DIFFUSERS_SCHEDULER), which plugs into the optional_scheduler input on ControlNext Sampler. Nothing else accepts it.

    How the sampler uses it

    If you pass it in, the sampler swaps the pipeline's stock scheduler for yours and, when a fixed sigma list is present (the AYS preset), it resamples that list to match your step count and feeds it to the sampler as exact timesteps. That's the whole trick behind the fast example workflow: 10 steps, Euler, AYS, and the ControlNeXt condition still lands because the controlnet injection isn't tied to step count.

    The Karras variant is a fine default if you're not chasing speed and just want the cleaner end of the schedule. If you're on a tight VRAM card and 25 steps is melting your GPU, the AYS preset at 10 steps is the closest thing to a free lunch this pack offers.

    Installing it

    It ships in kijai/ComfyUI-ControlNeXt-SVD, installed via ComfyUI Manager (search "ComfyUI-ControlNeXt-SVD") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kijai/ComfyUI-ControlNeXt-SVD
    # restart ComfyUI
    

    There's no extra download here - the scheduler is built from config in code. The only real dependency is diffusers (>=0.30) from the pack's requirements, which the (Down)Load ControlNeXt node pulls in anyway.

    Common issues

    • No effect / sampler ignores it - you probably didn't wire the output into optional_scheduler, or you're on the native path (ControlNext SVD Apply + KSampler), where this node does nothing. It's strictly for the diffusers wrapper path.
    • Weird-looking output at low steps - the AYS list is tuned for ~10 steps; if you run it at 25, the sampler has to interpolate the sigma list, and you'd honestly be better off with plain Euler at that point.
    CategoryControlNeXtSVD

    Inputs (3)

    NameTypeDefaultDescription
    schedulerCOMBO3 options: EulerDiscreteScheduler, EulerDiscreteSchedulerKarras, EulerDiscreteScheduler_AYS
    sigma_minFLOAT0.0020–700
    sigma_maxFLOAT700.0000–700

    Outputs (1)

    NameTypeDescription
    schedulerDIFFUSERS_SCHEDULER