File size: 5,306 Bytes
a55b428 |
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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# Helio-Ray-LoRA (v0.1 Experimental) — Руководство
Этот документ описывает, как использовать экспериментальный LoRA-адаптер Helio-Ray поверх базовой модели Z-Image.
## Установка зависимостей
```bash
pip install torch>=2.0.0
pip install diffusers>=0.30.0
pip install peft>=0.13.0
pip install transformers>=4.45.0
pip install accelerate safetensors
```
## Базовая генерация
Скрипт автоматически скачает базовую модель (Z-Image-Turbo), если она не установлена, и применит к ней наш адаптер.
```python
import torch
from diffusers import DiffusionPipeline
from peft import PeftModel
# 1. Загрузка базовой модели (Z-Image)
# При первом запуске скачается ~10 ГБ
pipe = DiffusionPipeline.from_pretrained(
"Tongyi-MAI/Z-Image-Turbo",
torch_dtype=torch.float16, # Используйте float16 для экономии памяти
trust_remote_code=True
)
pipe.to("cuda")
# 2. Применение адаптера Helio-Ray
# Загружается с Hugging Face (всего ~300 МБ)
pipe.transformer = PeftModel.from_pretrained(
pipe.transformer,
"HelioAI/Helio-Ray-LoRA-v0.1", # Убедитесь, что имя репозитория совпадает
is_trainable=False
)
# 3. Функция установки силы влияния (Scale)
def set_lora_scale(scale):
for module in pipe.transformer.modules():
if hasattr(module, "scaling"):
for key in module.scaling:
module.scaling[key] = scale
# Рекомендуемое значение: 0.5 - 0.7
set_lora_scale(0.5)
# 4. Генерация (Строго 1024x1024)
image = pipe(
prompt="Реалистичное фото, вывеска магазина с надписью 'ПРОДУКТЫ', вечер, 8k",
height=1024,
width=1024,
num_inference_steps=8, # Turbo-режим (быстро)
guidance_scale=0.0
).images[0]
image.save("output.png")
```
## Адаптивный scale (Умная настройка)
Адаптер лучше всего работает с реализмом. Для пиксель-арта или стилизации рекомендуется снижать влияние адаптера.
```python
def get_optimal_scale(prompt):
"""Автоматический выбор scale в зависимости от промпта"""
stylized_keywords = ['майнкрафт', 'пиксел', 'anime', 'мультфильм', '8-bit']
prompt_lower = prompt.lower()
for keyword in stylized_keywords:
if keyword in prompt_lower:
return 0.3 # Слабое влияние для стилизации
return 0.5 # Стандартное влияние для фотореализма и текста
# Использование
prompt = "Картинка в стиле майнкрафта"
scale = get_optimal_scale(prompt)
set_lora_scale(scale)
```
## Batch генерация (Пакетная)
```python
prompts = [
"Кружка с надписью 'КОФЕ' на столе",
"Вывеска 'АПТЕКА' на здании",
"Книга с заголовком 'ИСТОРИЯ' крупным планом"
]
for i, prompt in enumerate(prompts):
image = pipe(
prompt,
height=1024,
width=1024,
num_inference_steps=8,
guidance_scale=0.0
).images[0]
image.save(f"output_{i}.png")
```
## Настройка качества
Если результат кажется "мыльным", можно увеличить количество шагов, но это замедлит генерацию.
```python
# Больше шагов = выше детализация
image = pipe(
prompt="...",
num_inference_steps=12, # Стандарт: 8. Максимум: 15-20.
height=1024,
width=1024
).images[0]
```
## Системные требования
Хотя сам адаптер весит мало, для запуска всей цепочки (Base + Adapter) требуется GPU.
- **VRAM:** Минимум 12-16 GB (для комфортной работы).
- **RAM:** 16 GB+.
- **Python:** 3.10+.
## Troubleshooting (Решение проблем)
### OOM (Ошибка нехватки памяти)
Если видеокарта слабая (менее 12 ГБ VRAM), включите выгрузку слоев на процессор:
```python
pipe.enable_model_cpu_offload()
```
### Артефакты на изображении
- Попробуйте уменьшить scale до **0.3-0.4**.
- Увеличьте `num_inference_steps` до **10-12**.
### Текст генерируется с ошибками
- Убедитесь, что scale установлен на **0.5** или **0.6**.
- Пишите желаемый текст в промпте **в одинарных кавычках** (например: `'МАГАЗИН'`).
- Добавьте описание стиля текста (например: "крупный шрифт, четкие буквы").
``` |