Files

74 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Install ComfyUI-HyMT2 dependencies into the ComfyUI venv.
#
# Hy-MT2 requires transformers >= 5.6.0. ⚠️ This conflicts with nodes that
# lock transformers==4.57.3 (Qwen3TTS, Sonic, certain VibeVoice forks).
# See INSTALL_NOTES.md for the rollback recipe.
set -euo pipefail
VENV=${COMFYUI_VENV:-/mnt/modelall/ComfyUI/.venv}
PYTHON="$VENV/bin/python"
TMPDIR=${TMPDIR:-/mnt/modelall/tmp}
mkdir -p "$TMPDIR"
if [ ! -x "$PYTHON" ]; then
echo "❌ python not found at $PYTHON" >&2
echo " override the venv path: COMFYUI_VENV=/path/to/.venv $0" >&2
exit 1
fi
echo "[install] venv=$VENV"
echo "[install] freezing current state to $TMPDIR/freeze_before_hymt2_$(date +%Y%m%d_%H%M).txt"
uv pip freeze --python "$PYTHON" \
> "$TMPDIR/freeze_before_hymt2_$(date +%Y%m%d_%H%M).txt" || true
# Override file (v2.0 §2.3) — Py 3.13 needs newer wheels for these.
OVERRIDES="$TMPDIR/hymt2_overrides.txt"
cat > "$OVERRIDES" <<'EOF'
sentencepiece>=0.2.0
pyyaml>=6.0.2
huggingface_hub>=0.26
EOF
echo "[install] installing transformers>=5.6.0 + friends"
uv pip install --python "$PYTHON" \
--override "$OVERRIDES" \
--no-cache-dir \
"transformers>=5.6.0" "tokenizers>=0.22.0" "accelerate>=0.30"
echo "[install] installing websocket-client (CLI only — not the node)"
uv pip install --python "$PYTHON" --no-cache-dir "websocket-client>=1.6"
echo "[install] smoke test — fail loudly if anything didn't install"
"$PYTHON" - <<'PY' || { echo "[install] ❌ SMOKE TEST FAILED — fix the missing packages above before restarting ComfyUI" >&2; exit 1; }
import sys
missing = []
versions = {}
for name in ("transformers", "tokenizers", "accelerate", "torch"):
try:
m = __import__(name)
versions[name] = getattr(m, "__version__", "?")
except ImportError as e:
missing.append(f"{name} ({e})")
for n, v in versions.items():
print(f" {n}: {v}")
if missing:
print(f" MISSING: {', '.join(missing)}", file=sys.stderr)
raise SystemExit(1)
# transformers >= 5.6 is required by Hy-MT2
import transformers
major = int(transformers.__version__.split(".")[0])
if major < 5:
print(f" ⚠️ transformers {transformers.__version__} < 5.6.0 — Hy-MT2 needs >= 5.6",
file=sys.stderr)
raise SystemExit(1)
print(" ✓ all required imports OK")
PY
echo "[install] DONE"
echo "[install] verify nodes registered after ComfyUI restart:"
echo " curl -s http://localhost:8189/object_info | python3 -c \\"
echo " \"import json,sys; d=json.load(sys.stdin); print('HyMT2Loader:', 'HyMT2Loader' in d, 'HyMT2Translate:', 'HyMT2Translate' in d)\""