The opening request — “isolate the bass, keep the vocal reverb” — is a sharper design constraint than “run Demucs and pick a stem.” Fixed 4-stem outputs already give you a bass stem; they do not give you control over where vocal reverb tails landed. Those usually sit on the vocal stem or smear into other, so “keep the reverb” while taking the bass is a remix of stems, and “clean vocals, no reverb” is the opposite refinement. CLAP-plus-classifier routing can map vocals only or bass and drums onto existing slots cheaply; the reverb cases are why GSN-on-demand exists, and they probably need to be first-class flags in the constrained vocabulary rather than free-form sentences.
The TensorRT path you sketched (FP16, kernel fusion, dynamic batching, ~400 ms/chunk down to under 80 ms on an RTX 3050, then overlap-add with phase alignment) is the part that could actually hit a live loop. The honest limits match that: 80–120 ms plus a ~200 ms lookahead is fine for a lot of DJ material and tight for jazz / improv; full 4-stem at 44.1 kHz will not fit every laptop’s VRAM; and phase smear on transients is the failure mode worth measuring first. An 80 ms average that dulls snare and hat attacks will feel worse than the latency number.
If you were implementing the fixed vocabulary next, would refinement flags (no reverb, keep reverb) sit beside stem names so the router knows when to pay for GSN, and are you planning to sweep hop size / overlap against transient smear rather than only reporting mean chunk latency?