- stt_local: Whisper large-v3-turbo MLX, transcript + timestamped json - lipsync_local: Rhubarb visemes (CPU lane), dialog-guided - voice_clone_local: Chatterbox on MPS (needs setuptools<81 for perth/pkg_resources) - wan_video: Wan 2.2 TI2V-5B t2v/i2v via resident ComfyUI, frames->mp4 - llm_local: Qwen3-30B-A3B-4bit dialogue writer (primary-only) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
20 lines
1.1 KiB
JSON
20 lines
1.1 KiB
JSON
{
|
|
"id": "voice_clone_local",
|
|
"name": "Voice Clone (local, Chatterbox)",
|
|
"category": "audio",
|
|
"description": "Reference voice WAV (~10s of clean speech) + text → that voice speaking the line. Chatterbox (Resemble AI, MIT) on MPS, with an emotion 'exaggeration' knob (0.3 flat … 0.7 dramatic). Record one growl per monster, save it in character_kit/voices/, and every line that character ever speaks comes out in-voice. Output is watermarked as AI audio (Perth, inaudible) by the model vendor. Slower than tts_local — use Kokoro for stock voices.",
|
|
"accepts": ["audio"],
|
|
"produces": ["audio"],
|
|
"resources": "gpu",
|
|
"entry": "run.py",
|
|
"python": "venvs/chatterbox/bin/python",
|
|
"params_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {"type": "string", "default": "", "description": "The line to speak"},
|
|
"exaggeration": {"type": "number", "default": 0.5, "minimum": 0.25, "maximum": 1.0, "description": "Emotion intensity (0.5 = neutral-ish)"},
|
|
"cfg_weight": {"type": "number", "default": 0.5, "minimum": 0.2, "maximum": 1.0, "description": "Lower = slower, more deliberate delivery"}
|
|
}
|
|
}
|
|
}
|