From 5bb47cf3cbb3750bfcb00d50f7cf0d0f5aa4b641 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Sat, 13 Jun 2026 11:04:39 +0000 Subject: [PATCH] docker: bake soundfile, evaluate, tensorboard for notebook deps The TTS notebooks (Sesame CSM, Orpheus) read audio via soundfile, the Whisper notebook computes WER via evaluate, and TrainingArguments defaults report_to to tensorboard. These are declared by notebook pip cells that the in-image notebook runner neutralises (deps are meant to be prebaked), so without them those notebooks die on import. All are pure-Python or self-contained wheels and never name torch, so the cu128 pin set is undisturbed. --- docker/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d9da9d4568..51e4b962aa 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -272,9 +272,15 @@ RUN set -eux \ # matplotlib rides along for the notebook crowd: plotting is table stakes in # a Jupyter image, and several model repos' trust_remote_code modeling files # (e.g. DeepSeek-OCR) import it unconditionally. +# soundfile (TTS notebooks read/write audio; bundles libsndfile in its wheel), +# evaluate (Whisper notebook's WER metric), and tensorboard (default +# TrainingArguments report_to backend) are declared by notebook install cells +# that the in-image runner neutralises, so bake them here. All pure-Python or +# self-contained wheels; none names torch, so the cu128 pin is undisturbed. RUN ${VENV}/bin/uv pip install \ --python ${VENV}/bin/python \ - jupyterlab notebook ipywidgets matplotlib + jupyterlab notebook ipywidgets matplotlib \ + soundfile evaluate tensorboard # Audio decode out of the box: the TTS/STT notebooks feed datasets' Audio # features, which decode through torchcodec. Three traps, all defended: