| # 🔄 Обновление 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 | |
| **Всё остальное скачается автоматически!** 🚀 | |