Skip to content

Latest commit

 

History

History
214 lines (162 loc) · 15.5 KB

File metadata and controls

214 lines (162 loc) · 15.5 KB

SimpleTuner 💹

ℹ️ Nenhum dado e enviado a terceiros, exceto por flags opt-in report_to, push_to_hub ou webhooks que devem ser configurados manualmente.

SimpleTuner e voltado para simplicidade, com foco em deixar o codigo facil de entender. Este codebase serve como um exercicio academico compartilhado, e contribuicoes sao bem-vindas.

Se voce quiser se juntar a comunidade, estamos no Discord via Terminus Research Group. Se tiver perguntas, fique a vontade para falar conosco la.

image

Indice

Filosofia de design

  • Simplicidade: Objetivo de ter bons defaults para a maioria dos casos, reduzindo ajustes manuais.
  • Versatilidade: Projetado para lidar com uma ampla faixa de quantidade de imagens - de datasets pequenos a colecoes extensas.
  • Recursos de ponta: So incorpora recursos que provaram eficacia, evitando adicionar opcoes nao testadas.

Tutorial

Explore este README por completo antes de iniciar o novo tutorial da web UI ou o tutorial classico via linha de comando, pois este documento contem informacoes vitais que voce precisa saber primeiro.

Para um quick start configurado manualmente sem ler toda a documentacao ou usar interfaces web, voce pode usar o guia Quick Start.

Para sistemas com memoria limitada, veja o documento DeepSpeed, que explica como usar o 🤗Accelerate para configurar o DeepSpeed da Microsoft para offload do estado do otimizador. Para sharding com DTensor e paralelismo de contexto, leia o guia FSDP2, que cobre o fluxo do FullyShardedDataParallel v2 dentro do SimpleTuner.

Para treinamento distribuido multi-node, este guia ajuda a ajustar as configuracoes dos guias INSTALL e Quickstart para multi-node, otimizando para datasets de imagens com bilhoes de samples.


Recursos

SimpleTuner oferece suporte de treinamento abrangente em varias arquiteturas de modelos de difusao com disponibilidade consistente de recursos:

Recursos centrais de treinamento

  • Web UI amigavel - Gerencie todo o ciclo de treinamento por um painel elegante
  • Treinamento multi-modal - Pipeline unificado para modelos generativos de Imagem, Video e Audio
  • Treinamento multi-GPU - Treino distribuido em varias GPUs com otimizacao automatica
  • Cache avancado - Embeddings de imagem, video, audio e legenda em disco para treino mais rapido
  • Aspect bucketing - Suporte a tamanhos e proporcoes variadas de imagem/video
  • Sliders de conceito - Targeting amigavel para sliders em LoRA/LyCORIS/full (via LyCORIS full) com amostragem positiva/negativa/neutra e forca por prompt; veja o guia Slider LoRA
  • Otimizacao de memoria - A maioria dos modelos treinaveis em GPU 24G, muitos em 16G com otimizacoes
  • Integracao DeepSpeed & FSDP2 - Treine modelos grandes em GPUs menores com sharding de otimizador/gradiente/parametros, atencao paralela por contexto, gradient checkpointing e offload do estado do otimizador
  • Treinamento em S3 - Treine direto do armazenamento cloud (Cloudflare R2, Wasabi S3)
  • Suporte a EMA - Pesos de media movel exponencial para melhorar estabilidade e qualidade
  • Trackers de experimento customizados - Coloque um accelerate.GeneralTracker em simpletuner/custom-trackers e use --report_to=custom-tracker --custom_tracker=<name>

Recursos multi-usuario e enterprise

SimpleTuner inclui uma plataforma completa de treinamento multi-usuario com recursos enterprise — gratis e open source, para sempre.

  • Orquestracao de workers - Registre workers GPU distribuidos que se conectam automaticamente a um painel central e recebem jobs via SSE; suporta workers efemeros (cloud) e persistentes (sempre ligados); veja o guia de orquestracao de workers
  • Integracao SSO - Autentique com LDAP/Active Directory ou provedores OIDC (Okta, Azure AD, Keycloak, Google); veja o guia de autenticacao externa
  • Controle de acesso por funcoes - Quatro funcoes padrao (Viewer, Researcher, Lead, Admin) com 17+ permissoes granulares; defina regras por glob para restringir configs, hardware ou provedores por time
  • Organizacoes e times - Estrutura hierarquica multi-tenant com quotas por teto; limites da org impõem maximos absolutos, limites de time operam dentro desses limites
  • Quotas e limites de gasto - Impoem tetos de custo (diario/mensal), limites de concorrencia e taxa de submissao por org/time/usuario; acoes incluem bloquear, alertar ou exigir aprovacao
  • Fila de jobs com prioridades - Cinco niveis (Low → Critical) com agendamento fair-share entre times, protecao contra starvation para jobs longos e override de prioridade por admin
  • Fluxos de aprovacao - Regras configuraveis disparam aprovacao para jobs acima de custos, novos usuarios ou pedidos de hardware; aprove via UI, API ou resposta por email
  • Notificacoes por email - Integracao SMTP/IMAP para status de job, solicitacoes de aprovacao, alertas de quota e conclusao
  • Chaves de API e permissoes com escopo - Gere chaves com expiracao e escopo limitado para pipelines CI/CD
  • Audit logging - Registre todas as acoes de usuario com verificacao de cadeia para compliance; veja o guia de auditoria

Para detalhes de deploy, veja o guia enterprise.

Suporte a arquitetura de modelos

Modelo Parametros PEFT LoRA Lycoris Full-Rank ControlNet Quantizacao Flow Matching Text Encoders
Stable Diffusion XL 3.5B int8/nf4 CLIP-L/G
Stable Diffusion 3 2B-8B ✓* int8/fp8/nf4 CLIP-L/G + T5-XXL
Flux.1 12B ✓* int8/fp8/nf4 CLIP-L + T5-XXL
Flux.2 32B ✓* int8/fp8/nf4 Mistral-3 Small
ACE-Step 3.5B ✓* int8 UMT5
HeartMuLa 3B ✓* int8 Nenhum
Chroma 1 8.9B ✓* int8/fp8/nf4 T5-XXL
Auraflow 6.8B ✓* int8/fp8/nf4 UMT5-XXL
PixArt Sigma 0.6B-0.9B int8 T5-XXL
Sana 0.6B-4.8B int8 Gemma2-2B
Lumina2 2B int8 Gemma2
Kwai Kolors 5B ChatGLM-6B
LTX Video 5B int8/fp8 T5-XXL
LTX Video 2 19B ✓* int8/fp8 Gemma3
Wan Video 1.3B-14B ✓* int8 UMT5
HiDream 17B (8.5B MoE) ✓* int8/fp8/nf4 CLIP-L + T5-XXL + Llama
Cosmos2 2B-14B int8 T5-XXL
OmniGen 3.8B int8/fp8 T5-XXL
Qwen Image 20B ✓* int8/nf4 (req.) T5-XXL
SD 1.x/2.x (Legacy) 0.9B int8/nf4 CLIP-L

✓ = Suportado, ✗ = Nao suportado, * = Requer DeepSpeed para treino full-rank

Tecnicas avancadas de treinamento

  • TREAD - Dropout token-wise para modelos transformer, incluindo treino Kontext
  • Masked loss training - Convergencia superior com orientacao de segmentacao/profundidade
  • Prior regularization - Estabilidade melhor para consistencia de personagens
  • Gradient checkpointing - Intervalos configuraveis para otimizacao de memoria/velocidade
  • Funcoes de loss - L2, Huber, Smooth L1 com suporte a scheduling
  • SNR weighting - Min-SNR gamma weighting para dinamica de treino melhor
  • Group offloading - Diffusers v0.33+ com staging de modulos em CPU/disco e streams CUDA opcionais
  • Varreduras de validation adapter - Anexe LoRAs temporariamente (single ou presets JSON) durante validacao para comparar renders sem tocar o loop de treino
  • External validation hooks - Troque o pipeline de validacao embutido ou passos pos-upload pelos seus scripts, rodando checks em outra GPU ou enviando artefatos para qualquer provedor cloud (detalhes)
  • Regularizacao CREPA - Alinhamento de representacao entre frames para video DiTs (guia)
  • Formatos de I/O LoRA - Load/save de LoRAs PEFT no layout Diffusers ou no estilo ComfyUI diffusion_model.* (Flux/Flux2/Lumina2/Z-Image detectam ComfyUI automaticamente)

Recursos especificos do modelo

  • Flux Kontext - Edicao de condicionamento e treino image-to-image para modelos Flux
  • PixArt two-stage - Suporte ao pipeline eDiff para PixArt Sigma
  • Flow matching models - Scheduling avancado com distribuicoes beta/uniform
  • HiDream MoE - Aumento de loss para gate Mixture of Experts
  • T5 masked training - Mais detalhes finos para Flux e modelos compativeis
  • QKV fusion - Otimizacoes de memoria e velocidade (Flux, Lumina2)
  • Integracao TREAD - Roteamento seletivo de tokens para a maioria dos modelos
  • Wan 2.x I2V - Presets de estagio alto/baixo + fallback time-embedding 2.1 (veja quickstart do Wan)
  • Classifier-free guidance - Reintroducao opcional de CFG para modelos destilados

Guias de inicio rapido

Guias detalhados estao disponiveis para todos os modelos suportados:


Requisitos de hardware

Requisitos gerais

  • NVIDIA: RTX 3080+ recomendado (testado ate H200)
  • AMD: 7900 XTX 24GB e MI300X verificados (uso de memoria maior vs NVIDIA)
  • Apple: M3 Max+ com 24GB+ de memoria unificada para treino LoRA

Diretrizes de memoria por tamanho de modelo

  • Modelos grandes (12B+): A100-80G para full-rank, 24G+ para LoRA/Lycoris
  • Modelos medios (2B-8B): 16G+ para LoRA, 40G+ para treino full-rank
  • Modelos pequenos (<2B): 12G+ suficiente para a maioria dos treinos

Nota: Quantizacao (int8/fp8/nf4) reduz significativamente requisitos de memoria. Veja os guias de inicio rapido para requisitos especificos.

Configuracao

SimpleTuner pode ser instalado via pip para a maioria dos usuarios:

# Instalacao base (PyTorch apenas CPU)
pip install simpletuner

# Usuarios CUDA (GPUs NVIDIA)
pip install 'simpletuner[cuda]'

# CUDA 13 / Blackwell (GPUs NVIDIA serie B)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130

# Usuarios ROCm (GPUs AMD)
pip install 'simpletuner[rocm]' --extra-index-url https://download.pytorch.org/whl/rocm7.1

# Usuarios Apple Silicon (M1/M2/M3/M4)
pip install 'simpletuner[apple]'

Para instalacao manual ou setup de desenvolvimento, veja a documentacao de instalacao.

Solucao de problemas

Ative logs de debug adicionando export SIMPLETUNER_LOG_LEVEL=DEBUG no seu ambiente (arquivo config/config.env).

Para analise de performance do loop de treino, definir SIMPLETUNER_TRAINING_LOOP_LOG_LEVEL=DEBUG tera timestamps que destacam problemas na configuracao.

Para uma lista completa de opcoes disponiveis, consulte esta documentacao.