File size: 4,367 Bytes
195404a b27a83f 195404a b27a83f 195404a b27a83f 195404a b27a83f 195404a b27a83f 195404a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | # 🔄 Обновление Qwen-ImageForFlo-Advanced
## ✨ Что изменено
### 1. Опциональный импорт `spaces`
- ✅ Модуль `spaces` теперь опциональный
- ✅ Работает на RunPod, локально и в HF Spaces
- ✅ Автоматически определяет окружение
### 2. Автоматическая загрузка ControlNet
- ✅ **Автоматически проверяет** наличие ControlNet в кэше
- ✅ **Автоматически скачивает** если модели нет
- ✅ **Определяет путь** кэша (RunPod: `/workspace/.cache` или локально: `~/.cache`)
- ✅ Корректная обработка ошибок
### 3. Правильные препроцессоры ControlNet
- ✅ **OpenposeDetector** - для Pose detection
- ✅ **AnylineDetector** - для Soft Edge detection
- ✅ **DepthAnythingV2** - для Depth map extraction
- ✅ **Fallback режимы** - если препроцессоры недоступны
- ✅ Добавлен **"Soft Edge"** в выбор control types
### 4. Исправлены параметры API
- ✅ Параметр `controlnet_scale` → `controlnet_conditioning_scale`
- ✅ Соответствует стандартному API Diffusers
---
## 📝 Что делает новый код
### Проверка окружения:
```python
# Используем /workspace/.cache на RunPod или ~/.cache локально
if os.path.exists("/workspace"):
cache_base = Path("/workspace/.cache")
else:
cache_base = Path.home() / ".cache"
```
### Автоматическая загрузка:
```python
if not cache_dir.exists():
logger.info(" 📥 ControlNet не найден в кэше, скачиваю...")
snapshot_download(
repo_id=controlnet_model_id,
local_dir=cache_dir,
token=hf_token
)
logger.info(" ✓ ControlNet успешно загружен в кэш")
```
---
## 🚀 Как использовать
### На RunPod:
```bash
# 1. Скачать проект
cd /workspace
hf download Gerchegg/Qwen-ImageForFlo-Advanced --repo-type space --local-dir Qwen-ImageForFlo-Advanced
# 2. Установить зависимости
cd Qwen-ImageForFlo-Advanced
pip install -r requirements.txt
# 3. Запустить (ControlNet скачается автоматически!)
python app.py
```
### Локально:
```bash
# Клонировать и запустить
git clone https://huggingface.co/spaces/Gerchegg/Qwen-ImageForFlo-Advanced
cd Qwen-ImageForFlo-Advanced
pip install -r requirements.txt
python app.py
```
---
## ✅ Преимущества
1. **Не нужно вручную качать ControlNet** - всё автоматически
2. **Работает везде** - RunPod, локально, HF Spaces
3. **Умный кэш** - использует правильную директорию в зависимости от окружения
4. **Graceful degradation** - если ControlNet не загружается, приложение продолжит работать
5. **Правильные препроцессоры** - из референсной реализации InstantX
6. **Полная поддержка**: Canny, Soft Edge, Depth, Pose
---
## 📊 Загружаемые модели и препроцессоры
### Основные модели:
1. **Text2Image** - Qwen-Soloband-Diffusers (~40GB)
2. **Image2Image** - Создается из Text2Image
3. **ControlNet** - InstantX/Qwen-Image-ControlNet-Union (~3GB) - **АВТОМАТИЧЕСКИ!**
### Препроцессоры:
1. **OpenPose** - lllyasviel/Annotators (для Pose detection)
2. **Anyline** - TheMistoAI/MistoLine (для Soft Edge)
3. **Depth Anything V2** - depth-anything/Depth-Anything-V2-Large (для Depth maps)
Все препроцессоры загружаются автоматически при первом запуске!
---
## 🎯 Итог
Теперь для запуска Advanced версии достаточно:
1. Скачать проект
2. Установить зависимости
3. Запустить app.py
**Всё остальное скачается автоматически!** 🚀
|