Escala CFG no Stable Diffusion
Como a escala CFG controla a aderência ao prompt no Stable Diffusion, faixas ideais por família de modelo e por que modelos destilados usam CFG 1.
On this page
CFG Scale Explained: The Math Behind Stable Diffusion's Guidance Knob
TL;DR
- O que CFG faz: A escala CFG multiplica a diferença entre uma previsão que considera o prompt e uma que o ignora, empurrando a imagem gerada para perto ou para longe do seu prompt.
- Faixas ideais variam: SD 1.5 funciona melhor com CFG 7, SDXL com 5–7, enquanto Flux dev, SDXL Turbo e SD-Turbo devem usar CFG 1 porque são modelos destilados/com guidance embutida.
- Artefatos de CFG alto: Empurrar CFG acima de 12 pode causar oversaturação, oversharpening e hiper-realismo antinatural; modelos destilados produzem resultados desbotados ou distorcidos com CFG > 1.
What CFG Actually Does to Predictions
Classifier-Free Guidance (CFG) mistura duas versões do modelo: uma que presta atenção ao seu prompt (prompt-aware) e outra que mais ou menos o ignora (prompt-agnostic). Ao misturar ambas, você controla o quão de perto o Stable Diffusion segue seu prompt versus improvisar por conta própria.
Durante o treinamento, o modelo aprende duas previsões simultaneamente: a previsão condicional εθ(zλ, c) — que ruído remover dado seu prompt c — e a previsão incondicional εθ(zλ) — que ruído remover dado um token nulo. A escala CFG, denotada w, combina essas matematicamente:
εθ(zλ, c) = (1 + w) · εθ(zλ, c) − w · εθ(zλ)
Quando w = 0, o modelo ignora o prompt completamente. Conforme w aumenta, o score guiado se move mais em direção à previsão condicional. CFG maior torna imagens mais fiéis ao prompt. A técnica foi introduzida em Ho & Salimans (2022), que mostrou que dropar tokens de condicionamento aleatoriamente permite que uma rede produza ambas previsões sem mudanças arquiteturais. A fórmula do score guiado (Eq. 6 no paper) não tem gradiente de classificador presente, tornando-a distinta de classifier guidance (arXiv:2207.12598).
Model Family: When to Use What CFG
SD 1.5 and Legacy Checkpoints
SD 1.5 foi treinado com 10% de dropout de condicionamento de texto (SD 1.5 model card). Praticantes da comunidade relatam uma faixa de trabalho de CFG 7–8, com 7 sendo um ponto ideal comum para resultados balanceados. Veja SA samplers and schedulers para como CFG interage com passos de amostragem.
| CFG | Resultado Típico |
|---|
4–5 | Mais criativo, menos fiel ao prompt; útil para exploração de estilo 7 | Adesão e qualidade balanceadas para a maioria dos prompts 10+ | Hiper-literal, pode introduzir oversaturação ou artefatos
SDXL Base and Refiner Pipelines
SDXL usa dois text encoders (OpenCLIP-ViT/G e CLIP-ViT/L) e espera resolução 1024×1024 (SDXL base card). Referências da comunidade sugerem CFG 5–7 como faixa padrão para imagens coerentes, com valores maiores para efeitos deliberados. Diferente do SD 1.5, SDXL é mais sensível a extremos de CFG; o processamento separado do refiner pode amplificar artefatos quando a guidance é agressiva demais.
Flux Dev: Distilled Guidance, CFG Must Be 1
Flux dev é um modelo com guidance destilada (guidance-distillation paper, Flux pipeline docs). A destilação assa a combinação de guidance diretamente nos pesos do modelo, tornando w uma entrada em vez de um fator de escala do sampler.
Isso significa:
- Defina o CFG do sampler para exatamente 1.0
- Ajuste o nó FluxGuidance (ou equivalente) para a aderência ao prompt desejada
Usar CFG 7 no Flux dev aplicaria guidance duas vezes, desbotando a imagem. O workflow padrão usa sampler Euler, cfg 1.0 e guidance 3.5 (Flux workflow guide, Forge discussion #1119).
Turbo Models: Guidance Disabled by Design
SDXL Turbo e SD-Turbo são destilados para síntese em 1–4 passos (SDXL-Turbo card, SD-Turbo card). Seus model cards afirmam explicitamente que não usam guidance_scale ou negative_prompt, e guidance_scale=0.0 desabilita o mecanismo. Usar CFG > 1 neles introduz artefatos e desacelera a geração sem benefício.
Other Distilled Variants
Princípios similares se aplicam a Anima-Turbo (CFG 1, 8–12 passos) (Anima model card), Z-Image-Turbo (guidance_scale=0.0) (Z-Image-Turbo card) e Flux Schnell (guidance_scale=0 ou 1, 1–4 passos).
Why High CFG Causes Artifacts
Empurrar CFG além da distribuição de treino amplifica a diferença entre previsões condicionais e incondicionais. Observação de praticante (DucHaiten, post Civitai 443573) nota que CFG acima de 12 tende a produzir nitidez aumentada, hipersaturação e uma fixação mais literal em tokens do prompt (Civitai post 443573). O branch incondicional, treinado em prompts vazios, não pode contrabalancear significativamente a direção agressiva. O próprio paper nota que amostras fortemente guiadas exibem cores saturadas (arXiv:2207.12598, Figure 3 caption).
Distilled Models vs. CFG 1: The Technical Reason
Destilação de guidance treina um modelo aluno para reproduzir a saída combinada de um professor (guidance-distillation paper). O modelo destilado recebe w como entrada em vez de rodar duas previsões separadas. Rodar CFG por cima aplicaria guidance duas vezes, causando overshoot — seja desbotando detalhes (Flux) ou introduzindo artefatos (Turbo). Essa regra também se aplica a LCM-SDXL (guidance_scale 1.0–2.0 ou desabilitada) e SD-Turbo (guidance_scale=0), onde a guidance é tratada pela arquitetura no tempo de treino (LCM-SDXL HF card, SD-Turbo HF card).
Negative Prompts and Distilled Models
Prompts negativos funcionam substituindo o embedding de texto incondicional vazio pelo seu texto negativo (AUTOMATIC1111 Negative Prompt wiki). Em modelos destilados como Flux dev, o prompt negativo é ignorado a menos que true_cfg_scale > 1 (diffusers pipeline docs). Para usar negativos no Flux, defina true_cfg_scale > 1 e aceite o custo adicionado. Modelos Turbo ignoram negativos completamente porque guidance_scale=0 desabilita o mecanismo (SDXL-Turbo card, SD-Turbo card). Veja Negative prompts guide para técnicas além da negação.
Common Errors and Fixes
| Symptom | Cause | Fix |
|---|---|---|
| Imagem desbotada no Flux | CFG > 1 com modelo guidance-destilado | Defina sampler CFG para 1.0; use nó FluxGuidance |
| Prompt negativo sem efeito no Flux | true_cfg_scale padrão é 1.0 | Defina true_cfg_scale > 1 com prompt negativo |
| Saída parece queimada ou oversaturada | CFG muito alto para família de modelo | Reduza CFG; use touchstones conhecidos (7 para SD 1.5, 5–7 para SDXL) |
FAQ
What does CFG actually change between predictions? O score guiado é (1+w)·εθ(zλ, c) − w·εθ(zλ) (arXiv:2207.12598, Eq. 6). w maior move o resultado mais em direção à previsão condicional.
Why does negative prompt do nothing on Flux? Flux dev é guidance-destilado (diffusers pipeline docs). Sem true_cfg_scale > 1, não há branch incondicional separado para direcionar para longe de termos negativos.
Should distilled models use CFG greater than 1? Não (guidance-distillation paper, diffusers pipeline docs). Modelos destilados assam guidance nos pesos. Usar CFG > 1 aplica guidance duas vezes, causando resultados desbotados ou distorcidos.
Which CFG range is normal for SDXL vs SD 1.5? Praticantes de SD 1.5 comumente usam CFG 7–8; praticantes de SDXL sugerem 5–7 (SDXL base card, AUTOMATIC1111 wiki). Ambas famílias mostram resultados degradados nos extremos; o limite exato varia por checkpoint.
Why does high CFG look over-saturated or "burned"? Valores grandes de guidance amplificam características ligadas a tokens do prompt além do intervalo visto durante o treino, enfatizando nitidez e saturação em detrimento da aparência natural (arXiv:2207.12598, Figure 3; Civitai post 443573).
What is the formula behind CFG and where did it come from? εθ(zλ, c) = (1 + w)·εθ(zλ, c) − w·εθ(zλ). Introduzida em Ho & Salimans (2022) (arXiv:2207.12598).
Is SeedVR2 suitable for single-image tiling? SeedVR2 é um upscaler de vídeo que pode ser reutilizado para frames únicos. Workflow da comunidade relatou ~950% de upscale em 3090 com 16 tiles. Verifique a documentação do modelo explicitamente suporta imagens únicas antes de recomendar para produção.
Why do some Forge UIs show multiple CFG inputs? Forge expõe sliders de CFG destilado separados para modelos como Flux (Flux workflow guide). O CFG primário deve ser 1.0; ajuste o parâmetro de guidance destilado em vez disso. Veja Inpainting and outpainting guide para técnicas relacionadas.