На этой странице
- IP-Adapter Face ID или ReActor: что выбрать под иллюстрацию SDXL
- Что подготовить: ноды, модели и раскладка по папкам ComfyUI
- Метод 1: IP-Adapter Face ID на SDXL Turbo (пошагово)
- Метод 2: ReActor Fast Face Swap поверх готовой иллюстрации
- Как сохранить стиль иллюстрации, а не получить фотолицо
- Частые ошибки и их исправление
Одно узнаваемое лицо для персонажа на SDXL: два рабочих пути в ComfyUI
Закрепить лицо за персонажем можно двумя способами, и выбор зависит от задачи. Хотите, чтобы SDXL сразу рисовал нужное лицо и держал художественный стиль? Берите IP-Adapter Face ID: он вшивает личность прямо в генерацию. Уже есть готовая иллюстрация или слабый GPU? Тогда ReActor Fast Face Swap наложит лицо поверх картинки и справится даже на CPU. Дальше: точная раскладка моделей по папкам, параметры под SDXL Turbo и разбор ошибок, на которых застревают новички.
IP-Adapter Face ID или ReActor: что выбрать под иллюстрацию SDXL
Разница между методами не косметическая, она в том, на каком этапе появляется лицо. IP-Adapter Face ID работает внутри генерации: он подмешивает личность донора в латент, и SDXL рисует персонажа уже с нужными чертами. Поэтому стиль рисунка сохраняется естественно, лицо живёт в той же палитре и фактуре, что и вся сцена.
ReActor устроен иначе. Это post-swap: сначала вы получаете готовую SDXL-иллюстрацию, а потом нода вырезает лицо донора и вклеивает его поверх. Главный плюс: ему не нужен мощный GPU, он запускается даже на процессоре. Под капотом ReActor использует модель замены inswapper_128.onnx от InsightFace и детектор retinaface_resnet50, об этом пишет руководство runcomfy.
Критерий выбора простой, держите его перед глазами:
- Нужно с нуля сгенерировать персонажа со стабильным лицом и сохранить рисованный стиль – IP-Adapter Face ID.
- Под рукой уже есть иллюстрация или железо не тянет тяжёлый воркфлоу – быстрый ReActor поверх картинки.
- ReActor совместим и с SDXL, и с SD 1.5, так что для совсем слабого GPU это базовый выбор.
Что подготовить: ноды, модели и раскладка по папкам ComfyUI
Половина ошибок новичков – это не настройки, а файл, лежащий не в той папке. Поэтому сначала разложите всё по местам, и только потом собирайте воркфлоу. Базовый набор: установленный ComfyUI с ComfyUI Manager и чекпоинт SDXL, например Dreamshaper или Excel Turbo, в каталоге models/checkpoint.
Для пути IP-Adapter создайте папку ipadapter внутри ComfyUI/models/ и положите туда саму модель IP-Adapter. Image encoder, то есть clip_vision версии ViT-H, идёт в ComfyUI/models/clip_vision/. Если планируете ReActor, поставьте плагин через менеджер, а модели восстановления CodeFormer и GFPGAN положите в models/facerestore_models.
| Что кладём | Папка | Зачем |
|---|---|---|
| Чекпоинт SDXL (Dreamshaper/Excel Turbo) | models/checkpoint | Базовая модель генерации |
| Модель IP-Adapter | models/ipadapter | Перенос личности в латент |
| clip_vision ViT-H | models/clip_vision | Image encoder для IP-Adapter |
| CodeFormer / GFPGAN | models/facerestore_models | Восстановление лица в ReActor |
Один момент, который экономит часы. Скачанную модель проверяйте по размеру файла. Первая модель IP-Adapter весит около 371 Мб, вторая – примерно 1,7 ГБ. Если файл заметно меньше, скачивание оборвалось, и битая модель потом выдаст невнятную ошибку, которую вы будете искать совсем не там.
Метод 1: IP-Adapter Face ID на SDXL Turbo (пошагово)
Этот путь собирает лицо прямо в генерации, поэтому подходит, когда персонажа ещё нет и важно удержать рисованный стиль. Параметры ниже подобраны под SDXL Turbo, который хорошо себя ведёт на ограниченных разрешениях и не душит слабую видеокарту.
- Подключите ноду загрузки чекпоинта SDXL Turbo, затем два Clip Text Encode: позитивный и негативный промт.
- Поставьте KSampler и выставите настройки Turbo: 5 шагов, CFG 1,8, сэмплер SDE (значения из руководства lilys.ai).
- Через ComfyUI Manager установите ноды копирования лица и Impact Pack, а через Model Manager подтяните модель IP-Adapter и текстовый энкодер.
- Добавьте узлы IP-Adapter: сначала выберите версию PSID+V2, затем ноду IP-Adapter Face ID, и соедините её с чекпоинтом и KSampler.
- Загрузите лицо-донор через Load Image, выставьте вес 0,7 и окончание на 0,9 (90%).
Почему именно вес 0,7, а окончание 0,9? Вес определяет, насколько сильно личность донора давит на генерацию, а окончание на 90% оставляет последним шагам сэмплинга свободу дорисовать лицо в стиле картинки, а не в фотореференсе. Эти значения рекомендует то же руководство lilys.ai по персонажам на Turbo SDXL.
Метод 2: ReActor Fast Face Swap поверх готовой иллюстрации
Когда иллюстрация уже сгенерирована или GPU откровенно слабый, ReActor решает задачу в несколько нод. Логика обратная первому методу: вы не вмешиваетесь в генерацию, а подменяете лицо на финальном изображении.
- Добавьте ноду ReActor Fast Face Swap и свяжите её input image с выходом VAE Decode (или с Load Image, если картинка готова).
- Подключите второй Load Image с лицом-донором к входу input face.
- В параметрах восстановления выберите CodeFormer или GFPGAN; дефолты ReActor – видимость восстановления 1.00 и вес CodeFormer 0.75 (по данным runcomfy).
- Поставьте Save Image на выход ReActor, чтобы сохранить результат.
Дефолты восстановления трогать сразу не стоит. Видимость 1.00 даёт максимально чёткое лицо, а вес CodeFormer 0.75 балансирует между резкостью и естественностью, не превращая черты в пластик. Подстраивать их имеет смысл, только если результат уже близок, но чуть мутноват.
Как сохранить стиль иллюстрации, а не получить фотолицо
Самая частая претензия к переносу лица: рисунок есть, а лицо вдруг фотографическое, будто вырезанное из другого мира. Причина в том, что референс перетягивает генерацию на себя. Лечится это весом и шагами.
Держите вес ноды Apply IPAdapter ниже 0,8 – так личность считывается, но стиль картинки остаётся ведущим, на этом настаивает разбор comflowy. Дальше поднимите число шагов в KSampler, например 35 вместо 25, и слегка уменьшите CFG. Больше шагов при меньшем CFG дают сэмплеру время аккуратно вплавить лицо в фактуру рисунка вместо грубой подмены.
Лицо-донор давайте квадратным и строго по центру кадра: CLIP-энкодер всё равно ресайзит вход в 224x224 и обрезает по центру, поэтому всё, что у краёв, просто теряется (источник: comflowy).
И ещё про резкость. Если на сложных ракурсах лицо начинает плыть, не крутите вес вверх. Прогоните результат через Face Detailer или апскейлер: они дочищают черты, не ломая баланс стиля.
Частые ошибки и их исправление
Эти сбои встречаются почти у всех, кто собирает воркфлоу впервые. Каждый имеет понятную механическую причину, так что чинятся они быстро.
- Пережжённое (deep fried) изображение с диким контрастом – это высокий CFG. Для Turbo ставьте CFG=1, для остальных моделей 2-3.
- Ошибка об отсутствии модели IP-Adapter лечится выбором версии PSID+V2 в ноде.
- Модель не находится в Model Manager из-за длинного имени: ищите по части названия, сверяясь со скриншотом и размером файла.
- InstantIDFaceAnalysis assert 'detection' означает криво установленную ноду – переустановите кастомную ноду через менеджер.
- ReActor хуже смешивает волосы и края, лицо выглядит наклеенным – дочистите границу через Face Detailer.
Разберём пару из них чуть глубже. Пережжённая картинка – это не баг модели, а перегруженный сэмплинг: высокий CFG заставляет SDXL утрировать каждую деталь, отсюда ядовитый контраст. Снизили CFG, и сцена возвращается в норму. Про этот эффект и значение CFG=1 для Turbo пишет репозиторий comfyui-face-merge.
Ошибка InstantIDFaceAnalysis с assert 'detection' пугает формулировкой, но говорит об одном: нода или её модель встали некорректно. Переустановка кастомной ноды через ComfyUI Manager закрывает вопрос, а при значке missing достаточно скачать готовую сборку ноды. Установка действительно кажется громоздкой, и это нормальная реакция новичка, но после первой удачной сборки воркфлоу повторяется за минуты.