adbrasi commited on
Commit
593cf99
·
verified ·
1 Parent(s): 393b9c3

Update setup_comfyui_wan22.sh

Browse files
Files changed (1) hide show
  1. setup_comfyui_wan22.sh +58 -82
setup_comfyui_wan22.sh CHANGED
@@ -2,8 +2,8 @@
2
  # setup_comfyui_wan22.sh
3
  # Requisitos: Linux + Python3 + git + (opcional) NVCC/CUDA para SageAttention
4
 
5
- set -e
6
- set -o pipefail
7
 
8
  # -----------------------------
9
  # Configuráveis
@@ -14,9 +14,13 @@ COMFY_PORT="${COMFY_PORT:-8818}"
14
 
15
  # Repositórios no HF
16
  REPO_22="Comfy-Org/Wan_2.2_ComfyUI_Repackaged"
17
- REPO_21="Comfy-Org/Wan_2.1_ComfyUI_repackaged" # (atenção ao 'repackaged' minúsculo)
18
  REPO_CN="xinsir/controlnet-union-sdxl-1.0"
19
 
 
 
 
 
20
  # Caminhos de destino dos modelos
21
  MODELS_DIR="$COMFY_DIR/models"
22
  mkdir -p "$MODELS_DIR"/{diffusion_models,loras,vae,text_encoders,clip_vision,controlnet}
@@ -26,11 +30,10 @@ TMPDL="$(mktemp -d)"
26
  cleanup() { rm -rf "$TMPDL"; }
27
  trap cleanup EXIT
28
 
29
- # -----------------------------
30
- # Funções utilitárias
31
- # -----------------------------
32
  clone_or_update() {
33
- # $1=repo_url $2=dest_dir
34
  local url="$1" dest="$2"
35
  if [ -d "$dest/.git" ]; then
36
  echo " - Atualizando $(basename "$dest")..."
@@ -39,16 +42,12 @@ clone_or_update() {
39
  echo " - Clonando $(basename "$dest")..."
40
  git clone --recursive "$url" "$dest"
41
  fi
42
- # Se tiver requirements.txt, tenta instalar sem travar o script em caso de falha
43
  if [ -f "$dest/requirements.txt" ]; then
44
  echo " > Instalando requirements de $(basename "$dest")..."
45
  python3 -m pip install -r "$dest/requirements.txt" || true
46
  fi
47
  }
48
 
49
- # -----------------------------
50
- # 1) comfy-cli + ComfyUI
51
- # -----------------------------
52
  echo "[1/6] Instalando comfy-cli..."
53
  python3 -m pip install -U pip wheel setuptools >/dev/null
54
  python3 -m pip install -U comfy-cli >/dev/null
@@ -56,18 +55,14 @@ python3 -m pip install -U comfy-cli >/dev/null
56
  echo "[2/6] Preparando/instalando ComfyUI (GPU NVIDIA, fast deps)..."
57
  comfy --skip-prompt install --fast-deps --nvidia
58
 
59
- # Garante estrutura de pastas
60
  mkdir -p "$MODELS_DIR" "$COMFY_DIR/custom_nodes"
61
 
62
- # -----------------------------
63
- # 2) Downloads principais em background (HF Hub)
64
- # -----------------------------
65
  echo "[3/6] Iniciando downloads dos modelos (HF Hub) em background..."
66
  python3 -m pip install -U "huggingface_hub>=0.23.0" hf_transfer >/dev/null 2>&1 || true
67
  export HF_HUB_ENABLE_HF_TRANSFER=1
68
 
69
  (
70
- set -e
71
  echo " - Baixando pacotes do repo: $REPO_22"
72
  huggingface-cli download "$REPO_22" \
73
  split_files/diffusion_models/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors \
@@ -87,7 +82,6 @@ export HF_HUB_ENABLE_HF_TRANSFER=1
87
  --local-dir-use-symlinks False \
88
  --resume-download
89
 
90
- # Distribui arquivos para as pastas do ComfyUI
91
  install -m 644 "$TMPDL/wan22/split_files/diffusion_models/"*.safetensors "$MODELS_DIR/diffusion_models/" 2>/dev/null || true
92
  install -m 644 "$TMPDL/wan22/split_files/loras/"*.safetensors "$MODELS_DIR/loras/" 2>/dev/null || true
93
  install -m 644 "$TMPDL/wan22/split_files/vae/"*.safetensors "$MODELS_DIR/vae/" 2>/dev/null || true
@@ -98,85 +92,67 @@ export HF_HUB_ENABLE_HF_TRANSFER=1
98
  ) &
99
  DL_PID=$!
100
 
101
- # -----------------------------
102
- # 3) SageAttention em paralelo
103
- # -----------------------------
104
- echo "[4/6] Instalando dependências de atenção (em paralelo aos downloads)..."
105
- echo " - Instalando Triton (>=3.0.0)..."
106
  python3 -m pip install "triton>=3.0.0"
107
-
108
- echo " - Clonando e instalando SageAttention..."
109
  if [ -d "SageAttention" ]; then
110
  (cd SageAttention && git pull --ff-only)
111
  else
112
  git clone https://github.com/thu-ml/SageAttention.git
113
  fi
114
-
115
- export EXT_PARALLEL=4
116
- export NVCC_APPEND_FLAGS="--threads 8"
117
- export MAX_JOBS=32
118
-
119
  (
120
- set -e
121
  cd SageAttention
122
  python3 setup.py install
123
  ) &
124
  SA_PID=$!
125
 
126
- # -----------------------------
127
- # 4) Assim que downloads acabarem:
128
- # - baixa controlnet extra e renomeia
129
- # - instala custom nodes
130
- # (tudo isso acontece enquanto o SageAttention compila)
131
- # -----------------------------
 
 
 
 
 
 
 
 
 
 
132
  (
133
- # Espera downloads principais
134
- wait "$DL_PID"
135
-
136
- echo "[5/6] Baixando modelo extra (controlnet) pós-downloads..."
137
- huggingface-cli download "$REPO_CN" diffusion_pytorch_model_promax.safetensors \
138
- --local-dir "$TMPDL/controlnet" \
139
- --local-dir-use-symlinks False \
140
- --resume-download
141
- install -m 644 "$TMPDL/controlnet/diffusion_pytorch_model_promax.safetensors" \
142
- "$MODELS_DIR/controlnet/controlnet-union.safetensors"
143
-
144
- echo "[5/6] Instalando custom nodes (em paralelo ao SageAttention)..."
145
- CN_DIR="$COMFY_DIR/custom_nodes"
146
- mkdir -p "$CN_DIR"
147
-
148
- # Lista de repositórios -> destino
149
- declare -A REPOS=(
150
- ["https://github.com/kijai/ComfyUI-Florence2"]="$CN_DIR/ComfyUI-Florence2"
151
- ["https://github.com/kijai/ComfyUI-WanVideoWrapper"]="$CN_DIR/ComfyUI-WanVideoWrapper"
152
- ["https://github.com/Fannovel16/ComfyUI-Frame-Interpolation"]="$CN_DIR/ComfyUI-Frame-Interpolation"
153
- ["https://github.com/kijai/ComfyUI-GIMM-VFI"]="$CN_DIR/ComfyUI-GIMM-VFI"
154
- ["https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite"]="$CN_DIR/ComfyUI-VideoHelperSuite"
155
- ["https://github.com/kijai/ComfyUI-KJNodes"]="$CN_DIR/ComfyUI-KJNodes"
156
- ["https://github.com/Fannovel16/comfyui_controlnet_aux"]="$CN_DIR/comfyui_controlnet_aux"
157
- ["https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit"]="$CN_DIR/comfyui-WhiteRabbit"
158
- ["https://github.com/LucipherDev/ComfyUI-AniDoc"]="$CN_DIR/ComfyUI-AniDoc"
159
- ["https://github.com/shiimizu/ComfyUI_smZNodes"]="$CN_DIR/ComfyUI_smZNodes"
160
- ["https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt"]="$CN_DIR/ComfyUI-Dwpose-Tensorrt"
161
- ["https://github.com/grmchn/ComfyUI-ProportionChanger"]="$CN_DIR/ComfyUI-ProportionChanger"
162
- )
163
-
164
- # Para cada repo: clonar/atualizar e instalar requirements se existirem
165
- for url in "${!REPOS[@]}"; do
166
- dest="${REPOS[$url]}"
167
- clone_or_update "$url" "$dest"
168
- done
169
-
170
- echo " - Custom nodes prontos."
171
- ) &
172
- CN_PID=$!
173
-
174
- # -----------------------------
175
- # 5) Espera SageAttention + Custom Nodes
176
- # -----------------------------
177
- echo "[6/6] Finalizando: aguardando SageAttention e custom nodes..."
178
  wait "$SA_PID"
179
- wait "$CN_PID"
180
 
181
  echo "[OK] Tudo pronto. Abrindo o ComfyUI com SageAttention na porta $COMFY_PORT..."
182
  exec comfy launch -- --use-sage-attention --listen "$COMFY_HOST" --port "$COMFY_PORT"
 
2
  # setup_comfyui_wan22.sh
3
  # Requisitos: Linux + Python3 + git + (opcional) NVCC/CUDA para SageAttention
4
 
5
+ set -Eeuo pipefail
6
+ trap 'rc=$?; echo "[ERRO] linha $LINENO: \"$BASH_COMMAND\" saiu com código $rc"; exit $rc' ERR
7
 
8
  # -----------------------------
9
  # Configuráveis
 
14
 
15
  # Repositórios no HF
16
  REPO_22="Comfy-Org/Wan_2.2_ComfyUI_Repackaged"
17
+ REPO_21="Comfy-Org/Wan_2.1_ComfyUI_repackaged"
18
  REPO_CN="xinsir/controlnet-union-sdxl-1.0"
19
 
20
+ # Token do Civitai (pode sobrescrever via env)
21
+ CIVITAI_TOKEN="${CIVITAI_TOKEN:-4fcb2834969399006a736ee402b061e5}"
22
+ CIVITAI_URL="https://civitai.com/api/download/models/2122278?type=Model&format=SafeTensor&size=pruned&fp=fp16&token=${CIVITAI_TOKEN}"
23
+
24
  # Caminhos de destino dos modelos
25
  MODELS_DIR="$COMFY_DIR/models"
26
  mkdir -p "$MODELS_DIR"/{diffusion_models,loras,vae,text_encoders,clip_vision,controlnet}
 
30
  cleanup() { rm -rf "$TMPDL"; }
31
  trap cleanup EXIT
32
 
33
+ need() { command -v "$1" >/dev/null 2>&1 || { echo "Falta dependência: $1"; exit 1; }; }
34
+ need python3; need git; need wget
35
+
36
  clone_or_update() {
 
37
  local url="$1" dest="$2"
38
  if [ -d "$dest/.git" ]; then
39
  echo " - Atualizando $(basename "$dest")..."
 
42
  echo " - Clonando $(basename "$dest")..."
43
  git clone --recursive "$url" "$dest"
44
  fi
 
45
  if [ -f "$dest/requirements.txt" ]; then
46
  echo " > Instalando requirements de $(basename "$dest")..."
47
  python3 -m pip install -r "$dest/requirements.txt" || true
48
  fi
49
  }
50
 
 
 
 
51
  echo "[1/6] Instalando comfy-cli..."
52
  python3 -m pip install -U pip wheel setuptools >/dev/null
53
  python3 -m pip install -U comfy-cli >/dev/null
 
55
  echo "[2/6] Preparando/instalando ComfyUI (GPU NVIDIA, fast deps)..."
56
  comfy --skip-prompt install --fast-deps --nvidia
57
 
 
58
  mkdir -p "$MODELS_DIR" "$COMFY_DIR/custom_nodes"
59
 
 
 
 
60
  echo "[3/6] Iniciando downloads dos modelos (HF Hub) em background..."
61
  python3 -m pip install -U "huggingface_hub>=0.23.0" hf_transfer >/dev/null 2>&1 || true
62
  export HF_HUB_ENABLE_HF_TRANSFER=1
63
 
64
  (
65
+ set -Eeuo pipefail
66
  echo " - Baixando pacotes do repo: $REPO_22"
67
  huggingface-cli download "$REPO_22" \
68
  split_files/diffusion_models/wan2.2_fun_control_low_noise_14B_fp8_scaled.safetensors \
 
82
  --local-dir-use-symlinks False \
83
  --resume-download
84
 
 
85
  install -m 644 "$TMPDL/wan22/split_files/diffusion_models/"*.safetensors "$MODELS_DIR/diffusion_models/" 2>/dev/null || true
86
  install -m 644 "$TMPDL/wan22/split_files/loras/"*.safetensors "$MODELS_DIR/loras/" 2>/dev/null || true
87
  install -m 644 "$TMPDL/wan22/split_files/vae/"*.safetensors "$MODELS_DIR/vae/" 2>/dev/null || true
 
92
  ) &
93
  DL_PID=$!
94
 
95
+ echo "[4/6] Instalando SageAttention (em paralelo aos downloads)..."
 
 
 
 
96
  python3 -m pip install "triton>=3.0.0"
 
 
97
  if [ -d "SageAttention" ]; then
98
  (cd SageAttention && git pull --ff-only)
99
  else
100
  git clone https://github.com/thu-ml/SageAttention.git
101
  fi
102
+ export EXT_PARALLEL=4 NVCC_APPEND_FLAGS="--threads 8" MAX_JOBS=32
 
 
 
 
103
  (
104
+ set -Eeuo pipefail
105
  cd SageAttention
106
  python3 setup.py install
107
  ) &
108
  SA_PID=$!
109
 
110
+ # === Espera especificamente os downloads principais terminarem ===
111
+ echo "[5/6] Aguardando downloads principais para etapa pós-downloads..."
112
+ wait "$DL_PID"
113
+
114
+ # === Pós-downloads em primeiro plano (enquanto o SageAttention ainda compila) ===
115
+ echo " > Baixando ControlNet extra e renomeando..."
116
+ huggingface-cli download "$REPO_CN" diffusion_pytorch_model_promax.safetensors \
117
+ --local-dir "$TMPDL/controlnet" \
118
+ --local-dir-use-symlinks False \
119
+ --resume-download
120
+ install -m 644 "$TMPDL/controlnet/diffusion_pytorch_model_promax.safetensors" \
121
+ "$MODELS_DIR/controlnet/controlnet-union.safetensors"
122
+
123
+ echo " > Baixando modelo do Civitai (após o ControlNet)..."
124
+ CIVITAI_DIR="$MODELS_DIR/loras"
125
+ mkdir -p "$CIVITAI_DIR"
126
  (
127
+ cd "$CIVITAI_DIR"
128
+ wget --content-disposition "$CIVITAI_URL"
129
+ )
130
+
131
+ echo " > Instalando custom nodes..."
132
+ CN_DIR="$COMFY_DIR/custom_nodes"
133
+ mkdir -p "$CN_DIR"
134
+ declare -A REPOS=(
135
+ ["https://github.com/kijai/ComfyUI-Florence2"]="$CN_DIR/ComfyUI-Florence2"
136
+ ["https://github.com/kijai/ComfyUI-WanVideoWrapper"]="$CN_DIR/ComfyUI-WanVideoWrapper"
137
+ ["https://github.com/Fannovel16/ComfyUI-Frame-Interpolation"]="$CN_DIR/ComfyUI-Frame-Interpolation"
138
+ ["https://github.com/kijai/ComfyUI-GIMM-VFI"]="$CN_DIR/ComfyUI-GIMM-VFI"
139
+ ["https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite"]="$CN_DIR/ComfyUI-VideoHelperSuite"
140
+ ["https://github.com/kijai/ComfyUI-KJNodes"]="$CN_DIR/ComfyUI-KJNodes"
141
+ ["https://github.com/Fannovel16/comfyui_controlnet_aux"]="$CN_DIR/comfyui_controlnet_aux"
142
+ ["https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit"]="$CN_DIR/comfyui-WhiteRabbit"
143
+ ["https://github.com/LucipherDev/ComfyUI-AniDoc"]="$CN_DIR/ComfyUI-AniDoc"
144
+ ["https://github.com/shiimizu/ComfyUI_smZNodes"]="$CN_DIR/ComfyUI_smZNodes"
145
+ ["https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt"]="$CN_DIR/ComfyUI-Dwpose-Tensorrt"
146
+ ["https://github.com/grmchn/ComfyUI-ProportionChanger"]="$CN_DIR/ComfyUI-ProportionChanger"
147
+ )
148
+ for url in "${!REPOS[@]}"; do
149
+ clone_or_update "$url" "${REPOS[$url]}"
150
+ done
151
+ echo " > Custom nodes prontos."
152
+
153
+ # === Agora esperamos o SageAttention terminar, se ainda não terminou ===
154
+ echo "[6/6] Aguardando final do SageAttention..."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  wait "$SA_PID"
 
156
 
157
  echo "[OK] Tudo pronto. Abrindo o ComfyUI com SageAttention na porta $COMFY_PORT..."
158
  exec comfy launch -- --use-sage-attention --listen "$COMFY_HOST" --port "$COMFY_PORT"