fix workflow
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user