Nodes/ComfyUI-TJ_NODE/Go & Stop (TJ)
ComfyUI Node

Go & Stop (TJ)

Pause the run and make you click Go

By designloves2·Created 4 months ago·Updated 3 days ago· 13
Go & Stop (TJ)
  • in_1
  • out_1
get_name
set_name
sound_noticefalse
timeout_sec0

Go & Stop (TJ) is a manual checkpoint you drop into a workflow when you want to look at what's happened so far and decide, as a human, whether the run continues. It passes whatever value you feed it straight through - but it won't pass it until you click Go on its UI overlay. Click Stop instead and it kills the run. That's the entire trick, and it's more useful than it sounds for anything that isn't a fire-and-forget generation: reviewing an intermediate result before a heavy upscale, checking a face before a 2× pass, or approving each frame in a video pipeline.

How it works - and the catch you need to respect

Mechanically, when execution reaches the node it flips itself into a "waiting" state, tells the frontend to show the overlay, and then blocks. Critically, it blocks on the ComfyUI execution thread itself - the node sits in a loop polling for a Go/Stop decision while the whole queue is paused. The frontend talks back through the pack's /tj_go_stop/go/{id} and /stop/{id} endpoints (sound_notice optionally pings you when it starts waiting), but nothing else runs until you answer.

That's exactly why timeout_sec isn't optional polish - it's the emergency brake. Set it (it's seconds, 0 = wait forever) and on timeout the node treats it as a Stop and raises an interrupt, so a workflow you forgot to babysit can't hang your queue indefinitely. The README is explicit: because this occupies the execution thread, setting a timeout is recommended. If you leave it at 0 and walk away, your queue is stopped until you come back.

The pass-through value is ANY-typed (in_1out_1), so you can park anything here - an image, a string, a latent - and it arrives downstream untouched. It also has get_name/set_name wireless slots, so the value can come from or go to TJ's provider registry if you're in a wireless architecture.

Inputs and outputs that matter

  • in_1 - whatever you're gating (any type).
  • timeout_sec - max wait in seconds; 0 = unlimited. Set this.
  • sound_notice - play a sound when the gate starts waiting.
  • out_1 - the same value, passed through after Go.

Install

ComfyUI Manager → Install Custom Nodes → search TJ_NODE, or:

cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE

Restart ComfyUI. No models or dependencies. Category: ✨ TJ_Node/Utility.

When it's worth it (and when it isn't)

The honest use case is a workflow you're actively supervising - the checkpoint pattern, where you inspect before committing a long downstream pass. For fully automated batch runs it's the wrong tool; that's what the pack's LLM Content Quality Controller is for, since it gates on a programmatic review instead of a human. And be warned: because Go & Stop pauses the whole execution thread, you can't use two of them to queue up multiple checkpoints and answer them later - the second one won't even start waiting until the first is resolved. One gate per supervised run, a sane timeout, and it's a genuinely pleasant way to keep control without babysitting the preview window.

Category ✨ TJ_Node/Utility

Inputs (5)

NameTypeDefaultDescription
in_1*
get_nameSTRING
set_nameSTRING
sound_noticeBOOLEANfalse
timeout_secINT00–3600최대 대기 시간(초). 0 = 무제한. 시간 초과 시 자동으로 Stop 처리됩니다.

Outputs (1)

NameTypeDescription
out_1*