Treinar seu próprio LoRA com ComfyUI: dados, tags e validação

"kohya-ss/sd-scripts fornece scripts e documentação de treinamento LoRA para Stable Diffusion, SDXL, SD3, FLUX.1 e outras famílias."
Você tem 20 imagens de um personagem original e quer treinar um LoRA que o reproduza em novas gerações.
O dataset e a ferramenta de captioning estão prontos, e os parâmetros vieram de uma captura, mas o resultado falha: o rosto muda com o fundo; “wall” e “floor” nas captions prendem a mesma sala; LR=1e-3 causa overfitting; dim/alpha=32/1 deixa alpha=1 e dim=32 com escala aproximada de 0.03, apenas 3%.
Não há garantia de acertar na primeira execução. O caminho prático liga dados, captions, parâmetros iniciais, diagnóstico e validação no ComfyUI.
Preparar o dataset: quantidade e tipo de imagens
O primeiro passo não é abrir o trainer, mas decidir se o material é suficiente e adequado.
O objetivo determina a quantidade
A quantidade depende diretamente do que será treinado.
LoRA de personagem: comece com 15–30 imagens. Dez fontes excelentes, nítidas e coerentes podem funcionar. Para mudar de cena, inclua fundos e ângulos diferentes.
LoRA de estilo: costuma exigir 50–100 imagens, pois traço, cor e composição adicionam variáveis. Com poucos dados, o estilo some em uma imagem nova.
LoRA de objeto ou roupa: também 15–30 imagens, com frente, perfil e close-ups dos principais detalhes.
Tabela de qualidade do dataset
Quantidade não basta. Fontes fracas ensinam também fundo, iluminação e defeitos.
| Objetivo | Quantidade inicial | Resolução | Fundo | Outros requisitos |
|---|---|---|---|---|
| Personagem | 15–30 imagens (10 com alta qualidade) | 512×512 ou 1024×1024 consistente | Limpo ou variado, sem repetir cena | Ângulos, expressões e poses |
| Estilo | 50–100 imagens | Conforme a base (SD1.5→512, SDXL→1024) | Não precisa ser limpo, mas o estilo deve ser consistente | Mesmo artista ou série |
| Objeto | 15–30 imagens | Resolução consistente | Limpo é melhor, variedade é aceitável | Vistas e detalhes diferentes |
Priorize resolução uniforme, fundo para personagens e variedade de ângulos e detalhes. Grandes diferenças geram resize e detalhes inconsistentes.
Resolução, fundo e pré-processamento
Resolução: o trainer redimensiona tudo. Misturar fontes de 512 e 2048 preserva detalhes de forma desigual; recorte antes para o tamanho-alvo.
Fundo: se 15 de 20 imagens mostram a mesma sala, o tagger repete “wall” e “floor”, e o LoRA pode aprender o cenário. Use fundos limpos ou corrija as captions.
Fluxo:
- Selecione imagens nítidas, com resolução parecida e características claras.
- Recorte para uma resolução com Photoshop, GIMP ou script em lote.
- Remova material de risco se o mesmo fundo aparecer mais de cinco vezes.
Captions e trigger words: etiquetar o dataset
O tagging automático exige revisão. Fundos e traços secundários afetam diretamente a utilidade do LoRA.
Escolher a ferramenta de captioning
Opções comuns:
| Ferramenta | Características | Uso | Suporte no ComfyUI |
|---|---|---|---|
| WD14 Tagger | Tags Danbooru, comum em Stable Diffusion | Personagens e anime | Node Image-Captioning-in-ComfyUI |
| Florence2 | Modelo visual da Microsoft com linguagem natural | Personagens realistas e objetos | Nodes disponíveis |
| BLIP | Modelo de caption em linguagem natural | Estilos realistas e cenas | Compatível com ComfyUI |
WD14 funciona bem para personagens, mas adiciona “simple background” ou “white wall”. Florence2 escreve frases e combina melhor com material realista.
Formato e posição do trigger
Use um token raro ou combinação própria:
sks charname, com um prefixo raro usado nos primeiros fluxos de Stable Diffusionxyz_character_name, com prefixo própriomy_char_001
Posição:
- Coloque o trigger no início de cada
.txtou.caption, seguido dos atributos. - Alguns trainers têm campo separado; não é necessário se todas as captions contêm o token.
A repetição dá um nome estável ao conceito. Use o mesmo trigger na geração.
Revisar manualmente os atributos
Confira pelo menos três pontos.
Vazamento de fundo: “wall”, “floor” ou “bedroom” frequentes podem impedir novas cenas. Remova ou generalize.
Trigger ausente: confira cada caption.
Característica essencial ausente: adicione cabelo, cores ou roupa marcante quando faltar.
Não é preciso ler palavra por palavra. Conte termos com grep ou planilha e corrija anomalias.
Limites das ferramentas: o que o ComfyUI faz
O ComfyUI pode iniciar o treinamento, mas não é o backend.
kohya-ss/sd-scripts é o backend
O cálculo é realizado por kohya-ss/sd-scripts, muito usado em LoRA de Stable Diffusion. Kohya GUI e nodes do ComfyUI envolvem esses scripts ou implementações próximas.
FluxTrainer e Lora-Training-in-Comfy são wrappers:
- FluxTrainer, de Kijai, integra código sd-scripts modificado para FLUX e fluxos relacionados.
- Lora-Training-in-Comfy oferece outra interface ComfyUI para treinamento baseado em kohya.
Os defaults não são ideais universais. Consulte o README atual e a documentação upstream.
Comparar caminhos de treinamento
| Caminho | Vantagens | Limitações | Para quem |
|---|---|---|---|
| GUI kohya-ss | Interface completa e muitos tutoriais | Instalação separada e tela complexa | Quem quer controle total |
| Nodes ComfyUI como FluxTrainer | Treina no mesmo workflow | Partes experimentais, defaults sem garantia | Usuários do ComfyUI |
| Scripts kohya-ss no terminal | Funções novas e controle completo | Barreira técnica maior | Usuários experientes |
Onde verificar parâmetros atuais
Não dependa apenas de capturas. Comece pela documentação atual do kohya-ss/sd-scripts:
- Os guias explicam opções para SD1.5, SDXL e FLUX.1.
- Issues e Discussions trazem experiências específicas, como network alpha.
Learning rate, dim/alpha e steps variam com modelo e dataset. Não há configuração universal.
Receitas iniciais por objetivo
São pontos de partida reproduzíveis. Ajuste com epochs salvas e sintomas.
Relação entre network dim e alpha
network dim ou rank define a capacidade das matrizes LoRA. dim maior aprende mais detalhes, mas aumenta memória e tempo.
network alpha escala os pesos aprendidos. Se alpha é menor que dim, o efeito fica amortecido em relação ao learning rate configurado.
Escala simplificada: alpha / dim
Exemplos:
- alpha=16, dim=32 → 16/32=0.5
- alpha=32, dim=32 → 1
- alpha=1, dim=32 → 1/32≈0.03
Copiar dim=32 e alpha=1 sem considerar learning rate e steps pode gerar resultado fraco.
Início:
- Teste alpha=dim sem amortecimento ou alpha=dim/2 com amortecimento moderado.
- Com alpha<dim, compare learning rate e steps juntos.
Learning rates, steps e epochs
| Parâmetro | Personagem | Estilo | Nota |
|---|---|---|---|
| U-Net LR | 4e-4 | 1e-4 | Início a ajustar por sintomas e alpha |
| Text encoder LR | 5e-5 ou 1e-5 | 5e-5 ou menor | Geralmente abaixo do U-Net |
| Steps | 1000–2000 | 2000–3000 | Derivar de epochs e parar cedo se necessário |
| Epochs | 10–20 | 20–30 | Dataset pequeno pode precisar de menos |
Um step é uma atualização do optimizer e uma epoch percorre o dataset. Repeats, batch size, gradient accumulation e distribuição mudam a relação; use o contador do trainer.
Escolher o modelo-base
A base de treinamento determina a compatibilidade.
| Modelo | Resolução | Modelos compatíveis | VRAM inicial |
|---|---|---|---|
| SD1.5 | 512×512 | SD1.5 e derivados compatíveis | Cerca de 8 GB com fp16 e checkpointing |
| SDXL | 1024×1024 | SDXL e derivados compatíveis | Cerca de 12 GB com fp16 e checkpointing |
| FLUX.1 | 1024×1024 ou mais | Família FLUX.1 correspondente | Frequentemente muito mais sem otimização |
O suporte a FLUX.1 e as opções de memória mudam. Consulte a documentação em vez de confiar em um número fixo.
Tabela inicial
| Objetivo | dim | alpha | U-Net LR | Text encoder LR | Steps/epochs | Modelo |
|---|---|---|---|---|---|---|
| Personagem SD1.5 | 32 ou 128 | 32 ou 1; compensar se baixo | 4e-4 | 5e-5 | 1000–2000 / 10–20 | SD1.5 |
| Personagem SDXL | 128 | 1 ou 128 | 4e-4 | 5e-5 | 1500–2500 / 10–20 | SDXL |
| Estilo SD1.5 | 128 ou 256 | 128 ou 1 | 1e-4 | 5e-5 ou menor | 2000–3000 / 20–30 | SD1.5 |
Ajuste esses inícios com as verificações seguintes.
Detectar e corrigir overfitting e underfitting
Configuração ruim pode destruir detalhes ou quase não aprender o objetivo.
Sintomas de overfitting
Aparência:
- Detalhes se misturam, desfocam ou deformam.
- Fundos e ângulos novos falham, pois só reconhece cenas de treino.
- Ruído e marca d’água do dataset reaparecem.
Trigger:
- Mesmo weight=0.3 copia os dados e não é controlável.
- As características aparecem sem trigger e ficam ligadas demais.
Sintomas de underfitting
Aparência:
- A semelhança é baixa e faltam detalhes centrais.
- O trigger responde pouco ou nada.
Teste de fundo:
- As características continuam fracas em qualquer cena; o conceito principal não foi aprendido.
Tabela comparativa
| Sintoma | Overfitting | Underfitting | Correção |
|---|---|---|---|
| Detalhes | Deformados ou copiados | Semelhança fraca | Over: reduzir LR/steps; under: aumentar LR/melhorar dados |
| Fundo | Falha ao mudar a cena | Objetivo fraco sempre | Over: revisar tags de fundo; under: revisar trigger |
| Trigger | Forte demais | Fraco ou ausente | Over: reduzir LR/dim alto; under: revisar LR, dados, dim |
| Weight | Copia em 0.3 | Quase não aparece em 1.0 | Over: epoch anterior; under: continuar com cuidado ou melhorar dados |
Ordem de correção
Overfitting:
- Reduza claramente o learning rate, por exemplo 50% em um teste.
- Reduza steps ou escolha uma epoch anterior.
- Revise fundos e traços secundários nas captions.
- Reduza um dim desnecessariamente alto.
Underfitting:
- Aumente o learning rate de forma controlada.
- Adicione ou melhore os dados.
- Confirme o trigger em cada caption.
- Aumente dim se faltar capacidade.
VRAM e caminhos de pouca memória para RTX 3060
Pouca VRAM nem sempre impede o treino, mas exige compromissos de resolução, modelo, velocidade e otimização.
Mínimos aproximados
| Modelo | Base fp16 com checkpointing | Com economia extra | Opções |
|---|---|---|---|
| SD1.5 | Cerca de 8 GB | Cerca de 6 GB em configuração limitada | dim baixo, checkpointing, optimizer e precision |
| SDXL | Cerca de 12 GB | Perto de 10 GB em alguns casos | dim baixo, checkpointing, economia por blocos |
| FLUX.1 | Muitas vezes 24 GB sem economia | Perto de 10 GB muito otimizado | block swapping, checkpointing, dim baixo, quantização |
O exemplo de 24 para 10 GB vem de um guia externo de 2025. O uso real depende de trainer, modelo, optimizer, cache, dataset e GPU.
Técnicas de economia
Fused ou memory-efficient backward reduz o pico conforme a implementação.
Gradient checkpointing recalcula ativações e troca velocidade por memória.
dim baixo reduz parâmetros LoRA e geralmente a VRAM.
Mixed precision e quantização: fp16 ou bf16 são comuns; alguns trainers aceitam FP8 ou componentes quantizados com compromissos.
Tabela de pouca VRAM
| VRAM | Objetivo realista | Compromisso | Caminho |
|---|---|---|---|
| 6 GB | Personagem SD1.5 | dim baixo, checkpointing, lento | SD1.5 com batch pequeno |
| 8 GB | Personagem ou estilo SD1.5 | dim baixo e checkpointing | Opções maduras do SD1.5 |
| 10 GB | Algumas configurações SDXL | Economia agressiva | Receita low-memory documentada |
| 12 GB+ | Mais SDXL, FLUX.1 experimental | Pode exigir economia | SDXL primeiro; FLUX.1 depende da configuração |
Com VRAM apertada, comece pelo SD1.5. Ele exige menos e tem técnicas mais maduras.
Validar o LoRA concluído no ComfyUI
Uma imagem não basta. Verifique trigger, detalhes, mudança de fundo e faixa de weight.
Carregar o LoRA
Carregue o .safetensors com Load LoRA:
- Node: Load LoRA incluído no ComfyUI
- Parâmetros: arquivo e strengths de model e clip; comece perto de 0.5
Criar um prompt de teste
Inclua trigger e atributos:
- Trigger word: token aprendido, como
sks charname, perto do início. - Atributos: cabelo, cores e roupa importantes.
- Cena: use “in a forest” ou “at night” no teste de fundo.
Exemplo:
sks charname, blonde hair, blue eyes, white dress, simple background
Teste de fundo:
sks charname, blonde hair, blue eyes, white dress, in a forest, at sunset
Varrer a faixa de weight
Compare em condições iguais:
- weight=0.3: efeito leve e controlável.
- weight=0.5: objetivo reconhecível.
- weight=1.0: força total sem deformação nem perda de controle.
Se 0.3 continua preso aos dados, suspeite de overfitting. Se 1.0 mal se parece, revise underfitting, trigger e compatibilidade.
Lista de aceitação
| Controle | Resultado | Se falhar |
|---|---|---|
| Trigger | Claro em 0.5 e controlável em 0.3 | Ausente: captions/trigger; forte: reduzir LR ou usar epoch anterior |
| Detalhes | Cabelo, cores e roupa nítidos | Deformados: overfitting; fracos: underfitting |
| Mudança de fundo | Assunto reconhecível em outra cena | Revisar captions de fundo e variedade |
| Weight | Traços graduais entre 0.3 e 1.0 | Revisar força e epochs |
Próximos passos e leituras
Para carregamento, weights, empilhamento e triggers, continue em Usar LoRA no ComfyUI: pesos, empilhamento e consistência de personagem.
A relação entre base, compatibilidade e shape mismatch está em Escolher modelos Stable Diffusion: compatibilidade da base com LoRA.
Para testes reproduzíveis, use Templates de prompt do Stable Diffusion para validar um LoRA.
Alternativas sem retreinar:
- FLUX.1 Kontext pode manter um personagem sem LoRA quando há poucos dados ou o treinamento não compensa.
- InstantID e IPAdapter FaceID controlam o rosto por imagem de referência em vez de treinar um LoRA.
Como treinar e validar seu próprio LoRA
Escolha objetivo e modelo-base, prepare imagens e captions, treine com valores controlados e verifique trigger, detalhes e generalização de fundo no ComfyUI.
⏱️ Estimated time: 4 hr
- 1
Step 1: Escolher objetivo e modelo-base
Decida entre personagem, estilo ou objeto e escolha SD1.5, SDXL ou FLUX.1; a base de treinamento define a compatibilidade. - 2
Step 2: Selecionar e normalizar o dataset
Mantenha imagens nítidas com assunto claro, ângulos e fundos variados, e recorte tudo para uma resolução coerente. - 3
Step 3: Gerar e revisar captions
Use a ferramenta adequada e confira palavras de fundo frequentes, atributos essenciais e o trigger em cada arquivo. - 4
Step 4: Definir parâmetros iniciais
Escolha dim, alpha, learning rates e steps ou epochs conforme o objetivo; trate as tabelas como início reproduzível, não resposta universal. - 5
Step 5: Salvar epochs intermediárias
Salve os pesos em intervalos fixos para depois escolher o ponto que generaliza sem overfitting. - 6
Step 6: Validar com condições fixas
Mantenha prompt, seed, sampler e tamanho e compare weights 0.3, 0.5 e 1.0 em vários fundos. - 7
Step 7: Corrigir pelos sintomas
Com overfitting, reduza learning rate ou steps e revise tags de fundo; com underfitting, confira trigger, dados, learning rate e dim.
FAQ
Quantas imagens são necessárias para treinar um LoRA?
Como configurar network dim e alpha?
Qual learning rate usar no LoRA?
Como treinar com pouca VRAM?
É possível treinar um LoRA diretamente no ComfyUI?
Qual é a diferença entre LoRA de SDXL e FLUX.1?
10 min de leitura · Publicado em: 28 ago 2026 · Atualizado em: 28 ago 2026
Guia prático de ComfyUI e Stable Diffusion
Se você chegou pela busca, o caminho mais rápido é ir para o post anterior ou próximo desta série.
Anterior
Consistência facial no ComfyUI: InstantID, FaceID ou ReActor
Compare InstantID, IPAdapter FaceID e ReActor para manter rostos no ComfyUI, com modelos, caminhos, ajustes, erros frequentes e limites de licença.
Parte 9 de 16
Próximo
Prompts regionais no ComfyUI: separe vários sujeitos com Set Area, RegionalPrompt e Cutoff
Separe sujeitos no ComfyUI com Set Area, RegionalPrompt e Cutoff: coordenadas, máscaras, strength, ControlNet e mistura de cores no segundo passe.
Parte 11 de 16



Comentários
Entre com GitHub para comentar