Если на персонаже много одежды разных цветов или в промпте присутствуют еще какие-либо цвета, то они могут начать перемешиваться и мешать друг другу.
Тут есть замечательное и очевидное решение — убрать всю одежду, но сегодня рассмотрим другие варианты.
Есть много способов как попытаться генерировать нужные нам цвета:
- Работать с промптом (менять слова, веса, порядок и тд)
- Сгенерировать из наброска (в img2img, sketch)
- Img2img с депфмапой, кении, и цветной подложкой (https://www.youtube.com/watch?v=u-jvjP2k-RU)
- Инпеинтить
- Можно попробовать latent couple
- Любой вариант который будет работать
В этой статье разберемся с расширением cutoff. Сразу скажу что оно плохо работает с реалистичными моделями (или у меня не получилось), но с анимешными может помочь.
Для начала установим
вот ссылочка на github: https://github.com/hnmr293/sd-webui-cutoff
на civitai (тут качать ничего не надо, но в описании парень показал пример использования и поделился своими наблюдениями): https://civitai.com/models/18840/no-more-color-contamination-read-description
У меня его в списке расширений нет, но если у вас есть то просто находите «sd-webui-cutoff» и нажимаете «Install». Если у вас тоже его нет, то берем ссылочку на гитхаб выше, идем в «Extensions» -> «Install from URL», вставляем ссылку и нажимаем «Install». После установки появиться надпись что все ок. Переходим во вкладку «Installed» и нажимаем кнопку «Apply and restart UI». После этого у нас там же где и остальные расширения должна была появиться раскрывашка с Cutoff.
Что к чему
Вот наш промпт:
masterpiece, best quality, wallpaper, full body, 1girl, solo, standing, looking at viewer, green hair, yellow shirt, red shorts, solid white shoes, on tennis court
У нас есть цвета волос и одежды, они могут друг другу мешать и чтобы этого избежать cutoff немного перерабатывает наш промпт чтобы в числовом представлении цвета между собой меньше пересекались.
При обработке он поочередно заменяет все цвета кроме одного на какой-нибудь малозначительный токен, например на «_» (нижнее подчеркивание). Таким образом у нас остается только один цвет в промпте, а вместо остальных написано «_» и это уменьшает вероятность их смешивания. То есть у нас изначально было looking at viewer, green hair, yellow shirt, red shorts и вот как он их будет менять.
Пройдемся по интерфейсу
Enable — активирует работу расширения
Target tokens (comma separated) — те цвета, которые мы хотим отделять, записываем через запятую
Weight — вес, сила действия наших манипуляций (я не заметил сильной разницы при 1, 1.5 или 2, поэкспериментируйте)
Disable for negative prompt — если галочка стоит, то расширение будет работать только с основным промптом, негативный не трогает (я ни разу не убирал, всегда стоит).
Cutoff strongly — если цвета слишком сильно влияют на общую картинку (освящение, антураж, предметы, интерьер и тп), включите эту настройку.
Padding token — токен который будет вставляться вместо целевых токенов (по умолчанию «_», нижнее подчеркивание, можно не менять)
Interpolation method — метод интерполяции векторов (если изменение других настроек не дает результата можете попробовать поменять это)
Debug log — будет выводить в консоль обработанные промпты
Кстати о дебаг логе, вот как выглядит промпт с выключенным и включенным cutoff strongly. Расширение полностью убирает цвета из промптов и вставляет их только когда они нужны. В обычном режиме он их убирает только при взаимодействии друг с другом (в самом низу на скринах)
Кому интересно как работает:
на главной странице на гитхабе https://github.com/hnmr293/sd-webui-cutoff#how-it-works
и тут автор подробнее расписывал https://github.com/hnmr293/sd-webui-cutoff/issues/5
Картинки!
В желтой футболке: masterpiece, best quality, wallpaper, full body, 1girl, solo, standing, looking at viewer, green hair, yellow shirt, red shorts, solid white shoes, on tennis court
В оранжевой: masterpiece, best quality, wallpaper, full body, 1girl, solo, standing, looking at viewer, purple hair, orange shirt, blue shorts, solid white shoes, on tennis court
Для той, которая в желтой футболке в cutoff прописал: green, yellow, red.
Для той, которая в оранжевой в cutoff прописал: purple, orange, blue.
Ботинки и так не всегда чисто белые получаются, так что solid white shoes не добавлял в cutoff
AnythingV3
Тут еще решил с latent couple поиграться и поставить их рядом. В cutoff прописал: green, yellow, red, purple, orange, blue
AbyssOrangeMix2
Тут с желтой футболкой и без cutoff все хорошо получилось
MeinaMix V8
Итого
Работает не всегда, но сильно повышает частоту генераций с нужными цветами. Штука неплохая, можно пользоваться.
Пожелания, предложения, вопросы — всему буду рад, пишите!
Тут мой телеграм: https://t.me/mrreplicart
Тут ютуб: https://www.youtube.com/@mrreplicart