diff --git a/scripts/setup-image-studio.sh b/scripts/setup-image-studio.sh index 2c0d66bc..fa71cd6f 100755 --- a/scripts/setup-image-studio.sh +++ b/scripts/setup-image-studio.sh @@ -100,10 +100,20 @@ else echo " (SKIP_BUILD set — skipping image build)" fi -# --- 2. Download the Ideogram-4 model set (~27 GB) -------------------------- +# --- 2. Download the model sets (Ideogram-4 + the studio director) ---------- if [ -z "${SKIP_DOWNLOAD:-}" ]; then - say "── [2/3] Downloading Ideogram-4 model set (~27 GB; skip with SKIP_DOWNLOAD=1) ──" + say "── [2/3] Downloading model sets (~30 GB; skip with SKIP_DOWNLOAD=1) ──" + echo " • Ideogram-4 image model set (~27 GB)" bash "$COMFYUI_DIR/download_ideogram4.sh" + # The studio DIRECTOR (qwen3.5-4b, GPU0) crafts the prompt behind the 🖼️ image + # button — without it studio-director boots but has no model, so the button + # fails. GGUF + vision mmproj (~2.7 GB) → MODEL_DIR/qwen3.5-4b-gguf/… (where the + # enhancer compose's -m / --mmproj defaults point). + echo " • Studio director GGUF (Qwen3.5-4B-Uncensored, ~2.7 GB + mmproj)" + hf download HauhauCS/Qwen3.5-4B-Uncensored-HauhauCS-Aggressive \ + Qwen3.5-4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf \ + mmproj-Qwen3.5-4B-Uncensored-HauhauCS-Aggressive-BF16.gguf \ + --local-dir "$MODEL_DIR_RESOLVED/qwen3.5-4b-gguf/hauhaucs-uncensored-q4km" else echo " (SKIP_DOWNLOAD set — skipping weight download)" fi diff --git a/services/comfyui/download_kokoro.sh b/services/comfyui/download_kokoro.sh new file mode 100755 index 00000000..a6495d77 --- /dev/null +++ b/services/comfyui/download_kokoro.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Downloads the Kokoro-82M ONNX voice model for the studio-tts sidecar (Kokoro +# narration / voiceover on the video lanes). CPU inference via the kokoro-onnx +# library (installed in the studio-tts image); these are the two model files it +# mounts at runtime. +# +# Source: the kokoro-onnx project's release assets (the kokoro-v1.0.onnx / +# voices-v1.0.bin format the library loads — NOT the onnx-community HF repo's +# onnx/model.onnx layout). ~330 MB total. +# +# Run: ./download_kokoro.sh +# +# Lands files where the studio-tts compose mounts them (KOKORO_DIR): +# tts/kokoro/kokoro-v1.0.onnx +# tts/kokoro/voices-v1.0.bin +set -uo pipefail + +# Mirrors the studio-tts compose default (${KOKORO_DIR:-/mnt/models/comfyui/models/tts/kokoro}). +ROOT="${KOKORO_DIR:-${COMFYUI_MODELS_DIR:-/mnt/models/comfyui/models}/tts/kokoro}" +REL="https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0" +LOG_TS() { date +%H:%M:%S; } +log() { echo "[$(LOG_TS)] $*"; } +step() { log ""; log "=== $* ==="; } + +command -v curl >/dev/null 2>&1 || { echo "ERROR: 'curl' not found." >&2; exit 1; } +mkdir -p "$ROOT" + +fetch() { # — resumable, fail on HTTP error + local f="$1" + curl -fL --retry 3 -C - -o "$ROOT/$f" "$REL/$f" +} + +step "1/2 Kokoro ONNX model (~310 MB)" +fetch kokoro-v1.0.onnx + +step "2/2 Kokoro voices pack (~27 MB)" +fetch voices-v1.0.bin + +log "" +log "Done → $ROOT (kokoro-v1.0.onnx + voices-v1.0.bin)" diff --git a/services/comfyui/download_step_audio.sh b/services/comfyui/download_step_audio.sh new file mode 100755 index 00000000..93f69953 --- /dev/null +++ b/services/comfyui/download_step_audio.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# Downloads Step-Audio-EditX for the studio-step-voice sidecar (premium zero-shot +# voice clone + emotion/style editing — the 🎙️ Voice lane). Two repos: the model +# weights + its audio tokenizer, both from stepfun-ai (Apache-2.0). ~14 GB bf16. +# +# Run: ./download_step_audio.sh +# nohup ./download_step_audio.sh > /tmp/step-audio-dl.log 2>&1 & (background) +# +# Lands where the step-voice compose mounts them (STEP_AUDIO_DIR → /models): +# Step-Audio/Step-Audio-EditX/ +# Step-Audio/Step-Audio-Tokenizer/ +set -uo pipefail + +# Mirrors the step-voice compose default (${STEP_AUDIO_DIR:-/mnt/models/comfyui/models/Step-Audio}). +ROOT="${STEP_AUDIO_DIR:-${COMFYUI_MODELS_DIR:-/mnt/models/comfyui/models}/Step-Audio}" +LOG_TS() { date +%H:%M:%S; } +log() { echo "[$(LOG_TS)] $*"; } +step() { log ""; log "=== $* ==="; } + +command -v hf >/dev/null 2>&1 || { echo "ERROR: 'hf' (huggingface_hub CLI) not found. pip install -U huggingface_hub" >&2; exit 1; } +mkdir -p "$ROOT" + +step "1/2 Step-Audio-EditX weights (~14 GB)" +hf download stepfun-ai/Step-Audio-EditX --local-dir "$ROOT/Step-Audio-EditX" + +step "2/2 Step-Audio-Tokenizer" +hf download stepfun-ai/Step-Audio-Tokenizer --local-dir "$ROOT/Step-Audio-Tokenizer" + +log "" +log "Done → $ROOT (Step-Audio-EditX/ + Step-Audio-Tokenizer/)"