Исходный размер 2417x3428

Petal skin

Hanakotoba / (花言葉)

— японская форма языка цветов

Концепция

Я давно рисую карандашные портреты девушек. Со временем у меня сформировался свой способ работы с формой и штрихом. В какой то момент я заметила, что похожие принципы можно увидеть и в изображениях цветов. Не по смыслу, а по тому, как строится форма. Мне стало интересно, можно ли это проверить через нейросеть. Я обучила модель на своих портретах, чтобы она выучила мой стиль, а затем начала задавать ей цветы.

big
Исходный размер 3054x1045

Лучше всего модель работала с орхидеями. Их форма оказалась ближе всего к структуре лица, на которой она обучалась, поэтому перенос стиля получался наиболее точным. Цветы оказались построены теми же средствами, что и лица. Для нейросети лицо и цветок устроены одинаково. Этот проект про это смещение. Про то, что изображение можно рассматривать через его устройство. И про то, что один и тот же визуальный язык может одинаково описывать и лицо, и цветок.

Исходники

[Мой стиль рисования]

Для обучения я использовала 11 собственных карандашных портретов. Все изображения обрезаны до формата 1:1, размер 512×512 пикселей.

big
Исходный размер 1920x1080

Я намеренно выбирала рисунки с разными образами: разные прически, выражения, ракурсы, чтобы модель не заучила один конкретный портрет, а уловила именно почерк и способ штриховать.

Исходный размер 5048x1216

Процесс обучения

Первым делом проверяю что GPU вообще доступна и в каком она состоянии: модель, загрузка, свободная память. Потом устанавливаю нужные библиотеки: bitsandbytes, transformers, accelerate, peft. Они отвечают за оптимизацию памяти и работу с LoRA. Отдельно ставлю свежую версию diffusers прямо с GitHub, она нужна для работы со Stable Diffusion и DreamBooth.

Исходный размер 3342x1364

Подключаю Google Drive чтобы брать изображения из облака. Пишу функцию которая собирает несколько картинок в одну сетку, чтобы удобно смотреть датасет. Нахожу все файлы в папке и проверяю что они загрузились нормально.

Исходный размер 3342x1292

Загружаю модель BLIP, она умеет смотреть на картинку и придумывать к ней текстовое описание. Прогоняю через нее весь датасет: каждое изображение получает подпись с префиксом «Draw with a pencil». Все пары картинка + описание сохраняются в metadata.json — это и есть размеченный датасет для обучения.

Исходный размер 3342x1510

После разметки удаляю BLIP и очищаю кэш GPU, она больше не нужна, а память надо освободить. Настраиваю кодировку UTF-8 чтобы текст читался корректно, конфигурирую Accelerate для запуска обучения на GPU и авторизуюсь в Hugging Face.

Исходный размер 3342x584

Запускаю обучение. Основные параметры: базовая модель SDXL 1.0, 500 шагов, learning rate 1e-4, batch size 2. Прогресс виден в реальном времени, loss постепенно снижается, модель учится.

Исходный размер 3342x1537

Обучение завершено, модель готова. Получаю ссылку на нее в Hugging Face Hub.

Исходный размер 3342x648

Оформляю карточку модели и публикую на Hugging Face. И все готово.

Исходный размер 3342x1704

Результаты генераций

Исходный размер 3054x1045
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше