March 18

Как сделать свою LoRa? 

Давайте расскажу, как самим натренировать свою LoRa, чтобы генерировать изображения с собой. Все очень просто и займет несколько минут.

В качестве нейросети для генерации изображения будем использовать FLUX. Но сначала разберемся, что такое LoRa:

LoRA (Low-Rank Adaptation) это дополнительные библиотеки данных, которые внедряются в нейросеть, например FLUX для улучшения качества генерации изображений или соответствия паттерну. Короче она позволяет адаптировать и настраивать базовую модель FLUX.1-dev без необходимости переобучения всей модели. Поехали!

Начнем со сбора датасета

  1. Соберите 15-20 фотографий:
    • Разные ракурсы лица (фронтальные, профиль, полупрофиль)
    • Разные выражения лица
    • Хорошее освещение
    • Четкие, не размытые изображения
    • Разрешение не менее 1024×1024 пикселей
  2. Подготовьте фотографии:
    • Обрежьте так, чтобы лицо занимало примерно 60-70% кадра
    • Не используйте фотографии с другими людьми
    • Убедитесь, что на фото нет логотипов или текста
    • Желательно использовать фото с нейтральным фоном

Переходим в Fal.ai

Зарегистрируйтесь на Fal.ai, проще всего это сделать через GitHub, просто залогиньтесь им в сервисе.

Пополните баланс (обучение LoRA стоит около $2-5), российские карты сервис не принимает, можно сделать карту https://www.bitfree.us/ или в подобном сервисе.

  1. Создайте новую LoRA:
    • Перейдите в раздел LoRA Training
    • Загрузите подготовленные фотографии в Add Images
    • Придумайте уникальное триггерное слово (например, "ваше_имя_портрет") укажите в строке Trigger Word
    • Жмите Start
    • Процесс займет около 5-10 минут
    • Вы получите уведомление, когда LoRA будет готова

Использование вашей LoRA в Fal.ai

  1. Перейдите к генерации изображений:
  2. Создайте промпт с триггерным словом:
    Например:Портрет человека в парке, солнечный день, ваше_имя_портрет, реалистичный стиль
  3. Настройте параметры:

1) Image Size - выбирайте нужный формат изображения: квадрат, вертикальная картинка и так далее.

2) Num Inference Steps - можно оставить дефолтные 28 шагов.

3) Seed - изначально стоит random, можете нажать на кнопку, чтобы установить любое значение seed. Генерируя случайный seed, ИИ может генерировать разные изображения каждый раз, даже если все остальные значения остаются прежними. Это позволяет создавать бесконечное разнообразие изображений каждый раз. Если вы используете один и тотже seed, промпт и настройки, вы можете получать одно и то же изображение каждый раз.

4) Guidance scale (CFG) - значение насколько близко генерация должна соответствовать промпту. Базовое значение 3.5

5) Sync Mode - оставляем выключенным

6) Num Images - количество изображений в генерации (от 1 до 4), все изображения будут разными и за кажое будет снята оплата.

7) Enable Safety Checker - не трогаем Для генерации нажимаем RUN

Как составить хороший промпт для генерации изображения

  • Пишем на английском языке
  • Кратко
  • Используем специальные слова (укажу ниже)

Схема такая:

  • Объект. Обозначьте главный объект в генерации - первое слово или фраза в промте для нейросети. И лучше будет написать не просто "гусеница", а "пушистая зеленая гусеница с красными полосками на спине". Не забываем что LoRa вызывается названием Trigger Word в промпте.
  • Детали. Важная часть промта - детализация. Всё самое важное прописываем, тогда нейросеть FLUX сгенерирует то, что надо. Например: "пушистая зеленая гусеница с красными полосками на спине ползёт по асфальту на фоне оживленной улицы".
  • Ключевые слова. Такие слова помогают нейросети Flux понять созданный промт. Например: "ретро", "винтаж", "осенний пейзаж". Как пользоваться ключевыми словами в промте покажу в примерах ниже.
  • Логическая структура. Выделяйте объекты и их характеристики в логической последовательности. Например: "женщина с рыжими длинными волосами в норковой шубе стоит на автобусной остановке". Так не надо: "собака сидит возде будки, железная цепь, зеленый шарф". Flux нарисует, но то ли это будет.

Специальные слова:

  • вид с уровня земли (ground-level perspective). Интересный ракурс, когда главный объект в фокусе, а остальное размыто.
  • кадр от первого лица (first-person perspective). Такими картинками легко вовлечь аудиторию в происходящее, добавляйте динамики и драйва. Хорошая идея для анонсов сплавов, походов, а также любой другой движухи.
  • панорамный вид снизу вверх (worm’s-eye view) и панорамный вид сверху вниз (overhead или bird’s-eye view). Беспроигрышные ракурсы для демонстрации масштабов, величественности. Например, панорамной съёмкой сверху можно передать масштабность спортивного соревнования
  • вид сквозь объект (through-the-object perspective).
  • съемка изнутри (inside-out view). Например, из автомобиля.
  • отраженная перспектива (reflected perspective). Все отражающие поверхности берем и экспериментируем. Лужа, лёд, глянец, стекло.

Можно использовать технические параметры камеры:

камера — Nikon D850, Sony A7R IV, Panasonic Lumix GH5

угол съемки — eye-level, low angle, high angle, dutch angle

объектив — wide-angle lens, telephoto lens, fisheye lens, prime lens

диафрагма — f/1,4, f/2,8, f/5,6, f/8

iso — iso 100, iso 400, iso 1600, iso 3200

глубина резкости — shallow depth of field, deep depth of field

скорость затвора — 1/1000 sec, 1/250 sec, 1/30 sec

p.s Если персонаж не должен быть похож на обученную LoRa - ссылку на лору в Path убирайте