Audio Picker
Audio Picker — the node that lets you pick the take, not re-run the chain
- batch
- audio
If you generate music with ComfyTV's Music Stage, you'll notice the canvas grows an Audio Picker right after your first Run - it spawns automatically. That's this node. It's the "keep the good takes, ditch the rest" step, and it exists because ComfyTV's generation nodes produce sets of outputs, not one file. Something has to pick the winner, and a picker is the honest way to do it: you hear them, you click, the flow continues with your choice.
How it behaves: any audio that arrives on the batch input gets appended to a pool of tracks. The pool survives regeneration and disconnects - the author's tooltip spells it out: new upstream tracks are "appended (deduped by URL) and survive regeneration/disconnect; emptied by the Clear button." So you can re-run the Music Stage four times, keep all four takes in the pool, and click through them. The selected_index widget is the 1-indexed track you've picked - it's hidden, because you set it by clicking a track in the node's UI rather than typing a number. The pool field is the JSON the UI manages for you. Both are set by the frontend, not by hand.
The output is a single audio track - the one you selected - which you then wire into anything downstream: an Audio Mix, a stem split, a reverb, or straight into a Video Stage's audio input for audio-driven video. The picker is where "generate → pick → edit → composite → export" actually forks.
Honest take: as a manual tool it's just a nicer way to do what you'd otherwise do by re-running and grabbing a file. The real payoff is that it fits ComfyTV's per-node Run model - you can re-run the generation above it and the picker keeps your previous selection until you change it, instead of nuking your choice the moment anything upstream moves. If you've ever fought a ComfyUI workflow where regenerating a batch silently reset your downstream picks, this is the fix in node form.
Install is the pack-wide story: ComfyUI Manager search "ComfyTV", or git clone https://github.com/jtydhr88/ComfyTV into custom_nodes/ and fully restart the backend. On Desktop/macOS with multiple ComfyUI installs, clone by absolute path into the running instance or the pack won't load. No extra pip dependencies, no models. One note: unlike the FX stages, this one has no force_run_token - it's purely a frontend-driven selection node, so if a fresh pool isn't appearing, the Clear button or a reconnect of the batch wire is the fix, not a re-run.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| selected_index | INT | 11–999 | Which track to extract (1-indexed). Hidden — set by clicking a track. |
| pool | STRING | Accumulated audio pool (JSON). Managed by the UI: new upstream tracks are appended (deduped by URL) and survive regeneration/disconnect; emptied by the Clear button. | |
| batchopt | COMFYTV_AUDIO | Upstream audio source. Each generated track is appended to the pool. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | COMFYTV_AUDIO | — |