Nodes/comfyui_overly_complicated_sampling/OCS SimpleRestartSchedule
ComfyUI Node

OCS SimpleRestartSchedule

Time travel for your sigmas, on purpose

By blepping·Created 2 years ago·Updated 2 months ago· 30
OCS SimpleRestartSchedule
  • sigmas
  • SIGMAS
start_step0
schedule

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] (after interval steps, jump back jump steps - 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.

Categorysampling/custom_sampling/OCS

Inputs (3)

NameTypeDefaultDescription
sigmasSIGMASConnect the output from another scheduler node (i.e. BasicScheduler) here.
start_stepINT0Step the restart schedule definition starts applying. Zero-based.
scheduleoptSTRINGDefine a schedule here using YAML (recommended) or JSON.

Outputs (1)

NameTypeDescription
SIGMASSIGMAS