AudioX Video Muter
The node whose name oversells it (and that's fine)
- video
- muted_video
Let's be honest about this node: AudioX Video Muter does not actually strip audio from a video. Feed it a video frame batch and it clones the frames, logs "audio track removed" to the console, and hands the frames back unchanged. No ffmpeg invocation, no audio data touched. The name promises a process; the code performs a passthrough with a very confident print statement.
So why does it exist? Because in ComfyUI, a video is a batch of IMAGE tensors, and an IMAGE tensor has no audio track at all. When you re-encode frames through a video-save node (VHS VideoCombine or similar), the output has whatever audio you attach - usually nothing, unless you explicitly mux it. So the "muting" is already a property of how ComfyUI handles video. This node makes that intent explicit and structural: put it in the path, and there's a guarantee in your graph that the frames being handed downstream carry no audio baggage.
Where it earns its place is workflow clarity. When you're replacing a video's original audio with generated audio (the classic AudioX pattern: load video → mute → generate → combine → save), a node that explicitly says "no original audio here" prevents the old "wait, where is that sound coming from" confusion, and it's a placeholder you can hang automation off.
Inputs & output
- video - an
IMAGEframe batch (from a video load node). - preserve_metadata (optional, default on) - exists as a flag; in practice the node is a pass-through either way.
Output is muted_video (IMAGE) - the same frames, ready for AudioX Video Audio Combiner or a save node.
Install & troubleshooting
Standard pack install - no model weights required:
cd ComfyUI/custom_nodes
git clone https://github.com/lum3on/ComfyUI-StableAudioX.git
cd ComfyUI-StableAudioX
pip install -r requirements.txt
The things people get confused by, all of which the source code clears up:
- "It didn't remove the audio!" Right - it never did. The audio disappears at the encode step when your save node writes frames without an audio track. If your workflow can't have the original audio leaking through, check the save node, not this one.
- It needs frames, not a file path. Feeding it a video file gives a type error. Load with a frame-output video node first.
It's the pack's most honest lightweight node: useful as an explicit step in a replace-audio workflow, harmless as a passthrough, and a good lesson in what "muting" means inside ComfyUI's frame-based video model. Use it as a signpost in your graph, not as an actual audio tool.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| video | IMAGE | — | |
| preserve_metadataopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| muted_video | IMAGE | — |