Мой блог
Как нейросеть собрала пиксель-арт маскота для сайта из черновиков
Превращение сгенерированных нейросетью изображений в структурированный пиксель-арт требует решения множества задач: от сведения плотности цвета до устранения фоновых ореолов и прорисовки мелких деталей. Полнокадровые иллюстрации в высоком разрешении обладают десятками тысяч уникальных цветов и сглаженными краями, что делает их непригодными для использования в качестве качественных спрайтов интерфейса. Простой запрос к генератору или наивное уменьшение картинки приводят к появлению тысяч промежуточных оттенков и размытию контуров.
В данном материале рассматривается детальный разбор пайплайна обработки изображений, который позволяет преобразовать черновые генерации Qwen Image в набор аккуратных спрайтов с единой палитрой, бинарной альфой и строгой сеткой блоков.











Анализ исходных данных и особенности аппаратного стенда
Для генерации первоначальных изображений использовалась связка компонентов на базе ComfyUI. В роли основной модели выступала Qwen Image 2.1 в int8-вариации (6,76 ГиБ), текстовый энкодер qwen3vl_8b_int8_convrot (8,71 ГиБ), улучшатель промпта qwen3.5_9b_qwen_image_2.1_pe_t2i (8,82 ГиБ) и VAE (0,63 ГиБ). Общий объём данных, проходящих через память при работе с улучшателем, составляет почти 25 ГиБ, поэтому система задействует последовательную разгрузку моделей.
Аппаратная конфигурация включает процессор Ryzen 7 5800X, 64 ГБ оперативной памяти DDR4, а также графические ускорители RTX 5080 (16 ГБ) под управлением Arch Linux с драйвером 610.57.04 и CUDA 13.3. Набор персонажа состоит из двенадцати кадров с различными эмоциями, созданными для интеграции в веб-интерфейс сайта-визитки.

Эксперименты с прямым запросом и сторонними нодами
Первоначальная проверка возможности получить пиксель-арт с помощью прямого запроса к генератору через инструмент image_edit показала характерный результат. Промпт с требованием использовать плоские блоки и низкое разрешение привёл к тому, что модель выдала более 62 тысяч уникальных цветов, значительно превысив показатели исходной иллюстрации. Генеративные модели воспринимают подобные инструкции как стилистический приём внутри растра, а не как строгий формат хранения данных.
Сравнение с готовыми инструментами пикселизации, такими как Krea2 Pixel Art Refiner и PixelOE, выявило их ограничения. Сторонние узлы способны снизить количество цветов до заданного значения, однако они обрабатывают каждый кадр изолированно, не обеспечивая общую палитру для всего набора, и возвращают результат в виде сплошной картинки со светлым фоном вместо прозрачного спрайта с бинарной альфой.

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

1. Применение медианы блока вместо среднего
Для уменьшения исходного разрешения применяется свертка блоков 4×4 в один пиксель спрайта. Использование арифметического среднего приводит к появлению грязи и серых оттенков на контрастных границах, поэтому алгоритм вычисляет медиану по каждому цветовому каналу отдельно, сохраняя чистые цвета элементов одежды и элементов персонажа.
2. Формирование единой палитры для всего набора
Чтобы избежать мерцания цветов при смене эмоций персонажа, палитра формируется с помощью алгоритма median cut по объединённой гистограмме всех кадров. Полученная палитра закрепляется и в дальнейшем только расширяется при появлении уникальных оттенков, удерживая число уникальных цветов в пределах ограничений текстового формата спрайта.
3. Интеллектуальное удаление свечения и тени
Нейросетевые генераторы часто оставляют вокруг силуэта мягкую тень и светлый ореол. Простое удаление светлых пикселей создает сквозные дыры в прядях волос, поэтому алгоритм разделяет пиксели: элементы на открытых участках контура становятся прозрачными, а запертые внутри силуэта пиксели перекрашиваются в соседние цвета.

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

5. Построение карты блоков
Для создания разноразмерных плоских областей кадр разбирается на максимальные однородные квадраты размером от 1×1 до 8×8 пикселей. Рекурсивное деление позволяет сохранить оригинальную детализацию различных частей одежды и головного убора без превращения спрайта в однородную сетку.

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


Реализация конвейера базируется на стандартных библиотеках Python (Pillow и numpy), а весь исходный код алгоритмов и замороженная палитра опубликованы в открытом репозитории для независимого воспроизведения.
