Nodes/WASABI/WASABI Schedule Options
ComfyUI Node

WASABI Schedule Options

Per-token control, with a graph so you can see what you're doing

By WASasquatch·Created 12 months ago·Updated 12 months ago· 4
WASABI Schedule Options
    • schedule_options
    • plot
    token_length77
    ref_schedule
    scale_schedule
    blend_schedule
    t_ref0.50
    scale1.00
    blend_back0.00

    The difference between "one slider for the whole prompt" and actual control

    Plain WASABI scaling treats your whole prompt as one unit - one scale, one blend_back. That's fine until you realize you'd rather punch up the subject's tokens and leave the background description alone. WASABI Schedule Options is the node that makes WASABI per-token instead of whole-prompt: it builds the three curves the modulate nodes consume, and - the genuinely nice part - it draws a preview plot so you can see the curve before it touches a single generation. You don't find out after a 20-second render that your schedule was garbage.

    Like the rest of the pack it's experimental (for_testing category, Wan 2.1/2.2-focused), but this node is also the easiest to understand: it's a config builder with a graph for a receipt.

    How it works

    You type schedule strings - one per quantity - and the node parses them into per-token vectors, bundles them with the scalar fallbacks into a DICT, and renders a BHWC plot image (red = ref, green = scale, blue = blend, with a legend). The schedule grammar is small:

    • linspace(0,1) - ramp from 0 to 1 across the tokens.
    • cosine(0,1) or cosine(0.2,0.2,0.8) - eased curves through control points.
    • flat(0.5) - constant.
    • A plain list like "0 0.25 0.5 0.75 1" - resampled to the real token count (you can also prefix csv:).

    An empty string disables that schedule, and the node falls back to the matching scalar control. That fallback behavior is what makes it safe to start from: wire the node in with everything empty and it behaves exactly like the plain modulate controls.

    The inputs and outputs that matter

    • ref_schedule, scale_schedule, blend_schedule - the three curves. Empty = use the scalar fallback.
    • t_ref (0.5), scale (1.0), blend_back (0) - the scalar values used when the matching schedule string is empty.
    • token_length (default 77) - and here's a subtlety straight from the tooltip: it only controls the plot display, it doesn't need to match your real conditioning. The modulate node resamples the schedule to the actual token count of your prompt anyway.

    Outputs: schedule_options (a DICT - wire it into WASABI Conditioning Modulate's schedule_options input, or WASABI CLIP Text Encode's), and plot (an IMAGE - drop it into a PreviewImage node).

    A natural first use: scale_schedule = linspace(1.2,0.8) to front-load the subject tokens and ease off toward the end of the prompt, and watch the plot to confirm the ramp before you generate.

    Install

    ComfyUI Manager (search "WASABI") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/wasabi
    

    then restart. No model downloads, torch is the only dependency, ComfyUI 1.3.0+ required. It's by WASasquatch - the same author as the retired WAS Node Suite, but a brand-new, separate, tiny pack.

    Troubleshooting

    • "I set a schedule and nothing changed." An empty string is not zero - it means "fall back to the scalar." Make sure the string you typed actually parses; a typo like linspace(0,1 errors out loudly, which at least tells you.
    • "The plot looks different from what I intended." token_length only affects the plot's x-axis, not the real math - the modulate node resamples your list to your prompt's true token count.
    • "Where does the plot go?" It's a normal IMAGE output. PreviewImage it. It won't do anything if you leave it dangling.
    Categoryfor_testing

    Inputs (7)

    NameTypeDefaultDescription
    token_lengthINT771–4096Token length for plot display (doesn't need to match input conditioning).
    ref_scheduleSTRINGSchedule for reference embeddings.
    scale_scheduleSTRINGSchedule for scale.
    blend_scheduleSTRINGSchedule for blend-back.
    t_refFLOAT0.500–1Global fraction toward reference when ref_schedule is empty.
    scaleFLOAT1.000–10Global scale when no scale_schedule.
    blend_backFLOAT0.000–1Amount to blend results back toward ORIGINAL (0–1). Overridden per-token by blend_schedule.

    Outputs (2)

    NameTypeDescription
    schedule_optionsDICT
    plotIMAGE