Nodes/ComfyTV/→ ComfyTV Image
ComfyUI Node

→ ComfyTV Image

The only way to get a normal IMAGE into a ComfyTV pipeline

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
→ ComfyTV Image
  • image
  • image
force_run_token0
project_id
parent_output_id0

Here's the mismatch at the heart of ComfyTV: ComfyUI passes images around as IMAGE tensors, but every ComfyTV stage passes them as COMFYTV_IMAGE - a URL string pointing at a PNG snapshot stored in the project. A tensor is memory; a URL is a file with history attached. The whole "per-node Run, downstream reads snapshots" design depends on the file side, which is why a tensor from IPAdapter, a ControlNet preprocessor, or any plugin simply cannot wire straight into an Image Picker or an edit stage. → ComfyTV Image is the gate that makes the hand-off possible.

The arrow points into ComfyTV. That matters: into-bridges are Stages, with a ▶ Run that writes the PNG and registers the snapshot. This isn't a converter that just executes when the graph queues - you have to Run it, and re-run it when upstream changes, or downstream keeps chewing on the last snapshot.

How it works

On Run, the node takes the upstream IMAGE tensor, saves it as a PNG under output/ComfyTV/bridge/, and emits a COMFYTV_IMAGE URL as the image output. The pack's own docs are blunt about one limitation: it keeps only the first batch item (image[:1]). A multi-frame batch from IPAdapter or a grid render loses everything but index zero - that's what → ComfyTV Images exists for.

Inputs: image (IMAGE, required), plus the internal trio force_run_token / project_id / parent_output_id that you leave at their defaults. Output: image (COMFYTV_IMAGE). That's it.

When you actually need it

  • A mesh2motion or 3D plugin's frames need to enter a ComfyTV edit pipeline.
  • An IPAdapter-styled still is headed into a ComfyTV Video Stage for image-to-video.
  • A ControlNet map needs to feed a ComfyTV Inpaint stage.
  • Really: any third-party IMAGE that has to live on the ComfyTV canvas.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart the ComfyUI backend, not just the browser tab. ComfyUI Manager finds it by searching "ComfyTV". The README's two recurring gotchas: on Desktop/macOS/multi-install setups the relative cd can drop the clone into the wrong instance - read the startup log for the actual base path and clone into that absolute path, quoted - and the first level of custom_nodes/ComfyTV/ must contain __init__.py (a nested ComfyTV/ComfyTV/… folder needs moving up).

pyproject.toml declares zero Python dependencies, so there's no dependency chase - the pack leans on ComfyUI's own runtime.

Troubleshooting

  • Wired but downstream is empty. You didn't Run the bridge. Into-bridges don't snapshot on Queue - hit ▶ Run.
  • Only one image showing from a batch. Expected: → ComfyTV Image keeps image[:1]. Use → ComfyTV Images for batches, or Create Video (fps)→ ComfyTV Video for frame sequences.
  • Upstream changed but output didn't. Snapshots are sticky by design - re-run the bridge.
  • Node not showing up. Wrong instance or nested folder, then restart the backend properly.
CategoryComfyTV/Bridge

Inputs (4)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
imageIMAGE

Outputs (1)

NameTypeDescription
imageCOMFYTV_IMAGE