CozyGen Output
The node that tells your phone the image is done — CozyGen Output
- images
- images
CozyGen is a mobile-friendly web controller for ComfyUI - you build your workflow on the desktop, then drive it from a browser at http://<your-comfyui-ip>:8188/cozygen. CozyGenOutput is the closing piece of that loop. It's the replacement for SaveImage in any workflow you want to control remotely: it saves your image, embeds the prompt metadata like ComfyUI always does, and then tells the web page "hey, there's a new image" so the preview updates live.
Without it, the pack's web UI is blind. CozyGenOutput is the only node that pings the front end when a generation finishes, so think of it as the "done" signal plus the file saver in one.
How it works
Mechanically it's a subclass of ComfyUI's own SaveImage, so everything you already know about that node still applies: it writes a PNG into your output folder with the full prompt/seed/graph metadata embedded, and it returns the image so you can keep chaining. On top of that, after saving it fires a cozygen_batch_ready WebSocket message to the web UI carrying the /view?... URLs of every image it just wrote. That message is what makes the browser's preview and gallery update without you refreshing. Because it collects the whole batch, a batch of 8 shows you all 8 thumbnails, not just the last one.
The inputs that matter:
- images - the IMAGE tensor. Comes straight from VAEDecode (or your upscale/refine chain). This is the only required input.
- filename_prefix - where it saves, defaulting to
CozyGen/output. If you want your phone gallery organized by run, change this; it maps to a subfolder under ComfyUI's output directory.
The single images output is just the tensor passing through, so you can wire it into a second saver or comparison node without a duplicate save eating your disk.
The preview gotcha (known and real)
The README owns up to one genuinely annoying behavior: if the browser tab isn't the active tab when generation completes, the preview doesn't show up. The WebSocket event fires exactly once and it's easy to miss. The image is still saved and still lands in the gallery - it's purely the "live preview" that's lost, and switching back to the gallery tab recovers it. Don't go hunting for a bug in your workflow; that's just how it works.
Install
Same story as the rest of the pack. ComfyUI Manager, search "CozyGen", or:
cd ComfyUI/custom_nodes
git clone https://github.com/gsusgg/ComfyUI_CozyGen.git
then restart ComfyUI. This node needs nothing beyond aiohttp, which ComfyUI already has. To use it from a phone on the same network, start ComfyUI with --listen and browse to <your-comfyui-ip>:8188/cozygen.
One workflow note that trips people up: the web page only lists workflows that were exported in API format into custom_nodes/ComfyUI_CozyGen/workflows/. If your custom workflow shows up in the list but none of the parameter boxes appear, you saved the wrong format - re-export it as API and the fields snap in. It's a vibe-coded project (built with Gemini, author says support is not promised), so treat the graph as a personal remote and it'll treat you fine.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefixopt | STRING | CozyGen/output | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |