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

Petal skin

Проект принимает участие в конкурсе

Hanakotoba / (花言葉)

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

Концепция

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

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

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

Исходники

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

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

Исходный размер 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

Сначала я просто проверяла, работает ли модель, и просила ее рисовать портреты. Они получались, но довольно ожидаемо и даже немного скучно. Тогда я решила попробовать что-то другое и начала задавать ей цветы.

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

В этой серии я смотрю на то, как нейросеть переняла мой способ рисования и перенесла его на другой объект. Я обучала модель на портретах, но в генерации просила ее рисовать цветы. В результате получилось странное ощущение: цветы выглядят так, как будто они всегда были частью этого же визуального языка.

Исходный размер 4493x1453

Особенно хорошо видно, как сохраняется штрих. Линии не становятся более реалистичными, они остаются такими же мягкими, немного размытыми. Тень тоже ведет себя так же, как в портретах.

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

[prompt] Draw with a pencil phalaenopsis orchid macro, ink stippling technique, intricate petal texture, dotwork pattern, japanese botanical archive, fine art print

Исходный размер 5017x2258

[prompt]

Draw with a pencil single orchid branch, ink line drawing, sumi-e style, white background, minimal detail, gestural brushstroke, no shading, fine art print

Лучше всего модель справлялась с орхидеями. Именно на них сильнее всего проявлялось сходство со стилем портретов. Я пробовала разные ракурсы и композиции, но именно форма орхидеи как будто лучше «совпадала» с тем, как устроены лица в моих рисунках. В этих генерациях результат выглядел наиболее цельным.

Исходный размер 4493x1457

[prompt] Draw with a pencil magnolia branch two buds one bloom, ink thin outline, cream background, east asian botanical study, silent composition

Отдельно интересно наблюдать за переходом между цветком и лицом в смешанных изображениях. Там это сходство становится буквальным. Лепестки как будто продолжают линии лица, или наоборот. Граница между ними перестает быть очевидной.

Исходный размер 5017x2258

Потом захотелось попробовать соединить цветы и лицо вместе специально. Первые варианты были аккуратными: орхидеи как корона, магнолия рядом. Потом вспомнила про «Silent Hill f», там ветки и корни прорастают сквозь всё. Захотела сделать что-то похожее, попросила модель вплести ветки прямо в лицо.

Исходный размер 5017x1902

[prompt]

Draw with a pencil pencil portrait young woman, dark branches and flowers growing through her body, graphite drawing, horror botanical, japanese 1960s aesthetic, unsettling beauty

Трещины-ветки появились именно тогда. Это был самый точный результат, лицо и природа буквально из одного материала.

Комментарий результатов

В итоге проект оказался не столько про цветы или портреты, сколько про

сам принцип построения изображения.

Нейросеть не различает объекты так, как это делаем мы, она опирается на структуру, линии и распределение формы. Поэтому лицо и цветок для нее оказываются устроены одинаково. Это позволило увидеть собственный стиль со стороны. То, что казалось разными вещами, на уровне построения оказалось очень близким.

Список инструментов:

Stable Diffusion XL 1.0 — основная модель, на базе которой обучалась LoRA и генерировались все итоговые изображения; Google Colab — для выполнения кода и создания генераций; Claude — использовался для формулировки и уточнения промптов для генерации изображений; Figma — для создания коллажей в лонгриде

Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше