Gerchegg commited on
Commit
f9e115c
·
verified ·
1 Parent(s): c45c100

Upload UPDATE_NOTES.md with huggingface_hub

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