ComfyUI Extension: ComfyUI-Image-Conveyor
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
A sequential drag-and-drop image queue node for ComfyUI.
README
ComfyUI Image Conveyor
A sequential drag-and-drop image queue node for ComfyUI.
<img width="538" height="728" alt="image" src="https://github.com/user-attachments/assets/5dc146c5-1971-493f-8311-12d93b867a05" />What it does
- Drag and drop any number of images into the node
- Drag and drop folders onto the node to enqueue supported images recursively
- Optional Catch canvas drops mode can route external image/folder drops from anywhere on the graph canvas into the conveyor
- Shows the queued images directly in the node UI with thumbnails
- The visible thumbnail list expands with the node height instead of being capped to a fixed row count; taller nodes show more queued images
- Processes one image per prompt execution in queue order
- If you queue multiple prompt runs, the next pending items are reserved and then processed sequentially
- Optional Auto queue all pending mode can expand a single queue action into one queued prompt per pending image
- Marks processed items automatically when the loader node executes successfully
- Lets you manually reset items to pending, force them to processed, delete them, reorder them, and sort them
Why this exists
This node is for sequential in-graph image queueing.
The main use case is dropping in a set of images, keeping the queue visible directly on the node, and consuming them one prompt execution at a time without relying on an external folder iterator workflow.
Existing batch image loaders generally solve a different problem. Many are oriented around folder iteration, one-shot batch loading, or less explicit queue state. Image Conveyor is meant to give you a visible in-graph queue, clear item state, manual intervention when needed, and predictable sequential consumption across queued prompt runs.
Canvas-wide drop capture
Enable Catch canvas drops on a conveyor node to let it receive external image and folder drops made anywhere inside the graph canvas, not only drops made directly over the node.
Routing is intentionally conservative:
- Dropping directly on the conveyor widget still uses the normal in-node drop path.
- If exactly one conveyor with Catch canvas drops enabled is selected, canvas-level drops go to that conveyor.
- If the pointer is over a conveyor with Catch canvas drops enabled, that conveyor receives the drop.
- If exactly one conveyor in the graph has Catch canvas drops enabled, it receives the drop.
- If multiple conveyors have it enabled and no single target can be inferred, the drop is left to ComfyUI's normal canvas drop handling. Select the target conveyor first.
The interceptor only consumes external image/folder drops after a conveyor target has been resolved. JSON/workflow drops are left to ComfyUI.
Queue / state behavior
Each item has a status:
pendingqueuedprocessed
This makes it easy to distinguish between items that are still waiting, items already reserved by queued prompt runs, and items that are done.
If a prompt reserves an image but fails before the loader node executes, that item can remain queued. There is a Clear queued action to release those reservations.
Frontend integration
This package is VueNodes-compatible with the ComfyUI frontend.
Implementation detail:
- it uses the frontend's supported custom widget + DOMWidget path
- in VueNodes mode, the frontend renders that widget through its Vue-side
WidgetDOMbridge
So this is not a compiled custom .vue SFC shipped by the extension, and not a brittle ad-hoc canvas-only hack. It is wired into the supported frontend rendering path.
Features
- click to add images, or drag/drop images and folders
- thumbnail list directly in-node
- per-item status:
pending,queued,processed - per-item quick actions: pending, done, delete
- bulk actions:
- select all / clear selection
- set selected pending
- set selected processed
- delete selected
- clear queued
- remove processed
- manual drag-and-drop reorder
- sorting:
- manual order
- name ascending / descending
- newest / oldest
- status
- optional Auto queue all pending toggle in the node UI
- optional Catch canvas drops toggle for sending canvas-level external image/folder drops into the conveyor
Outputs
The node exposes:
imagemaskpathindexremaining_pendingsource_path
So it can be used both as a simple sequential loader and as part of queue-driven workflows that need metadata and queue state.
path is the ComfyUI-side annotated input path that the node actually loads.
source_path is an optional best-effort hint for the original dropped path when the runtime exposes one
(for example a folder-relative path during directory drops, or a native path in runtimes that explicitly provide it).
Absolute native paths are intentionally redacted to filename-only before persistence to avoid leaking local directory details in exported workflows.
Installation
Option 1: ComfyUI-Manager
Install ComfyUI Image Conveyor through ComfyUI-Manager, then restart ComfyUI.
Option 2: Manual install
Clone this repository into ComfyUI/custom_nodes/:
cd ComfyUI/custom_nodes
git clone https://github.com/xmarre/ComfyUI-Image-Conveyor.git
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.