Нейросеть для pixel art: генерация искусственным интеллектом и как приручить AI

0
94

Этап 1: Поиск масштаба псевдо-пикселя (Scale Detection)

Как приручить - изображение номер один
Как приручить — изображение номер один

Can - изображение номер два
Can — изображение номер два

Фильтр Собеля позволяет найти места с резкими переходами цветов — то есть потенциальные границы между псевдопикселями.

Нейросеть обучили создавать пиксель-арт из рисунков без учителя - изображение номер три
Нейросеть обучили создавать пиксель-арт из рисунков без учителя — изображение номер три

Мы получаем двумерную карту «резкости» по X и Y, где яркие линии — это места, где картинка притворяется пиксельной.

Теперь мы превращаем 2D-гистограмму границ в 1D-профиль: суммируем яркость по каждому столбцу (для X) и строке (для Y). Это даёт нам наглядную кривую, где пики указывают на предполагаемые линии сетки.

Illustration - изображение номер четыре
Illustration — изображение номер четыре

Далее рассмотрим распределение расстояний между пиками. В большинстве тестовых картинок всплывает шаг 8/12/16/24 px; 43 px — просто хороший «демо‑случай».

How to - изображение номер пять
How to — изображение номер пять

Анализ всей картинки: сотни измерений показывают доминирующий шаг — 43 пикселя.

Для наглядности мы визуализируем границы между «псевдопикселями» — то есть места с наибольшими цветовыми переходами по всей картинке. Это помогает убедиться, что структура действительно регулярная, а выбранный масштаб соответствует реальному «рисунку» нейросети.

Accurate - изображение номер шесть
Accurate — изображение номер шесть

Тёплые зоны — резкие границы, которые нейросеть создала между «пикселями». Их регулярность подтверждает корректность выбранного масштаба

Изменение формата битности

Pixel-Art - изображение номер семь
Pixel-Art — изображение номер семь

What - изображение номер восемь
What — изображение номер восемь

Разнообразие generate-model

7 - изображение номер девять
7 — изображение номер девять

Генерация арта осуществляется во всех доступных моделях, чтобы вы могли подобрать именно тот стиль и «битность» пиксель-арта, который подойдет для вас.

Нейросети в помощь геймдев-художнику: машинное обучение для создания игрового пи - изображение номер десять
Нейросети в помощь геймдев-художнику: машинное обучение для создания игрового пи — изображение номер десять

Русский язык

Free - изображение номер одиннадцать
Free — изображение номер одиннадцать

Сервис позволяет создавать промты на русском языке, дополняя их при желании английским.

Этап 2: Выравнивание сетки и умная обрезка

Изменения в инструменте - изображение номер двенадцать
Изменения в инструменте — изображение номер двенадцать
  1. Преобразуем изображение в градации серого.
  2. Считаем границы — места, где изображение резко меняется, с помощью фильтра Собеля.
  3. Строим профили по строкам и столбцам — сколько «резкости» приходится на каждую линию.
  4. Перебираем все возможные сдвиги от 0 до scale — 1, и на каждом шаге оцениваем, насколько хорошо сетка совпадает с пиками в этих профилях.
  5. Выбираем такой сдвиг (x, y), при котором сетка максимально точно ложится на изображение.

Считаем границы — места, где изображение резко меняется, с помощью фильтра Собеля.

Строим профили по строкам и столбцам — сколько «резкости» приходится на каждую линию.

Перебираем все возможные сдвиги от 0 до scale — 1, и на каждом шаге оцениваем, насколько хорошо сетка совпадает с пиками в этих профилях.

Выбираем такой сдвиг (x, y), при котором сетка максимально точно ложится на изображение.

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

После этого картинку можно обрезать так, чтобы её размеры делились на 43 без остатка, и каждый блок внутри сетки стал честной «ячейкой», которую можно анализировать и уменьшать без искажений.

Этап 3. Формирование палитры

Как выбрать цветовую палитру в пиксель арт (на русском) - изображение номер тринадцать
Как выбрать цветовую палитру в пиксель арт (на русском) — изображение номер тринадцать

Настоящий ретро‑пиксель‑арт — это всегда ещё и палитра. Например, в NES было 54 отображаемых цвета (из 64) и максимум 4 на тайл; в SNES — больше, но всё равно жёстко фиксировано.

Поэтому настоящая пиксельная графика — это всегда не только про сетку, но и про сдержанную палитру.

  • Убирает шум — плавные градиенты, антиалиасинг, случайные оттенки.
  • Приближает к эстетике ретро — делает картинку «собранной» и аккуратной, как если бы её действительно рисовали для GBA или Mega Drive.
  • Также это позволяет нам проще подогнать спрайт к остальным ассетам нашей игры, если мы используем единую палитру, например, из

Приближает к эстетике ретро — делает картинку «собранной» и аккуратной, как если бы её действительно рисовали для GBA или Mega Drive.

Также это позволяет нам проще подогнать спрайт к остальным ассетам нашей игры, если мы используем единую палитру, например, из

Для формирования палитры я использовал квантизацию через алгоритм WuQuant из библиотеки image-q

Квантизация — это процесс сведения похожих цветов к ближайшему из фиксированной палитры.Если в изображении было, скажем, 1500 зелёных оттенков, то после квантизации останется 4–8, и каждый пиксель будет перекрашен в ближайший.

Pixel - изображение номер четырнадцать
Pixel — изображение номер четырнадцать

Этап 4. Даунскейл по доминирующему цвету

How to adjust pixel art color with - изображение номер пятнадцать
How to adjust pixel art color with — изображение номер пятнадцать
  1. Выделяем блок — берём участок, соответствующий одному пикселю в финальной картинке
  2. Считаем цвета — сколько раз встречается каждый
  3. Выбираем победителя — если один цвет встречается чаще остальных (больше 5% от всех), он и становится цветом блока
  4. Если голосование не определило явного победителя, берём средний цвет (с усреднением по RGB)

Выделяем блок — берём участок, соответствующий одному пикселю в финальной картинке

Выбираем победителя — если один цвет встречается чаще остальных (больше 5% от всех), он и становится цветом блока

Если голосование не определило явного победителя, берём средний цвет (с усреднением по RGB)

Основные понятия компьютерной графики - изображение номер шестнадцать
Основные понятия компьютерной графики — изображение номер шестнадцать

Подготовка к - изображение номер семнадцать
Подготовка к — изображение номер семнадцать

В отличие от наивного рескейла (где цвета смешиваются и рождают артефакты), такой блоковый подход делает каждый пиксель осмысленным.

Часто задаваемые вопросы о нейросетях для пиксель-арта

Вопрос: Какие нейросети лучше всего подходят для создания пиксель-арта?
Ответ: Для пиксель-арта часто используют специализированные модели, такие как Pixel Art Diffusion, или настраивают Stable Diffusion с помощью LoRA-адаптеров, обученных на пиксельной графике. Также подходят модели, понимающие запросы вроде «pixel art», «8-bit» или «16-bit».

Вопрос: Нужно ли уметь рисовать, чтобы пользоваться такой нейросетью?
Ответ: Нет, базовые навыки рисования не обязательны. Однако понимание основ пиксель-арта (палитра, ограничение цвета, четкие контуры) поможет формулировать более точные запросы и получать лучший результат.

Вопрос: Какой текст запроса (промпт) давать нейросети для пиксель-арта?
Ответ: В промпте важно указать стиль («pixel art», «8bit», «low-res»), тему, цветовую гамму, настроение. Можно добавить технические термины: «no anti-aliasing» (без сглаживания), «limited color palette» (ограниченная палитра).

Вопрос: Почему нейросеть иногда выдает размытое или нечеткое изображение вместо четких пикселей?
Ответ: Это происходит из-за настроек сглаживания (anti-aliasing) в модели или слишком высокого разрешения выходного изображения. Нужно явно запрещать сглаживание в промпте и использовать постобработку для уменьшения масштаба.

Вопрос: Можно ли превратить обычное фото в пиксель-арт с помощью нейросети?
Ответ: Да, многие нейросети поддерживают функцию img2img (изображение в изображение). Загрузите фото, а в промпте укажите «pixel art», «8bit style». Результат зависит от исходного фото и настроек влияния нейросети на итог.

Вопрос: Что такое отрицательный промпт и как его использовать для пиксель-арта?
Ответ: Отрицательный промпт — это то, чего не должно быть на изображении. Для чистого пиксель-арта укажите: «blurry, smooth, gradient, anti-aliasing, realistic, photograph, high detail».

Вопрос: Какое разрешение выставлять для генерации пиксель-арта?
Ответ: Лучше генерировать с небольшим разрешением (например, 512×512 пикселей), а затем увеличивать в целое число раз с помощью алгоритма Nearest Neighbor (ближайшего соседа), чтобы сохранить четкость пикселей.

Вопрос: Как ограничить количество цветов в сгенерированном изображении?
Ответ: Сама нейросеть редко контролирует палитру точно. Основной метод — постобработка: уменьшение глубины цвета (индексирование палитры) в графических редакторах (например, в Aseprite или Photoshop) после генерации.

Вопрос: Существуют ли нейросети, которые работают прямо в браузере?
Ответ: Да, есть веб-сервисы, например, PixAI.Art, которые предлагают готовые модели для пиксель-арта. Также можно использовать локальные решения, такие как Stable Diffusion WebUI, которые запускаются в браузере, но требуют мощного компьютера.

Вопрос: Как добиться единого стиля в серии изображений?
Ответ: Используйте одну и ту же модель, сид (seed) для генерации, схожие промпты и настройки. Некоторые платформы позволяют создавать персональные стили (LoRA) на основе нескольких ваших изображений, что гарантирует постоянство стиля.

Краткий чек-лист: путь от идеи до готового пиксель-арта

  1. Определите тему и ключевые объекты для будущего изображения.
  2. Выберите специализированную нейросеть или модель, обученную на пиксель-арте.
  3. Составьте детальный текстовый запрос (промпт), включив слова «pixel art», «8-bit/16-bit».
  4. В отрицательный промпт добавьте «blurry», «smooth», «anti-aliasing», «realistic».
  5. Установите квадратное разрешение для генерации (например, 512×512 или 768×768).
  6. Сгенерируйте несколько вариантов, меняя сид (seed) для разнообразия.
  7. Выберите наиболее удачный вариант с четкими контурами и читаемой композицией.
  8. Увеличьте изображение в целое число раз методом Nearest Neighbor (ближайшего соседа).
  9. Импортируйте результат в редактор пиксель-арта (Aseprite, GraphicsGale).
  10. Проведите ручную доработку: поправьте контуры, уберите артефакты.
  11. Ограничьте палитру до 16-32 цветов с помощью инструмента индексирования.
  12. Добавьте тени и блики, используя только цвета из ограниченной палитры.
  13. Сохраните результат в подходящем формате (PNG для веба, GIF для анимации).
  14. Проанализируйте результат и скорректируйте промпт для следующих генераций.