ArtificialGuyBR

Home / Blog / ComfyUI

ComfyUI Upscale + FaceDetailer: ordem e ajustes

Ordem correta: upscale antes do FaceDetailer, com guide_size e force_inpaint desligado para evitar repintura total.

7 sources cited ComfyUI

ComfyUI Upscale + FaceDetailer: ordem e ajustes

TL;DR

Rode o upscale primeiro e depois o FaceDetailer. Ajuste guide_size para a resolução desejada do recorte do rosto e mantenha force_inpaint: false — isso ignora rostos já maiores que guide_size, evitando repintura do frame inteiro. Pipeline: T2I → upscale → detectar rostos (YOLO+BBOX+SAM) → FaceDetailer → passe opcional em mãos.

FaceDetailer: os parâmetros que controlam as repinturas

O tutorial de Detailers lista as opções herdadas por todas as variantes de nó Detailer (incluindo FaceDetailer):

ParâmetroO que faz
guide_sizeTamanho de referência; SEGS menores que isso são ampliados para corresponder; SEGS maiores são ignorados
guide_size_forbbox usa a caixa do detector; crop_region usa a região de recorte expandida
max_sizeLimite rígido no lado maior do recorte
force_inpaintDesativa o skip — inpainta mesmo se o SEG já for ≥ guide_size
noise_maskAplica máscara de ruído durante o inpainting
inpaint_modelDeve ser true ao usar checkpoint dedicado de inpainting com denoise < 1.0
noise_mask_featherSuaviza a borda da máscara; pode criar artefatos
refiner_ratioProporção de etapas do refiner SDXL
cycleNúmero de iterações de detalhe por SEG

Ideia-chave: o comportamento de "skip" está embutido em guide_size. Se o recorte de um rosto detectado já for ≥ guide_size, o Detailer não o amplia e não o inpainta — a menos que force_inpaint esteja ativado. É esse ajuste que impede um passe de repintar o frame inteiro: deixe force_inpaint desligado, defina guide_size na resolução em que você quer os rostos inpaintados, e qualquer rosto maior que isso na imagem ampliada será deixado de lado.


Grafo mínimo de nós

Load Checkpoint → KSampler (T2I)
      ↓
UpscaleModelLoader → ImageUpscaleWithModel
      ↓
UltralyticsDetectorProvider (bbox/face_yolov8m.pt) → BBoxDetectorForEach
      ↓
SAMLoader (sam_vit_b_01ec64.pth) → SAMDetectorCombined
      ↓
FaceDetailer
   ├─ model, clip, vae, positive, negative (ou DETAILER_PIPE)
   ├─ guide_size_for: bbox
   ├─ force_inpaint: false
   ├─ noise_mask: true
   └─ cycle: 1
      ↓
Save Image

Para um segundo passe em mãos, alimente a mesma imagem ampliada em uma cadeia paralela que troca o modelo BBOX para bbox/hand_yolov8n.pt (ou segm/person_yolov8n-seg.pt + SAM) e roda outro FaceDetailer (ou Detailer (SEGS)) com guide_size_for: bbox. Veja Hand detailing workflows para alternativas. Para detalhes de instalação, veja ComfyUI Manager essentials e Impact Pack tutorials.


Instalando os packs e modelos necessários

ComponenteFonteMétodo de instalação
ComfyUI-Impact-PackGitHub ltdrdata/ComfyUI-Impact-PackComfyUI-Manager → Install Custom Nodes → buscar "Impact Pack"
ComfyUI-Impact-SubpackGitHub ltdrdata/ComfyUI-Impact-SubpackManager → buscar "Impact Subpack" (fornece UltralyticsDetectorProvider)
Modelos BBOX (rosto, mão)HuggingFace Bingsu/adetailer ou assets UltralyticsBaixar arquivos .pt para models/ultralytics/bbox/
Modelos SEGM (pessoa)HuggingFace Bingsu/adetailerBaixar para models/ultralytics/segm/
Modelo SAMFacebook segment-anythingsam_vit_b_01ec64.pth → models/sams/

Atalho do Manager: se um workflow carregar com badges vermelhos de "missing node", abra o menu do Manager e clique em Install Missing Custom Nodes — ele escaneia o JSON do workflow, associa tipos de nó desconhecidos ao seu registro e oferece instalação com um clique para Impact Pack, Impact Subpack e outras extensões faltantes.


Configurando extra_model_paths.yaml para os modelos aparecerem

No Windows (ComfyUI Desktop), o arquivo fica na pasta da instância mostrada em Manager → Manage → Storage → MODELS/Use Shared Models. Se existir apenas extra_model_paths.yaml.sample, copie-o, renomeie para extra_model_paths.yaml e edite (UTF-8, apenas espaços — sem tabs):

ultralytics_bbox: D:/ComfyUI/models/ultralytics/bbox
ultralytics_segm: D:/ComfyUI/models/ultralytics/segm

O README do Impact Subpack documenta as chaves como ultralytics_bbox e ultralytics_segm; barras normais funcionam no Windows, barras invertidas não foram testadas. Reinicie o ComfyUI após salvar.


Nota sobre o modelo RedOlives (SDXL vs SD 1.5)

O workflow do artigo 3898 foi construído para o merge RedOlives (modelo Civitai 283810). A API do Civitai retorna um campo baseModel vazio para esse modelo; a descrição faz referência ao SDXL-Lightning no nome de uma versão. Se você trocar para um checkpoint SD 1.5, deve trocar também o VAE — o artigo 3898 afirma isso explicitamente.


Erros comuns e correções

SintomaCausaCorreção
Modelos BBOX/SEGM baixados mas invisíveis no dropdown do UltralyticsDetectorProviderextra_model_paths.yaml sem entradas ultralytics_bbox / ultralytics_segmAdicionar paths apontando para models/ultralytics/bbox e models/ultralytics/segm; reiniciar o ComfyUI
Nó UltralyticsDetectorProvider não encontrado no menu de nósApenas o Impact Pack instalado, não o Impact SubpackInstalar ComfyUI-Impact-Subpack separadamente (Manager → "Impact Subpack")
"Install missing nodes" não óbvio no ManagerBotão é chamado Install Missing Custom Nodes no menu do ManagerAbrir menu do Manager → clicar em Install Missing Custom Nodes
Erro de parse do YAML na inicializaçãoTabs ou indentação incorreta em extra_model_paths.yamlUsar apenas espaços (sem tabs); validar com um linter YAML

FAQ

Qual ordem os nós de upscale e face detail devem ter em um workflow ComfyUI? Rode o upscale primeiro e depois o FaceDetailer. O workflow documentado no artigo 4237 usa T2I → upscale → face detail → hand detail, e a documentação do Impact Pack confirma que o FaceDetailer inpainta apenas as regiões SEGS detectadas no tamanho atual de pixel.

Como o FaceDetailer evita repintar a imagem inteira em vez de apenas o rosto? O FaceDetailer trabalha com SEGS (regiões de detecção), não com o frame inteiro. Ele recorta cada rosto detectado, opcionalmente redimensiona o recorte para guide_size, inpainta esse recorte e cola de volta. Regiões maiores que guide_size são ignoradas, a menos que force_inpaint esteja ativado.

Qual a diferença entre os nós FaceDetailer e FaceDetailerPipe? FaceDetailer é um nó de passe único. FaceDetailer (pipe) aceita e emite um bundle DETAILER_PIPE (model, CLIP, VAE, positive, negative) para que o mesmo pipe possa ser reusado em vários passes de detalhe ou encadeado com outros nós baseados em pipe.

Como configurar extra_model_paths.yaml para modelos YOLO BBOX no ComfyUI? Adicione as chaves ultralytics_bbox e ultralytics_segm apontando para seus diretórios models/ultralytics/bbox e models/ultralytics/segm. Use espaços (não tabs) para indentação; barras normais funcionam no Windows.

O ComfyUI Manager tem um recurso "install missing nodes"? Sim — o menu do Manager contém Install Missing Custom Nodes. Ele escaneia o workflow atual por tipos de nó não reconhecidos, associa-os ao seu registro e oferece instalação com um clique.

Por que preciso tanto do Impact Pack quanto do Impact Subpack? O Impact Pack contém os nós FaceDetailer e Detailer. O Impact Subpack contém o UltralyticsDetectorProvider, que carrega os modelos YOLO BBOX/SEGM usados pelo FaceDetailer para detecção. São mantidos como pacotes separados.

Posso rodar o face detail antes do upscale? Pode, mas o recorte de inpainting será menor (limitado pela região de rosto pré-upscale). O upscale subsequente esticará aqueles pixels inpaintados. Não existe comparação A/B publicada, mas os workflows documentados colocam o upscale primeiro.