86 lines
3.0 KiB
Bash
Executable File
86 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
COMFYUI_DIR="${COMFYUI_DIR:-/workspace/ComfyUI}"
|
|
CUSTOM_NODES_DIR="${CUSTOM_NODES_DIR:-$COMFYUI_DIR/custom_nodes}"
|
|
PYTHON_BIN="${PYTHON_BIN:-$COMFYUI_DIR/venv/bin/python}"
|
|
|
|
if [ ! -d "$COMFYUI_DIR" ]; then
|
|
echo "ComfyUI directory not found: $COMFYUI_DIR" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -x "$PYTHON_BIN" ]; then
|
|
if command -v python3 >/dev/null 2>&1; then
|
|
PYTHON_BIN="$(command -v python3)"
|
|
else
|
|
echo "Python not found. Set PYTHON_BIN=/path/to/python" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
mkdir -p "$CUSTOM_NODES_DIR"
|
|
|
|
install_node() {
|
|
local name="$1"
|
|
local repo="$2"
|
|
local ref="${3:-}"
|
|
local dir="$CUSTOM_NODES_DIR/$name"
|
|
|
|
if [ -d "$dir/.git" ]; then
|
|
echo "==> Updating $name"
|
|
git -C "$dir" fetch --depth 1 origin "${ref:-HEAD}" || git -C "$dir" fetch origin
|
|
else
|
|
echo "==> Installing $name"
|
|
git clone --depth 1 "$repo" "$dir"
|
|
fi
|
|
|
|
if [ -n "$ref" ]; then
|
|
git -C "$dir" checkout --quiet "$ref"
|
|
fi
|
|
|
|
if [ -f "$dir/requirements.txt" ]; then
|
|
echo "==> Installing Python requirements for $name"
|
|
if command -v uv >/dev/null 2>&1; then
|
|
UV_INDEX_URL="${UV_INDEX_URL:-https://pypi.tuna.tsinghua.edu.cn/simple}" \
|
|
uv pip install --python "$PYTHON_BIN" -r "$dir/requirements.txt"
|
|
else
|
|
"$PYTHON_BIN" -m pip install -r "$dir/requirements.txt"
|
|
fi
|
|
fi
|
|
|
|
if [ -f "$dir/install.py" ]; then
|
|
echo "==> Running install.py for $name"
|
|
"$PYTHON_BIN" "$dir/install.py" || true
|
|
fi
|
|
}
|
|
|
|
# ComfyUI-Manager backend API. The v1.46.x cloud frontend already contains the
|
|
# Manager UI; this backend node provides /manager/* and /customnode/* endpoints
|
|
# for local/docker/external ComfyUI instances.
|
|
install_node "ComfyUI-Manager" "https://github.com/Comfy-Org/ComfyUI-Manager.git"
|
|
|
|
# Nodes used by common RunningHub digital-human / video templates.
|
|
install_node "audio-separation-nodes-comfyui" "https://github.com/christian-byrne/audio-separation-nodes-comfyui.git"
|
|
install_node "ComfyUI_Yvann-Nodes" "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes.git"
|
|
install_node "ComfyUI-Easy-Use" "https://github.com/yolain/ComfyUI-Easy-Use.git"
|
|
install_node "ComfyUI-VoxCPM" "https://github.com/wildminder/ComfyUI-VoxCPM.git"
|
|
install_node "ComfyUI-WanVideoWrapper" "https://github.com/kijai/ComfyUI-WanVideoWrapper.git"
|
|
install_node "ComfyUI-Whisper-Translator" "https://github.com/civen-cn/ComfyUI-Whisper-Translator.git"
|
|
install_node "ComfyUI-KJNodes" "https://github.com/kijai/ComfyUI-KJNodes.git"
|
|
|
|
cat <<'EOF'
|
|
|
|
RunningHub template nodes installed.
|
|
|
|
Notes:
|
|
- Install system packages such as ffmpeg/libsndfile/rubberband separately if a
|
|
node requires them at runtime.
|
|
- The screenshot also references a "soundflow" package. I did not find a stable
|
|
public repository for that exact package name; install it through
|
|
ComfyUI-Manager or add its repository manually when you have the source URL.
|
|
- Missing model files, for example Wan/InfiniteTalk checkpoints, are not custom
|
|
nodes. Put those models into the matching ComfyUI models folders or use a
|
|
backend where RunningHub/Cloud already provides them.
|
|
EOF
|