CozyGen Video Output
Turn a video workflow into a phone preview — CozyGen Video Output
- images
CozyGen is a mobile-friendly web controller for ComfyUI - build the graph once on the desktop, then drive it from a browser at http://<your-comfyui-ip>:8188/cozygen. CozyGenVideoOutput is the pack's answer to "okay, but what about video?" It's an output node that takes a batch of frames - exactly what video models like Wan 2.2 emit from VAEDecode - encodes them to a real video file, and streams the result back to the phone so you can watch it without digging through folders. The pack even ships Wan 2.2 text-to-video and image-to-video GGUF example workflows wired up around it.
Where CozyGenOutput saves stills, this saves clips. Both are output nodes; you use one or the other at the end of your chain.
How it works
It feeds your IMAGE tensor through imageio and writes a file into ComfyUI's output directory. The format is your choice:
- video/webm and video/mp4 - standard video, encoded at your frame_rate (default 8, capped at 24 - plenty for most local video models).
- image/gif - frame rate becomes per-frame duration, and loop_count actually matters here: 0 (the default) means loop forever; a number sets how many times it plays.
pingpong is the fun one. Flip it on and the node mirrors the clip - forward, then reverse - so a 3-second generation becomes a 6-second loop that ends where it began. It's a classic for looping previews and it costs you nothing but encode time. The other inputs are filename_prefix (defaults to CozyGen/video) and images, the required batch of frames. There are no outputs - it's a terminal node, exactly like a SaveImage.
After writing the file it fires a cozygen_video_ready WebSocket message to the web UI with a /view URL, which is what puts the clip in the phone's preview. Note the same caveat as the image output: if the browser tab isn't active when generation finishes, that one-shot message gets missed - the file is still saved, you just grab it from the gallery instead.
Install - and the dependency the README gets wrong
Install the pack via ComfyUI Manager (search "CozyGen") or:
cd ComfyUI/custom_nodes
git clone https://github.com/gsusgg/ComfyUI_CozyGen.git
cd ComfyUI_CozyGen
pip install -r requirements.txt
Here's where the README lies a little: it claims the only Python dependency is aiohttp, but this node runs on imageio - and the actual requirements file pulls in imageio-ffmpeg too, because that's the binary that does the mp4/webm encoding. The still-image nodes genuinely are aiohttp-only; if you skip the requirements install and then hit an error about ffmpeg when encoding video, that's your missing piece. If you installed cleanly and the web UI says "build not found" instead of loading, the prebuilt front end didn't make it onto your machine - re-clone or rebuild the js directory.
One more reality check: this is a vibe-coded project, GPL-3.0, and the author is upfront that support isn't promised. It's a genuinely handy way to check a video gen from the couch - just don't expect SwarmUI-grade polish under the hood.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | INT | 81–24 | — |
| loop_count | INT | 00–100 | — |
| filename_prefix | STRING | CozyGen/video | — |
| format | COMBO | 3 options: video/webm, video/mp4, image/gif | |
| pingpong | BOOLEAN | false | — |
Outputs (0)
No outputs