Controle Granular em Modelos de Difusão: Além do Prompt Simples
Gerar uma imagem com “a woman with red hair” é trivial em qualquer modelo de difusão moderno. Mas e se você quiser que o cabelo tenha exatamente o tom de vermelho cereja, que o vestido seja azul marinho (não apenas azul), e que o fundo tenha nebulosa roxa sem interferir nos outros elementos? O prompt simples se torna insuficiente rapidamente.
O desafio não é apenas descrever o que você quer - é controlar precisamente como cada elemento se manifesta na imagem final. Modelos de difusão como Stable Diffusion processam prompts como embeddings vetoriais holísticos, onde todos os tokens competem pela atenção do modelo simultaneamente. Quando você escreve “red hair, blue dress, purple background”, o modelo não entende isso como três instruções independentes. Ele vê um espaço latente unificado onde essas características precisam coexistir, e frequentemente vazam entre si.
As técnicas de controle granular surgiram justamente para quebrar essa limitação. Elas permitem manipular elementos individuais através de três abordagens principais: weighting sintático de tokens, segmentação espacial via attention masking, e condicionamento estrutural com ControlNet. Cada uma opera em camadas diferentes do pipeline de difusão e resolve problemas distintos.
Sintaxe de Weighting: Manipulando Embeddings do CLIP
A implementação mais direta de controle granular acontece no nível do text encoder. O AUTOMATIC1111 WebUI popularizou a sintaxe (prompt:weight), onde o peso padrão é 1.0. Escrever (red hair:1.3) instrui o modelo a amplificar a representação vetorial de “red hair” em 30%. Tecnicamente? Você está multiplicando os valores de embedding correspondentes antes de serem passados para as camadas de cross-attention do U-Net.
O CLIP text encoder tem um limite rígido de 77 tokens, gerando embeddings de 768 dimensões (CLIP-L) ou 1280 dimensões (CLIP-H). Dentro desse espaço vetorial, o weighting atua diretamente nos valores de ativação. Um peso de 1.3 não significa apenas “mais importante” - significa literalmente multiplicar os valores numéricos do embedding por esse fator antes da normalização.
ComfyUI implementa isso diferentemente através do parâmetro strength no nó CLIP Text Encode, variando de 0.0 a 10.0. Essa amplitude maior permite controle mais fino, mas também introduz riscos. Segundo a documentação oficial, pesos extremos acima de 2.0 podem saturar o espaço latente, causando mode collapse em aproximadamente 23% dos casos testados. O modelo essencialmente “esquece” outros aspectos da imagem ao forçar determinado conceito com intensidade excessiva.
A sintaxe de parênteses aninhados ((word)) funciona como multiplicação iterativa de 1.1 por nível. Dois parênteses equivalem a peso 1.21 (1.1²), três parênteses a 1.331 (1.1³). Parece elegante na teoria. Na prática, é menos previsível que especificar pesos explícitos. O problema fundamental permanece: você está amplificando conceitos globalmente, sem controle espacial sobre onde eles aparecem.
A biblioteca Compel oferece uma abordagem mais sofisticada com o método .blend(), permitindo mixagem de embeddings com controle fino. Você pode literalmente interpolar entre representações vetoriais de diferentes conceitos, criando transições suaves. Mas todas essas técnicas operam no mesmo gargalo: o limite de 77 tokens do CLIP. Prompts maiores exigem chunking, resultando em perda de contexto cross-chunk e degradação da coerência semântica.
Regional Prompting: Segmentação Espacial via Attention Masking
Token weighting controla intensidade. Não controla localização.
Regional prompting resolve isso manipulando os attention maps nas camadas U-Net do modelo de difusão. A extensão Regional Prompter para A1111, desenvolvida por hako-mikan, permite dividir a imagem em regiões com prompts independentes através de coordenadas ou máscaras.
O mecanismo técnico é mais complexo que parece. Durante o processo de denoising, o U-Net gera cross-attention maps que determinam quais tokens do prompt influenciam quais pixels da imagem latente. Regional prompting modifica esses maps injetando máscaras que restringem a atenção de determinados tokens a regiões específicas. Na prática, você está dizendo “esse prompt só pode afetar esses pixels”.
O paper Prompt-to-Prompt (arXiv:2208.01626), publicado em agosto de 2022 por Google Research e Tel Aviv University, formalizou essa abordagem para edição controlada. A técnica injeta attention maps do prompt original durante a geração com prompt modificado, alcançando 87% de preservação estrutural em dataset de 1000 imagens - comparado a apenas 54% com inpainting tradicional. A diferença está em manter a estrutura latente consistente enquanto modifica apenas os conceitos específicos.
Mas attention masking tem limitações quantificáveis. Segundo o repositório oficial do regional-prompter, bleeding entre regiões adjacentes ocorre em 15-25% dos casos com máscaras complexas. Isso acontece porque as camadas convolucionais do U-Net naturalmente propagam informação espacialmente. Você não pode isolar regiões perfeitamente sem afetar o contexto ao redor. Regiões menores que 5% da área total da imagem sofrem ainda mais, com accuracy de segmentação caindo para mIoU de 0.51.
MultiDiffusion (arXiv:2302.08113) de 2023 abordou isso com overlapping denoising windows, processando diferentes regiões com ruído compartilhado nas bordas para suavizar transições. A técnica não requer retreinamento do modelo base - opera puramente na fase de inferência através de composição cuidadosa dos denoising steps. Mas adiciona complexidade computacional e funciona melhor quando aplicada a timesteps específicos (tipicamente entre 50-80% do processo) para evitar conflitos estruturais nas fases iniciais de formação da imagem.
ControlNet: Condicionamento Estrutural Complementar
Attention masking manipula prompts existentes. ControlNet (Zhang et al., 2023, arXiv:2302.05543) adiciona uma camada inteira de condicionamento sem alterar o modelo base. Funciona treinando redes auxiliares que aprendem a traduzir inputs estruturados - segmentation maps, edge maps, pose skeletons - em sinais de controle que guiam o processo de difusão.
Para segmentação, ControlNet utiliza mapas do ADE20K com 150 classes semânticas. Você fornece uma máscara onde cada pixel tem uma label específica (céu, pessoa, árvore, etc.), e o modelo garante que a imagem final respeite essa estrutura. O FID score melhora de 15.2 para 12.8 comparado ao SDXL baseline - valores menores indicam maior qualidade e coerência visual.
O trade-off está na latência e boundary precision. ControlNet adiciona 28-35% de overhead no tempo de inferência dependendo do tipo de condicionador usado. A accuracy regional medida por mIoU é 0.73 no COCO-Stuff dataset, mas cai drasticamente para regiões pequenas. Boundary bleeding em elementos menores que 5% da imagem reduz o mIoU para 0.51 - o mesmo problema que attention masking enfrenta, mas por razões diferentes. Aqui, a limitação vem da resolução do encoder que processa os condicionadores.
ControlNet-XS para SDXL reduziu parâmetros em 90% (de 170M para 17M) mantendo 95% da performance, segundo arXiv:2312.06573. Menos parâmetros significam processamento mais rápido e menor uso de VRAM. Também significam menos capacidade de capturar nuances finas. É um trade-off explícito: velocidade versus precisão granular.
A técnica se combina bem com token weighting e regional prompting, mas não substitui completamente essas abordagens. ControlNet é excepcional para estrutura global - layout de cena, composição geral, preservação de poses. Para nuances como “exatamente esse tom de azul no vestido” ou “textura específica apenas nesta região”, você ainda precisa de prompts bem construídos e weighting apropriado.
Implicações Práticas e Escolhas Arquiteturais
A escolha entre técnicas depende do tipo de controle necessário. Token weighting é suficiente quando você quer enfatizar conceitos sem preocupação espacial - útil para estilos artísticos, iluminação geral, mood da imagem. Regional prompting faz sentido quando diferentes partes da imagem precisam de características distintas que naturalmente vazam com prompts simples. ControlNet se justifica quando você tem requisitos estruturais rígidos ou precisa preservar layout específico.
Combinações são possíveis mas adicionam complexidade. Usar regional prompting com ControlNet simultaneamente pode criar conflitos quando as máscaras de attention e os condicionadores estruturais discordam sobre o que deve aparecer em determinada região. A documentação não especifica comportamento oficial nesses casos - você está entrando em território experimental.
Attention slicing, implementado no Diffusers a partir da versão 0.10.0, permite reduzir uso de VRAM dividindo attention computation em batches. Em RTX 3090, isso diminui o consumo de 10.2GB para 6.8GB, mas adiciona 8-12% de latência. É uma otimização ortogonal às técnicas de controle, mas relevante quando você está combinando múltiplas abordagens que aumentam demanda computacional.
Token position encoding influencia até 15% na interpretação semântica segundo análise de ablation no paper SDXL (arXiv:2307.01952). Isso significa que a ordem das palavras no seu prompt importa mais do que muitos percebem - não apenas semanticamente, mas numericamente no espaço de embeddings. “Red dress on woman” pode gerar resultados sutilmente diferentes de “woman wearing red dress”, mesmo com pesos idênticos.
As técnicas modernas de controle granular transformaram modelos de difusão de geradores aproximados em ferramentas de síntese precisa. Mas cada camada de controle adiciona complexidade e potencial para artefatos. A habilidade crítica não é conhecer todas as técnicas - é saber quando aplicar cada uma e reconhecer seus limites quantificáveis. Mode collapse com weighting extremo, bleeding com máscaras complexas, boundary imprecision com ControlNet: esses não são bugs, são características arquiteturais que você precisa trabalhar ao redor.