Room dereverb BS-RoFormer (anvuew) GGUF

anvuew's dereverb_room, a mono Band-Split RoFormer that removes room reverb from vocals, converted to GGUF for stems.cpp, a C++/ggml stem separator that runs on CPU, CUDA, Vulkan and Metal with no Python. It estimates the dry vocal (noreverb); reverb is the mix minus that estimate. Like the upstream model, these weights are licensed under the GNU GPL v3 (see LICENSE).

file size
bs_roformer_dereverb_room-29M-v1.0-F32.gguf 112.3 MiB

Download and run

git clone --recursive https://github.com/betweentwomidnights/stems.cpp && cd stems.cpp
./build.sh vulkan                          # or cpu | cuda | metal   (Windows: build.cmd)
./models.sh bs_roformer_dereverb_room      # stems.cpp v0.1.4 and later
build-vulkan/bin/stems-split -m models/bs_roformer_dereverb_room-29M-v1.0-F32.gguf -i vocal.wav -o dry/ --stems noreverb

stems-server finds it by model name ("model": "bs_roformer_dereverb_room").

The network is mono. stems.cpp runs it once per channel of a stereo input and returns stereo stems, so a stereo separation costs twice a mono one, and each output channel is exactly what separating that channel alone gives. A mono input comes back as two identical channels.

Parity with PyTorch

SNR of the C++ output against ZFTurbo's MSST BSRoformer with the upstream config, run in float32 on CPU, on a mono downmix of a 20 s clip (demucs' test.mp3): seg is the first 8.7 s chunk, full is the chunked demix_track over the whole clip. Measured 2026-10-09 with ggml 9d0d910b on a Core Ultra 9 275HX and an RTX 5070 Laptop.

backend seg cos / SNR full cos / SNR 20 s mono clip
CPU 0.9999997 / 62.4 dB 0.9999998 / 64.6 dB 51.4 s
CUDA 0.9999997 / 62.4 dB 0.9999998 / 64.6 dB 6.4 s
Vulkan 0.9999997 / 62.4 dB 0.9999998 / 64.6 dB 6.3 s
Metal (Apple M4) 0.9999999 / 69.9 dB 0.9999999 / 68.8 dB 26.5 s

The Metal row is against references dumped on the M4 (ggml 4ad3b30b, 2026-10-10). On Metal a stereo separation runs at about 0.5x realtime.

Sources, changes and license

  • Upstream: anvuew/dereverb_room at revision 0b85f5b80b7f779b2dfe80f33a1b35b38af9376d, licensed GPL-3.0. Checkpoint dereverb_room_anvuew_sdr_13.7432.ckpt, sha256 2edec521f09e26341c1923dc82c8c52dbc86478b42b9999f679535743c970cb3; config dereverb_room_anvuew.yaml, sha256 c37e3039521d79cd1daff129857f69fa80c6a1f383a0fe8cda757f2dfc5032f8.
  • Modified on 2026-10-09 by converting it to GGUF with stems.cpp's tools/convert_roformer.py --preset dereverb_room: tensors are renamed, the band layout is written as index lists, the rotary frequencies are checked and stored as a theta, and the configuration is stored as metadata. The architecture and weights are otherwise unchanged, and the conversion is deterministic.
  • This converted work is distributed under the same GNU General Public License v3; LICENSE holds the full text. The upstream checkpoint and the converter that produced these files are its corresponding source.
Downloads last month
101
GGUF
Model size
29.4M params
Architecture
bs_roformer
Hardware compatibility
Log In to add your hardware

32-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for thepatch/bs-roformer-dereverb-room-GGUF

Quantized
(2)
this model