shiru8bit

shiru8bit 

Программист, музыкант, самоделкин, ретрогеймер

88subscribers

828posts

Реальные ИИ-пиксели

Хоть мне и удалось уговорить ИИ генерировать изображения примерно нужного пиксельного размера и стиля, и они выглядят как пиксельная графика, есть вторая огромная проблема: это вовсе не пиксельные изображения, которые можно взять, отредактировать, и задействовать в проекте.
О чём я говорю: ИИ выдаёт спрайт какого-нибудь размера, например, 16 на 24 пикселей, в форме картинки с разрешением типа 1024 на 1024. Фактическое разрешение спрайта внутри картинки неизвестно. При этом границы пикселей размыты, сами пиксели имеют неопределённый дробный размер, иногда они разного размера, имеют вкрапления не-пиксельных элементов. И цвета у них неоднородны, присутствует лёгкая сетка, их количество также неизвестно.
Из-за этих проблем нельзя просто уменьшить изображение и получить чёткие пиксели: неизвестно, до какого размера его уменьшать — разве что считать пиксели глазами — и после такого уменьшения в силу не целочисленного размера пикселей получается размытая каша и нечёткие края. Получается ситуация «висит груша. нельзя скушать»: пиксели видны, но они эфемерны. Нужно их как-то вытащить.
Результат простого уменьшения до посчитанного глазами размера, получились размытые детали и контуры:
Готовые ИИ-решения, обещающие генерацию пиксельной графики, решают вопрос довольно тупо: генерируют графику непонятного разрешения и содержания, а потом применяют к ней мозаичный фильтр и цветовую квантизацию, уменьшая разрешение и цветность до заданных. Результат выглядит довольно похоже на пиксельную графику, но не на такую, какую я генерировал выше.
Например, ранее эту операцию выполнял плагин Pixelization для AUTOMATIC111, и скорее всего подобные по сути, но более совершенные алгоритмы применяются и на специализированных сервисах создания для пиксельной ИИ-график, отличающиеся устранением «лишних» пикселей непонятных оттенков.
Другой вариант: попытаться с помощью алгоритмов найти пиксели в картинке высокого разрешения и составить новую, реально пиксельную картинку. Ведь мы же видим, что пиксели там есть — значит возможно их получить.
Но как это сделать? Представляя, как это должно работать, я просто попросил ИИ (DeepSeek) написать мне программу на Питоне, которая позволит делать такую конверсию, применяя разные настраиваемые алгоритмы, и просматривать результат с увеличением. Это заняло несколько часов, я постепенно уточнял требования и указывал на проблемы, и результат был получен, в том числе с неплохо работающим довольно сложным алгоритмом вычленения пикселей. Я его даже не придумывал, и вообще, не написал ни строчки кода. Честно говоря, я в шоке, что это работает.
После этого я ещё погуглил, и нашёл, что существуют другие готовые решения, которые пошли тем же путём. Например, Unfaker (работает в браузере). Как и моё ИИ-решение, он может спотыкаться на некоторых картинках. На простых он даёт отличный результат сразу из коробки, для сложных имеет множество хитроумных настроек. Моя же программа имеет преимущество в возможности свободного эксперимента, позволяя дописывать новые модули с алгоритмами специально под задачу.
Нейропиксели получены, новые горизонты открыты!
zip
pixelilfy_ai.zip369.16 Kb
Вайб-код своего (теперь даже не знаю, как это называть) решения прилагаю. Для работы программы нужно установить сам Python 3, а потом пакеты (набрать в cmd):
pip install tkinterdnd2 Pillow numpy scipy imagequant
Subscription levels6

Микро 16

$0.24 per month
Просто потому что нельзя 8. Даже самая малая поддержка важна. Спасибо!

База 128

$1.91 per month
Для тех, кто просто хочет поддержать. Спасибо!

Супер 256

$3.9 per month
Для тех, кто хочет поддержать. Спасибо!

Кило 320

$4.8 per month
Для тех, кто сильно хочет поддержать. Спасибо!

Мега 640

$9.6 per month
Для тех, кто очень хочет поддержать. Спасибо!

Гига 1024

$15.3 per month
Для тех, кто крайне хочет поддержать. Спасибо!
Go up