Исправление лиц и рук детейлером
Урок «detailer» в группе Паки и инструменты списка уроков. Шагов: 8.
Чему вы научитесь
Impact Pack находит лица на готовой картинке и рисует каждое заново в большем размере, так что мелкие лица выходят чёткими.
Что понадобится
- Урок продолжает Первая картинка из текста. Карточка говорит об этом; это подсказка, а не замок.
- Паки нод: ComfyUI-Impact-Pack, ComfyUI-Impact-Subpack. Их вы ставите в ComfyUI сами, потом выбираете Синхронизация ▸ Синхронизировать сейчас. До тех пор карточка говорит, что урок не подходит, и называет пак.
- Файлы моделей, которые урок проверяет:
- для поля
model_nameноды UltralyticsDetectorProvider: файл, в имени которого естьfaceилиhand.
- для поля
- Ноды: Load Checkpoint, CLIP Text Encode (Prompt), KSampler, VAE Decode, Save Image / Preview Image, UltralyticsDetectorProvider, FaceDetailer, Save Image.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что делает детейлер (чтение)
На картинке в полный рост лицо маленькое, и у модели слишком мало пикселей, чтобы нарисовать его хорошо. Детейлер находит каждое лицо, вырезает, увеличивает, рисует заново той же моделью и по тому же описанию с частью шума и ставит обратно.
Он перерисовывает то лицо, которое есть. Он не ставит на его место лицо другого человека, и этот урок не об этом.
Ноды приходят с паками ComfyUI-Impact-Pack и ComfyUI-Impact-Subpack. Пак нод запускает на вашем компьютере чужой код. Ставьте его сами через менеджер ComfyUI, с его официальной страницы, и только если доверяете авторам. Приложение ничего не устанавливает.
Урок добавляет три ноды к графу из урока «Первая картинка из текста».
Нужен граф с картинкой
Этот урок продолжает граф из урока «Первая картинка из текста». На холсте должны быть Load Checkpoint, два текста CLIP Text Encode (Prompt) и CLIP Text Encode (Prompt), KSampler, VAE Decode и Save Image со связями между ними.
Если их нет, сначала пройдите тот урок.
Загрузите искатель лиц
Добавьте ноду UltralyticsDetectorProvider и выберите
bbox/face_yolov8m.ptв её полеmodel_name. ComfyUI держит искатели вmodels/ultralytics/bbox.Файл «.pt» может выполнить код при загрузке: берите его только со страницы, которую называет пак.
Добавьте детейлер
Добавьте ноду FaceDetailer и подключите к ней:
image: выход ноды VAE Decode;model,clipиvae: выходы ноды Load Checkpoint, через загрузчики LoRA, если они есть;positiveиnegative: оба текста;bbox_detector: выходBBOX_DETECTORноды UltralyticsDetectorProvider.
Внутри детейлера свой сэмплер: он рисует той же моделью и теми же словами, что и картинку.
Решите, сколько рисовать заново
Оставьте
denoiseноды FaceDetailer на 0.5.При 0.5 лицо сохраняет черты и получает чёткие глаза и кожу. Выше 0.6 оно может превратиться в другое лицо.
guide_sizeэто размер, до которого лицо увеличивают перед рисованием: 512 для SD 1.5, 1024 для SDXL.Сохраните исправленную картинку
Добавьте ноду Save Image и подключите выход
imageноды FaceDetailer к её входуimages. Сравните с картинкой до исправления.Руки и более точные маски (чтение)
- Для рук выберите в UltralyticsDetectorProvider
bbox/hand_yolov8s.ptили поставьте второй детейлер после первого: один для лиц, другой для рук. - Нода SAMLoader во входе
sam_model_optзаставляет маску идти по контуру лица, а не прямоугольником: меньше швов. - Руки с неправильными пальцами детейлеру часто не по силам: перерисуйте их инпейнтингом или с ControlNet.
- Для рук выберите в UltralyticsDetectorProvider
Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
Что попробовать: картинку с несколькими людьми вдали; детейлер должен исправить каждое лицо.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Нужен граф с картинкой:
- нода Load Checkpoint.
- нода CLIP Text Encode (Prompt).
- нода CLIP Text Encode (Prompt).
- нода KSampler.
- нода VAE Decode.
- нода Save Image или Preview Image.
CLIPноды Load Checkpoint во входclipноды CLIP Text Encode (Prompt) (промпт) (можно через Load LoRA или CLIP Set Last Layer).CLIPноды Load Checkpoint во входclipноды CLIP Text Encode (Prompt) (негатив) (можно через Load LoRA или CLIP Set Last Layer).MODELноды Load Checkpoint во входmodelноды KSampler (можно через Load LoRA или LoraLoaderModelOnly или DifferentialDiffusion или ModelSamplingAuraFlow или ModelSamplingFlux или CFGNorm или IPAdapter Unified Loader или IPAdapter или IPAdapterAdvanced или IPAdapterStyleComposition).CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды KSampler (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды KSampler (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).LATENTноды KSampler во входsamplesноды VAE Decode.VAEноды Load Checkpoint во входvaeноды VAE Decode.IMAGEноды VAE Decode во входimagesноды Save Image или Preview Image (первая картинка).
- Шаг 3, Загрузите искатель лиц:
- нода UltralyticsDetectorProvider.
- в поле
model_nameноды UltralyticsDetectorProvider стоит файл, в имени которого естьfaceилиhand(заглавные буквы, точки и дефисы не важны).
- Шаг 4, Добавьте детейлер:
- нода FaceDetailer.
IMAGEноды VAE Decode во входimageноды FaceDetailer.MODELноды Load Checkpoint во входmodelноды FaceDetailer (можно через Load LoRA или LoraLoaderModelOnly или DifferentialDiffusion или ModelSamplingAuraFlow или ModelSamplingFlux или CFGNorm или IPAdapter Unified Loader или IPAdapter или IPAdapterAdvanced или IPAdapterStyleComposition).CLIPноды Load Checkpoint во входclipноды FaceDetailer (можно через Load LoRA или CLIP Set Last Layer).VAEноды Load Checkpoint во входvaeноды FaceDetailer.CONDITIONINGноды CLIP Text Encode (Prompt) (промпт) во входpositiveноды FaceDetailer (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).CONDITIONINGноды CLIP Text Encode (Prompt) (негатив) во входnegativeноды FaceDetailer (можно через Apply ControlNet или InpaintModelConditioning или Conditioning (Combine) или ConditioningSetArea или ConditioningSetAreaPercentage или ConditioningSetMask или Apply Style Model или FluxGuidance или ConditioningZeroOut или FluxKontextMultiReferenceLatentMethod).BBOX_DETECTORноды UltralyticsDetectorProvider во входbbox_detectorноды FaceDetailer.
- Шаг 5, Решите, сколько рисовать заново:
denoiseноды FaceDetailer: от 0.3 до 0.6; «Сделать за меня» ставит 0.5.
- Шаг 6, Сохраните исправленную картинку:
- нода Save Image.
imageноды FaceDetailer во входimagesноды Save Image (исправленная картинка).