Nodes/EBU Workflow/EBU String Wait For Image
ComfyUI Node

EBU String Wait For Image

A string that refuses to move until an image exists

By burnsbert·Created about a year ago·Updated 12 months ago· 0
EBU String Wait For Image
  • wait_for_image
  • output_string
input_string

EBU String Wait For Image looks like it does nothing - string in, identical string out. Which is exactly the point. It's a passthrough gate: the value travels through unchanged, but the node only completes if a specific image actually materializes. In ComfyUI's execution model, that's a scheduling tool dressed up as a string node.

It's part of the EBU Workflow pack (burnsbert/ComfyUI-EBU-Workflow), which ships a trio of these gates - for strings, images, and models. All three share one job: force an ordering guarantee in the graph.

Why "wait for an image" is even a thing

ComfyUI executes a node once all of its inputs are ready - the graph's dependency edges are the scheduler. Normally you get ordering for free. But when you have two independent branches that must not race - say, a text generation branch and an image branch that both feed a final save - you sometimes need an explicit edge to make the ordering visible and enforceable. This node creates that edge: by feeding wait_for_image in, you've told ComfyUI this node (and everything downstream of its string output) must run after that image exists.

There's also a guard-rail flavor. If wait_for_image comes up empty - a Load Image node with no file selected, or an upstream node that returned a zero-length batch - the node raises ValueError("Image not loaded. Cannot proceed.") and the run fails loudly. That's deliberate: better a clear crash than silently proceeding with a missing dependency.

Inputs and output

  • input_string (STRING, multiline) - the text that passes through.
  • wait_for_image (IMAGE) - the dependency. This is the input that does the actual work; it's not used as data.
  • output_string (STRING) - the passthrough value, byte-for-byte.

Where it fits (and where it doesn't)

Honest take: for a single graph execution, ComfyUI's normal wiring already orders things, and this node is mostly redundant. Where it earns its keep:

  • Multi-stage workflows where you want a prompt or filename held until an image is confirmed - e.g. a save node whose filename is derived from a string, but which must not fire before the image pass completes.
  • Explicit dependencies that survive refactoring. When you collapse groups and reroute branches, an explicit wait edge survives edits that implicit ordering doesn't.
  • Fail-fast setups where a missing image should stop the whole run instead of silently producing a half-baked output.

If you're a beginner, you likely don't need it - and you shouldn't reach for it to fix a bug without understanding which branch you're actually ordering.

Installing

Standard EBU Workflow install - no dependencies beyond Python's standard library, no model files. ComfyUI Manager (search "EBU Workflow"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/burnsbert/ComfyUI-EBU-Workflow

then restart ComfyUI.

Gotchas

  • The error it raises is a hard abort of the run. If wait_for_image can legitimately be empty in your flow, don't use this node as the gate - use a conditional switch instead.
  • It passes through whatever string it's given, including an empty one. The gate checks the image, not your text.
  • It only checks that the image batch is non-empty; a 1-pixel image passes the gate as readily as a 4K one.
CategoryUtility

Inputs (2)

NameTypeDefaultDescription
input_stringSTRING
wait_for_imageIMAGE

Outputs (1)

NameTypeDescription
output_stringSTRING