ОПИСАНИЕ
Обучение проводилось на датасете из пиксельных изображений, созданных мной вручную. Все изображения были предварительно приведены к единому формату и разрешению, что обеспечило согласованность данных для обучения модели.
В ходе настройки модели и параметров обучения модель приобрела способность воспроизводить визуальные особенности представленного датасета.
К наиболее устойчиво переданным характеристикам можно отнести пиксельную стилистику, а также выразительные большие глаза персонажей.
Несмотря на ограниченный объём датасета, модель демонстрирует способность интерпретировать и воспроизводить заданные визуальные паттерны в различных сценариях генерации. В процессе экспериментов были протестированы различные промпты, включающие как прямое указание триггера стиля (project style), так и его отсутствие, что позволило оценить степень усвоения визуальных характеристик


исходные изображения


исходные изображения
РЕЗУЛЬТИРУЮЩАЯ СЕРИЯ ИЗОБРАЖЕНИЙ

Первая генерация была выполнена с использованием минимального промпта — только «promt in project style» без дополнительного описания сцены или объектов. В результате генерации можно отметить, что модель частично воспроизводит ключевые особенности обученного стиля: прежде всего, выраженную пиксельность изображения, а также характерную передачу формы и увеличенные глаза персонажа. Эти элементы соответствуют визуальным паттернам, представленным в обучающем наборе данных.
В то же время отсутствие конкретного описания сцены привело к тому, что модель самостоятельно интерпретировала композицию изображения. В результате на изображении появились дополнительные элементы, не предусмотренные исходным промптом, расположенные по краям кота. Это свидетельствует о том, что модель стремится достроить сцену при недостатке входной информации, опираясь на внутренние представления, сформированные в процессе обучения.
Таким образом, данная генерация демонстрирует как сильные стороны модели, так и её склонность к генерации дополнительных деталей при минимальном промпте.
Вторая генерация была выполнена с использованием такого промпта — «project style, pixel art, cute pixel cat with big eyes looking at a mirror, reflection, introspective mood, soft lighting, 8-bit style».
В данном случае модель частично воспроизводит заданную пиксельную стилистику, однако наблюдается снижение выраженности некоторых ключевых характеристик, таких как большие глаза персонажа. Вместо точного следования визуальным признакам, демонстрируется более обобщённая интерпретация образа.
Также можно отметить, что модель сохраняет общую композицию и идею сцены (взаимодействие с зеркалом и наличие отражения), однако стилистическая проработка отличается от обучающего датасета. Это может свидетельствовать о том, что при усложнении промпта модель начинает балансировать между обученным стилем и возможным внутренними представлениями, что приводит к некоторому отклонению от исходной стилистики.
Таким образом, в данной генерации наблюдается частичная передача стилевых характеристик, при этом усиливается влияние самого промпта и его интерпретации моделью.


Третья и четвертая генерация были выполнены с использованием более краткого промпта — «promt in project style, cat with big eyes reading a book». В отличие от предыдущей генерации, описание сцены было небольшим, что позволило модели сфокусироваться на передаче базовых характеристик стиля.
В данном случае наблюдается более выраженное соответствие визуальному стилю, особенно в части пиксельности изображения. Модель лучше воспроизводит стилистические особенности, вероятно, благодаря снижению сложности и количества конкурирующих параметров в промпте.
При этом можно отметить незначительные изменения в форме персонажа: модель интерпретирует анатомию кота по-своему, изменяя форму головы и ушей.
Данные генерации демонстрируют, что более лаконичные промпты могут способствовать лучшему сохранению стиля.
Пятая генерация была выполнена с использованием промпта, описывающего сцену внутри интерфейса видеоигры — «promt in project style, cat with big eyes inside a video game interface, UI elements, retro game world, 8-bit, stylized». Несмотря на добавление такого контекста, значительных изменений по сравнению с предыдущими изображениями не произошло.
Модель сохранила характерную пиксельную стилистику, но упростила форму персонажа. Вероятно, это связано с тем, что обученный стиль уже близок к визуальному стилю видеоигр, поэтому модель не получила новых выразительных ориентиров из промпта.
В результате изображение стало более минималистичным, без явных элементов интерфейса, которые ожидались в сцене.
Данная генерация показывает, что при совпадении описания сцены с уже изученным стилем модель склонна сохранять исходную визуальную логику и не вносить сильных изменений в композицию
Шестая генерация была выполнена с использованием такого промпта — «promt in project style, project style, pixel art, cute pixel cat with big eyes holding balloons, floating feeling, light and joyful mood, 8-bit, soft colors» В целом модель корректно передала основную идею сцены: присутствуют воздушные шарики, а также сохранена пиксельная стилистика, соответствующая обучающему датасету. Это говорит о том, что модель успешно усвоила ключевые визуальные признаки и может воспроизводить их в новых сценах.
Однако можно отметить, что интерпретация настроения сцены оказалась неточной: выражение кота получилось недовольным. Также наблюдается небольшое отклонение в общем стиле изображения, что свидетельствует о вариативности результатов при генерации даже в пределах одного стилевого триггера.
Седьмая генерация была выполнена с использованием промпта «promt in project style, pixel art, cute pixel cat with big eyes in a pixel city, buildings, lights, night city vibe, 8-bit style» В результате можно отметить, что модель успешно передала пиксельную стилистику, а также характерные особенности персонажа, включая большие глаза. Общий визуальный образ остаётся близким к обучающему датасету. Также можно отметить удачную передачу настроения сцены.
При этом наблюдаются незначительные вариации в деталях изображения.


Были проведены две генерации с похожими промптами, отличающиеся наличием ключевого триггера стиля project style.
В первом случае («promt in project style, project style, pixel art, three cute pixel cats with big eyes, different colors, sitting together, 8-bit style, square pixels»), при использовании триггера, модель сгенерировала изображение с несколькими котами, однако результат оказался не слишком точным: часть персонажей потеряла уши и глаза, что затрудняет их распознавание как котов.
Во втором случае, при использовании аналогичного промпта без триггера («multiple cute pixel cats with big eyes, different colors and expressions»), модель показала более стабильный результат. Несмотря на некоторые неточности, изображение оказалось более понятным.
Таким образом, можно сделать вывод, что добавление project style в данном случае не всегда улучшает результат и может влиять на генерацию неоднозначно.
Последняя генерация была выполнена с использованием промпта, содержащего образ собаки в сочетании с указанием обученного стиля «dog in project style».
В результате модель сгенерировала изображение, которое визуально ближе к образу собаки, при этом сохранив ключевые характеристики обученного стиля, такие как пиксельность и увеличенные глаза. Это говорит о том, что модель способна переносить изученные стилистические особенности на новые объекты, даже если они не присутствовали в исходном датасете.
ПРОЦЕСС ОБУЧЕНИЯ
На первом этапе была выполнена подготовка вычислительной среды для обучения модели. В частности, осуществлялась проверка доступности GPU и его параметров, что необходимо для корректного выполнения обучения.
Далее были установлены необходимые зависимости, включая библиотеки для работы с генеративными моделями и загрузку дополнительных инструментов через pip. Также выполнялась установка и подключение необходимых пакетов из внешних репозиториев (в том числе через git), что позволило использовать готовые решения и скрипты для обучения.
Дополнительно была настроена интеграция с Google Colab и подключение к Google Drive, что обеспечило возможность загрузки датасета и сохранения результатов обучения. Для этого использовались стандартные средства Python, такие как import os, а также инструменты доступа к файловой системе Colab.
На этапе подготовки была создана рабочая директория в Google Drive, предназначенная для хранения данных проекта и результатов обучения. Для этого с помощью библиотеки os был задан путь к папке и выполнена проверка её существования с автоматическим созданием, если папка отсутствует.
После создания директории в неё были загружены изображения, которые использовались как датасет для обучения модели. Далее с помощью библиотеки PIL была реализована функция для загрузки и визуализации изображений.
Функция позволяла считывать изображения из указанной директории, приводить их к единому цветовому формату и отображать в виде сетки.
На следующем этапе были заданы основные параметры обучения модели. В частности, был указан промпт для генерации (instance_prompt), а также определены ключевые гиперпараметры, такие как разрешение изображений, размер батча, шаги накопления градиента, скорость обучения и общее количество шагов обучения.
Также были заданы пути к датасету и директории для сохранения обученной модели. Далее выполнялась загрузка изображений из рабочей директории с использованием библиотеки glob. Изображения объединялись в единый список и считывались в память для последующей обработки.
Дополнительно в процессе подготовки использовалась очистка памяти с помощью функций сборщика мусора (gc) и освобождения GPU-памяти (torch.cuda.empty_cache ()), что помогает избежать переполнения памяти во время обучения.
На данном этапе выполнялась настройка окружения для корректной работы используемых библиотек и инструментов.
Сначала была установлена кодировка UTF-8 для корректного отображения текстовых данных,. Далее была выполнена настройка инструмента accelerate, который используется для оптимизации и управления процессом обучения моделей.
После этого осуществлялась авторизация в сервисе Hugging Face с помощью notebook_login ().
Также была установлена библиотека datasets, которая используется для работы с датасетами и упрощает процесс их загрузки, обработки и использования в обучении.
На данном этапе был запущен процесс обучения модели с использованием скрипта DreamBooth LoRA для Stable Diffusion. В качестве основы использовалась предобученная модель stable-diffusion-xl-base-1.0. В ходе обучения были заданы параметры, включая датасет, количество шагов обучения, скорость обучения, размер батча и использование оптимизаций для работы с памятью (например, mixed precision и gradient checkpointing).
Также был указан промпт (project style), который позволил модели связать обучаемый визуальный стиль с заданным токеном.
В результате выполнения данного этапа модель была обучена на предоставленных данных и адаптирована под заданный стиль
На заключительном этапе была загружена обученная модель и подготовлена к генерации изображений. Для этого использовались инструменты библиотеки diffusers,.
После загрузки модели были применены веса, полученные в процессе обучения, что позволило адаптировать базовую модель под заданный визуальный стиль (project style). Далее модель была перемещена на GPU для ускорения генерации, после чего была выполнена генерация изображения на основе текстового запроса.
Сгенерированное изображение было сохранено в указанную директорию.
ВЫВОД
В рамках проекта была обучена генеративная нейросеть на основе Stable Diffusion с использованием собственного датасета из пиксельных изображений. В ходе работы был подготовлен датасет, настроена среда, выполнено обучение модели и проведены эксперименты с генерацией изображений.
В результате модель смогла частично воспроизвести характерные особенности датасета, такие как пиксельная стилистика и увеличенные глаза персонажей. Также было выявлено, что модель по-разному реагирует на формулировки промптов: при их упрощении стиль передаётся лучше, а при усложнении могут появляться отклонения в деталях.
В процессе работы были протестированы различные сценарии генерации. Это позволило оценить, как модель интерпретирует стиль и насколько устойчиво он воспроизводится.
Таким образом, в рамках проекта была получена обученная модель, способная генерировать изображения в заданном стиле и использовать его для создания новых визуальных образов.
ГЕН (ИИ)
В процессе работы над проектом для помощи в формулировке текста и описании этапов использовался генеративный искусственный интеллект — OpenAI (модель ChatGPT).
Он применялся для более детального и структурированного описания процесса обучения, а также для формулировки комментариев к результатам генерации.




