[Model] Add VoxCPM2 startup LoRA adapter support (#7108)

Signed-off-by: bezdarnost <urumbekovaman@gmail.com>
Co-authored-by: bezdarnost <urumbekovaman@gmail.com>
This commit is contained in:
Amanandbezdarnost authored and GitHub committed 2026-09-14 15:25:42 -07:00
1 parent 1b7e854b05
commit a22a7dd68f
6 files changed
+432 -1

No files matched your search

+34
View File
@@ -777,6 +777,40 @@ hidden-state dtype before the output projection. Consequently, a float32 stage c
| ------- | ------------- |
| `openbmb/VoxCPM2` | TTS + voice cloning with built-in speaker presets and uploaded-voice support. Accepts `voice` (preset or uploaded) or `ref_audio` + optional `ref_text`. |
#### Startup LoRA adapter
To serve a fine-tuned VoxCPM2 voice, set
`voxcpm2_runtime_config.startup_lora_path` in the stage's `hf_overrides`.
Copy `vllm_omni/deploy/voxcpm2.yaml` to a local deploy config and add this key
alongside its existing runtime settings:
```yaml
# Under stages[0].engine_extras.hf_overrides.voxcpm2_runtime_config:
startup_lora_path: /absolute/path/to/adapter
```
Then launch with the modified config:
```bash
vllm serve openbmb/VoxCPM2 --omni --deploy-config /absolute/path/to/voxcpm2-lora.yaml
```
The directory must be accessible to the worker and contain the native VoxCPM2
training export: `lora_config.json` (with a `lora_config` object containing
`r`, `alpha`, enabled groups, and target module names) and
`lora_weights.safetensors`. PEFT checkpoints and pickle checkpoints are not
accepted. Missing, unexpected, non-finite, or incorrectly shaped adapter
tensors fail model loading rather than silently loading a partial adapter.
The adapter is merged into the base LM, residual LM, LocDiT, and optional
projection layers selected by its configuration, after base weight loading
and before compilation or CUDA graph capture. All requests use that adapter;
`voice` still selects a reference voice, not a LoRA adapter. Changing adapters
requires restarting the server. Runtime loading/unloading, per-request
multi-LoRA selection, and `load_format=dummy` are not supported by this path.
Weight fusion rounds to the base model's dtype, so numerical and speech-quality
parity should be checked against the upstream adapter on your deployment.
### MOSS-TTS-Nano
| Model | Description |