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]
This commit is contained in:
Ettore Di Giacinto
2026-05-07 09:03:40 +00:00
parent 88f5029a5b
commit 048daa0cdc
9 changed files with 108 additions and 31 deletions

View File

@@ -23,3 +23,15 @@ fi
installRequirements
# chatterbox-tts upstream pulls `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/ruamel.yaml into Python-2-era
# sdists that no longer build. We install chatterbox-tts itself with --no-deps and
# list its real runtime deps in requirements-*.txt instead.
echo "Installing chatterbox-tts with --no-deps"
if [ "x${USE_PIP}" == "xtrue" ]; then
pip install ${EXTRA_PIP_INSTALL_FLAGS:-} --no-deps "chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster"
else
uv pip install ${EXTRA_PIP_INSTALL_FLAGS:-} --no-deps "chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster"
fi

View File

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

View File

@@ -2,9 +2,17 @@ torch
torchaudio
transformers
numpy>=1.24.0,<1.26.0
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
# chatterbox-tts itself is installed with --no-deps in install.sh.
# These are its real runtime deps, mirroring upstream's pyproject.toml
# minus russian-text-stresser (whose ancient pins break the resolver).
omegaconf==2.3.0
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
resampy==0.4.3
librosa
s3tokenizer
diffusers
resemble-perth==1.0.1
conformer
safetensors
spacy-pkuseg
pykakasi==2.3.0
accelerate

View File

@@ -3,9 +3,17 @@ torch
torchaudio
transformers
numpy>=1.24.0,<1.26.0
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
# chatterbox-tts itself is installed with --no-deps in install.sh.
# These are its real runtime deps, mirroring upstream's pyproject.toml
# minus russian-text-stresser (whose ancient pins break the resolver).
omegaconf==2.3.0
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
resampy==0.4.3
librosa
s3tokenizer
diffusers
resemble-perth==1.0.1
conformer
safetensors
spacy-pkuseg
pykakasi==2.3.0
accelerate

View File

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

View File

@@ -3,11 +3,19 @@ torch
torchaudio
transformers
numpy>=1.24.0,<1.26.0
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
# chatterbox-tts itself is installed with --no-deps in install.sh.
# These are its real runtime deps, mirroring upstream's pyproject.toml
# minus russian-text-stresser (whose ancient pins break the resolver).
omegaconf==2.3.0
# https://github.com/mudler/LocalAI/pull/6240#issuecomment-3329518289
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
resampy==0.4.3
librosa
s3tokenizer
diffusers
resemble-perth==1.0.1
conformer
safetensors
spacy-pkuseg
pykakasi==2.3.0
accelerate
oneccl_bind_pt==2.3.100+xpu
optimum[openvino]

View File

@@ -3,8 +3,17 @@ torch
torchaudio
transformers
numpy>=1.24.0,<1.26.0
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
# chatterbox-tts itself is installed with --no-deps in install.sh.
# These are its real runtime deps, mirroring upstream's pyproject.toml
# minus russian-text-stresser (whose ancient pins break the resolver).
omegaconf==2.3.0
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
resampy==0.4.3
librosa
s3tokenizer
diffusers
resemble-perth==1.0.1
conformer
safetensors
spacy-pkuseg
pykakasi==2.3.0
accelerate

View File

@@ -3,8 +3,17 @@ torch
torchaudio
transformers
numpy>=1.24.0,<1.26.0
# Pin omegaconf so pip doesn't backtrack into 1.x sdists (whose
# ruamel.yaml<0.15 dep has a Python-2-only setup.py and fails to build).
# chatterbox-tts itself is installed with --no-deps in install.sh.
# These are its real runtime deps, mirroring upstream's pyproject.toml
# minus russian-text-stresser (whose ancient pins break the resolver).
omegaconf==2.3.0
chatterbox-tts@git+https://git@github.com/mudler/chatterbox.git@faster
resampy==0.4.3
librosa
s3tokenizer
diffusers
resemble-perth==1.0.1
conformer
safetensors
spacy-pkuseg
pykakasi==2.3.0
accelerate

View File

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