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 VideoComfyUIAUTOMATIC1111ControlNet • Инфраструктура: Performance, Storage, Мониторинг, Калькулятор

Готовы запустить?

Запустить GPU-сервер