bEpic Send To Image Viewer
Get a real review panel for ComfyUI
- input
- image
ComfyUI's built-in preview is fine until you're doing something serious - batch after batch of generations, a video you need to scrub, two outputs you want side by side. Then you're squinting at a thumbnail inside a node and wishing you had a proper review monitor. That's exactly what this node is: bEpic Send To Image Viewer is the front door to the bEpic Image Viewer, a Nuke/RV-style review panel that floats over your graph.
The idea is simple. Drop this node anywhere a wire has pixels, run the workflow, and the image - or mask, or whole video - lands in a dockable viewer with tabs, a 20-snapshot history per tab, zoom/pan, timeline playback, split-screen comparison, an exposure slider from −4 to +4 EV, and per-channel RGB inspection. If you've ever needed to eyeball whether a generation is actually dark in the shadows or just underexposed in your head, that exposure slider alone is worth the install.
How it works
Mechanically it's a glorified passthrough with a side effect. The node writes the incoming frames to ComfyUI's temp directory as PNGs and pushes them to the viewer over the websocket (bepic.viewer.update); the image output is just the input handed back untouched, so you can hang the node inline in a chain instead of off to the side. Flip save_to_output on and it also persists the frames to ComfyUI's output folder in your chosen format, registering them in prompt history exactly like a SaveImage node. For video, the pack can also eat a native ComfyUI VIDEO object and hand the viewer a playable file.
The inputs that actually matter
Most of these you can leave alone, but three are worth knowing:
- input - anything with pixels: IMAGE, MASK, or a VIDEO object. The widget accepts
*so it won't yell at you, but a node that outputs some exotic non-tensor thing simply won't preview. - tab_name - give each Send node a name here. Distinct names create separate tabs, which is what makes the compare workflow work: two tabs, shift-click both, get a split-screen wipe.
- save_to_output - off by default, and that's the trap: if you expect files on disk and didn't flip it, you'll find nothing. When on, file_format (png, tiff, jpg, bmp, webp, or the video trio mp4/mov/webm) and fps appear. The fps field only matters for the video formats - the UI hides it for stills.
Installing it
ComfyUI Manager is the easy route: search ComfyUI-ImageViewer, install, restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/szprivate/ComfyUI-ImageViewer.git
pip install -r ComfyUI-ImageViewer/requirements.txt
Then restart and click the "Toggle bEpic Image Viewer" button that appears in the top action bar. The requirements are just Pillow and numpy - both already live in ComfyUI, so this is one of the lightest installs you'll do. Video export is the only thing with an extra hidden cost: mp4/mov/webm need imageio and imageio_ffmpeg, which are lazy-loaded and only complained about if you actually ask for a video format without them.
Gotchas
Nothing shows up until you run the workflow - the viewer is fed at execution time, not by wires alone. And read the license before you use this for paid work: the pack is free for personal and non-commercial use, but commercial use is explicitly prohibited without written permission from the author (Sebastian Zilius / bEpic GmbH). The author is a VFX person building this as a Nuke-style review tool, and it shows - in a good way.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| input | * | — | |
| tab_name | STRING | — | |
| save_to_output | BOOLEAN | false | — |
| file_format | COMBO | png | 8 options: png, tiff, jpg, bmp, webp, mp4, +2 |
| fps | FLOAT | 24.000.01–1000 | — |
| filename_prefix | STRING | bEpic | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | * | — |