ArtificialGuyBR

Home / Blog / Fixing things

Inpainting e Outpainting: Máscaras, Denoise, Modelo

Quando usar inpainting vs checkpoints base, como conteúdo mascarado e área mudam o resultado, e por que edições não se fundem — com correções.

7 sources cited Fixing things

Inpainting e Outpainting: Máscaras, Denoise, Modelo

TL;DR

  • Modelos de inpainting dedicados (SD1.5 inpainting, patch de 1,28 GB do Fooocus) adicionam 5 canais extras de entrada UNet para condicionamento de imagem mascarada + máscara. Checkpoints base podem fazer inpainting, mas perdem coerência em substituições complexas (novas pessoas, novos corpos).
  • Conteúdo mascarado escolhe o preenchimento latente inicial: fill/latent nothing + denoise > 0.8 = substituir; original/latent noise + denoise 0.4–0.6 = modificar. Combine o modo com a tarefa.
  • Área de inpintura: Somente mascarada recorta a região mascarada, escala para resolução total (geralmente 1024²), processa e cola de volta — oferecendo muito mais detalhe que Toda a imagem em telas grandes.
  • Desfoque de máscara 4–8 evita emendas visíveis. O Fooocus automatiza isso com uma abertura morfológica (dilatar → erosionar) em cada máscara.
  • O Fooocus permite outpainting 4K+ em 12 GB de VRAM recortando a zona de expansão, processando a ≤ 1024 px e usando uma cabeça de inpintura leve injetada no primeiro bloco UNet — não um checkpoint completo de inpainting.
  • Outpainting precisa de 50–100 passos, samplers ancestrais (Euler a / DPM2 a), denoise 1.0 e CFG no topo da faixa 7–12. Poucos passos ou sampler errado produzem extensões incoerentes.

O Mito do Modelo: Você Não Precisa de um Checkpoint Especial para a Maioria dos Inpaintings

Guias da comunidade costumam afirmar "você precisa de um modelo de inpainting para bons resultados." Isso é só meio verdade.

SD1.5 tem um checkpoint oficial de inpainting treinado por 440k passos adicionais com 5 canais extras UNet (4 para a imagem mascarada codificada pelo VAE, 1 para a máscara binária). Esses canais são inicializados em zero após restaurar os pesos base, então o modelo aprende apenas como mesclar regiões mascaradas (SD1.5 inpainting model card).

SDXL é diferente. Stability AI nunca lançou um checkpoint standalone de inpainting SDXL. O pipeline SDXL usa base + refiner. Modelos "SDXL inpainting" da comunidade são fine-tunes — alguns adicionam a arquitetura de 5 canais, outros apenas treinam em dados mascarados com o UNet base. A maioria se comporta de forma semelhante; apenas fine-tunes específicos (variantes Pony, mesclas NSFW) mostram diferenças mensuráveis (Civitai article 3990).

O Fooocus adota uma terceira abordagem. Ele baixa um patch inpaint_v26.fooocus.patch de 1,28 GB — uma cabeça conv pequena (320 canais, 5 entradas: 4 latentes + 1 máscara) que injeta condicionamento de máscara no primeiro bloco de entrada de um UNet SDXL padrão (Fooocus repo). Qualquer modelo base SDXL funciona; nenhum checkpoint separado é necessário.

Regra prática: Use um modelo de inpainting dedicado (SD1.5 inpainting, Fooocus) quando estiver substituindo conteúdo inteiramente — nova pessoa, novo objeto, novo fundo. Para modificar conteúdo existente (corrigir rostos, trocar cor de camisa, remover um logotipo), um checkpoint base com os ajustes certos funciona bem.


Conteúdo Mascarado: O Preenchimento Inicial Decide a Trajetória

O dropdown Conteúdo Mascarado no Automatic1111 (e equivalentes no ComfyUI, Fooocus) define como o latente fica antes da difusão começar. Não é um ajuste de estilo — é a distribuição de ruído inicial.

Configuração | Latente inicial | Usar quando | Intervalo denoise | Fonte

|---------|----------------|----------|---------------|--------

fill | Média de cor local (desfoque de pixels vizinhos) | Substituir áreas grandes, novo fundo | 0.8–1.0 | A1111 Features latent nothing | Zeros (preto puro no espaço latente) | Substituição em branco limpo | 0.8–1.0 | A1111 Features original | Codificação VAE dos pixels originais mascarados | Modificar conteúdo existente (correção de rosto, troca de cor) | 0.4–0.6 | A1111 Features latent noise | Ruído gaussiano aleatório | Variação criativa sobre estrutura existente | 0.5–0.8 | A1111 Features

Por que o denoise deve bater: Denoise alto (> 0.8) sobrescreve o latente inicial quase completamente. Se você alimenta original (o rosto existente) com denoise de 0.9, destrói as pistas de identidade — o resultado parece uma pessoa diferente. Denoise baixo (0.4–0.6) preserva a estrutura original enquanto deixa o prompt guiar os detalhes (ThinkDiffusion aDetailer).


Área de Inpintura: Somente Mascarada vs Toda a Imagem

Esta configuração controla se o modelo vê a imagem inteira ou apenas o recorte mascarado.

  • Toda a imagem — A imagem inteira é redimensionada para a resolução alvo (por exemplo, 1024×1024), a região mascarada é processada em contexto e o resultado é colado de volta. A coerência global é preservada, mas a região mascarada recebe menos pixels efetivos.
  • Somente mascarada — A caixa delimitadora da máscara é recortada, escalada para a resolução alvo, processada em resolução total e colada de volta. A região editada recebe cerca de 4× mais orçamento de pixels em uma imagem de 2048 px.

Quando usar qual:

Cenário | Configuração | Motivo | Fonte

|----------|---------|--------|--------

Correção de rosto/mão em foto grande | Somente mascarada | 1024 px no rosto vs 256 px se reduzido | A1111 Features Extensão de fundo perfeita | Toda a imagem | Contexto de iluminação/cor global importa | A1111 Features Inserção de objeto pequeno | Somente mascarada | Maximiza detalhe no novo objeto | A1111 Features Transferência de estilo sobre imagem inteira | Toda a imagem | Consistência em todo o quadro | A1111 Features

Fonte: wiki A1111: "Com Área de Inpintura: Somente mascarada habilitada, apenas a região mascarada é redimensionada, e após o processamento é colada de volta à imagem original. Isso permite trabalhar com imagens grandes e renderizar o objeto inpintado em uma resolução muito maior." (A1111 Features)

Por Que as Bordas Mostram Emendas — E Como Corrigi-las

Três modos de falha criam limites visíveis na borda da máscara:

  1. Desfoque de máscara muito baixo (0–3). O recorte/cola cria uma transição dura de pixels. A documentação do A1111 recomenda 4–8 (A1111 Features). O Fooocus aplica morphological_open (dilatar → erosionar) automaticamente em cada máscara antes do processamento (Fooocus inpaint_worker.py).
  2. Denoise incompatível. Denoise alto com conteúdo mascarado original destrói os pixels de borda que deveriam se fundir. Use 0.4–0.6 para modificações (ThinkDiffusion aDetailer).
  3. Incompatibilidade de resolução. Toda a imagem em uma imagem 4K reduz tudo; a região mascarada perde o detalhe de alta frequência necessário para uma fusão limpa.

Lista de verificação de correção:

  • Defina desfoque de máscara ≥ 4 (A1111) ou confie no processamento automático do Fooocus
  • Combine denoise com conteúdo mascarado: 0.4–0.6 para original, 0.8+ para fill/latent nothing
  • Use Somente mascarada para edições em imagens > 1024 px

Outpainting do Fooocus: Como Ele Cabem 4K em 12 GB

O outpainting do Fooocus evita a explosão de VRAM do processamento de tela inteira:

  1. Recortar para zona de expansão. O InpaintWorker calcula uma caixa delimitadora (solve_abcd) em torno da máscara + preenchimento (Fooocus inpaint_worker.py).
  2. Escalar apenas se necessário. Recortes < 1024 px são escalados para 1024 px no máximo; recortes maiores permanecem nativos.
  3. Preenchimento com desfoque de caixa multiescala. fooocus_fill mescla a borda com desfoques de caixa progressivamente maiores (5, 21, 41, 81 px) para uma transição latente suave (Fooocus inpaint_worker.py).
  4. Abertura morfológica na máscara. cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) suaviza bordas duras antes da difusão (Fooocus inpaint_worker.py).
  5. Cabeça de inpintura leve. Uma conv de 320 canais (5 entradas, kernel 3×3) injeta máscara+latente no primeiro bloco de entrada UNet via input_block_patch — substituindo a concatenação UNet de 5 canais usada pelos modelos de inpainting SD1.5 (Fooocus inpaint_worker.py).
  6. Processar e colar de volta. A região difusa é colada na tela original em resolução total.

Apenas a zona de expansão ocupa VRAM em resolução latente 1024². Um outpaint de 4000 px em 12 GB é rotineiro (Fooocus repo).


Ajustes de Outpainting que Funcionam de Verdade

O "outpainting do pobre" do A1111 e testes da comunidade convergem para uma receita (A1111 Features):

Parâmetro | Valor | Por que

|-----------|-------|-----

Passos | 50–100 | Outpainting se beneficia desproporcionalmente de contagens altas de passos Sampler | Euler a / DPM2 a | Samplers ancestrais mantêm diversidade estocástica para extensão coerente Denoise | 1.0 (máximo) | Liberdade criativa total para a nova região CFG | 7–12, favoreça o topo | Forte aderência ao prompt para continuidade estrutural. Não o máximo do slider — CFG acima de ~15 queima a extensão Desfoque de máscara | 8–16 | Desfoque mais amplo para fusão perfeita na imagem existente

Poucos passos (< 30) ou samplers determinísticos (Euler, DPM++ 2M) produzem extensões rígidas, repetitivas ou incoerentes.


Referência Rápida: Ajustes por Tarefa

Tarefa | Modelo | Conteúdo Mascarado | Área de Inpintura | Denoise | Desfoque de Máscara | Sampler | Passos

|------|-------|----------------|--------------|---------|-----------|---------|-------

Correção de rosto/mão | Base ou inpainting | original | Somente mascarada | 0.4–0.6 | 4–8 | DPM++ 2M / Euler a | 20–30 Remover objeto | Inpainting | fill | Somente mascarada | 0.8–1.0 | 4–8 | DPM++ 2M | 30–40 Nova pessoa na cena | Inpainting / Fooocus | latent nothing | Somente mascarada | 0.9–1.0 | 6–10 | DPM++ 2M / DDPM* | 30–40 Substituir fundo | Base ou inpainting | fill | Toda a imagem | 0.8–1.0 | 8–16 | Euler a | 40–50 Outpainting | Fooocus / Base | fill | N/A (Fooocus) | 1.0 | 8–16 | Euler a / DPM2 a | 50–100 Transferência de estilo (inteira) | Base | original | Toda a imagem | 0.3–0.5 | 0–4 | DPM++ 2M | 20–30

*DDPM (ancestral) recomendado para fine-tunes da família Pony SDXL; 20–30 passos se alinham com o sampler de treinamento deles (Civitai article 3990).


Erros Comuns e Correções

Sintoma | Causa | Correção

|---------|-------|-----

Emenda visível dura na borda da máscara | Desfoque de máscara 0–3 | Defina desfoque de máscara 4–8 (A1111) ou use Fooocus (abertura morfológica automática) Rosto inpintado parece outra pessoa | Denoise > 0.8 com conteúdo mascarado original | Use denoise 0.4–0.6 com original + Somente mascarada Outpainting ignora o prompt / incoerente | Passos < 30, sampler errado, denoise não no máximo | 50–100 passos, Euler a ou DPM2 a, denoise 1.0, CFG 10–12 Edição de imagem grande perde detalhe na zona mascarada | Toda a imagem reduz a tela inteira | Mude para Somente mascarada — recorta e processa em resolução total Fooocus preenche a imagem inteira ignorando a máscara | Motor de inpintura = "Nenhum" ou opção errada | Selecione "Inpintar ou Outpintar (padrão)" / "Modificar Conteúdo"; assegure que a máscara é branco-sobre-preto (Fooocus flags.py)


Perguntas Frequentes

Qual a diferença entre fill, original, latent noise e latent nothing no inpainting? Eles definem o latente inicial antes da difusão. fill média as cores vizinhas; original mantém os pixels existentes; latent noise adiciona ruído aleatório; latent nothing usa zeros. Combine com a tarefa: substituir → fill/latent nothing + denoise alto; modificar → original/latent noise + denoise baixo (A1111 Features).

Quando usar "Área de Inpintura: Somente mascarada" vs "Toda a imagem"? Somente mascarada quando a região de edição precisa do máximo de detalhe (rostos, objetos pequenos, imagens grandes de origem). Toda a imagem quando a coerência global de iluminação/cor importa mais que o detalhe local (extensões de fundo, transferência de estilo) (A1111 Features).

Preciso de um modelo dedicado de inpainting para SDXL? Não. O Fooocus funciona com qualquer modelo base SDXL via seu patch de inpintura de 1,28 GB (Fooocus repo). Modelos SDXL inpainting da comunidade existem, mas a maioria são fine-tunes; apenas variantes específicas (Pony, mesclas NSFW) diferem mensuravelmente (Civitai article 3990). Para SD1.5, o checkpoint oficial de inpainting (5 canais extras UNet) vale a pena (SD1.5 inpainting model card).

Por que minha região inpintada tem uma emenda visível? Geralmente desfoque de máscara muito baixo (0–3), incompatibilidade de denoise (denoise alto com conteúdo original) ou Toda a imagem em uma imagem grande forçando downscaling. Aumente o desfoque de máscara para 4–8, combine denoise com o modo de conteúdo, use Somente mascarada para imagens grandes (A1111 Features; Fooocus inpaint_worker.py).

Qual força de remoção de ruído devo usar para inpainting de rosto? 0.4–0.6 com conteúdo mascarado original e área Somente mascarada. Valores mais altos destroem a identidade; valores mais baixos não mudam o suficiente. O tutorial do ThinkDiffusion's aDetailer usa ≈ 0.6 como padrão (ThinkDiffusion aDetailer).

Posso fazer outpainting de imagens 4K em 12 GB de VRAM? Sim, com o Fooocus. Ele recorta a zona de expansão, processa a ≤ 1024 px, usa uma cabeça de inpintura leve (não um UNet completo de inpainting) e cola de volta. Outpainting de tela inteira no A1111/ComfyUI em 4K precisa de 24 GB+ (Fooocus repo; Fooocus inpaint_worker.py).

Qual sampler funciona melhor para modelos Pony? DDPM (ancestral) a 20–30 passos. Fine-tunes Pony foram treinados com DDPM; samplers ancestrais correspondem ao cronograma de ruído deles. Não é universal — verifique o modelo card específico (Civitai article 3990).


Resumo

A qualidade do inpainting e outpainting vem de combinar três botões — modelo, conteúdo mascarado + denoise, área de inpintura — ao tipo de tarefa (substituir vs modificar). Modelos de inpainting dedicados adicionam condicionamento de máscara via canais extras UNet (SD1.5) ou uma cabeça injetada leve (Fooocus). Checkpoints base funcionam para modificações quando os ajustes estão corretos. O pipeline de recortar-processar-colar do Fooocus torna o outpainting 4K viável em GPUs de consumo. A falha mais comum — emendas visíveis — quase sempre é uma incompatibilidade de desfoque de máscara ou denoise, não uma limitação do modelo.


Artigos Relacionados