Как поправить одну деталь рисунка, не перерисовывая всё остальное
ИИ может нарисовать новую картинку. Но мне нужно было исправить песочные часы на уже утверждённой иллюстрации и оставить нетронутым каждый лист рядом с ними.

На рисунке нужно было поправить песочные часы рядом с кустом. Сам куст меня устраивал. Мне не нужна была ещё одна похожая картинка: я хотел, чтобы часы лучше различались, а каждый лист остался на своём месте.
Пока я выбираю, что нарисовать, вариации полезны. Если на новом варианте изменились очертания листа или оттенок земли, это может даже понравиться. Но как только рисунок утверждён, та же свобода начинает мешать. Новый кадр с персонажем, у которого чуть изменилось выражение лица, — не всегда удачная замена старому. А иллюстрация, которая красиво выглядит сама по себе, может не подойти к остальным иллюстрациям на сайте.
Что именно изменилось на рисунке
Я сравнивал варианты в размере 144 × 144 пикселя: даже на таком маленьком рисунке часы должны были сразу узнаваться. Это был предварительный просмотр, не кадр из готовой игры и не проверка с участием игроков. Я взял утверждённый исходник и изменил только часы. При попытке заново сгенерировать сцену мог измениться и куст.
Удалось ли оставить всё остальное нетронутым? Я сравнил обе полноразмерные сцены по всем четырём каналам RGBA, включая прозрачность. Изменились 30 080 пикселей в области часов. За её пределами не изменился ни один. Это результат сравнения именно этих двух файлов. Стали ли часы заметнее, по числам не скажешь: для этого я посмотрел на всю сцену в размере 144 × 144.

Зачем мне исходник, если есть прозрачный PNG
PNG с прозрачным фоном удобно использовать на сайте или в игре. Но прозрачность не сохраняет слои. Если куст, часы и земля сведены в одно изображение, часы уже не выделить как отдельный объект. Для следующей правки, возможно, придётся заново отделять их от фона.
Поэтому я сохраняю и готовую картинку, и исходник со слоями. Один из редакторов, которые я проверял, — Pixelorama. У него есть собственный формат проекта .pxo. А для передачи многослойных изображений между редакторами есть OpenRaster (.ora): он хранит слои, их порядок и сведённое изображение для просмотра. Разные редакторы могут открыть такой файл по-разному, но для следующей правки у меня останутся сами слои, а не только готовая картинка.
Часть деталей я правил вне Pixelorama. Там же собирал изображение из слоёв, чтобы при повторной сборке получить тот же результат. В самом редакторе отдельно проверял импорт, сохранение проекта и экспорт. Это разные операции: важно не приписать одной из них изменения, возникшие в другой.
Увеличить рисунок — не значит увидеть его так, как увидит игрок
Я разделил проверку на три вопроса. Во-первых, изменилось ли что-нибудь, кроме нужной детали? Для этого я сравниваю исходники одинакового размера по всем каналам RGBA. Если сверить только цвет, легко пропустить изменение прозрачности: на другом фоне у края появится ореол или просвет. При работе со слоями важно ещё убедиться, что в экспорт попало именно то изображение, которое я сравнивал.
Во-вторых, смогу ли я редактировать рисунок дальше? Из файла может экспортироваться точная картинка, хотя часть нужных слоёв уже потеряна. Бывает и наоборот: все слои на месте, но сама картинка неудачна.
В-третьих, различима ли деталь в том размере, в котором её увидят? При увеличении часы занимают половину экрана, и разглядеть их нетрудно. А в сцене размером 144 × 144 на них приходится лишь несколько экранных пикселей. Переходы между оттенками, аккуратные под увеличением, здесь могут слиться.

Для такого просмотра я увеличиваю изображение в целое число раз методом ближайшего соседа. Границы пикселей остаются видны. Но если мягкие переходы уже есть в исходнике, при увеличении они никуда не денутся. Совсем другая ситуация — когда исходник чёткий, а его размывает фильтрация или дробный масштаб в браузере или игровом движке. Например, в документации Godot отдельно описаны импорт изображений и масштабирование. Этот конкретный спрайт в Godot я не проверял. Настройками движка не исправить то, что было плохо различимо ещё в исходном рисунке.
Что меняет фон
На клетчатом фоне редактора контур может выглядеть чётким, а на тёмном — обнаружится светлый ореол. На зелёном фоне мелкая цветная деталь может слиться с листвой. Я посмотрел, как выглядит один и тот же спрайт на трёх фонах. Положение спрайта и размер сцены не менялись: во всех трёх случаях это были те же 144 × 144 пикселя.

Позднее в том же проекте был вариант, который я не принял. Несколько насекомых удалось расположить ровнее. С геометрией и слоями всё было в порядке. Но при размере 144 × 144 насекомые по-прежнему выглядели нечётко. Делать эту версию основным исходником я не стал.
При отдельной проверке Pixelorama 1.2.3 я импортировал изображение через проект OpenRaster с одним видимым слоем, сохранил проект в формате .pxo и экспортировал результат в PNG. У десяти видимых пикселей изменился цвет: разница не превышала единицы в каждом из затронутых каналов RGB при глубине 8 бит на канал. Прозрачность осталась прежней. Исходный многослойный проект таким способом я не проверял; делать вывод о любом экспорте из Pixelorama по одному примеру тоже нельзя. Но если важна точная передача цвета, проверять нужно готовый файл. Для статьи у меня не было той самой пары файлов — до и после экспорта. Поэтому иллюстрации к этой проверке здесь нет.
Что я сохраняю и что проверяю
- Когда вариант утверждён, сохраняю именно его как образец для следующих правок.
- Сохраняю и готовое изображение, и редактируемый исходник со слоями.
- До редактирования определяю, какую деталь можно менять, а что трогать нельзя.
- Сравниваю цвет и прозрачность. Неожиданную разницу разбираю, а не объявляю удачной правкой.
- Смотрю на спрайт в нужном размере, на значок — в интерфейсе, на иллюстрацию — рядом с остальной серией.
- Открываю готовый экспорт. Изображение на холсте редактора и файл, который получит пользователь, — не одно и то же.
Для разового эскиза я не стал бы считать пиксели. Но если один персонаж появится в десятках кадров или одна иллюстрация — на нескольких страницах, цена незаметных поначалу изменений совсем другая. В этом проекте мне одинаково полезны оба результата: часы удалось поправить, сохранив сцену, а вариант с насекомыми — вовремя отклонить.
Для меня рисунок становится рабочим материалом, когда я могу изменить то, что нужно, и не потерять то, что уже получилось.
---