ComfyUI Node

RB Pause

Park the run and look before you burn more GPU

By itribs·Created 2 days ago·Updated a day ago· 0
RB Pause
  • any
  • value
force_pausetrue
timeout-1

ComfyUI will happily spend minutes rendering the second half of a workflow before you've seen the first half. It's a pipeline, not a conversation - there's no built-in moment to say "stop, that pose is wrong, don't spend another two minutes upscaling it." RB Pause is that moment, hand-made.

It's a passthrough checkpoint. Drop it into a wire, and when execution reaches it the run parks: everything behind it has already run, everything in front hasn't touched the GPU yet. You inspect the intermediate, then click Continue to let the tail run, or Cancel to kill the whole job the way pressing Stop would.

Pausing a workflow is one of those things the community has asked for repeatedly, and the pattern has prior art - image-picker nodes that stop so you can choose which of four results continues, Impact Pack's control and preview bridges. What sets this pack's RB Pause apart is that it stops anywhere (its socket type is *, so it accepts and returns a latent, an image, a string, whatever) and edits nothing. It's pure inspection, which makes it the ideal debugging tool.

Why you'd reach for it

  • Cheap head, expensive tail. Classic workflow shape: a fast first pass produces a latent or preview, then a slow hires/refine/video stage eats your VRAM. Park the run between them and only commit to the expensive part when the cheap part is worth it.
  • Learning someone else's graph. Pull down a big shared workflow you don't understand, drop RB Pause after each major stage, queue once, and walk through it one step at a time instead of guessing.
  • Quality gating for long jobs - an upscale pass or a video render where bailing early saves real minutes.

If you want to change a value at the checkpoint rather than just look, reach for the pack's RB String/Int/Float/Bool Bridge nodes instead; RB Pause is deliberately dumb, which is its whole job.

The inputs and how it works

Three required inputs, and you mostly touch two:

  • any (*) - whatever you're passing through. Whatever comes in comes out untouched.
  • force_pause (BOOLEAN, default true) - the important one. The tooltip says it all: "Force pause even if input has not changed." ComfyUI caches aggressively and skips work whose inputs didn't change, which would otherwise let an unchanged node sail past without pausing. This node opts out by making itself "changed" every run, so it always stops. Flip it off and it only pauses when something upstream actually changed.
  • timeout (FLOAT) - shared by the whole pack. -1 waits forever until you click (the default), 0 skips the pause and passes through instantly, >0 auto-continues after that many seconds.

The output is value (*), a byte-for-byte copy of whatever you fed in.

Under the hood it's a small server-side wait loop: the node sends a pause_session event to the frontend, your Continue and Cancel buttons light up, and the run thread blocks until you answer. The loop polls every tenth of a second for an interrupt, which is why the normal Stop button still works while it's parked - you're never trapped.

Installation

The whole pack is one repo, no dependencies, no model downloads - requirements.txt is literally empty and the pyproject.toml declares zero dependencies. Either use ComfyUI Manager and search for comfyui-rb-bridge, or:

cd ComfyUI/custom_nodes
git clone https://github.com/itribs/comfyui-rb-bridge

Restart ComfyUI and hard-refresh the browser tab (the Continue/Cancel buttons are a frontend extension, and stale JS is the #1 reason buttons don't show up). Then search "RB" in the node menu - all five nodes live under the bridge category.

Common issues

  • It just sits there. That's the design - with timeout at -1 it waits for you. Click Continue, or Stop, which also unblocks it.
  • Cancel kills more than the tail. It interrupts the entire run, not just what's after the node. If you only want to resume with the value you have, hit Continue.
  • Queued jobs wait too. A parked node blocks the queue behind it. Don't queue a pile of jobs past a pause point you won't be around to answer.
  • Buttons look wrong or never appear. This pack draws its buttons as DOM widgets on the classic canvas. If you've enabled ComfyUI's newer Nodes 2.0 rendering and widgets render broken or don't respond - a failure mode that hit rgthree's nodes and others - flip back to the classic canvas before blaming this node.
Categorybridge

Inputs (3)

NameTypeDefaultDescription
any*
force_pauseBOOLEANtrueForce pause even if input has not changed
timeoutFLOAT-1Seconds to wait. -1 = infinite, 0 = skip pause

Outputs (1)

NameTypeDescription
value*