Imagens de regularização em LoRA: quando usar
Descubra quando imagens de regularização ajudam ou desperdiçam recursos no treino de LoRA, como obtê-las e as convenções de pastas do kohya_ss.
On this page
- TL;DR
- O que são imagens de regularização em LoRA?
- Exemplo prático: treinando um LoRA de "Woman"
- Quando imagens de regularização ajudam e quando desperdiçam recursos
- Como obter ou gerar imagens de regularização
- Opções de datasets prontos
- Convenções de pastas e repetições
- Erros comuns e correções
- Legendagem de imagens de regularização
- FAQ
Imagens de regularização em LoRA
Imagens de regularização resolvem o "desvio de linguagem" — problema no qual um token raro como <person_name> se torna sinônimo de toda a classe, como "mulher", destruindo a capacidade do modelo de gerar outros membros dessa classe. Consulte https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth.
A solução são as class images: exemplos normais da categoria mais ampla alimentados junto com as imagens de token raro durante o treino. As funções de loss aplicam condicionamentos diferentes — as imagens de referência usam o token raro, enquanto as class images usam o prompt simples da classe — mantendo o embedding da classe estável. Consulte https://www.scottbaker.ca/AI/LoRA-Training.
O LoRA é um adaptador de baixo posto que adiciona pequenas matrizes de peso às camadas de atenção sem modificar os pesos do modelo base. Como o conhecimento do modelo base permanece intacto e a influência do LoRA é controlada por um multiplicador de peso, o desvio de linguagem é reduzido em comparação com o fine-tuning completo. Consulte https://www.scottbaker.ca/AI/LoRA-Training.
TL;DR
- Use imagens de regularização quando tiver 50+ imagens de treino ou fizer fine-tuning de estilos ou conceitos inteiros (https://aituts.com/lora-training-settings/) — veja Boas práticas de treino de LoRA
- Pule-as para LoRAs de sujeito único para economizar recursos e manter a precisão — veja Guia básico de LoRA
- Gere com o mesmo modelo usando prompts de classe (ex.: "a photo of a man") sem o token raro — veja Configurações de geração
- Convenção de pastas:
9_training_folderpara repetições de treino,1_regularization_folderpara imagens de classe - Aviso importante: Saídas de regularização SDXL não refinadas deixam as imagens de sujeito muito nítidas e as class images artificialmente suaves (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/) — veja Guia de regularização SDXL
O que são imagens de regularização em LoRA?
As imagens de regularização vêm do artigo do DreamBooth (Ruiz et al., 2022) e servem à preservação prévia. Elas evitam overfitting ao fazer fine-tuning com poucas imagens, mantendo a compreensão do modelo sobre categorias mais amplas intacta. O script de treino do DreamBooth pode gerá-las automaticamente a partir do modelo base usando prompts de classe (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth).
A perda de preservação prévia é calculada de forma diferente nas imagens de referência e nas class images. Nas imagens de referência, a loss é a loss de denoising padrão em direção ao sujeito condicionada ao token raro. Nas class images, a loss é a loss de denoising condicionada ao prompt simples da classe, sem o token raro. Isso impede que o embedding da classe se desvie em direção ao sujeito específico durante o treino. Consulte https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth e https://arxiv.org/abs/2208.12242 .
Para o LoRA em específico, as imagens de regularização são opcionais. Muitos treinadores experientes as ignoram porque o LoRA adiciona pequenos adaptadores em vez de reestruturar o modelo. Elas não são obrigatórias e só são realmente necessárias se você treinar com um número muito grande de imagens (https://aituts.com/lora-training-settings/ ).
Exemplo prático: treinando um LoRA de "Woman"
Considere treinar um LoRA em uma mulher específica chamada "Jane" usando o token de disparo <jane>. Você tem 20 imagens de treino de Jane com legendas como aa <jane> woman.
Sem imagens de regularização: o modelo aprende <jane> → o rosto de Jane. Durante a inferência, o prompt a photo of a woman pode gerar o rosto de Jane em vez de uma mulher genérica, porque o token <jane> puxou o embedding da classe "woman" para os traços específicos de Jane. Isso é desvio de linguagem.
Com imagens de regularização: você adiciona 20 a 30 imagens de classe de outras mulheres, do Unsplash, com legendas como a photo of a woman, junto com as 20 imagens de Jane. A loss de preservação prévia condiciona as imagens de classe ao prompt a photo of a woman, sem <jane>. O modelo aprende a manter "woman" genérica enquanto ainda aprende <jane> → Jane. Consulte https://www.scottbaker.ca/AI/LoRA-Training.
No kohya_ss, as imagens de treino ficam em 9_jane, com 9 repetições, e as imagens de classe em 1_woman. O treino dobra a contagem de passos quando há imagens de regularização. Exemplo: 423 passos base viram 2115 com regularização ativada. Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Quando imagens de regularização ajudam e quando desperdiçam recursos
Imagens de regularização são úteis quando há dados significativos — 50+ imagens ou conceitos mais amplos, como estilos, personagens ou objetos inteiros. Nessa escala, o modelo precisa do efeito de contrabalanço para impedir que o token do sujeito absorva toda a distribuição da classe (https://aituts.com/lora-training-settings/ ).
Para LoRAs de sujeito único (3 a 5 imagens), imagens de regularização desperdiçam recursos. Adicioná-las retarda muito o treino e dilui o resultado desejado. O problema de desvio de linguagem praticamente não existe aqui, tornando o custo desnecessário. Consulte https://www.scottbaker.ca/AI/LoRA-Training.
| Setting | With Reg Images | Without Reg Images | Source |
|---|---|---|---|
| Training steps (423 base) | 2115 (fator 2×) | 423 | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ |
| kohya_ss loss handling | is_reg ajusta loss_weights para class images | N/A | https://github.com/kohya-ss/sd-scripts/issues/330 |
| Minimum recommended images | 50+ para benefício relevante | 3–5 sujeito único | https://aituts.com/lora-training-settings/ |
Imagens de regularização ruins pioram o resultado. Quando as reg images têm uma distribuição de qualidade diferente das imagens de treino, o modelo associa o prompt de classe a essa qualidade. Saídas de regularização SDXL não refinadas causaram class images suaves, enquanto imagens de sujeito ficaram artificialmente nítidas. Gere reg images com o mesmo pipeline, incluindo o refiner, do seu resultado esperado (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ ).
Como obter ou gerar imagens de regularização
Três abordagens, em ordem de preferência:
- Gerar com o mesmo modelo base — use prompts de classe (ex.: "a photo of a man") sem o token raro. Isso gera os resultados mais consistentes (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth).
- Fotos reais da mesma classe — Unsplash ou fotos de banco de imagens com legendas. Têm mais diversidade, mas podem não corresponder à distribuição interna do modelo. Salve as descrições alt como legendas para consistência de captioning (https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ ).
- Datasets prontos — as imagens de regularização SD 1.5 do ProGamerGov no HuggingFace são uma opção pronta (https://huggingface.co/datasets/ProGamerGov/StableDiffusion-v1-5-Regularization-Images ).
Opções de datasets prontos
| Dataset | Model | Resolution |
|---|---|---|
| ProGamerGov SD v1.5 | SD 1.5 | 512×512 |
| SDXL class images | SDXL | 1024×1024 |
| Woman regularization | SDXL | 1024×1024 |
Convenções de pastas e repetições
No kohya_ss, a pasta de Regularização é opcional e aparece como tal na interface (https://aituts.com/lora-training-settings/ ). O repositório do kohya_ss descreve essa opção e as convenções de pastas (https://github.com/bmaltais/kohya_ss). As imagens de treino ficam em pastas numeradas como 9_training_folder (9 repetições por imagem), enquanto as imagens de classe usam 1_regularization_folder. O blog aboutme.be ilustra isso com um exemplo concreto: pasta 1_man para imagens de regularização e 9_w0ut3r man para imagens de treino. Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Uma issue do GitHub no kohya-ss/sd-scripts confirma que is_reg afeta apenas loss_weights depois que as reg images são carregadas — elas são tratadas como imagens de treino, exceto pelo fator de loss (https://github.com/kohya-ss/sd-scripts/issues/330 ).
Configuração via CLI e TOML
O script de treino do kohya_ss aceita a flag CLI --reg_data_dir para definir o diretório de imagens de regularização. Quando há imagens de regularização, o kohya_ss dobra os passos de treino, aplicando um fator de regularização de 2 a max_train_steps. Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Para casos em que as reg images são silenciosamente truncadas, o kohya_ss limita as reg images ao número de imagens de treino após repetições. O workaround é usar um arquivo de configuração TOML com class_token = em vez de confiar no campo de pasta da interface. Isso garante que o token de classe seja aplicado de forma consistente às imagens de regularização. Consulte https://github.com/kohya-ss/sd-scripts/issues/330 .
Erros comuns e correções
Symptom | Cause | Fix | Source
|---------|-------|-----|--------
Saída do sujeito muito nítida, class images muito suaves | Incompatibilidade de qualidade entre reg images e imagens de treino | Gere reg images com o mesmo pipeline, incluindo refiner e dpmpp_2s_ancestral, do resultado final | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ Imagens de regularização truncadas silenciosamente | kohya_ss limita reg images à contagem de imagens de treino após repetição | Reduza a contagem de reg images, passe-as como imagens de treino ou use TOML com class_token= | https://github.com/kohya-ss/sd-scripts/issues/330 Treino demora duas vezes mais com regularização | kohya_ss dobra os passos de treino quando há reg images, com fator 2 aplicado | Reduza epochs ou contagem de imagens de treino, ou pule a regularização | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ Saídas de classe artificialmente suaves enquanto o sujeito está nítido | Reg images geradas sem refiner SDXL, criando incompatibilidade de qualidade | Gere reg images usando o mesmo pipeline, incluindo refiner e dpmpp_2s_ancestral | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ "Aparência mais suave dessas imagens de regularização foi amplificada" | Modelo associa o prompt de classe ao efeito de suavização de reg images de baixa qualidade | Iguale exatamente a distribuição de qualidade: use mesmo modelo, refiner e sampler para reg images | https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/
Legendagem de imagens de regularização
Um ponto ambíguo: legendas de imagens de regularização devem usar o prompt de classe, ex.: a photo of a woman, sem o token de disparo do sujeito. Se a legenda completa de treino for usada, ex.: aaa 1girl <jane>, as imagens de classe vazam o token do sujeito para a loss de preservação prévia, anulando o propósito. Ao usar fotos reais do Unsplash, salve as descrições alt como legendas — elas são naturalmente descrições de nível de classe sem a palavra-chave do sujeito. Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
No kohya_ss, a interação entre legendas e o parâmetro TOML class_token é uma questão não resolvida na comunidade. A issue #330 do kohya_ss discute se legendas de reg images devem usar o prompt da pasta ou o prompt de classe; a resposta sugeriu usar configuração TOML com class_token =, mas nenhuma resposta definitiva com evidências foi fornecida. Consulte https://github.com/kohya-ss/sd-scripts/issues/330 .
FAQ
O que são imagens de regularização no treino de LoRA?
Exemplos de classe usados durante o treino de LoRA para preservar a compreensão do modelo base sobre categorias mais amplas. Evitam que um token raro sobrescreva o conceito de classe inteiro no conhecimento do modelo. A loss de preservação prévia calcula a loss de denoising em imagens de classe condicionada ao prompt simples da classe, sem o token raro. Consulte https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth e https://arxiv.org/abs/2208.12242 .
Preciso de imagens de regularização no treino de LoRA?
A maioria dos cenários de treino de LoRA não precisa delas. Use apenas quando treinar com 50+ imagens ou conceitos mais amplos. Para LoRAs de sujeito único, ignore-as para economizar recursos. Consulte https://aituts.com/lora-training-settings/ .
Quantas imagens de regularização devo usar?
Use de 200 a 300, segundo a pesquisa do DreamBooth (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth). Para LoRA em específico, o número ideal não é bem documentado — muitos treinadores experientes as ignoram completamente para trabalho de sujeito único. A orientação do DreamBooth de num_epochs * num_samples aplica-se ao fine-tuning completo; se o LoRA se beneficia da mesma quantidade é uma questão em aberto.
Posso pular a regularização no Kohya_ss?
Sim. O campo "Regularisation folder" é opcional. Para LoRAs de sujeito único, deixe-o vazio. Isso é recomendado para a maioria dos cenários de treino de LoRA (https://aituts.com/lora-training-settings/ ).
Como gerar imagens de regularização?
Gere com o mesmo modelo Stable Diffusion usado no treino, usando prompts que correspondam à sua classe, mas omitindo o token raro. Ferramentas como o kohya_ss podem gerá-las automaticamente (https://huggingface.co/docs/diffusers/v0.11.0/en/training/dreambooth). A flag CLI é --reg_data_dir.
Qual a diferença entre imagens de regularização e imagens de treino?
Imagens de treino são o seu sujeito específico (<rare_token> + detalhes do sujeito). Imagens de regularização são exemplos normais da classe ("a photo of a man") que preservam a compreensão do modelo base sobre essa categoria. A única diferença em nível de código no kohya_ss é que is_reg ajusta loss_weights para imagens de classe (https://github.com/kohya-ss/sd-scripts/issues/330 ).
Por que minhas imagens de regularização estão piorando meu LoRA?
O modelo associa o prompt de classe ao efeito de suavização de reg images não refinadas, deixando as saídas de classe artificialmente suaves enquanto as imagens de sujeito ficam artificialmente nítidas. Gere reg images usando seu pipeline final esperado, com refiner e dpmpp_2s_ancestral, para igualar a qualidade. Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
Imagens de regularização dobram o tempo de treino?
Sim. Quando há imagens de regularização, o kohya_ss aplica um fator de regularização de 2 a max_train_steps. Exemplo de um treino real: 423 passos base viram 2115 com regularização ativada (max_train_steps (423 / 4 / 1.0 * 10 * 2) = 2115). Consulte https://blog.aboutme.be/2023/08/10/findings-impact-regularization-captions-sdxl-subject-lora/ .
E sobre LoRAs de estilo?
O comportamento de imagens de regularização para LoRAs de estilo, ou seja, estilos artísticos em vez de sujeitos específicos, não está documentado nas fontes disponíveis. A pesquisa existente cobre LoRAs de sujeito, como treino de personagens ou pessoas. Se imagens de regularização se comportam de forma diferente para LoRAs de estilo não foi abordado em nenhuma fonte revisada.