Skip to content

Commit 048daa0

Browse files
committed
fix(chatterbox): install chatterbox-tts with --no-deps and pin runtime deps
The previous omegaconf pin only addressed one symptom of a deeper problem: chatterbox-tts upstream depends on `russian-text-stresser` (unpinned git URL), which transitively pins `spacy==3.6.*` and other ancient packages. That cascade forces pip to backtrack through Jinja2/MarkupSafe/omegaconf into Python-2-era sdists that no longer build (e.g. ruamel.yaml<0.15, Jinja2 2.6 importing the long-removed `setuptools.Feature`). Install chatterbox-tts itself with --no-deps in install.sh and list its real runtime deps explicitly in each requirements-*.txt, dropping the optional russian-text-stresser. This unblocks the darwin (and other) builds without playing whack-a-mole on each newly-discovered transitive pin. Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Assisted-by: Claude:claude-opus-4-7 [Claude Code]
1 parent 88f5029 commit 048daa0

9 files changed

Lines changed: 108 additions & 31 deletions

backend/python/chatterbox/install.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,15 @@ fi
2323

2424

2525
installRequirements
26+
27+
# chatterbox-tts upstream pulls `russian-text-stresser` (unpinned git URL) which
28+
# transitively pins spacy==3.6.* and other ancient packages. That cascade forces
29+
# pip to backtrack through Jinja2/MarkupSafe/omegaconf/ruamel.yaml into Python-2-era
30+
# sdists that no longer build. We install chatterbox-tts itself with --no-deps and
31+
# list its real runtime deps in requirements-*.txt instead.
32+
echo "Installing chatterbox-tts with --no-deps"
33+
if [ "x${USE_PIP}" == "xtrue" ]; then
34+
pip install ${EXTRA_PIP_INSTALL_FLAGS:-} --no-deps "chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster"
35+
else
36+
uv pip install ${EXTRA_PIP_INSTALL_FLAGS:-} --no-deps "chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster"
37+
fi

backend/python/chatterbox/requirements-cpu.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@ torch
44
torchaudio
55
numpy>=1.24.0,<1.26.0
66
transformers
7-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
8-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
7+
# chatterbox-tts itself is installed with --no-deps in install.sh.
8+
# These are its real runtime deps, mirroring upstream's pyproject.toml
9+
# minus russian-text-stresser (whose ancient pins break the resolver).
910
omegaconf==2.3.0
10-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
11-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
12-
#chatterbox-tts==0.1.4
11+
resampy==0.4.3
12+
librosa
13+
s3tokenizer
14+
diffusers
15+
resemble-perth==1.0.1
16+
conformer
17+
safetensors
18+
spacy-pkuseg
19+
pykakasi==2.3.0

backend/python/chatterbox/requirements-cublas12.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,17 @@ torch
22
torchaudio
33
transformers
44
numpy>=1.24.0,<1.26.0
5-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
6-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
5+
# chatterbox-tts itself is installed with --no-deps in install.sh.
6+
# These are its real runtime deps, mirroring upstream's pyproject.toml
7+
# minus russian-text-stresser (whose ancient pins break the resolver).
78
omegaconf==2.3.0
8-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
9-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
9+
resampy==0.4.3
10+
librosa
11+
s3tokenizer
12+
diffusers
13+
resemble-perth==1.0.1
14+
conformer
15+
safetensors
16+
spacy-pkuseg
17+
pykakasi==2.3.0
1018
accelerate

backend/python/chatterbox/requirements-cublas13.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,17 @@ torch
33
torchaudio
44
transformers
55
numpy>=1.24.0,<1.26.0
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
10-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0
1119
accelerate

backend/python/chatterbox/requirements-hipblas.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,17 @@ torch==2.10.0+rocm7.0
33
torchaudio==2.10.0+rocm7.0
44
transformers
55
numpy>=1.24.0,<1.26.0
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
10-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0
1119
accelerate

backend/python/chatterbox/requirements-intel.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,19 @@ torch
33
torchaudio
44
transformers
55
numpy>=1.24.0,<1.26.0
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
10-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0
1119
accelerate
1220
oneccl_bind_pt==2.3.100+xpu
1321
optimum[openvino]

backend/python/chatterbox/requirements-l4t12.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,17 @@ torch
33
torchaudio
44
transformers
55
numpy>=1.24.0,<1.26.0
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0
1019
accelerate

backend/python/chatterbox/requirements-l4t13.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,17 @@ torch
33
torchaudio
44
transformers
55
numpy>=1.24.0,<1.26.0
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0
1019
accelerate

backend/python/chatterbox/requirements-mps.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@ torchaudio
33
accelerate
44
numpy>=1.24.0,<1.26.0
55
transformers
6-
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
7-
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
6+
# chatterbox-tts itself is installed with --no-deps in install.sh.
7+
# These are its real runtime deps, mirroring upstream's pyproject.toml
8+
# minus russian-text-stresser (whose ancient pins break the resolver).
89
omegaconf==2.3.0
9-
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
10-
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
10+
resampy==0.4.3
11+
librosa
12+
s3tokenizer
13+
diffusers
14+
resemble-perth==1.0.1
15+
conformer
16+
safetensors
17+
spacy-pkuseg
18+
pykakasi==2.3.0

0 commit comments

Comments
 (0)