MUConditioningCutoff
Cut prompts out of the sampling timeline
- conds
- CONDITIONING
Every conditioning in ComfyUI secretly carries a schedule. Each CONDITIONING entry isn't just a prompt embedding - it's a pair: the embedding plus a dict that includes start_percent and end_percent, the fraction of the sampling process during which that entry gets applied. Prompt scheduling ([a:0.3] style "apply this only for the first 30% of steps") works by stacking conditioning entries with different windows. MUConditioningCutoff is the tool that reaches into that dict and rewrites the schedule after the fact.
You feed it one CONDITIONING and two floats - start_cutoff (default 0) and end_cutoff (default 1). Anything scheduled entirely before start_cutoff gets dropped; anything scheduled entirely after end_cutoff gets dropped; everything in between gets its window clamped so it never leaks past your boundaries. Set start_cutoff to 0.5 and every early-steps-only prompt in that conditioning simply vanishes from the generation. That's the whole trick - it's a "keep only what happens between X and Y percent of sampling" gate, applied to however many entries you've concatenated together.
The source is about fifteen lines and worth knowing, because there's a thoughtful guard in it. If every single entry would get filtered out, the node falls back to the last conditioning entry with a full 0→1 range. Your prompt never comes back empty - you get something, even if it's not the something you meant. Defaults of 0 and 1 are a no-op (full range), so it's safe to drop into a workflow and start trimming.
The input that matters is conds; start_cutoff and end_cutoff are plain sliders from 0 to 1 in 0.01 steps. The single CONDITIONING output wires straight into your sampler's positive or negative input, exactly where the original conditioning would have gone.
Where people actually use this: you've built a prompt with heavy step-scheduling - "composition in early steps, detail keywords in late steps" - and you want to experiment with just one slice of that timeline without rebuilding the whole scheduling rig. Or you've grabbed someone else's workflow whose scheduled prompt fights yours, and a hard cutoff is quicker than untangling their node graph. One honest caveat: it gates the prompt conditioning's window, not a ControlNet's. ControlNets carry their own start/end percent set at apply time, so this node is for trimming the text side of the equation.
It's from asagi4's small comfyui-utility-nodes pack (six nodes, two dependencies, no models). Install via ComfyUI Manager - search "comfyui-utility-nodes" - or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/asagi4/comfyui-utility-nodes
cd comfyui-utility-nodes
pip install -r requirements.txt
Restart and you'll find it under "misc-utils". It's a niche tool - you won't need it in every workflow, but the first time you fight a scheduled prompt that won't stay in its lane, it's exactly the lever you were missing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conds | CONDITIONING | — | |
| start_cutoff | FLOAT | 0.000–1 | — |
| end_cutoff | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |