OCS SimpleRestartSchedule
Time travel for your sigmas, on purpose
- sigmas
- SIGMAS
Restart sampling is the trick where the denoise periodically jumps backward in noise level - re-adding noise mid-run so the sampler gets a second pass at a region it already crossed. The original ComfyUI implementation needs a separate RestartSampler node and a lot of fiddling; this node just takes a normal sigmas list and rewrites it into a restart schedule using a few lines of YAML. If you've seen Restart sampling praised for giving SD models a quality bump and wondered how people actually wire it up, this is the answer.
What it is
A schedule transformer. You feed it sigmas from any normal scheduler (a BasicScheduler or anything emitting SIGMAS), write a restart schedule in the text block, and get back a modified sigmas list that includes the backward jumps. The output is designed for an OCS Sampler (which has built-in restart support) or the classic RestartSampler node - don't connect it to a plain sampler that has no idea what a restart schedule is.
The inputs that matter
sigmas(required) - connect your scheduler output here.start_step(required, default 0) - the zero-based step where the restart definition kicks in. Equivalent to a[start_step, 0]entry.schedule(optional) - YAML or JSON list. Each item is either a pair[interval, jump](afterintervalsteps, jump backjumpsteps - negative values go backward) or a single integer meaning "resume the schedule at this 0-based item." The example from the README:
- [4, -3]
- [2, -1]
- 1
That reads: after 4 steps jump back 3, after another 2 steps jump back 1, then go to the second item and repeat the [2, -1] cycle.
The single SIGMAS output feeds the sampler.
Why you'd bother
Restart sampling is one of those "extra detail for free" techniques that got real traction in the community for SD 1.5/SDXL-class models - the idea is that re-noising forces the sampler to refine regions it rushed past, which often sharpens textures at the same step count. It's not a magic bullet and it doesn't play nice with every model family. The README is explicit that restarts don't currently work with rectified-flow models like Flux, so on those models this node is a no-op at best and a crash at worst.
Installing and gotchas
Comes with the pack - Manager search "Overly Complicated Sampling" or git clone https://github.com/blepping/comfyui_overly_complicated_sampling into ComfyUI/custom_nodes, then restart. No model files, no mandatory dependencies.
The gotchas are the schedule format and the target node. A malformed schedule is just a runtime error (there's "essentially no error handling"), and connecting the output to a vanilla sampler that lacks restart support will silently do the wrong thing or fail. Keep the schedule simple to start - one [interval, jump] pair repeated - and watch the preview to see whether the extra passes are actually helping before you chain multiple cycles.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | Connect the output from another scheduler node (i.e. BasicScheduler) here. | |
| start_step | INT | 0 | Step the restart schedule definition starts applying. Zero-based. |
| scheduleopt | STRING | Define a schedule here using YAML (recommended) or JSON. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |