fix workflow

This commit is contained in:
2026-03-07 20:17:16 +03:00
parent 7c3fb424cf
commit 6fc34aa11b
6 changed files with 993 additions and 1155 deletions
+59 -18
View File
@@ -18,20 +18,47 @@ custom_comfyui/
├── dasiwa-api.service # Systemd сервис (автозапуск)
├── requirements.txt # Python зависимости
├── keys.json # 🔒 Ключи (НЕ коммитить!)
└── workflow_api.json # 🎨 ComfyUI workflow (сделай сам)
└── workflow_api.json # 🎨 ComfyUI workflow (DaSiWa WAN 2.2 Lightspeed)
```
---
## 🚀 Быстрый старт
### 1. Подготовка workflow
### 1. Загрузка моделей на сервер
В ComfyUI на сервере:
1. Загрузи `DaSiWa WAN 2.2 i2v FastFidelity C-AiO-59.json` через UI
2. Настрой, проверь что работает
3. **Экспортируй API версию:** Menu → `Save (API Format)` → назови `workflow_api.json`
4. Положи файл в эту папку (`custom_comfyui/`)
```powershell
$SERVER = "user@<ip_сервера>"
# HIGH checkpoint (~13 GB)
scp "DasiwaWAN22I2V14BLightspeed_synthseductionHighV9.safetensors" ${SERVER}:/ComfyUI/models/checkpoints/
# LOW checkpoint (~13 GB)
scp "DasiwaWAN22I2V14BLightspeed_synthseductionLowV9.safetensors" ${SERVER}:/ComfyUI/models/checkpoints/
# VAE (~335 MB)
scp "wan_2.1_vae.safetensors" ${SERVER}:/ComfyUI/models/vae/
# Text Encoder (~4.7 GB)
scp "umt5_xxl_fp8_e4m3fn_scaled.safetensors" ${SERVER}:/ComfyUI/models/text_encoders/
```
**Скачать модели:**
- **Checkpoints:** [DaSiWa WAN 2.2 i2v 14B (S) Lightspeed](https://civitai.com/models/1981116)
- **VAE:** [wan_2.1_vae.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/blob/main/split_files/vae/wan_2.1_vae.safetensors)
- **Text Encoder:** [umt5_xxl_fp8_e4m3fn_scaled.safetensors](https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors)
**Структура моделей на сервере:**
```
📂 ComfyUI/models/
├── checkpoints/
│ ├── DasiwaWAN22I2V14BLightspeed_synthseductionHighV9.safetensors
│ └── DasiwaWAN22I2V14BLightspeed_synthseductionLowV9.safetensors
├── vae/
│ └── wan_2.1_vae.safetensors
└── text_encoders/
└── umt5_xxl_fp8_e4m3fn_scaled.safetensors
```
### 2. Генерация ключей (на любом ПК с Python)
@@ -52,7 +79,7 @@ $SERVER = "root@<ip_сервера>"
scp -r custom_comfyui/ ${SERVER}:/root/
# ИЛИ по файлам
scp server.py hmac_auth.py generate_keys.py setup.sh nginx.conf requirements.txt keys.json workflow_api.json ${SERVER}:/root/custom_comfyui/
scp server.py hmac_auth.py generate_keys.py setup.sh requirements.txt keys.json workflow_api.json ${SERVER}:/root/custom_comfyui/
```
### 4. Установка на сервере (одна команда)
@@ -65,10 +92,9 @@ sudo ./setup.sh
```
Скрипт автоматически:
- ✅ Установит Python, pip, nginx, wget
- ✅ Установит Python, pip, wget
- ✅ Установит Python зависимости
- ✅ Настроит Nginx (порт 5000 → API)
- ✅ Настроит Firewall (открыт 22 + 5000, закрыт 8188)
- ✅ Настроит Firewall (открыт 22 + 8080, закрыт 8188)
- ✅ Создаст systemd сервис с автозапуском
- ✅ Сгенерирует ключи (если нет)
@@ -87,7 +113,7 @@ scp root@<ip_сервера>:/root/custom_comfyui/keys.json .
curl http://localhost:8080/health
# Ответ:
# {"comfyui": "ok", "status": "ok", "timestamp": 1234567890}
# {"comfyui": "ok", "status": "ok", "queue": 0, "timestamp": 1234567890}
```
### 7. Генерация видео (с клиента)
@@ -111,6 +137,27 @@ python client.py \
--output transition.mp4
```
Клиент работает асинхронно (как RunPod): отправляет задачу → поллит статус → забирает видео.
---
## 🔄 API Endpoints (асинхронный, как RunPod)
| Endpoint | Method | Описание |
|----------|--------|----------|
| `/run` | POST | Поставить задачу в очередь → `{"id": "...", "status": "IN_QUEUE"}` |
| `/status/<id>` | GET | Получить статус: `IN_QUEUE` / `IN_PROGRESS` / `COMPLETED` / `FAILED` |
| `/purge/<id>` | POST | Удалить задачу из памяти (освободить RAM) |
| `/health` | GET | Health check (без авторизации) |
**Пример потока:**
```
1. POST /run {image_base64: "...", prompt: "..."} → {id: "abc-123", status: "IN_QUEUE"}
2. GET /status/abc-123 → {id: "abc-123", status: "IN_PROGRESS"}
3. GET /status/abc-123 → {id: "abc-123", status: "COMPLETED", output: {video: "base64...", seed: 42, ...}}
4. POST /purge/abc-123 → {id: "abc-123", purged: true}
```
---
## ⚙️ Параметры генерации
@@ -200,9 +247,3 @@ systemctl restart dasiwa-api
**Ошибка авторизации (401):**
- Проверь что `keys.json` одинаковый на клиенте и сервере
- Проверь время на обоих машинах (`date` на сервере, часы на ПК)
**Nginx ошибка:**
```bash
nginx -t
systemctl restart nginx
```