LoRA fine-tuning Kandinsky 5.0 на облачном GPU
См. также — глоссарий
Задача страницы. Показать, как обучить собственные LoRA-адаптеры на Kandinsky 5.0: от подготовки датасета до использования обученной модели в production. Отдельно — готовые Camera Control LoRAs от Sber AI.
TL;DR
- Sber AI выпустил официальный инструмент kandinsky-5-lora-train для упрощённого обучения LoRA.
- Минимум: 20–50 изображений с подписями, GPU с 24 ГБ VRAM, 2–8 часов.
- Результат: LoRA-адаптер 50–200 МБ, подключается при инференсе через diffusers или ComfyUI.
- Готовые Camera Control LoRAs — управление движением камеры в Video Lite и Video Pro.
- Нулевое покрытие темы конкурентами в RU-сегменте.
Зачем обучать LoRA на Kandinsky
LoRA (Low-Rank Adaptation) — метод дообучения, который добавляет к базовой модели компактный адаптер (50–200 МБ вместо десятков ГБ полной модели). Это позволяет:
- Фирменный стиль — генерации в стилистике вашего бренда, художника, проекта
- Свои персонажи — консистентные лица и объекты во всех генерациях
- Продуктовые фото — обучение на каталоге товаров для генерации новых ракурсов и контекстов
- Управление камерой — специализированные LoRA для движения камеры в видео
- Доменная адаптация — архитектура, медицина, мода, еда — любая узкая ниша
Сочетание MIT-лицензии Kandinsky и LoRA-обучения даёт полностью коммерческий пайплайн: свои данные → своя модель → свой продукт.
Что нужно для обучения
Датасет
- Минимум 20 изображений — для стиля или объекта. 50–100 дадут стабильнее результат.
- Разрешение — от 512×512, лучше 1024×1024 (нативное для Kandinsky 5.0)
- Подписи (captions) — текстовое описание каждого изображения. Формат:
image_name.txtрядом сimage_name.png - Качество — чёткие, хорошо экспонированные изображения без артефактов сжатия
Структура каталога:
dataset/
image_001.png
image_001.txt # "Фотография [trigger_word] на белом фоне, студийное освещение"
image_002.png
image_002.txt
...
GPU
| GPU | VRAM | Время обучения (50 изображений) | Стоимость |
|---|---|---|---|
| RTX 4090 | 24 ГБ | 2–6 часов | ~₽100–300 |
| RTX 5090 | 32 ГБ | 1.5–4 часа | ~₽100–300 |
| A100 80GB | 80 ГБ | 1–3 часа | ~₽200–500 |
Для большинства задач RTX 4090 — оптимальный выбор. A100 оправдан при больших датасетах (500+ изображений) или частых экспериментах.
Подготовка датасета
Сбор изображений
Для обучения стиля: 20–50 изображений в одном стиле, разнообразных по содержанию (разные объекты, ракурсы, освещение).
Для обучения объекта/персонажа: 30–100 фотографий одного объекта с разных ракурсов, при разном освещении, на разных фонах.
Генерация подписей
Подписи можно создать вручную или автоматически через BLIP-2 / CogVLM:
from transformers import Blip2Processor, Blip2ForConditionalGeneration
from PIL import Image
import torch, glob
processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
model = Blip2ForConditionalGeneration.from_pretrained(
"Salesforce/blip2-opt-2.7b", torch_dtype=torch.float16
).to("cuda")
for img_path in glob.glob("dataset/*.png"):
image = Image.open(img_path)
inputs = processor(images=image, return_tensors="pt").to("cuda", torch.float16)
ids = model.generate(**inputs, max_new_tokens=50)
caption = processor.batch_decode(ids, skip_special_tokens=True)[0].strip()
txt_path = img_path.replace(".png", ".txt")
with open(txt_path, "w") as f:
f.write(f"[trigger_word], {caption}")
Рекомендуется проверить и отредактировать подписи вручную после автоматической генерации.
Trigger word
Добавьте уникальное слово-триггер (например, mybrand или sks) в начало каждой подписи. При инференсе включайте его в промпт для активации стиля/объекта.
Запуск обучения
Sber AI выпустил официальный репозиторий kandinsky-5-lora-train с упрощённым интерфейсом:
git clone https://github.com/ai-forever/kandinsky-5-lora-train
cd kandinsky-5-lora-train
pip install -r requirements.txt
python train.py \
--pretrained_model_name_or_path="ai-forever/kandinsky-5-image-lite" \
--train_data_dir="./dataset" \
--output_dir="./output/my_lora" \
--resolution=1024 \
--train_batch_size=1 \
--gradient_accumulation_steps=4 \
--learning_rate=1e-4 \
--max_train_steps=1000 \
--lora_rank=16 \
--mixed_precision="bf16"
Ключевые параметры:
| Параметр | Описание | Рекомендация |
|---|---|---|
lora_rank |
Ранг LoRA (размер адаптера) | 8–32, чаще 16 |
learning_rate |
Скорость обучения | 1e-4 — 5e-5 |
max_train_steps |
Количество шагов | 500–2000 (зависит от датасета) |
resolution |
Разрешение обучения | 1024 (нативное для Kandinsky 5.0) |
gradient_accumulation_steps |
Эффективный батч | 4–8 при batch_size=1 |
Camera Control LoRAs
Sber AI выпустил готовые LoRA-адаптеры для управления камерой в видеомоделях:
| LoRA | Движение камеры | Совместимость |
|---|---|---|
| Pan Left/Right | Горизонтальное панорамирование | Video Lite, Video Pro |
| Tilt Up/Down | Вертикальное панорамирование | Video Lite, Video Pro |
| Zoom In/Out | Приближение/удаление | Video Lite, Video Pro |
| Roll CW/CCW | Вращение вокруг оси | Video Lite, Video Pro |
| Orbit | Круговой облёт объекта | Video Lite, Video Pro |
Подключение Camera LoRA при генерации:
from diffusers import Kandinsky5T2VPipeline
pipe = Kandinsky5T2VPipeline.from_pretrained(
"kandinskylab/Kandinsky-5.0-T2V-Lite-sft-5s-Diffusers",
torch_dtype=torch.bfloat16,
)
pipe.load_lora_weights("ai-forever/kandinsky-5-video-lite-camera-loras", weight_name="zoom_in.safetensors")
pipe = pipe.to("cuda")
video = pipe("Камера приближается к старинному замку на холме, рассвет").frames
Использование обученной LoRA
Через diffusers
from diffusers import Kandinsky5T2IPipeline
pipe = Kandinsky5T2IPipeline.from_pretrained(
"kandinskylab/Kandinsky-5.0-T2I-Lite-sft-Diffusers",
torch_dtype=torch.bfloat16,
)
pipe.load_lora_weights("./output/my_lora")
pipe = pipe.to("cuda")
image = pipe("[trigger_word] на фоне горного пейзажа, закат").images[0]
image.save("output_with_lora.png")
Через ComfyUI
Скопируйте файл .safetensors из output/my_lora/ в каталог models/loras/ ComfyUI. В графе подключите LoRA Loader между Checkpoint и KSampler.
Стоимость полного цикла
Пример: обучение стиля на 50 изображениях, 1000 шагов, затем генерация 100 изображений.
| Этап | GPU | Время | Стоимость |
|---|---|---|---|
| Подготовка датасета (captioning) | RTX 4090 | ~10 мин | ~₽5 |
| Обучение LoRA (1000 шагов) | RTX 4090 | ~3–5 часов | ~₽150–250 |
| Генерация 100 изображений | RTX 4090 | ~15 мин | ~₽50–70 |
| Итого | ~4–6 часов | ~₽200–320 |
При регулярных экспериментах (перебор гиперпараметров, разные датасеты) бюджет увеличивается пропорционально. Для точного планирования — калькулятор стоимости.
Советы
- Начинайте с малого: 20–30 изображений и 500 шагов. Оцените результат, затем увеличивайте.
- Сохраняйте чекпоинты каждые 200–300 шагов — поможет найти оптимальную точку обучения без переобучения.
- Следите за overfitting: если модель генерирует точные копии обучающих изображений — уменьшите шаги или learning rate.
- Комбинируйте LoRA: при инференсе можно подключить несколько LoRA одновременно (стиль + объект + камера).
- Для видео-LoRA используйте отдельные скрипты обучения из репозитория Sber — процесс отличается от image-LoRA.
FAQ
Сколько изображений нужно для обучения? Минимум 20 для стиля, 30 для объекта/персонажа. Больше — стабильнее результат, но после 200–300 изображений прирост качества замедляется.
Можно ли обучить LoRA для видеомодели? Sber выпустил Camera Control LoRAs для Video Lite и Video Pro. Обучение пользовательских видео-LoRA — экспериментальная возможность, инструменты в стадии развития.
Как понять, что обучение завершилось успешно? Генерируйте тестовые изображения с trigger word на каждом сохранённом чекпоинте. Хорошая LoRA: стиль/объект узнаваем, но модель не «застряла» на обучающих данных.
Навигация по разделу «Генерация изображений и видео»
Обзор • Kandinsky (главная) • Kandinsky Video • ComfyUI • AUTOMATIC1111 • ControlNet • Инфраструктура: Performance, Storage, Мониторинг, Калькулятор
Готовы запустить?
Запустить GPU-сервер