Домашняя нейросеть перерисует вашего персонажа в любом стиле
Знаете, вот вышла в 2026-м году модель для генерации картинок Anima, от совершенно никому неизвестных разработчиков и первое время все были в недоумении - неужели кто-то и вправду пытается сделать убийцу Illustrious'a да ещё и взяв хрен-пойми-что Nvidia Cosmos-Predict в качестве основы. Но именно так и вышло - у Anima и понимание промпта лучше, и архитектура во всём привосходит древний SDXL, и мультимодальность, оказывается, завезли. Об этом как раз и хотел сегодня рассказать
Неожиданное открытие
Если пытались запускать у себя локально Anima следуя гайдам с r/StableDiffusion, то наверное натыкались вот на эту Anima-Edit лору - она даёт добавляет возможность использовать для генерации в качестве входных данных не только текст, но ещё и изображения, превращаяь, таким образом, модель Anima в рудиментарный редактор изображения - не Flux, конечно - фон у картинки и причёску поменяет, а вот позу персонажа уже никак.
Однажды я тестировал эту лору и обнаружил интересное поведение: она может генерировать новое содержимое на пустых участках. Это навело меня на мысль, что будет, если я:
- Прикреплю к входному изображению блок сплошного цвета
- Запущу рабочий процесс инпейнта с маской, покрывающей только область сплошного цвета
- Добавлю в промпт (split screen, multiple views:1.2)
Короче получилось вот что:
Что произошло? Короче, сплошной белый прямоугольник справа - это холст, с которым работает модель, маска ограничивает генерацию только областью сплошного цвета, `split screen` в промпте заставляет модель обращать внимание(!) на левую половину изображения, ну а Anima Edit лора даёт модели возможность считывать информацию о дизайне персонажа со входного изображения. Вы, наверное, хотите спросить, что такое Cosmos-Reference? Это кастомная нода для ComfyUI (плагин, короче), которая внедряет входное изображение как дополнительное условие для генерации - работает только в связке со специально обученными лорами, такими как Anima-Edit.
В общем, я соорудил простой в использовании рабочий процесс (workflow), который сам выполняет склейку и обрезку изображений за вас. Вам нужно лишь предоставить исходное изображение вашего объекта, указать целевой размер изображения и написать свой промпт - меняйте стиль для своих персонажей или помещайте их в новое окружение. Другими словами, редактируйте своё изображение, используя все концепции, известные моделям Anima.
Назвал я этот метод Anima ReStyler, но он не просто про смену стиля у картинки, а скорее создай новое изображение с персонажем из исходной картинки.
Примеры
В целом, этот рабочий процесс решает задачу перенести персонажа с исходного изображения в новое изображение с помощью Anima. Ещё бы кто-нибудь натренировал модель под задачу перенести стиль с исходноего изображения - учитывая весь стилистический диапазон Anima, это должно быть решаемо путём обучения лоры на Cosmos-Reference на сгенерированных (синтетических) парах изображений. Я уверен, что рано или поздно такая модель появится.
Несколько советов:
- Не все сиды одинаково хороши — некоторые испортят генерацию, тогда как другие сработают идеально. У Anima есть такая нестабильность, да.
- На самом деле, вам не обязательно даже описывать дизайн вашего персонажа, чтобы это работало, но иногда это помогает если генерация слишком сложная
- Идеальное исходное изображение - это персонаж в нейтральной позе на простом фоне. Если на вашем исходном изображении персонажи в сложной позе или фон слишком перегружен, вы можете сначала использовать Flux и Wan, чтобы "выпрямить" его, прежде чем запускать ReStyler
- Этот рабочий процесс иногда испытывает трудности с чёрнобелыми изображениями/скетчами- сначала раскрасьте их, например, с помощью оригинального воркфлоу Anima-Edit.
- Стиль легко изменить, но трудно сохранить. Если вы хотите изменить позу персонажа и сохранить его стиль на 100%, лучше использовать Wan 2.2. У меня есть отдельный рабочий процесс именно для этой задачи.
- Anima может работать с весами в промпте, например (at night:2.0) - используйте их, чтобы толкнуть генерацию в нужную сторону, когда это нужно. Кроме того, в моём рабочем процессе используется Schedule Prompt, поэтому вы можете использовать расширенный синтаксис для промптинга: [:closed eyes:0.3] — здесь closed eyes активируется только после того, как завершится 30% шагов генерации.
Задавайте вопросы, отвечу.