Delay Node (Creepybits)
The Pause Button That Started in a Reddit Thread
- image
- image
Delay Node is exactly what it sounds like: it takes an image, sleeps for the number of seconds you specify, and passes the image through. Nothing more. It's the rare node whose entire purpose is to make your workflow slower - and it's worth having anyway. The pack's own docs describe it as "the pacemaker of your workflow," which is a nicer way of saying "this is where we wait."
Where it came from
Fun bit of history: in August 2023, someone on r/comfyui asked whether any node could insert a delay between batch steps, hoping a pause would stop his crashes when hammering out hundreds of images in a row. The replies were "I don't think there is" and "you could make one yourself" - and a commenter pointed to this very pack as where a working delay node lived. The Delay Node was born from a real, mundane problem: batch processing running too hot and fast. It's a small node with a real origin story.
How it works
The mechanism is brutally simple - time.sleep(seconds):
seconds(float, default 1.0, min 0.1) - how long to holdimage- the image to carry through
Output is the same image, unchanged, delivered after the sleep. There's a companion Delay Text Node that does the identical thing for a string instead of an image. That's the whole family: blocking delays.
When a blocking delay is actually the right tool
Because it blocks the ComfyUI worker thread, this is a blunt instrument - don't build a workflow around giant sleep values on a busy queue, because a 60-second delay ties up the backend for everyone. But it's the right tool for a few genuine situations:
- Sequencing. Your first workflow saves an image; the next stage needs that file to exist and be flush before it reads it. A short delay guarantees the ordering when node order alone isn't enough.
- External services. If a step of your graph calls out to a web API that needs a moment to finish rendering before you poll it, a pause lets the API catch up.
- Rate limiting. Hitting a remote service that throttles? Space out the calls.
The pack even pairs it with its "Chain Workflow (API)" node, which queues a second workflow after the current one finishes - the delay makes sure the handoff happens after the save is truly done.
Gotchas
The one real trap: state and time live in the worker. A time.sleep blocks everything ComfyUI is doing on that worker, not just this branch of the graph. Keep values small (a few seconds), and if you're running multiple queue jobs, remember they'll serialize behind your delay. Also, it doesn't cancel - once the sleep starts, it finishes. If you want "wait until things go quiet" rather than "wait N seconds," that's the pack's Dynamic Delay Text node, a debouncer with a different personality entirely.
Installing it
It ships with the whole Creepybits pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Creepybits/ComfyUI-Creepy_nodes.git
Restart ComfyUI, or find "Creepy" in ComfyUI Manager. No models to download; the pack's requirements install on first launch. A pause button with a checkered past and a clear job - sometimes that's all you need.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| seconds | FLOAT | 1.0 | — |
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |