ComfyUI Node

OCS Sampler

The node that makes the default sampler dropdown feel tiny

By blepping·Created 2 years ago·Updated about a month ago· 30
OCS Sampler
  • groups
  • params_opt
  • SAMPLER
parameters

If you install this pack for one node, this is it. OCS Sampler is the flagship: a drop-in replacement for the sampler you normally pick in the KSampler dropdown, except instead of one algorithm it can run a different algorithm every few steps, restart the schedule, use immiscible noise, and filter almost anything mid-sampling. The README calls the pack "experimental and mathematically unsound (but fun!)" - read that as the tone for everything below. This is not the node you reach for when you want a quiet reliable euler run; it's the node you reach for when you want to know how far sampling can be bent.

What it is

OCS doesn't plug into a KSampler. It emits a SAMPLER that you wire into a SamplerCustom (or anything that accepts a SAMPLER input). Structurally it's the top of a three-node stack: OCS SamplerOCS GroupOCS Substeps. The Group nodes decide when something runs, the Substeps nodes decide what sampler runs, and the Sampler node holds the global config - noise handling, restart, model options - plus everything the groups couldn't express.

How it works

The sampler node turns your chain of groups into a single custom KSAMPLER. Every step, it asks the group chain "who matches this step?" and runs that group's substeps. Matching is time-based and starts with the group furthest from the sampler node, so later groups in the chain are tried first. The heavy lifting lives in a YAML/JSON text block where you can set the noise block (cpu_noise, set_seed, seed_offset, normalize_noise), the restart block (enabled plus its own s_noise and immiscible config), and the model block - the one beginners actually need.

The model block's cfg1_uncond_optimization is the Flux switch. Flux doesn't use CFG, so setting this to true skips generating the uncond (negative prompt) pass entirely, saving time. The flip side: CFG++ and alt CFG++ features don't work with Flux, and restarts don't work with rectified-flow models like Flux at all.

The inputs that matter

The node is refreshingly simple at the wire level:

  • groups (required) - connect your OCS Group chain here.
  • params_opt (optional) - output from OCS Param / OCS MultiParam for things that need a real input, like custom noise.
  • parameters (optional) - the big YAML text block where all the tuning happens.

The single output, SAMPLER, goes into SamplerCustom. From there it behaves like any sampler: add_noise, start_at_step, and so on are handled by the SamplerCustom node.

Installing it

From ComfyUI Manager, search for Overly Complicated Sampling. Or clone it manually:

cd ComfyUI/custom_nodes
git clone https://github.com/blepping/comfyui_overly_complicated_sampling

Restart ComfyUI. There are no model files to download and no mandatory pip dependencies - the optional solver backends (diffrax, torchdiffeq, torchode, torchsde) are only imported if you pick those step methods. The author strongly recommends installing ComfyUI-bleh and ComfyUI-sonar alongside, since they unlock extra blend modes and noise types.

Common issues

The pack's own status is "in flux, may be useful but likely to change/break workflows frequently." Treat saved workflows from old versions as fragile - an update can silently change a default. The YAML block has "essentially no error handling," so a typo surfaces as a confusing traceback rather than a friendly message. And if you're on Flux, remember the cfg1_uncond_optimization note above before you start diagnosing weird slowness. This is a power-user tool that rewards you only if you're willing to read the README's YAML reference; if you just want DPM++ 2M Karras with fewer steps, the built-in samplers are still your friend.

Categorysampling/custom_sampling/OCS

Inputs (3)

NameTypeDefaultDescription
groupsOCS_GROUPSConnect OCS substep groups here which are output from the OCS Group node.
params_optoptOCS_PARAMSOptionally connect parameters like custom noise here. Output from the OCS Param or OCS MultiParam nodes.
parametersoptSTRINGThe text parameter block allows setting custom parameters using YAML (recommended) or JSON. Optional, may be left blank.

Outputs (1)

NameTypeDescription
SAMPLERSAMPLERSAMPLER that can be connected to a SamplerCustom or other sampler node that supports a SAMPLER input.