ComfyUI-Happyhorse-Wrapper Preview Video
The Preview Video node that saves your HappyHorse clips before they expire
- file_path
Every generation node in this pack hands you a temporary video URL that expires - DashScope doesn't give you a file, it gives you a link with a shelf life. This node is the other half of that deal: it takes the URL, downloads the clip, and saves it as an MP4 in your ComfyUI output folder. It's the terminal node for the whole pack, and you should treat it as a permanent part of every workflow, not an optional nicety. Forget it once and you'll watch a great render 404 in your browser.
It also gives you the one thing the API can't: a preview you can actually watch. The pack ships a small frontend extension (in web/js) that plays the finished video as a looping, muted preview right on the canvas node - no hunting through your file browser to check whether a task finished.
The inputs
- video_url - a
STRING, marked as a forced input, so it expects to be wired from one of the pack's generation nodes (Text To Video, Image To Video, Reference To Video, Video Edit). Paste a URL in manually if you have one, but the intended path is dragging fromvideo_urloutput to this input. - filename_prefix - the base name for the saved file, defaulting to
ComfyUI-Happyhorse-Wrapper. Files come out numbered (_00001_style) so you can run the same job repeatedly without overwriting. - save_output - boolean, on by default. Flip it off if you only want the on-canvas preview and no file on disk - handy when you're iterating on prompts and don't want to litter your output folder.
The one output is file_path - the absolute path to the saved MP4, useful if you want to pass it along to another node that works with local files.
How it works
The node downloads the binary from the URL (it knows to send your API key as a Bearer token when the URL is on your configured endpoint, which is a nice touch for authenticated content), then uses ComfyUI's own get_save_image_path plumbing to write the file into the standard output directory. So your clips land exactly where every other ComfyUI output goes, and show up in the history like anything else.
Install and setup
Same one install as the rest of the pack - no extra setup, no extra dependencies beyond the shared ones:
cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/ComfyUI-Happyhorse-Wrapper
python -m pip install -r requirements.txt
Or just use ComfyUI Manager → search "ComfyUI-Happyhorse-Wrapper". Restart, and the node appears in the ComfyUI-Happyhorse-Wrapper category.
Where it bites
- It saves nothing - you probably toggled
save_outputoff at some point, orvideo_urlarrived empty (which throws a clear error). Re-enable it. - A node that never fills the preview - the download is a straight HTTP fetch, so a URL that's already expired or a clip that's too big to be worth streaming will just come back empty. Re-run the generation if that happens.
- Don't expect it to convert formats - it saves the MP4 as-is. It's a downloader with a preview, not a transcoder.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_url | STRING | — | |
| filename_prefix | STRING | ComfyUI-Happyhorse-Wrapper | — |
| save_output | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| file_path | STRING | — |