Video Save (Alpha Support)
The node that saves your transparency — ProRes 4444 and VP9 alpha, no compositor required
- images
- video_path
If you've ever rendered a transparent video in ComfyUI and gotten a file where the "transparency" is just a black background, you know the pain. Most video savers quietly drop the alpha channel or require you to fiddle VHS into a specific pixel format. Video Save (Alpha Support) is the pack's answer: it takes an RGBA image batch and writes it out as a video with a real alpha channel - ProRes 4444, VP9/WebM, or QuickTime Animation - and then verifies the result with ffprobe so you know it actually worked.
It lives in the "Lyrics" category because it ships as the save-half of the Comfyui-Lyrics pack (the one that draws transparent scrolling lyrics). But nothing about it is lyrics-specific: feed it any RGBA image sequence - cutout frames, animated overlays, anything with a real alpha channel - and it does the same job.
How it works
The node is an output node, so it always runs when its inputs are ready. It writes each frame of the images tensor out as a PNG (to a temp dir, or a RAM disk at /dev/shm if one's available - a nice touch for speed), then shells out to FFmpeg to encode. Three formats carry alpha: prores_ks gives ProRes 4444 .mov with yuva444p10le (the profile-4 flavor that actually supports transparency), libvpx-vp9 gives an alpha-capable .webm, and qtrle is the lossless-but-huge QuickTime Animation route. If your input images happen to be plain RGB, it pads an opaque alpha channel and carries on rather than erroring. It returns a single string, video_path, pointing at the finished file in ComfyUI's outputs directory.
Inputs worth knowing
images- the required IMAGE tensor; connect your RGBA frame batch here.format- the codec. Defaultprores_ksis the right call for editing workflows; VP9 for web delivery.filename_prefix- just the name; a random four-digit suffix gets appended.quality- 1–31, default 5. Semantics shift per codec: for ProRes it's a qscale (lower = better), for VP9 it's CRF (also lower = better). So think of it as "lower = better quality, bigger file."
One honesty note: force_size exists in the input schema, but as shipped it's a dead parameter - it's accepted and never used anywhere in the save logic. Don't expect it to change your dimensions.
Installing it
Same pack as the scroll node, so one install gets you both. ComfyUI Manager: search Comfyui-Lyrics. Manually:
cd ComfyUI/custom_nodes/
git clone https://github.com/ahkimkoo/Comfyui-Lyrics.git
cd Comfyui-Lyrics
pip install -r requirements.txt
The hard dependency here is FFmpeg on your PATH. Unlike the lyrics node, this one doesn't look for a bundled bin/ffmpeg, so a bare install without system FFmpeg fails immediately. pip install -r requirements.txt is overkill if you only want the saver (it drags in openai-whisper, which only the transcription node uses), but it's what the pack declares.
Gotchas
- The
pngformat option is a trap. As shipped it writes frames to a temp directory, skips encoding, and returns a path to a.pngfile that was never actually written to outputs - then cleans up the frames. If you want a PNG sequence, use ComfyUI's regularSave Imagenode instead. - QuickTime Player and VLC won't show the transparency. Both display the alpha as a solid black background. Check the file in Resolve, Premiere, or FCP - or trust the node's own ffprobe log, which prints the final pixel format.
- ProRes 4444 files are chunky. The pack's own docs ballpark 200–500 MB for four minutes at 720×1280. Use VP9 if you need something shareable.
- FFmpeg failing usually means a version too old to encode ProRes alpha (
-profile:v 4+yuva444p10le). Update FFmpeg, not the node.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| frame_rate | FLOAT | 25.001–120 | — |
| filename_prefix | STRING | lyrics_video | — |
| format | COMBO | prores_ks | 4 options: prores_ks, libvpx-vp9, qtrle, png |
| force_sizeopt | BOOLEAN | false | — |
| qualityopt | INT | 51–31 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |