FL Save WebM
Export an image batch as an alpha-capable WebM
- images
- STRING
Most "save video" nodes in the ComfyUI ecosystem hand you an MP4, and MP4 doesn't do transparency. If your batch has an alpha channel you actually want to keep - an isolated animated element, a transparent overlay clip - MP4 quietly throws it away. FL_SaveWebM, one of the video-adjacent tools in the sprawling Fill-Nodes pack (filliptm), exports to WebM with VP9 instead, which does support alpha, so this is the node you reach for specifically when transparency needs to survive the export.
How it works
It's imageio with an ffmpeg backend under the hood, encoding your image batch as VP9-in-WebM at whatever fps and quality you set. If preserve_alpha is enabled, it keeps the alpha channel through encoding instead of flattening onto a background. It includes fallback handling if the encode fails partway, so you're less likely to end up with a silently corrupt file.
The inputs and outputs that matter
images- your batch to encode.directory(default./output/webm) andfilename_prefix(defaultanimation) - where the file lands and what it's named.fps(default 15, 1–60) - playback frame rate.preserve_alpha(disable/enable, default disabled) - the whole reason to reach for this node over a plain MP4 saver. Turn it on if your batch actually carries an alpha channel worth keeping.quality(default 5, 0–10) - VP9 quality tradeoff; higher is cleaner and bigger.loop_count(default 0) - how many times the WebM loops when played as a looping asset; 0 typically means "loop forever" in most players, consistent with how GIF/APNG loop counts work.- Optional
metadata_comment- a text string embedded in the file's metadata, defaulting to a note that it was made with this node. Harmless to leave as-is, or overwrite it with your own provenance note.
Output is a single STRING - the path the file was written to, same pattern as the pack's other save nodes, handy for confirming where it landed or piping into a downstream notification.
How to install it
ComfyUI Manager: search "Fill-Nodes", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt
The meaningful dependency here is ffmpeg - imageio's ffmpeg backend usually bundles its own binary through pip, so this typically works out of the box, but on a locked-down or unusual environment it's worth confirming ffmpeg is actually reachable before you're debugging an encode failure that's really a missing-binary problem. This is a big pack overall; installing it for one video node pulls in a lot of dependencies unrelated to this specific node, which is just the tradeoff of a monolith pack like this.
Common issues & troubleshooting
Alpha isn't showing up in the output. Check preserve_alpha is actually set to enable - it defaults to disabled, and a lot of people assume WebM export preserves alpha automatically just because the format supports it.
Encode fails or produces a broken file. Most often this traces back to ffmpeg not being available in the environment, or an inconsistent batch (mismatched frame dimensions). Confirm every frame in the batch is the same size before feeding it in.
File plays but loops oddly (or not at all) in your target app. loop_count behavior is player-dependent - some web players and video tools interpret WebM loop metadata differently. If a specific target platform ignores it, that's the player's handling, not something to keep fighting in the node.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| directory | STRING | ./output/webm | — |
| filename_prefix | STRING | animation | — |
| fps | INT | 151–60 | — |
| preserve_alpha | COMBO | disable | 2 options: disable, enable |
| loop_count | INT | 00–100 | — |
| quality | FLOAT | 5.00–10 | — |
| metadata_commentopt | STRING | Created with ComfyUI FL_SaveWebM | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |