Как убрать текст с обложки манги за 10 минут
Итак, вам понадобятся:
- Свежий web-gui от Automatic1111
- Расширения sd-webui-controlnet и canvas-zoom
- Скаченная (и правильно установленная!) модель для ControlNet inpaint:
https://civitai.com/models/38784?modelVersionId=44876 - Какая-нибудь базовая модель (checkpoint). Раз уж мы чистим обложки для манги, то пойдут анимешные Hassaku или Cetus-Mix
Больше ничего не надо. Ладно, поехали.
1. Считаем размер изображения
Всё происходит во вкладке txt2img!
- Возьмите обложку манги. Смотрите на разрешение изображения. Для чего это? А затем, что лучший результат получается, если генерить в разрешении от 512 до 1024 пикселей, а значит нужно правильно высчитать пропорции. У меня обложка была 760x1200, поэтому размер генерации будет 512 на 808. Если лень считать, просто делите на 2 и всё.
2. Подбираем промпт
В поле с промптом просто тегайте всё, что находится на обложке. В стиле booru, естественно, у нас же аниме. Только не пишите manga cover или что-то подобное - повышает вероятность генерации текста ☝ . Также не забудьте добавить в конце заклинание (best quality, masterpiece:1.2). Вот что вышло у меня:
toga himiko, 1girl, short hair, blonde hair, solo, yellow eyes, open mouth, fangs, hair bun, looking at viewer, messy hair, teeth, yellow nails, white background, bags under eyes, nail polish, (best quality, masterpiece:1.2)
В негативном промпте всё стандартно:
EasyNegative, badhandv4, (worst quality, low quality, normal quality:1.4), (text, title:1.2)
3. Подключаем ControlNet
Мы что хотим сделать-то? Мы хотим дорисовать то, что скрыто текстом и сделать это так, чтобы не выбиваться из стиля обложки.
Поэтому нам понадобится два э... инстанса/юнита ControlNet'а. Один будет отвечать за перенос стиля (reference), а другой за "замазывание" (inpaint). Так, раскрываем ControlNet, берём исходную обложку и суём её в окошко первого инстанса (Unit 0). Сразу же жмякаем по флажку Enable! Control Type выбираем Reference, препроцессор оставляем reference_only. Control Mode переключаем на ControlNet is more important.
С первым ControlNet'ом закончили, переключаемся на второй (Unit 1). Точно также первым делом кликаем на Enable, потом копируем изображение. Тип выбираем на этот раз не Reference, а Inpaint, препроцессор меняем на inpaint_only+lama и снова переключатель на ControlNet is more important.
Настало время рисовать, ага. Во вкладке со вторым ControlNet'ом (тот что inpaint) прямо на картинке рисуйте маску. Вот так, например:
Вот тут есть пара нюансов. Естественно, чем меньше и аккуратнее маска, тем лучше - больше оригинального изображения сохранится. Помимо этого, можно попытаться закрасить сразу весь ненужный текст, так и убирать его по частям в несколько этапов. Об этом позже, а пока закрасим лишь часть текста.
Финальная настройка и результат
Сразу покажу свои обычные параметры:
Наконец-то нажимаем Generate. Если всё прошло успешно вы увидите что-то вроде
Как вы видите, результат ужасен. Формы поплыли, но обратите внимание на совпадающий с оригиналом стиль. Есть и хорошая новость - количество попыток неограниченно. Поэтому генерируем до тех пор, пока результат будет хоть сколько-нибудь приемлем.
Увидев приличную генерацию фиксируйте её Seed и включаем Hires. fix. Настройки:
Почему увеличиваем именно в 1,48 раз? Чтобы снова вернуться к оригинальному разрешению. Но опять же вам советую просто увеличивать (но сначала уменьшать) в 2 раза - просто и понятно. Теперь чуть более чистый рисунок можно снова бросать в ControlNet Inpaint, замазать новую область и снова генерировать, пока не повезёт.
Внимание! Изображение в ControlNet Inpaint - это ваше финальное качество, поэтому пихать туда можно только то, что прошло через Hires. fix. Забудете - качество конечного результата будет как земля.
В общем-то всё. Что не понятно - гуглите самостоятельно.
P.S. Внимательные читатели должно быть заметили, что я не упомянул зачем мы добавляли расширение canvas-zoom. Разобраться зачем оно нужно оставляю в качестве домашнего задания. После 5-го нанесения маски в малюсеньком окошке вы обязательно про него вспомните )
Комментарий недоступен
Комментарий недоступен