🎛️ Conditional Audio Router (Bypass)
Send real audio only on the final cycle — silence the rest
- audio
- routed_audio
- log
There are nodes that process audio and don't care when they run, and then there are audio-dependent steps you only want to pay for once. ConditionalAudioRouter is the pack's way of saying "audio only matters at the end" - on the final loop cycle it passes your real audio through, and on every intermediate cycle it substitutes a sliver of silence so the downstream audio step runs but costs almost nothing.
The display name says it all: "Conditional Audio Router (Bypass)." The bypass is the whole point. Think of a lip-sync or audio-conditioning step that has to sit in the loop graph but only has a job to do on the last pass, when the full video exists. Running it on every intermediate cycle with partial data is wasted work and a good way to inject garbage into the pipeline.
How it works
It takes your audio plus an is_final_cycle (BOOLEAN) flag - which in this pack comes from the IS_FINAL_CYCLE output of the IncrementalVideoStitcher, or from a MasterSwitch. Then:
- Final cycle → the real audio passes through untouched as
routed_audio. - Intermediate cycle → it synthesizes a 0.1-second silent waveform at the source's sample rate and returns that instead.
The 0.1s of silence is small enough to be nearly free but keeps the downstream node from choking on missing input. It also logs which branch it took.
Inputs and outputs
audio(AUDIO) - the source track, typicallysource_audiofrom the video analyzer or the stitcher'sAUDIO_OUT.is_final_cycle(BOOLEAN) - wire this from the stitcher or a Master Switch; it's what drives the decision.routed_audio(AUDIO) - the output; real audio on the last cycle, silence otherwise.log(STRING) - a status line telling you which branch fired.
That's the whole node. No state, no models - it's a valve.
When it's worth it
If your pipeline runs a lip-sync or audio-VAE step that only makes sense against the finished video, this saves you from either (a) running it every cycle on partial data, or (b) trying to conditionally skip the node entirely, which ComfyUI makes awkward. If your audio step is cheap or idempotent, this is overkill and you can wire audio straight through. The rule of thumb: reach for it when the downstream step is expensive or stateful, and only the final assembly should touch the real track.
Install
ComfyUI Manager → search "comfyui-sequential-batcher", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Meisoftcoltd/comfyui-sequential-batcher
Restart ComfyUI. No model downloads. Pack-wide reminder: launch without --highvram, and note the log messages come out in Spanish.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| is_final_cycle | BOOLEAN | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| routed_audio | AUDIO | — |
| log | STRING | — |