Opcoes do script de treinamento SimpleTuner¶
Visao geral¶
Este guia fornece uma explicacao amigavel das opcoes de linha de comando disponiveis no script train.py do SimpleTuner. Essas opcoes oferecem alto grau de customizacao, permitindo treinar seu modelo conforme suas necessidades.
Opções do servidor Kubeflow para GPU única¶
A integração opcional com o Kubeflow delega a admissão de GPU ao Kueue e cria Workers de uso único por meio do Kubeflow Trainer. Instale com pip install 'simpletuner[kubernetes]' e execute o Servidor dentro do cluster:
simpletuner server --mode trainer --kubeflow \
--kubeflow-namespace training \
--kubeflow-runtime simpletuner-worker \
--kubeflow-queue gpu-training \
--kubeflow-worker-image registry.example.com/simpletuner:latest \
--kubeflow-orchestrator-url http://simpletuner-server.training.svc:8001
--kubeflow-poll-interval controla a reconciliação do TrainJob e tem padrão de cinco segundos. O administrador do cluster fornece o TrainingRuntime, a fila do Kueue, as permissões de ServiceAccount, a configuração de pull de imagem e o armazenamento compartilhado de modelos/dados.
Formato do arquivo de configuracao JSON¶
O nome esperado do arquivo JSON e config.json e os nomes das chaves sao os mesmos dos --argumentos abaixo. O prefixo -- nao e necessario no arquivo JSON, mas pode ser mantido.
Procurando exemplos prontos? Veja os presets selecionados em simpletuner/examples/README.md.
Script de configuracao facil (RECOMENDADO)¶
O comando simpletuner configure pode ser usado para configurar um arquivo config.json com valores padrao quase ideais.
Modificando configuracoes existentes¶
O comando configure aceita um unico argumento, um config.json compativel, permitindo modificacao interativa do setup de treinamento:
Onde foo e seu ambiente de config — ou use config/config.json se nao estiver usando ambientes.
⚠️ Para usuarios em paises onde o Hugging Face Hub nao esta facilmente acessivel, adicione
HF_ENDPOINT=https://hf-mirror.comao seu~/.bashrcou~/.zshrcconforme o$SHELLdo seu sistema.
🌟 Configuracao central do modelo¶
--model_type¶
- O que: Seleciona se sera criado uma LoRA ou fine-tune completo.
- Opcoes: lora, full.
- Padrao: lora
- Se lora for usado,
--lora_typedita se PEFT ou LyCORIS estao em uso. Alguns modelos (PixArt) funcionam apenas com adaptadores LyCORIS.
--model_family¶
- O que: Determina qual arquitetura de modelo sera treinada.
- Opcoes: pixart_sigma, flux, flux3_image, sd3, sdxl, kolors, legacy
--model_flavour¶
Seleciona uma variante de checkpoint dentro de --model_family. Para qwen_image, o padrão é v2.1 (Qwen/Qwen-Image-2.1). Defina explicitamente v1.0, v2.0 ou uma variante edit-* existente para treinar uma arquitetura anterior; adapters e caches de embeddings/latentes não são intercambiáveis com 2.1. Veja o guia do Qwen Image.
Use model_family: "flux3_image" para o transformador de imagens de 5,6B parâmetros. A variante padrão klein-base carrega black-forest-labs/flux-3-image-klein-base; klein carrega o modelo destilado black-forest-labs/flux-3-image-klein. Aceite o acesso ao repositório escolhido antes do download. Consulte a licença FLUX [Kom]munity.
Para moss_image, a variante padrão sft carrega OpenMOSS-Team/MOSS-Image-SFT. Use model_flavour: "base" para OpenMOSS-Team/MOSS-Image-Base. Os exemplos treinam com área equivalente a 512×512. Veja o guia MOSS-Image.
Escolha model_flavour: "sft-edit" ou "base-edit" para treinar com imagens de referência. Essas variantes partem do checkpoint SFT ou Base correspondente e aprendem o condicionamento por referência por meio do adaptador. Comece com simpletuner/examples/moss_image/sft-edit/default/peft-lora ou moss_image/base-edit/default/peft-lora; ambos usam um alvo por lote, treinamento na escala 512, REPA e validação pelo conjunto de dados.
--lora_format¶
- O que: Seleciona o formato de chaves do checkpoint LoRA para load/save.
- Opcoes:
diffusers(padrao),comfyui - Notas:
diffuserse o layout padrao PEFT/Diffusers.comfyuiconverte para/de chaves estilo ComfyUI (diffusion_model.*com tensoreslora_A/lora_Be.alpha). Flux, Flux2, Lumina2 e Z-Image auto-detectam entradas ComfyUI mesmo se isso ficar emdiffusers, mas definacomfyuipara forcar saida ComfyUI ao salvar.
--minimax_music_train_component¶
- O quê: Seleciona qual componente do MiniMax Music 3 recebe o treinamento.
- Opções:
transformer(padrão),language_model - Notas:
transformertreina o DiT musical de flow matching sobre latentes Flow-VAE em cache (o caminho padrão).language_modeltreina o estágio autorregressivo Qwen3 com entropia cruzada de próximo token sobre códigos semânticos RVQ. Paradataset_type=audio, o SimpleTuner codifica as ondas brutas pelo DAV do MiniMax Music e pelo codificador RVQ v4 padrão durante o cache VAE. Os datasets ainda podem fornecer tokens de áudio brutos por codebook pré-computados (audio_tokensouaudio_tokens_path, com formato[frames, codebooks]) junto comprompt(outags) elyrics. Apenas LoRA PEFT padrão é suportado,--lora_format comfyuié rejeitado e o áudio de validação no treinador fica desabilitado — renderize a partir dos checkpoints salvos.
--minimax_music_lm_max_frames¶
- O quê: Para
--minimax_music_train_component=language_model, limita janelasprefixerandomisoladas em frames de áudio de 25Hz. - Padrão:
0(treinar com faixas completas) - Notas:
- Um frame são 40ms; 7500 frames são cinco minutos.
continuationusa suas próprias configurações de frames-alvo e duração descritas abaixo.- Amostras truncadas não recebem alvo de fim de áudio, então o modelo não aprende a parar cedo demais.
--minimax_music_lm_window_mode¶
- O quê: Escolhe como a sequência de treinamento do modelo de linguagem é construída.
- Opções:
prefix(padrão),random,continuation - Notas:
prefixusa o início da faixa. Isso mantém letras completas mais plausíveis, mas limites curtos ensinam principalmente introduções.randomamostra uma janela RVQ contígua durante o collate, adiciona texto de início/fim/duração ao prompt e omite letras completas em janelas cortadas, a menos que a amostra forneçalyrics_window.continuationamostra um trecho visível limitado e aplica perda apenas aos frames-alvo finais.randomisolado exige--minimax_music_lm_max_framespositivo;continuationnão usa essa opção.
--minimax_music_lm_target_frames¶
- O quê: Em
continuation, define quantos frames finais de 25Hz recebem perda de próximo token. - Padrão:
128(um segmento RVQ nativo, 5,12 segundos) - Notas: Frames visíveis anteriores permanecem como contexto causal e são mascarados da entropia cruzada.
--minimax_music_lm_continuation_crop_mode¶
- O quê: Escolhe onde começa o trecho visível de
continuation. - Opções:
full(padrão),random - Notas:
fullsempre começa no frame zero da música e amostra um fim entre os limites de duração.randompode omitir o início, mas mantém pelo menos um segmento nativo de 128 frames antes do alvo e adiciona a posição ao prompt.- Trechos posicionados omitem letras completas salvo se houver
lyrics_window. Faixas muito curtas usam um prefixo completo.
--minimax_music_lm_min_duration_seconds¶
- O quê: Duração mínima visível pelo modelo em
continuation. - Padrão:
5.12 - Notas: Arredondada para cima em intervalos nativos de 128 frames (5,12 segundos). Trechos
randompodem ser maiores para reservar contexto.
--minimax_music_lm_max_duration_seconds¶
- O quê: Limita a duração visível em
continuationsem alterar a faixa RVQ em cache. - Padrão:
0(usar o tamanho disponível) - Notas:
- Limites positivos são arredondados para baixo em intervalos de 128 frames.
- Em
random, o limite deve comportar o alvo e pelo menos um segmento de contexto. - O alvo de fim de áudio só é adicionado quando o trecho chega ao fim real da faixa.
- Quando trechos terminais e não terminais são possíveis, 25% das amostras de continuation selecionam explicitamente o fim real. Os outros 75% permanecem uniformes entre finais ou offsets não terminais válidos, evitando que a supervisão EOS diminua em faixas longas.
--minimax_music_rvq_encoder_model_name_or_path¶
- O quê: Apenas para treinamento
language_modeldo MiniMax Music: repositório Hub ou diretório local com o codificador RVQ que converte latentes DAV em cache em códigos de áudio por codebook. - Padrão:
SimpleTuner/open-rvq-encoder-minimax-music3-169m-v4 - Relacionado:
--minimax_music_rvq_encoder_subfolderusafinalpor padrão;--minimax_music_rvq_encoder_revisionpode fixar uma revisão do Hub. - Notas: O pacote padrão inclui
rvq_encoder_config.json,rvq_encoder.safetensorse metadados muP de formas base. Altere apenas ao usar um codificador RVQ compatível treinado para os codebooks do MiniMax Music 3.
--minimax_music_rvq_encoder_subfolder¶
- O quê: Subpasta dentro do repositório ou diretório local do codificador RVQ.
- Padrão:
final - Notas: A pasta selecionada deve conter
rvq_encoder_config.json,rvq_encoder.safetensorse qualquer metadado muP de formas base necessário.
--minimax_music_rvq_encoder_revision¶
- O quê: Revisão Hub opcional para
--minimax_music_rvq_encoder_model_name_or_path. - Padrão: não definido; o valor principal de
--revisioné usado quando fornecido. - Notas: Use quando o codificador RVQ precisar ser fixado separadamente do checkpoint base do MiniMax Music 3.
--minimax_music_rvq_vae_model_name_or_path¶
- O quê: Apenas para treinamento
language_modeldo MiniMax Music: repositório, diretório local ou arquivodav.pthdo DAV/audio VAE usado antes do codificador RVQ durante o cache VAE. - Padrão: não definido;
--pretrained_vae_model_name_or_pathé usado primeiro, depoisSimpleTuner/MiniMax-Music-3-Encoder. - Notas: Esta é a etapa que converte waveform em latentes DAV. Depois, o codificador RVQ converte esses latentes DAV no tensor de códigos que o LM global aprende a prever.
--minimax_music_lm_adapter¶
- O quê: Caminho para um LoRA do modelo de linguagem (
pytorch_lora_weights.safetensorscom chaves prefixadaslanguage_model., produzido por--minimax_music_train_component=language_model) aplicado ao planejador Qwen3 durante o pré-cache do condicionamento do DiT. - Relacionado:
--minimax_music_lm_adapter_strength(padrão1.0) escala o delta do adaptador. - Notas: Use um diretório de cache de text-embeds novo ao trocar o adaptador ou a força; o cache não é invalidado automaticamente.
--minimax_music_lm_precache_mode¶
- O quê: Como o planejador Qwen3 produz o condicionamento em cache para o treinamento do DiT.
- Opções:
text-only(padrão),audio-only,audio+text - Notas:
text-onlyamostra um rollout autorregressivo a partir do caption e da letra (comportamento original). Os estados ocultos descrevem a faixa imaginada pelo planejador, não o áudio de treinamento.audio-onlyforça os códigos RVQ reais da amostra (metadadoaudio_tokens_path, índices brutos por codebook) através do planejador sem prefixo de texto;audio+textantepõe o caption e a letra. Ambos alinham os estados ocultos por frame um a um com os latentes DAV e truncam os códigos à janela de áudio coberta pelo cache do VAE.- Use um diretório de cache de text-embeds novo ao trocar de modo.
--minimax_h3_target_mode¶
- O que: Controla se MiniMax-H3 inclui linhas de audio alvo.
- Opcoes:
auto,video,av - Padrao:
auto - Notas:
autoresolve paraavquando dados de áudio habilitados são detectados e paravideocaso contrário. A validação usa o mesmo padrão detectado nos dados.- Defina
minimax_h3_target_modeouh3_target_modecomoavem uma entrada de data backend para ativar treino conjunto audio-video em um backend de audio auto-split ou explicito.
--minimax_h3_sparse_attention¶
- O que: Ativa atencao sparse 3D experimental, aware de treinamento, para tokens de video alvo do MiniMax-H3.
- Opcoes:
disabled,moba3d - Padrao:
disabled - Opcoes relacionadas:
minimax_h3_sparse_block_shape: dimensoes(T,H,W)separadas por virgula ouxcujo produto e 128. Padrao:1,8,16.minimax_h3_sparse_video_kv_fraction: fracao dos blocos KV de video alvo selecionada por bloco query de video alvo. Padrao:0.5.minimax_h3_sparse_share_heads: compartilha rotas entre attention heads. Padrao:false.minimax_h3_sparse_start_layer: mantem camadas anteriores em atencao densa. Padrao:0.- Notas:
- Texto, audio, contexto de referencia e queries que nao sao alvo continuam densos.
- Requer CUDA FlexAttention. Ulysses context parallelism e suportado com
context_parallel_strategy=alltoall; ring context parallelism e TREAD sao incompativeis. - A MiniMax nao publicou a configuracao exata de sparse routing do H3. Esta aproximacao e para experimentos controlados de fine-tuning e nao garante ganho de performance.
--fuse_qkv_projections¶
- O que: Faz fusao das projecoes QKV nos blocos de atencao do modelo para usar hardware de forma mais eficiente.
- Nota: Disponivel apenas com NVIDIA H100 ou H200 com Flash Attention 3 instalado manualmente.
--offload_during_startup¶
- O que: Faz offload dos pesos do text encoder para CPU enquanto o cache de VAE esta sendo criado.
- Por que: Isso e util para modelos grandes como HiDream e Wan 2.1, que podem dar OOM ao carregar o cache de VAE. Essa opcao nao afeta a qualidade do treinamento, mas para text encoders muito grandes ou CPUs lentas pode aumentar bastante o tempo de inicializacao com muitos datasets. Por isso, fica desabilitada por padrao.
--offload_during_save¶
- O que: Move temporariamente todo o pipeline para a CPU enquanto
save_hooks.pyprepara checkpoints para que pesos FP8/quantizados sejam gravados fora do device. - Por que: Salvar pesos fp8-quanto pode estourar o uso de VRAM (por exemplo, durante a serializacao de
state_dict()). Esta opcao mantem o modelo no acelerador durante o treino, mas faz offload breve quando um save e disparado para evitar OOM CUDA. - Dica: Habilite apenas quando o salvamento falhar por OOM; o loader move o modelo de volta e o treinamento continua sem interrupcao.
--delete_model_after_load¶
- O que: Deleta arquivos do modelo do cache HuggingFace apos serem carregados na memoria.
- Por que: Reduz uso de disco em setups com orcamento que cobram por GB usado. Depois que os modelos sao carregados na VRAM/RAM, o cache em disco nao e mais necessario ate a proxima execucao. Isso troca storage por banda de rede em execucoes futuras.
- Notas:
- O VAE nao e deletado se a validacao estiver habilitada, pois e necessario para gerar imagens de validacao.
- Text encoders sao deletados apos o data backend factory completar o startup (apos o cache de embeddings).
- Modelos Transformer/UNet sao deletados imediatamente apos o load.
- Em setups multi-node, apenas local-rank 0 em cada node executa a delecao. Falhas sao ignoradas silenciosamente para lidar com race conditions em storage compartilhado.
- Isso nao afeta checkpoints salvos — apenas o cache do modelo base pre-treinado.
--text_embed_full_cache¶
- O que: Armazena a saída raw completa do text encoder no cache de text embeds.
- Padrão:
False - Por que: O padrão permite layouts de cache compactos específicos do modelo. Por exemplo, o Ideogram 4 projeta sua pilha Qwen de 13 camadas pelas camadas congeladas
llm_cond_normellm_cond_projdo transformer antes de gravar os arquivos de cache; essas camadas ficam congeladas tanto em LoRA quanto em treinamento full do transformer. - Quando usar: Ative para depurar compatibilidade de cache, quando precisar explicitamente de features raw e não projetadas do text encoder, ou ao adaptar uma arquitetura estilo Ideogram para treinamento do zero em que a projeção de texto não seja um componente pretreinado fixo.
--text_cache_ondemand¶
- O que: Ignora a pré-computação completa do cache de texto e codifica embeddings de prompt ausentes quando o treinamento ou a validação os solicita.
- Padrão:
False - Comportamento: Entradas existentes continuam sendo lidas e ausências recém-codificadas são gravadas. Os text encoders permanecem carregados porque são necessários após o startup.
- Configuração do dataloader: Um backend
text_embedspode ativar isso independentemente com"text_cache_ondemand": true.
--cosmos3_reasoner_component¶
- O que: Repo Hugging Face ou caminho local para o componente reasoner congelado do Cosmos3.
- Padrão:
auto - Uso: O cache de texto do Cosmos3 usa este componente para gravar entradas K/V por camada do reasoner.
- Opções automáticas:
SimpleTuner/cosmos3-component-reasoning-layers-bf16-edge,SimpleTuner/cosmos3-component-reasoning-layers-bf16-nano,SimpleTuner/cosmos3-component-reasoning-layers-bf16-super,SimpleTuner/cosmos3-component-reasoning-layers-bf16-super-i2v,SimpleTuner/cosmos3-component-reasoning-layers-bf16-super-t2i. - Nota: Cosmos3 força cache de texto sob demanda porque as chaves do cache do reasoner incluem geometria da amostra.
--cosmos3_generator_component¶
- O que: Repo Hugging Face ou caminho local para o componente transformer apenas de geração do Cosmos3.
- Padrão:
auto - Uso:
autoseleciona o componente Edge, Nano, Super, Super-I2V ou Super-T2I correspondente. - Opções automáticas:
SimpleTuner/cosmos3-component-generation-layers-bf16-edge,SimpleTuner/cosmos3-component-generation-layers-bf16-nano,SimpleTuner/cosmos3-component-generation-layers-bf16-super,SimpleTuner/cosmos3-component-generation-layers-bf16-super-i2v,SimpleTuner/cosmos3-component-generation-layers-bf16-super-t2i. - Nota: O componente omite os pesos do reasoner dentro do transformer e requer entradas K/V do reasoner.
--text_cache_disable¶
- O que: Desativa gravações em todos os caches de text embeddings, mantendo a leitura de entradas existentes.
- Padrão:
False - Comportamento: Implica
--text_cache_ondemand; embeddings ausentes são codificados quando solicitados, mas não são armazenados. - Configuração do dataloader: Quando a opção global estiver falsa, backends
text_embedsindividuais podem ativar isso com"text_cache_disable": true.
--trust_remote_code¶
- O que: Permite que Transformers e tokenizers executem codigo Python personalizado do repositorio do modelo quando o checkpoint depende de classes customizadas upstream.
- Padrao:
False - Por que: Necessario para checkpoints ACE-Step v1.5, que trazem codigo personalizado de
AutoModele tokenizer no repositorio upstream. - Aviso: Ative isso apenas para repositorios de modelo em que voce confia.
--diffusion_blocks_config¶
- O que: Objeto JSON ou caminho de arquivo JSON que ativa treino block-wise de diffusion Transformer.
- Chave obrigatoria:
layers_per_blockdefine o maximo de camadas consecutivas do denoiser por faixa de ruido. - Chaves opcionais:
overlap(padrao0.05),blocks_to_train,block_pathsetimestep_boundaries. - Comportamento: Amostra um bloco de ruido por batch, executa somente seu grupo e ativa deteccao de parametros nao usados no DDP.
- Limites: Apenas denoisers Transformer. Veja DiffusionBlocks.
--musubi_blocks_to_swap¶
- O que: Musubi block swap para LongCat-Video, Wan, LTXVideo, Kandinsky5-Video, Qwen-Image, Flux, Flux.2, zlab i1, Cosmos2Image, HunyuanVideo e Krea 2 — mantem os ultimos N blocos transformer na CPU e faz streaming de pesos por bloco durante o forward.
- Padrao:
0(desabilitado) - Notas: Offload de pesos estilo Musubi; reduz VRAM com custo de throughput e e ignorado quando gradientes estao habilitados.
--musubi_block_swap_device¶
- O que: String de dispositivo para armazenar blocos transformer trocados (ex.:
cpu,cuda:0). - Padrao:
cpu - Notas: Usado apenas quando
--musubi_blocks_to_swap> 0.
--ramtorch¶
- O que: Substitui camadas
nn.Linearpor implementacoes RamTorch com streaming de CPU. - Por que: Compartilha pesos Linear na memoria da CPU e faz streaming para o acelerador para reduzir pressao de VRAM.
- Notas:
- Requer CUDA ou ROCm (nao suportado no Apple/MPS).
- Habilita automaticamente
--set_grads_to_none.
--ramtorch_target_modules¶
- O que: Padroes glob separados por virgula limitando quais modulos Linear sao convertidos para RamTorch.
- Padrao: Todas as camadas Linear sao convertidas quando nenhum padrao e fornecido.
- Notas:
- Casa nomes de modulo totalmente qualificados ou nomes de classe usando sintaxe glob
fnmatch. - Os padroes devem incluir um wildcard
.*no final para corresponder as camadas dentro de um bloco. Por exemplo,transformer_blocks.0.*corresponde a todas as camadas dentro do bloco 0, enquantotransformer_blocks.*corresponde a todos os blocos transformer. Um nome simples comotransformer_blocks.0sem.*tambem funciona (e expandido automaticamente), mas a forma explicita com wildcard e recomendada para clareza. - Exemplo:
"transformer_blocks.*,single_transformer_blocks.0.*,single_transformer_blocks.1.*"
--ramtorch_text_encoder¶
- O que: Aplica substituicoes RamTorch a todas as camadas Linear do text encoder.
- Padrao:
False
--ramtorch_vae¶
- O que: Conversao RamTorch experimental apenas para as camadas Linear do mid-block do VAE.
- Padrao:
False - Notas: Blocos conv de up/down do VAE ficam inalterados.
--ramtorch_controlnet¶
- O que: Aplica substituicoes RamTorch a camadas Linear do ControlNet ao treinar um ControlNet.
- Padrao:
False
--ramtorch_transformer_percent¶
- O que: Porcentagem (0-100) de camadas Linear do transformer a serem descarregadas com RamTorch.
- Padrao:
100(todas as camadas elegiveis) - Por que: Permite descarregamento parcial para equilibrar economia de VRAM com desempenho. Valores mais baixos mantem mais camadas na GPU para treinamento mais rapido, enquanto ainda reduz o uso de memoria.
- Notas: As camadas sao selecionadas desde o inicio da ordem de travessia do modulo. Pode ser combinado com
--ramtorch_target_modules.
--ramtorch_text_encoder_percent¶
- O que: Porcentagem (0-100) de camadas Linear do codificador de texto a serem descarregadas com RamTorch.
- Padrao:
100(todas as camadas elegiveis) - Por que: Permite descarregamento parcial de codificadores de texto quando
--ramtorch_text_encoderesta habilitado. - Notas: Aplica-se apenas quando
--ramtorch_text_encoderesta habilitado.
--ramtorch_disable_sync_hooks¶
- O que: Desativa os hooks de sincronizacao CUDA adicionados apos as camadas RamTorch.
- Padrao:
False(hooks de sincronizacao habilitados) - Por que: Os hooks de sincronizacao corrigem condicoes de corrida no sistema de buffering ping-pong do RamTorch que podem causar saidas nao deterministicas. Desativar pode melhorar o desempenho, mas arrisca resultados incorretos.
- Notas: Desative apenas se tiver problemas com os hooks de sincronizacao ou quiser testar sem eles.
--ramtorch_disable_extensions¶
- O que: Aplica RamTorch apenas a camadas Linear, pula Embedding/RMSNorm/LayerNorm/Conv.
- Padrao:
True(extensoes desabilitadas) - Por que: O SimpleTuner estende o RamTorch alem das camadas Linear para incluir camadas Embedding, RMSNorm, LayerNorm e Conv. Use isso para desativar essas extensoes e descarregar apenas camadas Linear.
- Notas: Pode reduzir a economia de VRAM, mas pode ajudar a depurar problemas com os tipos de camadas estendidas.
--pretrained_model_name_or_path¶
- O que: Caminho para o modelo pre-treinado ou seu identificador em https://huggingface.co/models.
- Por que: Para especificar o modelo base a partir do qual iniciar o treino. Use
--revisione--variantpara especificar versoes especificas de um repositorio. Isso tambem suporta caminhos.safetensorsde arquivo unico para SDXL, Flux e SD3.x.
--pretrained_transformer_model_name_or_path¶
- O que: Caminho opcional para pesos transformer pre-treinados ou seu identificador em https://huggingface.co/models.
- Padrao:
None(para loaders que suportam esta sobrescrita, a origem do transformer continua ligada a--pretrained_model_name_or_path) - Por que: Use quando o componente transformer estiver em um repositorio, pasta local ou checkpoint separado do pacote do modelo base.
- Notas: Combine com
--pretrained_transformer_subfolderquando os pesos transformer estiverem em uma subpasta desse caminho.
--pretrained_t5_model_name_or_path¶
- O que: Caminho para o modelo T5 pre-treinado ou seu identificador em https://huggingface.co/models.
- Por que: Ao treinar PixArt, voce pode querer usar uma fonte especifica para seus pesos T5 para evitar baixar varias vezes ao trocar o modelo base de treinamento.
--pretrained_gemma_model_name_or_path¶
- O que: Caminho para o modelo Gemma pre-treinado ou seu identificador em https://huggingface.co/models.
- Por que: Ao treinar modelos baseados em Gemma (por exemplo LTX-2, Sana ou Lumina2), voce pode apontar para um checkpoint Gemma compartilhado sem mudar o caminho do modelo base de difusao.
--qwen_text_encoder_model_name_or_path¶
- O que: Caminho para um encoder de texto Qwen pre-treinado ou seu identificador em https://huggingface.co/models.
- Padrao:
None(usa a origem do encoder de texto Qwen definida pelo modelo selecionado). - Por que: Use para compartilhar ou substituir o encoder de texto Qwen em familias de modelos baseadas em Qwen sem editar o cache do Hugging Face.
- Notas: Aplica-se a familias de modelos com um unico encoder de texto Qwen. Se uma familia definir varios encoders Qwen, a opcao e ignorada e o SimpleTuner registra um aviso.
--max_grounding_entities¶
- Numero maximo de entidades de grounding por imagem para anotacoes espaciais no estilo GLIGEN. Padrao: 0 (desabilitado). Valores tipicos: 4-16.
--pretrained_grounding_model_name_or_path¶
- Modelo pre-treinado opcional para extracao de features de imagem por entidade. Padrao: None.
--custom_text_encoder_intermediary_layers¶
- O que: Sobrescreve quais camadas de estado oculto extrair do encoder de texto para modelos FLUX.2.
- Formato: Array JSON de indices de camadas, ex:
[10, 20, 30] - Padrao: Valores padrao especificos do modelo sao usados quando nao definido:
- FLUX.2-dev (Mistral-3):
[10, 20, 30] - FLUX.2-klein (Qwen3):
[9, 18, 27] - Por que: Permite experimentacao com diferentes combinacoes de estados ocultos do encoder de texto para alinhamento personalizado ou propositos de pesquisa.
- Nota: Esta opcao e experimental e aplica-se apenas a modelos FLUX.2. Alterar indices de camadas invalidara embeddings de texto em cache e requer regeneracao. O numero de camadas deve corresponder a entrada esperada pelo modelo (3 camadas).
--gradient_checkpointing¶
- O que: Durante o treinamento, os gradientes serao calculados por camada e acumulados para economizar VRAM de pico, ao custo de treinos mais lentos.
--gradient_checkpointing_interval¶
- O que: Intervalo dependente do modelo para checkpointing de blocos transformer. Um valor 1 e basicamente o mesmo que deixar
--gradient_checkpointinghabilitado. - Nota: Flux, Flux.2, Flux.3 Image Klein, Krea 2, LTXVideo2, MageFlow, Qwen Image 2.1, Z-Image e Wan usam chunks contiguos de n blocos nos caminhos whole-block. Outras familias que expoem esta opcao podem continuar usando o comportamento antigo de "checkpoint a cada n blocos". Grupos contíguos maiores salvam menos estados de fronteira, mas ainda recalculam os blocos com checkpoint. Meça a relação entre velocidade e pico de memória; veja Segmented Checkpointing.
--gradient_checkpointing_segment_stride¶
- O que: Inicia um segmento com checkpoint a cada n blocos nos caminhos segmented whole-block suportados.
- Exemplo: Com
--gradient_checkpointing_interval=2e--gradient_checkpointing_segment_stride=4, o SimpleTuner faz checkpoint de dois blocos, executa os dois blocos seguintes normalmente e repete. - Nota: So tem efeito em familias de modelos que expoem suporte segmented whole-block na versao instalada do SimpleTuner. Familias nao suportadas registram um aviso e ignoram o valor. O stride deve ser pelo menos igual ao interval. Veja Segmented Checkpointing.
--gradient_checkpointing_backend¶
- Opcoes:
torch,torch-ffn,unsloth,unsloth-ffn - O que: Seleciona implementacao e escopo para gradient checkpointing.
torch(padrao): checkpoint do bloco completo compatível e recompute no backward.torch-ffn: checkpoint só do lado feed-forward em modelos com fronteira FFN limpa.unsloth: checkpoint do bloco completo compatível e offload dos tensores salvos para CPU.unsloth-ffn: checkpoint só do lado feed-forward e offload dos tensores salvos para CPU.- Nota: So funciona quando
--gradient_checkpointingesta habilitado. As variantesunslothrequerem CUDA. As variantes FFN-only atualmente suportam Chroma, Flux, Krea 2, LTXVideo2, MageFlow, Wan e Z-Image, e falham explicitamente quando o modelo nao expoe esse escopo. Veja Unsloth-style checkpointing para tradeoffs medidos.
--gradient_checkpointing_offload_attention¶
- O que: Faz offload para CPU das activations salvas do lado attention em modelos com fronteira attention/FFN limpa.
- Por que: Quando transferencia e mais barata que recomputar attention, reduz VRAM sem pagar todo o custo de rematerializar attention.
- Nota: Pode ser ativado sozinho. Tambem pode ser combinado com qualquer checkpoint backend que o modelo suportar. So tem efeito em familias de modelos que expoem uma fronteira attention/FFN limpa na versao instalada do SimpleTuner; familias nao suportadas falham explicitamente.
--gradient_checkpointing_offload_pin_memory_max_buckets¶
- Padrao:
12 - O que: Numero maximo de buckets distintos de tensores CPU pinned usados por activation offload.
- Por que: Pinned memory melhora transferencias CPU/GPU, mas resolucoes e comprimentos de texto variaveis podem criar shapes raros. Ao atingir esse limite, novos bucket shapes usam memoria CPU normal.
- Nota: Use
0para desativar o pooling de pinned memory para activation offload.
--gradient_checkpointing_offload_prefetch¶
- Padrao:
false - O que: Aprende a ordem de restore no backward para activations offloaded e prefetch o provavel proximo tensor para a GPU.
- Por que: Restore H2D just-in-time quase nao consegue overlap. Com ordem estavel, prefetch pode esconder parte da transferencia atras do backward compute.
- Nota: Experimental e ativo apenas com
--gradient_checkpointing_offload_attention.
--refiner_training¶
- O que: Habilita treinamento de uma serie de modelos mixture-of-experts customizada. Veja Mixture-of-Experts para mais informacoes sobre essas opcoes.
Precisao¶
--quantize_via¶
- Opcoes:
cpu,accelerator,pipeline - Em
accelerator, pode funcionar um pouco mais rapido com risco de OOM em placas 24G para modelos grandes como Flux. - Em
cpu, a quantizacao leva cerca de 30 segundos. (Padrao) pipelinedelega a quantizacao para o Diffusers usando--quantization_configou presets compatíveis com pipeline (ex.:nf4-bnb,int8-torchao,fp8-torchao,int8-quantoou checkpoints.gguf).
--base_model_precision¶
- O que: Reduz a precisao do modelo e treina com menos memoria. Existem tres backends de quantizacao suportados: BitsAndBytes (pipeline), TorchAO (pipeline ou manual) e Optimum Quanto (pipeline ou manual).
Presets de pipeline Diffusers¶
nf4-bnbcarrega via Diffusers com config BitsAndBytes NF4 4-bit (apenas CUDA). Requerbitsandbytese um build do diffusers com suporte BnB.int4-torchao,int8-torchao,fp8-torchaoefp8wo-torchaousam TorchAoConfig via Diffusers (CUDA). Requertorchaoe diffusers/transformers recentes.int8-quanto,int4-quanto,int2-quanto,fp8-quantoefp8uz-quantousam QuantoConfig via Diffusers. O diffusers mapeia FP8-NUZ para pesos float8; use quantizacao manual do quanto se precisar da variante NUZ.- Checkpoints
.ggufsao auto-detectados e carregados comGGUFQuantizationConfigquando disponivel. Instale diffusers/transformers recentes para suporte GGUF.
Optimum Quanto¶
Fornecido pela Hugging Face, o optimum-quanto tem suporte robusto em todas as plataformas.
int8-quantoe o mais compativel e provavelmente produz os melhores resultados- treinamento mais rapido em RTX4090 e provavelmente outras GPUs
- usa matmul acelerado por hardware em CUDA para int8/int4
- int4 ainda e bem lento
- funciona com
TRAINING_DYNAMO_BACKEND=inductor(torch.compile()) fp8uz-quantoe uma variante fp8 experimental para dispositivos CUDA e ROCm.- melhor suportado em silicio AMD como Instinct ou arquiteturas mais novas
- pode ser um pouco mais rapido que
int8-quantoem uma 4090 para treino, mas nao para inferencia (1 segundo mais lento) - funciona com
TRAINING_DYNAMO_BACKEND=inductor(torch.compile()) fp8-quantonao usa (por enquanto) matmul fp8 e nao funciona em Apple.- nao ha matmul fp8 por hardware em CUDA ou ROCm, entao pode ser visivelmente mais lento que int8
- usa kernel MARLIN para GEMM fp8
- incompatível com dynamo; desabilita automaticamente se a combinacao for tentada.
TorchAO¶
Uma biblioteca mais nova do Pytorch; AO permite substituir linears e convolucoes 2D (ex.: modelos tipo UNet) por equivalentes quantizados.
int8-torchaoreduz o consumo de memoria ao mesmo nivel das precisões do Quanto- no momento, roda um pouco mais lento (11s/iter) do que o Quanto (9s/iter) no Apple MPS
- sem
torch.compile, mesma velocidade e uso de memoria queint8-quantoem CUDA, perfil desconhecido em ROCm - com
torch.compile, mais lento queint8-quanto fp8-nativeandfp8-torchaoexigem aceleradores Ada Lovelace (RTX 40/L40S), Hopper (H100/H200) ou mais novos com suporte a FP8 scaled matmulfp8-transformerenginetroca camadas Linear elegiveis por modulos FP8 do TransformerEngine e envolve o forward do modelo com TE FP8 autocast. Instale compip install 'simpletuner[transformerengine]'; este preset e voltado para aceleradores CUDA Ada Lovelace, Hopper ou mais novos.
Otimizadores¶
O TorchAO inclui otimizadores 4bit e 8bit amplamente disponiveis: ao-adamw8bit, ao-adamw4bit
Tambem fornece dois otimizadores voltados para usuarios Hopper (H100 ou superior): ao-adamfp8 e ao-adamwfp8
SDNQ (SD.Next Quantization Engine)¶
SDNQ e uma biblioteca de quantizacao otimizada para treinamento que funciona em todas as plataformas: AMD (ROCm), Apple (MPS) e NVIDIA (CUDA). Ela fornece treinamento quantizado com arredondamento estocastico e estados de otimizador quantizados para eficiencia de memoria.
Niveis de precisao recomendados¶
Para fine-tuning completo (pesos do modelo sao atualizados):
- uint8-sdnq - Melhor equilibrio entre economia de memoria e qualidade
- uint16-sdnq - Maior precisao para qualidade maxima (ex.: Stable Cascade)
- int16-sdnq - Alternativa 16-bit com sinal
- fp16-sdnq - FP16 quantizado, maxima precisao com beneficios SDNQ
- fp8-sdnq - Pesos FP8 com matmul FP8 nativo do SDNQ, indicado para aceleradores H100/H200
Para treinamento LoRA (pesos base congelados):
- int8-sdnq - 8-bit com sinal, boa escolha geral
- int6-sdnq, int5-sdnq - Menor precisao, menos memoria
- uint5-sdnq, uint4-sdnq, uint3-sdnq, uint2-sdnq - Compressao agressiva
Nota: int7-sdnq esta disponivel mas nao e recomendado (lento e pouco menor que int8).
Importante: Abaixo de 5-bit, o SDNQ habilita automaticamente SVD (Singular Value Decomposition) com 8 passos para manter qualidade. SVD leva mais tempo para quantizar e nao e deterministico, por isso Disty0 fornece modelos SVD pre-quantizados no HuggingFace. SVD adiciona overhead de compute durante o treinamento, entao evite para fine-tuning completo onde pesos sao atualizados ativamente.
Recursos principais: - Multi-plataforma: funciona igual em AMD, Apple e NVIDIA - Otimizado para treinamento: usa arredondamento estocastico para reduzir acumulacao de erro de quantizacao - Eficiente em memoria: suporta buffers de estado do otimizador quantizados - Matmul desacoplado: precisao de peso e precisao de matmul sao independentes (INT8/FP8/FP16 disponivel)
Opcoes SDNQ Native Matmul¶
--sdnq_weights_dtype- Sobrescreve o dtype de armazenamento SDNQ, por exemplofloat8_e4m3fn,int8ouuint4.--sdnq_quantized_matmul_dtype- Dtype de matmul:auto,int8,float8_e4m3fn,fp8,float16oufp16.--sdnq_group_size- Tamanho do grupo de quantizacao. Use-1para matmul estatico de tensor inteiro;fp8-sdnqusa-1por padrao.--sdnq_use_quantized_matmul- Ativa ou desativa o matmul quantizado do SDNQ. Se nao definido,fp8-sdnqusa matmul FP8 nativo somente quando o modo compile do SDNQ e o suporte a matmul FP8 estao disponiveis; outros presets seguem a disponibilidade de compile do SDNQ.--sdnq_compile_mode-auto,compileoueager. Controla o uso interno detorch.compilepelo SDNQ. Atualmente, o SDNQ requer modo compile para matmul quantizado; modo eager usa matmul dequantizado.--sdnq_use_static_quantization,--sdnq_use_stochastic_rounding,--sdnq_dequantize_fp32- Sobrescrevem defaults de quantizacao de treinamento SDNQ.--sdnq_use_svd,--sdnq_svd_rank,--sdnq_svd_steps- Configuram SVDQuant para presets SDNQ de baixo bit.--sdnq_use_hadamard,--sdnq_hadamard_group_size- Ativam e configuram a rotacao Hadamard do SDNQ.--sdnq_modules_to_not_convert,--sdnq_modules_to_not_use_matmul- Padroes de modulos como array JSON, arquivo ou lista separada por virgulas.--sdnq_modules_dtype_dict,--sdnq_modules_quant_config- Objetos JSON ou arquivos para overrides por modulo.
Otimizadores SDNQ¶
O SDNQ inclui otimizadores com buffers de estado quantizados opcionais para economia adicional de memoria:
sdnq-adamw- AdamW com buffers de estado quantizados (uint8, group_size=32)sdnq-adamw+no_quant- AdamW sem estados quantizados (para comparacao)sdnq-adafactor- Adafactor com buffers quantizadossdnq-came- CAME com buffers quantizadossdnq-lion- Lion com buffers quantizadossdnq-muon- Muon com buffers quantizadossdnq-muon+quantized_matmul- Muon com matmul INT8 no zeropower
Todos os otimizadores SDNQ usam arredondamento estocastico por padrao e podem ser configurados com --optimizer_config para ajustes como use_quantized_buffers=false (desabilitar quantizacao de estado).
Opcoes especificas do Muon:
- use_quantized_matmul - Habilita matmul INT8/FP8/FP16 em zeropower_via_newtonschulz5
- quantized_matmul_dtype - Precisao de matmul: int8 (GPUs consumer), fp8 (datacenter), fp16
- zeropower_dtype - Precisao para zeropower (ignorada quando use_quantized_matmul=True)
- Prefixe args com muon_ ou adamw_ para valores diferentes em Muon vs fallback AdamW
Modelos pre-quantizados: Disty0 fornece modelos SVD uint4 pre-quantizados em huggingface.co/collections/Disty0/sdnq. Carregue normalmente e depois converta com convert_sdnq_model_to_training() apos importar SDNQ (SDNQ deve ser importado antes do load para registrar no Diffusers).
Nota sobre checkpointing: Modelos SDNQ de treinamento sao salvos tanto em formato PyTorch nativo (.pt) para retomar treino quanto em formato safetensors para inferencia. O formato nativo e necessario para retomar corretamente porque a classe SDNQTensor usa serializacao customizada.
Dica de espaco em disco: Para economizar disco, voce pode manter apenas os pesos quantizados e usar o script dequantize_sdnq_training.py para dequantizar quando necessario para inferencia.
--quantization_config¶
- O que: Objeto JSON ou caminho de arquivo descrevendo overrides de
quantization_configdo Diffusers ao usar--quantize_via=pipeline. - Como: Aceita JSON inline (ou arquivo) com entradas por componente. Chaves podem incluir
unet,transformer,text_encoderoudefault. - Exemplos:
{
"unet": {"load_in_4bit": true, "bnb_4bit_quant_type": "nf4", "bnb_4bit_compute_dtype": "bfloat16"},
"text_encoder": {"quant_type": {"group_size": 128}}
}
Este exemplo habilita 4-bit NF4 BnB no UNet e TorchAO int4 no text encoder.
Torch Dynamo¶
Habilite torch.compile() na WebUI em Hardware → Accelerate (advanced) e defina Torch Dynamo Backend para seu compilador preferido (ex.: inductor). Toggles adicionais permitem escolher o mode, habilitar dynamic shape ou regional compilation para acelerar cold starts em transformers muito profundos.
A mesma configuracao pode ser expressa em config/config.env:
Opcionalmente, combine com --dynamo_mode=max-autotune ou outras flags Dynamo expostas na UI para controle fino.
Note que os primeiros passos do treinamento serao mais lentos devido a compilacao em background.
Para persistir as configuracoes em config.json, adicione as chaves equivalentes:
{
"dynamo_backend": "inductor",
"dynamo_mode": "max-autotune",
"dynamo_fullgraph": false,
"dynamo_dynamic": false,
"dynamo_use_regional_compilation": true
}
Omitir entradas que voce quer herdar dos defaults do Accelerate (por exemplo, deixe dynamo_mode ausente para selecao automatica).
--dynamo_wrapper¶
Seleciona o wrapper host do TorchInductor. cpp e o padrao e reduz overhead de dispatch; python preserva o comportamento de releases anteriores. A escolha faz parte do filename e manifesto da Mega-Cache.
--dynamo_cache_export¶
Caminho opcional para um blob cumulativo do PyTorch Mega-Cache. O SimpleTuner carrega um blob compativel antes da compilacao, exporta apos o primeiro passo bem-sucedido do otimizador e verifica novas chaves de artefatos apos cada checkpoint e no encerramento. O manifesto <caminho>.manifest.json registra o runtime PyTorch/Triton/GPU e o SHA256. Shapes sem entrada sao compilados normalmente e seus artefatos entram na proxima exportacao. Carregue apenas caches confiaveis.
Quando o valor e um diretorio, termina em separador ou nao possui extensao, o SimpleTuner gera um filename estavel com base no modelo, runtime, acelerador e configuracao relevante ao grafo, procurando o mesmo nome no Hub.
--dynamo_cache_export_after_first_step¶
Quando true (padrao), exporta a Mega-Cache apos o primeiro passo bem-sucedido. Use false para omitir apenas essa exportacao inicial; exportacoes em checkpoints e no final continuam ativas.
--dynamo_hub_repo_id¶
Repositorio opcional do Hugging Face para recuperar e publicar o blob de --dynamo_cache_export. Blob e manifesto sao enviados juntos em um unico commit; um repositorio ausente e criado como privado. Falhas do Hub nao interrompem o treino e a exportacao local e preservada.
--attention_mechanism¶
Mecanismos de atencao alternativos sao suportados, com diferentes niveis de compatibilidade e trade-offs:
diffusersusa os kernels SDPA nativos do PyTorch.xformershabilita o kernel de atencao xformers (treino + inferencia) quando o modelo expõeenable_xformers_memory_efficient_attention.flash-attn,flash-attn-2,flash-attn-3eflash-attn-3-varlenusam o helperattention_backenddo Diffusers para rotear atencao para kernels FlashAttention v½/3. Instale os wheelsflash-attn/flash-attn-interfacecorrespondentes e note que FA3 exige GPUs Hopper.flexseleciona o backend FlexAttention do PyTorch 2.5 (FP16/BF16 em CUDA). Voce deve compilar/instalar os kernels Flex separadamente — veja documentation/attention/FLEX.md.kohaku-fausa kernels CuTe locais em GPUs Ampere SM86 (série RTX 30/A40), GPUs Ada (série RTX 40/L40S, sm_89), H100 (sm_90) e RTX Blackwell (sm_120), e kernels KohakuFA incluídos em B200/B300 (sm_100/sm_103). Para CuTe, instalepip install "simpletuner[attention-cute]": são necessários PyTorch >= 2.11, CUTLASS DSL >= 4.8, TVM FFI >= 0.1.14, Ninja >= 1.11 e um compilador C++17. A extensão nativa é compilada no primeiro uso. B200/B300 requerem PyTorch >= 2.9 e Triton >= 3.7. Não é necessário um pacote externo de atenção. SDPA direto do PyTorch e atenção nativa do Diffusers usam este backend. São suportados Q/K/V FP16/BF16 do mesmo tipo, máscaras booleanas, dimensões de cabeça 1..512 e consultas agrupadas. FP32, máscaras aditivas, dropout, paralelismo de contexto e atenção esparsa MiniMax-H3 são rejeitados. CuTe mantém o máximo da linha sem escala separado da normalização logarítmica, usa uma correção centrada de backward em FP32 e escala os gradientes após a acumulação FP32. RTX Blackwell usa backward centrado e configurações de blocos específicas da arquitetura.kohaku-fa-autoé a política automática de treinamento padrão. Seleciona Kohaku para chamadas CUDA compatíveis quando as dependências necessárias estão instaladas; CPU/MPS, GPUs não suportadas, FP32, dropout, máscaras aditivas, dimensões de cabeças e recursos de modelo não suportados usam SDPA nativa. A avaliação mantém a atenção nativa. Erros de importação, compilação e execução dos kernels Kohaku selecionados não são ocultados. Definadiffusersexplicitamente para usar SDPA nativa em todas as chamadas. O cálculo com maior precisão pode aumentar o tempo por passo; os blocos compilados de Flux e MiniMax medidos na H100 levaram aproximadamente 7,9% e 6,0% mais tempo que a SDPA nativa. A seleção automática de CuTe suporta sm_86/sm_89/sm_90/sm_120, onde o backward centrado preserva gradientes minúsculos na atenção saturada; B200/B300 usam SDPA nativa nesta política.metal-flash-attentionusa o backend PyTorch custom-op do Universal Metal Flash Attention no Apple Silicon. Instale primeiro o pacote UMFAexamples/pytorch-custom-op-ffi; o SimpleTuner roteia a atencao pelo dispatcher MPS SDPA do PyTorch, que os builds UMFA atuais registram. Chamadas SDPA MPS FP32/FP16/BF16 4D elegiveis — qualquer quantidade de heads incluindo single-head, qualquer sequence length, layouts transposed estilo FLUX, masks bool/additive de ate 4D e chamadas causais (treinamento incluido — o backward causal passa paridade exata de gradientes) — sao codificadas diretamente no command stream MPS do PyTorch sem sincronizacao por chamada, e entradas FP16/BF16 usam kernels nativos de baixa precisao sem promocao a FP32. Chamadas com dropout ouenable_gqafazem fallback para PyTorch SDPA; builds antigosPrivateUse1sao ignorados por tensorestorch.device("mps"). O SimpleTuner executa verificacoes iniciais de paridade FP32/FP16/BF16 forward e autograd, alem de paridade causal forward, e rejeita builds UMFA que nao batam numericamente ou que nao exponhamget_dispatch_stats().metal-flash-attention-int8emetal-flash-attention-int4definem o modo global de quantizacao blockwise do UMFA comset_quantization_mode(ext.QUANT_INT8, ext.QUANT_BLOCK_WISE)ouset_quantization_mode(ext.QUANT_INT4, ext.QUANT_BLOCK_WISE), limpam esse modo ao trocar de backend e exigem uma verificacao inicial adicional de saidas com autograd, gradientes multi-head finitos, suporte dispatcher-level a bool/additive masks e nenhum fallback PyTorch. Usemetal_sdpa_extension.get_dispatch_stats()durante uma execucao para confirmar quefp32_instream(ouquantized_autogradpara os aliases quantized) aumenta epytorch_fallbackfica em0; bool masks all-true tambem aumentammask_all_true_skipped. A extensao tambem expoerope_scaled_dot_product_attention, um entry point RoPE+SDPA fundido seguindo a convencao rotary interleaved-pair de FLUX.1/FLUX.2/Krea2/Z-Image; o treinamento flui por um autograd fundido (rotacao inversa em dQ/dK no backward); chamadas com gradientes usando mask ou GQA fazem fallback para rotacao eager.cudnn,native-efficient,native-flash,native-math,native-npuenative-xlaselecionam o backend SDPA correspondente exposto portorch.nn.attention.sdpa_kernel. Esses sao úteis para determinismo (native-math), kernel SDPA do CuDNN ou aceleradores nativos (NPU/XLA).slahabilita Sparse–Linear Attention (SLA), fornecendo um kernel hibrido esparso/linear ajustavel para treino e validacao sem gating adicional.- Instale o pacote SLA (por exemplo via
pip install -e ~/src/SLA) antes de selecionar esse backend. - O SimpleTuner salva os pesos de projecao aprendidos do SLA em
sla_attention.ptdentro de cada checkpoint; mantenha esse arquivo junto ao checkpoint para que resumes e inferencia mantenham o estado treinado. - Como o backbone e ajustado em torno do comportamento hibrido do SLA, o SLA sera necessario na inferencia tambem. Veja
documentation/attention/SLA.md. - Use
--sla_config '{"topk":0.15,"blkq":32,"tie_feature_map_qk":false}'(JSON ou sintaxe de dict Python) para override de defaults do SLA se precisar experimentar. sageattention,sageattention-int8-fp16-triton,sageattention-int8-fp16-cudaesageattention-int8-fp8-cudaenvolvem os kernels SageAttention. Sao orientados a inferencia e devem ser usados com--sageattention_usagepara evitar treinamento acidental.- Em termos simples, SageAttention reduz o custo de compute para inferencia
ℹ️ Os seletores Flash/Flex/PyTorch dependem do dispatcher
attention_backenddo Diffusers, entao atualmente beneficiam modelos estilo transformer que ja usam esse caminho (Flux, Wan 2.x, LTXVideo, QwenImage, etc.). UNets SD/SDXL classicos ainda usam SDPA do PyTorch diretamente.
Usar --sageattention_usage para habilitar treino com SageAttention deve ser feito com cuidado, pois ele nao rastreia nem propaga gradientes das implementacoes CUDA customizadas para linears QKV.
- Isso resulta em camadas totalmente nao treinadas, o que pode causar colapso do modelo ou pequenas melhorias em treinos curtos.
📰 Publishing¶
--push_to_hub¶
- O que: Se fornecido, seu modelo sera enviado para o Huggingface Hub quando o treinamento terminar. Usar
--push_checkpoints_to_hubtambem envia cada checkpoint intermediario.
--push_to_hub_background¶
- O que: Faz upload para o Hugging Face Hub em um worker de background para que envios de checkpoint nao pausem o loop de treinamento.
- Por que: Mantem treino e validacao rodando enquanto os uploads ocorrem de forma assincrona. Os uploads finais ainda sao aguardados antes do encerramento para que falhas aparecam.
--webhook_config¶
- O que: Configuracao para alvos de webhook (ex.: Discord, endpoints customizados) para receber eventos de treinamento em tempo real.
- Por que: Permite monitorar execucoes com ferramentas externas e dashboards, recebendo notificacoes em etapas-chave.
- Notas: O campo
job_idnos payloads de webhook pode ser preenchido definindo a variavel de ambienteSIMPLETUNER_JOB_IDantes do treinamento: Isso e util para ferramentas de monitoramento que recebem webhooks de varios treinos para identificar qual config enviou cada evento. Se SIMPLETUNER_JOB_ID nao estiver definido, job_id sera null nos payloads.
--publishing_config¶
- O que: JSON/dict/caminho de arquivo opcional descrevendo destinos de publicacao fora do Hugging Face (S3 compativel, Backblaze B2, Azure Blob Storage, Dropbox).
- Por que: Espelha o parsing de
--webhook_configpara que voce envie artefatos alem do Hub. A publicacao roda no processo principal apos a validacao usando ooutput_diratual. - Notas: Provedores sao aditivos a
--push_to_hub. Instale os SDKs (ex.:boto3,azure-storage-blob,dropbox) dentro da sua.venvquando habilitar. Vejadocumentation/publishing/README.mdpara exemplos completos.
--hub_model_id¶
- O que: Nome do modelo no Huggingface Hub e diretorio local de resultados.
- Por que: Esse valor e usado como nome de diretorio sob
--output_dir. Se--push_to_hubfor fornecido, isso vira o nome do modelo no Huggingface Hub.
--model_card_base_model¶
- O que: ID do repositório base no Hugging Face usado no model card gerado e no exemplo genérico de inferência com LoRA.
- Padrão: Não definido; usa
--pretrained_model_name_or_pathquando ele é um ID do Hub. Caminhos locais são substituídos por<model_family>/unknown-model. - Quando: Defina ao treinar com um checkpoint local ou incluído no contêiner cujo repositório original é conhecido. Isso altera os metadados publicados, não os pesos carregados para o treinamento. Use um ID como
black-forest-labs/flux-3-image-klein-base, não um caminho de arquivo nem uma URL.
--modelspec_comment¶
- O que: Texto incorporado nos metadados do arquivo safetensors como
modelspec.comment - Padrao: None (desabilitado)
- Notas:
- Visivel em visualizadores de modelo externos (ComfyUI, ferramentas de info de modelo)
- Aceita uma string ou array de strings (unidas com quebras de linha)
- Suporta placeholders
{env:VAR_NAME}para substituicao de variaveis de ambiente - Suporta
{current_step},{current_epoch}e{timestamp}quando o metadata e gravado {timestamp}usa um valor UTC em formato ISO 8601- Cada checkpoint usa o valor de configuracao atual no momento do salvamento
Exemplo (string):
Exemplo (array para multiplas linhas):
"modelspec_comment": [
"Execucao de treino: experiment-42",
"Dataset: custom-portraits-v2",
"Notas: {env:TRAINING_NOTES}"
]
--disable_benchmark¶
- O que: Desabilita a validacao/benchmark inicial que ocorre no passo 0 do modelo base. Essas saidas sao costuradas no lado esquerdo das imagens de validacao do modelo treinado.
📂 Armazenamento e gerenciamento de dados¶
--data_backend_config¶
- O que: Caminho para sua configuracao de dataset do SimpleTuner.
- Por que: Multiplos datasets em midias diferentes podem ser combinados em uma unica sessao de treinamento.
- Notas:
- Valores de string carregados de
config.jsoneconfig.tomlsuportam{env:VAR_NAME} - Valores de string dentro do
multidatabackend.jsonreferenciado tambem suportam{env:VAR_NAME} - Exemplo: Veja multidatabackend.json.example para um exemplo de configuracao e este documento para mais informacoes sobre o data loader.
--override_dataset_config¶
- O que: Quando fornecido, permite ao SimpleTuner ignorar diferencas entre a configuracao cacheada dentro do dataset e os valores atuais.
- Por que: Quando o SimpleTuner roda pela primeira vez em um dataset, ele cria um documento de cache contendo informacoes sobre tudo nesse dataset. Isso inclui a configuracao do dataset, incluindo valores de "crop" e "resolution". Mudar esses valores arbitrariamente ou por acidente pode fazer seus treinos falharem aleatoriamente, entao e altamente recomendado nao usar esse parametro e resolver as diferencas de outra forma.
--data_backend_sampling¶
- O que: Ao usar multiplos data backends, a amostragem pode usar estrategias diferentes.
- Opcoes:
uniform- comportamento anterior do v0.9.8.1 e anteriores, onde o tamanho do dataset nao era considerado, apenas pesos manuais de probabilidade.auto-weighting- comportamento padrao onde o tamanho do dataset e usado para amostrar todos igualmente, mantendo amostragem uniforme de toda a distribuicao.- Isso e necessario se voce tem datasets de tamanhos diferentes e quer que o modelo aprenda igualmente.
- Mas ajustar
repeatsmanualmente e obrigatorio para amostrar imagens Dreambooth contra seu conjunto de regularizacao corretamente.
--vae_cache_scan_behaviour¶
- O que: Configura o comportamento da varredura de integridade.
- Por que: Um dataset pode ter configuracoes incorretas aplicadas em varios pontos do treinamento, por exemplo, se voce deletar acidentalmente os arquivos
.jsonde cache do dataset e trocar a configuracao do data backend para usar imagens quadradas em vez de aspect-crops. Isso resulta em um cache de dados inconsistente, que pode ser corrigido definindoscan_for_errorscomotrueno seumultidatabackend.json. Quando essa varredura roda, ela usa--vae_cache_scan_behaviourpara decidir como resolver a inconsistencias:recreate(padrao) remove a entrada de cache ofensora para que seja recriada, esyncatualiza os metadados do bucket para refletir a realidade do sample de treino. Valor recomendado:recreate.
--enable_nsfw_check¶
- O que: Habilita enforcement de classificadores NSFW durante o pre-processamento do cache VAE.
- Padrao:
false. - Notas: Apenas samples ainda sem cache que o VAE cache vai processar sao verificados. Caches VAE existentes e
skip_file_discovery=vaesao confiados e nao sao reescaneados. - Mais informacoes: Veja NSFW.pt-BR.md para notas de privacidade e responsabilidade, e DATALOADER.pt-BR.md#nsfw-classifier-checks-during-vae-caching para detalhes do cache VAE.
--nsfw_check_models¶
- O que: Lista CSV de modelos de classificacao de imagem do Hugging Face Transformers. Um threshold por modelo pode ser anexado com
:threshold=0.5. - Padrao:
Falconsai/nsfw_image_detection:threshold=0.5,AdamCodd/vit-base-nsfw-detector:threshold=0.5. - Notas: Apenas modelos Transformers padrao sao suportados.
trust_remote_codenao e habilitado, e classificadores baseados emtimmnao sao carregados.
--nsfw_check_min_votes¶
- O que: Quantidade de classificadores configurados que precisam retornar NSFW antes de um frame ser rejeitado.
- Padrao:
2. - Notas: Deve ser pelo menos
1e nao pode ser maior que a quantidade de classificadores configurados.
--nsfw_check_backend_types¶
- O que: Lista CSV de valores
typede data backend que devem ser verificados. - Padrao:
all. - Exemplo:
local,huggingface,csv,aws.
--nsfw_check_sample_types¶
- O que: Lista CSV de valores
dataset_typeque devem ser verificados. - Padrao:
image,conditioning. - Notas: Datasets de avaliacao nao sao verificados.
--delete_nsfw_images¶
- O que: Deleta samples rejeitados pelo classificador NSFW quando o backend suporta delecao.
- Padrao:
false. - Notas: Quando desabilitado, os samples rejeitados sao removidos dos metadados da execucao atual, mas continuam no dataset de origem.
--nsfw_check_video_frame_count¶
- O que: Numero de frames amostrados de entradas de video ou conditioning com multiplos frames.
- Padrao:
3.
--nsfw_check_video_frame_selection¶
- O que: Modo de selecao de frames para verificacoes NSFW em video.
- Padrao:
uniform. - Opcoes:
uniform,first,middle.
--nsfw_check_video_min_flagged_frames¶
- O que: Numero de frames de video verificados que precisam ser rejeitados antes de rejeitar o sample inteiro.
- Padrao:
1.
--dataloader_prefetch¶
- O que: Busca lotes com antecedencia.
- Por que: Especialmente com batch sizes grandes, o treino vai "pausar" enquanto samples sao lidos do disco (mesmo NVMe), impactando metricas de utilizacao da GPU. Habilitar prefetch mantem um buffer cheio de lotes completos para que possam ser carregados instantaneamente.
⚠️ Isso e relevante apenas para H100 ou superior em baixa resolucao onde I/O vira o gargalo. Para a maioria dos casos, e uma complexidade desnecessaria.
--dataloader_prefetch_qlen¶
- O que: Aumenta ou reduz o numero de lotes mantidos em memoria.
- Por que: Quando prefetch esta habilitado, o padrao e manter 10 entradas por GPU/processo em memoria. Esse valor pode ser ajustado para preparar mais ou menos lotes.
--dataloader_prefetch_device_threshold_mb¶
- O que: Carga minima unica do lote na CPU, em MiB, que o prefetch fixa na memoria e transfere em um stream CUDA dedicado.
0desativa o staging no dispositivo. - Por que: Embeddings em cache muito grandes podem serializar a transferencia para o dispositivo com o trabalho do modelo. Esta opcao sobrepoe a transferencia ao calculo da GPU.
- Memoria: Cada entrada preparada na fila consome memoria fixa do host e memoria do acelerador. Comece com
dataloader_prefetch_qlen: 2e meça antes de aumentar. - Compatibilidade: Requer
dataloader_prefetch: truee CUDA. Nao e compativel com paralelismo de contexto.
--compress_disk_cache¶
- O que: Compacta em disco os caches de VAE e embeddings de texto.
- Por que: O encoder T5 usado por DeepFloyd, SD3 e PixArt gera embeddings de texto muito grandes que ficam quase vazios para legendas curtas ou redundantes. Habilitar
--compress_disk_cachepode reduzir o espaco em ate 75%, com economia media de 40%.
⚠️ Voce precisara remover manualmente os diretorios de cache existentes para que sejam recriados com compactacao pelo trainer.
🌈 Processamento de imagem e texto¶
Muitas configuracoes sao definidas no dataloader config, mas estas se aplicam globalmente.
--resolution_type¶
- O que: Diz ao SimpleTuner se deve usar calculos por
areaou por aresta de pixel. Uma abordagem hibridapixel_areatambem e suportada, permitindo usar pixel em vez de megapixel para medidas dearea. - Opcoes:
resolution_type=pixel_area- Um valor de
resolution1024 sera mapeado internamente para uma medida de area precisa para bucketing eficiente. - Exemplos para
1024: 1024x1024, 1216x832, 832x1216
- Um valor de
resolution_type=pixel- Todas as imagens no dataset terao sua menor aresta redimensionada para essa resolucao, o que pode resultar em alto uso de VRAM devido ao tamanho das imagens resultantes.
- Exemplos para
1024: 1024x1024, 1766x1024, 1024x1766
resolution_type=area- Deprecated. Use
pixel_area.
- Deprecated. Use
--resolution¶
- O que: Resolucao de entrada expressa em tamanho de aresta em pixels
- Padrao: 1024
- Nota: Este e o padrao global, se um dataset nao definir resolucao.
--validation_resolution¶
- O que: Resolucao de saida, em pixels, ou no formato
larguraxaltura, como1024x1024. Multiplas resolucoes podem ser definidas, separadas por virgulas. - Por que: Todas as imagens geradas durante a validacao terao essa resolucao. Util se o modelo estiver sendo treinado com resolucao diferente.
--validation_method¶
- O que: Escolhe como as validacoes sao executadas.
- Opcoes:
simpletuner-local(padrao) roda o pipeline embutido;external-scriptroda um executavel fornecido pelo usuario. - Por que: Permite delegar validacao a um sistema externo sem pausar o treino para pipeline local.
--validation_external_script¶
- O que: Executavel para rodar quando
--validation_method=external-script. Usa separacao estilo shell, entao coloque aspas no comando. - Placeholders: Voce pode embutir estes tokens (formatados com
.format) para passar contexto de treino. Valores ausentes sao substituidos por string vazia, salvo quando indicado: {local_checkpoint_path}→ diretorio do ultimo checkpoint dentro deoutput_dir(requer ao menos um checkpoint).{global_step}→ passo global atual.{tracker_run_name}→ valor de--tracker_run_name.{tracker_project_name}→ valor de--tracker_project_name.{model_family}→ valor de--model_family.{model_type}/{lora_type}→ tipo de modelo e variante LoRA.{huggingface_path}→ valor de--hub_model_id(se definido).{remote_checkpoint_path}→ URL remota do ultimo upload (vazio para hook de validacao).- Qualquer valor
validation_*no config (ex.:validation_num_inference_steps,validation_guidance,validation_noise_scheduler). - Exemplo:
--validation_external_script="/opt/tools/validate.sh {local_checkpoint_path} {global_step}"
--validation_external_background¶
- O que: Quando definido,
--validation_external_scripte iniciado em background (fire-and-forget). - Por que: Mantem o treinamento rodando sem esperar o script externo; codigos de saida nao sao verificados nesse modo.
--post_upload_script¶
- Após cada validação integrada concluída (manual pela WebUI, agendada ou benchmark do modelo base), o script também é executado quando nenhum provedor de publicação está configurado. Nesse caso,
{local_checkpoint_path}éoutput_dir(não é necessário um checkpoint), e{remote_checkpoint_path}fica vazio. Os provedores configurados mantêm um hook por upload bem-sucedido, com os caminhos retornados; uploads com falha não acionam um hook local. Validações ignoradas, com falha ou canceladas e a inicialização de scripts externos não acionam esse hook de conclusão. - O que: Executavel opcional rodado apos cada provedor de publicacao e upload no Hugging Face Hub terminar (modelo final e uploads de checkpoints). Roda de forma assincrona para nao bloquear o treinamento.
- Placeholders: Mesmas substituicoes de
--validation_external_script, mais{remote_checkpoint_path}(URI retornada pelo provedor) para que voce encaminhe a URL publicada para sistemas downstream. - Notas:
- Scripts rodam por provedor/upload; erros sao logados, mas nao param o treino.
- Scripts tambem sao chamados quando nao ha upload remoto, entao voce pode usa-los para automacao local (ex.: rodar inferencia em outra GPU).
- O SimpleTuner nao consome resultados do seu script — registre diretamente no tracker se quiser metricas ou imagens.
- Exemplo:
Onde
--post_upload_script='/opt/hooks/notify.sh {remote_checkpoint_path} {tracker_project_name} {tracker_run_name}'/opt/hooks/notify.shpode postar no seu sistema de tracking: - Exemplos funcionais:
simpletuner/examples/_shared/external-validation/replicate_post_upload.pymostra um hook Replicate que consome{remote_checkpoint_path},{model_family},{model_type},{lora_type}e{huggingface_path}para disparar inferencia apos uploads.simpletuner/examples/_shared/external-validation/wavespeed_post_upload.pymostra um hook WaveSpeed usando os mesmos placeholders mais o polling assincrono do WaveSpeed.simpletuner/examples/_shared/external-validation/fal_post_upload.pymostra um hook fal.ai Flux LoRA (requerFAL_KEY).simpletuner/examples/_shared/external-validation/use_second_gpu.pyroda inferencia Flux LoRA em uma GPU secundaria e funciona mesmo sem uploads remotos.
--post_checkpoint_script¶
- O que: Executavel para rodar imediatamente apos cada diretorio de checkpoint ser gravado em disco (antes de qualquer upload). Roda de forma assincrona no processo principal.
- Placeholders: Mesmas substituicoes de
--validation_external_script, incluindo{local_checkpoint_path},{global_step},{tracker_run_name},{tracker_project_name},{model_family},{model_type},{lora_type},{huggingface_path}e qualquer valorvalidation_*de config.{remote_checkpoint_path}resolve para vazio nesse hook. - Notas:
- Dispara para checkpoints agendados, manuais e rolling assim que terminam de salvar localmente.
- Util para acionar automacoes locais (copiar para outro volume, rodar avaliacao) sem esperar uploads terminarem.
- Exemplo:
--deepfloyd_validation_pipeline_mode¶
- O que: Controla o encadeamento de estagios na validacao do DeepFloyd.
- Opcoes:
auto,trained-stage,full-pipeline - Padrao:
auto - Por que:
autoexecuta DeepFloyd stage I -> stage II para validacao por prompt, enquanto validacao explicita com imagens de dataset usa apenas o estagio treinado. Usetrained-stagepara manter validacao de um unico estagio, oufull-pipelinepara forcar o carregamento dos estagios fixos.
--deepfloyd_validation_stage1_model¶
- O que: Modelo fixo de stage I usado ao validar um stage II treinado pela pipeline completa.
- Padrao:
DeepFloyd/IF-I-XL-v1.0
--deepfloyd_validation_stage2_model¶
- O que: Modelo fixo de stage II usado ao validar um stage I treinado pela pipeline completa.
- Padrao:
DeepFloyd/IF-II-M-v1.0
--deepfloyd_validation_stage3_mode¶
- O que: Upscaler terminal opcional apos o DeepFloyd stage II.
- Opcoes:
none,sd-x4-upscaler - Padrao:
none - Por que: O stage III nao lancado do DeepFloyd era essencialmente um upscaler 4x.
sd-x4-upscalerusastabilityai/stable-diffusion-x4-upscalernessa funcao.
--deepfloyd_validation_stage3_model¶
- O que: Repositorio do modelo usado quando
--deepfloyd_validation_stage3_mode=sd-x4-upscaler. - Padrao:
stabilityai/stable-diffusion-x4-upscaler
--deepfloyd_validation_stage1_num_inference_steps¶
- O que: Sobrescrita opcional do numero de passos de validacao do stage I.
- Padrao: Usa
--validation_num_inference_steps, limitado a 30 no stage I.
--deepfloyd_validation_stage2_num_inference_steps¶
- O que: Sobrescrita opcional do numero de passos de validacao do stage II.
- Padrao: Usa
--validation_num_inference_steps
--deepfloyd_validation_stage1_guidance¶
- O que: Sobrescrita opcional da guidance de validacao do stage I.
- Padrao: Usa
--validation_guidance
--deepfloyd_validation_stage2_guidance¶
- O que: Sobrescrita opcional da guidance de validacao do stage II.
- Padrao: Usa
--validation_guidance
--deepfloyd_validation_stage3_guidance¶
- O que: Sobrescrita opcional da guidance do upscaler SD x4.
- Padrao: Usa
--validation_guidance
--deepfloyd_validation_stage3_noise_level¶
- O que: Nivel de ruido passado ao upscaler SD x4.
- Padrao:
100
--wan_validation_load_other_stage¶
- O que: Carrega o stage oposto do Wan 2.2 durante a validacao.
- Padrao:
false - Por que: Wan 2.2 e flavours staged compativeis, como AnimeGen, podem treinar cada stage separadamente. Ao ativar, o stage par fixo e carregado para que a validacao use a pipeline completa de dois stages e troque denoisers no boundary configurado.
--sdxl_validation_pipeline_mode¶
- Opcoes:
trained-stage,full-pipeline - Padrao:
trained-stage - O que: Escolhe se a validacao SDXL executa apenas o stage treinado ou a pipeline dividida base/refiner.
- Por que:
full-pipelineexecuta o stage 1 ate1 - refiner_training_strengthcom saida latente e depois continua pelo stage 2 a partir do mesmo boundary do schedule.
--sdxl_validation_stage1_model¶
- O que: Modelo SDXL fixo de stage 1/base usado quando a validacao full-pipeline refina com um modelo de stage 2 treinado.
- Padrao: inferido da versao SDXL selecionada, normalmente
stabilityai/stable-diffusion-xl-base-1.0
--sdxl_validation_stage2_model¶
- O que: Modelo SDXL fixo de stage 2/refiner usado quando a validacao full-pipeline executa primeiro um modelo de stage 1 treinado.
- Padrao: inferido da versao SDXL selecionada, normalmente
stabilityai/stable-diffusion-xl-refiner-1.0
--pixart_validation_pipeline_mode¶
- Opcoes:
trained-stage,full-pipeline - Padrao:
trained-stage - O que: Escolhe se a validacao PixArt executa apenas o stage treinado ou a pipeline dividida v0.7.
- Por que:
full-pipelineexecuta o stage 1 ate1 - refiner_training_strengthcom saida latente e depois continua pelo stage 2 a partir do mesmo boundary do schedule.
--pixart_validation_stage1_model¶
- O que: Modelo PixArt fixo de stage 1 usado quando a validacao full-pipeline refina com um modelo de stage 2 treinado.
- Padrao:
terminusresearch/pixart-900m-1024-ft-v0.7-stage1
--pixart_validation_stage2_model¶
- O que: Modelo PixArt fixo de stage 2 usado quando a validacao full-pipeline executa primeiro um modelo de stage 1 treinado.
- Padrao:
terminusresearch/pixart-900m-1024-ft-v0.7-stage2
--validation_adapter_path¶
- O que: Carrega temporariamente um unico adaptador LoRA durante validacoes agendadas.
- Formatos:
- Repo Hugging Face:
org/repoouorg/repo:weight_name.safetensors(padraopytorch_lora_weights.safetensors). - Caminho local para arquivo ou diretorio apontando para um adaptador safetensors.
- Notas:
- Mutuamente exclusivo com
--validation_adapter_config; fornecer ambos gera erro. - O adaptador so e anexado durante validacoes (pesos base de treino permanecem intactos).
--validation_adapter_name¶
- O que: Identificador opcional para aplicar ao adaptador temporario carregado via
--validation_adapter_path. - Por que: Controla como a execucao e rotulada nos logs/WebUI e garante nomes previsiveis quando varios adaptadores sao testados em sequencia.
--validation_adapter_strength¶
- O que: Multiplicador de forca aplicado ao habilitar o adaptador temporario (padrao
1.0). - Por que: Permite varrer escalas LoRA mais leves/pesadas durante validacao sem alterar o estado do treino; aceita qualquer valor maior que zero.
--validation_adapter_mode¶
- Opcoes:
adapter_only,comparison,none - O que:
adapter_only: roda validacoes apenas com o adaptador temporario anexado.comparison: gera amostras do modelo base e com adaptador para comparacao lado a lado.none: ignora anexar o adaptador (util para desativar o recurso sem apagar flags CLI).
--validation_adapter_config¶
- O que: Arquivo JSON ou JSON inline que descreve varias combinacoes de adaptadores para iterar.
- Formato: Um array de entradas ou um objeto com um array
runs. Cada entrada pode incluir: label: Nome amigavel exibido nos logs/UI.path: Repo Hugging Face ou caminho local (mesmos formatos de--validation_adapter_path).adapter_name: Identificador opcional por adaptador.strength: Override escalar opcional.target_stage: Alvo opcional de validacao multi-stage para este adaptador. Os aliases aceitos dependem do modelo; valores comuns incluemone,two,stage1,stage2e Wanhigh/low.adapters/paths: Array de objetos/strings para carregar multiplos adaptadores em uma unica execucao.- Notas:
- Quando fornecido, as opcoes de adaptador unico (
--validation_adapter_path,--validation_adapter_name,--validation_adapter_strength,--validation_adapter_mode) sao ignoradas/desabilitadas na UI. - Cada execucao e carregada uma por vez e totalmente removida antes da proxima.
--validation_preview¶
- O que: Transmite previews intermediarios durante a amostragem de difusao usando Tiny AutoEncoders.
- Padrao: False
- Por que: Habilita preview em tempo real das imagens de validacao enquanto sao geradas, decodificando via Tiny AutoEncoder e enviando por webhook. Isso permite monitorar o progresso passo a passo em vez de esperar a geracao completa.
- Notas:
- Disponivel apenas para familias de modelos com suporte a Tiny AutoEncoder (ex.: Flux, SDXL, SD3)
- Requer configuracao de webhook para receber previews
- Use
--validation_preview_stepspara controlar a frequencia de decodificacao
--validation_preview_steps¶
- O que: Intervalo para decodificar e transmitir previews de validacao
- Padrao: 1
- Por que: Controla com que frequencia latentes intermediarios sao decodificados durante a amostragem. Um valor maior (ex.: 3) reduz o overhead ao decodificar apenas a cada N passos.
- Exemplo: Com
--validation_num_inference_steps=20e--validation_preview_steps=5, voce recebera 4 previews durante a geracao (passos 5, 10, 15, 20).
--evaluation_type¶
- O que: Habilita avaliacao CLIP das imagens geradas durante validacoes.
- Por que: Scores CLIP calculam a distancia entre features da imagem gerada e o prompt de validacao. Isso pode indicar se a aderencia ao prompt esta melhorando, mas exige muitos prompts para ter valor.
- Opcoes: "none" ou "clip"
- Agendamento: Use
--eval_steps_intervalpara agendamento por passos ou--eval_epoch_intervalpara agendamento por epocas (fracoes como0.5rodam varias vezes por epoca). Se ambos estiverem definidos, o trainer avisa e executa ambos.
--eval_loss_disable¶
- O que: Desabilita o calculo de eval loss durante validacao.
- Por que: Quando um dataset de avaliacao e configurado, a loss sera calculada automaticamente. Se a avaliacao CLIP estiver habilitada, ambos rodam. Este flag permite desabilitar a eval loss mantendo CLIP.
--validation_using_datasets¶
- O que: Usa imagens dos datasets de treinamento para validacao ao inves de geracao pura texto-para-imagem.
- Por que: Habilita modo de validacao imagem-para-imagem (img2img) ou imagem-para-video (i2v) onde o modelo usa imagens de treinamento como entradas de conditioning. Util para:
- Testar modelos de edicao/inpainting que requerem imagens de entrada
- Avaliar quao bem o modelo preserva a estrutura da imagem
- Modelos que suportam workflows duais texto-para-imagem E imagem-para-imagem (ex., Flux2, LTXVideo2)
- Modelos de video I2V (HunyuanVideo, WAN, Kandinsky5Video): Usa imagens de um dataset de imagens como entrada de conditioning do primeiro frame para validacao de geracao de video
- Notas:
- Requer que o modelo tenha um pipeline
IMG2IMGouIMG2VIDEOregistrado - Pode ser combinado com
--eval_dataset_idpara obter imagens de um dataset especifico - Para modelos i2v, permite usar um dataset de imagens simples para validacao sem a configuracao complexa de pareamento de datasets de conditioning usada durante o treinamento
- Flux Kontext nao usa este flag para validacao; deixe-o desativado e use
--eval_dataset_idpara escolher o dataset de edicao enquanto o Kontext carrega automaticamente o dataset de referencia pareado - A intensidade do denoise e controlada pelas configuracoes normais de timestep de validacao
--validation_input¶
- O que: Lista JSON de imagens de entrada e prompts para validacao, por exemplo
[{"path": "/data/val/frame.png", "prompt": "um movimento lento de camera para frente"}]. - Por que: Permite validacao condicionada por imagem sem criar um dataset de validacao.
- Notas:
- Cada entrada deve incluir
patheprompt;shortnameounamesao opcionais para controlar o rotulo de saida. - O caminho da imagem deve existir localmente quando os prompts de validacao forem preparados.
- Quando definido, estas entradas sao usadas como imagens de entrada de validacao em vez de descobrir amostras nos datasets.
--eval_dataset_id¶
- O que: ID especifico do dataset para usar no sourcing de imagens de avaliacao/validacao.
- Por que: Ao usar
--validation_using_datasetsou validacao baseada em conditioning, controla qual dataset fornece as imagens de entrada: - Sem esta opcao, imagens sao selecionadas aleatoriamente de todos os datasets de treinamento
- Com esta opcao, apenas o dataset especificado e usado para entradas de validacao
- Notas:
- O ID do dataset deve corresponder a um dataset configurado no seu config do dataloader
- Util para manter avaliacao consistente usando um dataset de eval dedicado
- Para modelos de conditioning, os dados de conditioning do dataset (se houver) tambem serao usados
- Para Flux Kontext, esta e a forma correta de selecionar o dataset de validacao; nao habilite
--validation_using_datasets
Entendendo Modos de Conditioning e Validacao¶
SimpleTuner suporta tres paradigmas principais para modelos que usam entradas de conditioning (imagens de referencia, sinais de controle, etc.):
1. Modelos que REQUEREM Conditioning¶
Alguns modelos nao funcionam sem entradas de conditioning:
- Flux Kontext: Sempre precisa de imagens de referencia para treinamento estilo edicao
- Treinamento ControlNet: Requer imagens de sinal de controle
Para estes modelos, um dataset de conditioning e obrigatorio. A WebUI mostrara opcoes de conditioning como obrigatorias, e o treinamento falhara sem elas.
A validacao do Flux Kontext tambem permanece nesse caminho baseado em conditioning. Use --eval_dataset_id para escolher o dataset de edicao para validacao e deixe --validation_using_datasets desativado.
2. Modelos que SUPORTAM Conditioning Opcional¶
Alguns modelos podem operar em modos texto-para-imagem E imagem-para-imagem:
- Flux2: Suporta treinamento dual T2I/I2I com imagens de referencia opcionais
- LTXVideo2: Suporta T2V e I2V (imagem-para-video) com conditioning de primeiro frame opcional
- LongCat-Video: Suporta conditioning de frames opcional
- HunyuanVideo i2v: Suporta I2V com conditioning de primeiro frame (flavours:
i2v-480p,i2v-720p, etc.) - WAN i2v: Suporta I2V com conditioning de primeiro frame
- Kandinsky5Video i2v: Suporta I2V com conditioning de primeiro frame
Para estes modelos, voce PODE adicionar datasets de conditioning mas nao e obrigatorio. A WebUI mostrara opcoes de conditioning como opcionais.
Atalho de Validacao I2V: Para modelos de video i2v, voce pode usar --validation_using_datasets com um dataset de imagens (especificado via --eval_dataset_id) para obter imagens de conditioning de validacao diretamente, sem precisar configurar o pareamento completo de datasets de conditioning usado durante o treinamento.
3. Modos de Validacao¶
| Modo | Flag | Comportamento |
|---|---|---|
| Texto-para-Imagem/Video | (padrao) | Gera apenas de prompts de texto |
| Baseado em Dataset (img2img) | --validation_using_datasets |
Denoise parcial de imagens de datasets |
| Baseado em Dataset (i2v) | --validation_using_datasets |
Para modelos de video i2v, usa imagens como conditioning de primeiro frame |
| Baseado em Conditioning | (auto quando conditioning configurado) | Usa entradas de conditioning durante validacao |
Combinando modos: Quando um modelo suporta conditioning E --validation_using_datasets esta habilitado:
- O sistema de validacao obtem imagens de datasets
- Se esses datasets tem dados de conditioning, sao usados automaticamente
- Use --eval_dataset_id para controlar qual dataset fornece entradas
Modelos I2V com --validation_using_datasets: Para modelos de video i2v (HunyuanVideo, WAN, Kandinsky5Video), habilitar este flag permite usar um dataset de imagens simples para validacao. As imagens sao usadas como entradas de conditioning de primeiro frame para gerar videos de validacao, sem precisar da configuracao complexa de pareamento de datasets de conditioning.
Flux Kontext com --validation_using_datasets: Nao habilite este flag. Kontext e somente edicao e valida pelo caminho normal de datasets pareados de imagem + conditioning. Use --eval_dataset_id para selecionar o dataset de edicao.
Tipos de Dados de Conditioning¶
Diferentes modelos esperam diferentes dados de conditioning:
| Tipo | Modelos | Configuracao do Dataset |
|---|---|---|
conditioning |
ControlNet, Control | type: conditioning no config do dataset |
image |
Flux Kontext | type: image (dataset de imagem padrao) |
latents |
Flux, Flux2 | Conditioning e VAE-encoded automaticamente |
--caption_strategy¶
- O que: Estrategia para derivar captions. Opcoes:
textfile,filename,parquet,instanceprompt - Por que: Determina como as captions sao geradas para imagens de treino.
textfileusa o conteudo de um arquivo.txtcom o mesmo nome da imagemfilenameaplica limpeza ao nome do arquivo antes de usar como captionparquetrequer um arquivo parquet no dataset e usa a colunacaptiona menos queparquet_caption_columnseja fornecida. Todas as captions devem estar presentes a menos queparquet_fallback_caption_columnseja fornecida.instancepromptusa o valor deinstance_promptna config do dataset como prompt para cada imagem.
--conditioning_multidataset_sampling¶
- O que: Como amostrar de multiplos datasets de condicionamento. Opcoes:
combined,random - Por que: Ao treinar com varios datasets de condicionamento (ex.: multiplas imagens de referencia ou sinais de controle), isso determina como sao usados:
combinedjunta os condicionamentos, mostrando-os simultaneamente durante o treino. Util para composicao com varias imagens.randomseleciona um dataset de condicionamento por sample, alternando entre condicoes durante o treino.- Nota: Ao usar
combined, voce nao pode definircaptionsseparadas nos datasets de condicionamento; as captions do dataset de origem sao usadas. - Veja tambem: DATALOADER.md para configurar multiplos datasets de condicionamento.
--flux3_prompt_upsample¶
Padrão: false
A opção vem desativada. Ao ativá-la, o SimpleTuner baixa o modelo Qwen3.5-9B separado (cerca de 19 GB de pesos) e reescreve prompts positivos antes de armazenar seus embeddings. Para edições, usa as imagens de referência pareadas. Prompts negativos, legendas vazias de dropout e arquivos originais são preservados.
Reserve mais RAM e tempo de pré-processamento. O upsampler e o codificador de texto se alternam na GPU, e os embeddings são reutilizados no treino. O SimpleTuner separa os embeddings expandidos dos originais e reutiliza os resultados quando as mesmas referências são selecionadas novamente.
--moss_image_auto_json¶
Codifica legendas positivas com o esquema JSON nativo summary/items do MOSS-Image. Padrão: false. Legendas simples são encapsuladas sem inventar posições; layouts existentes são validados e serializados. Prompts vazios e negativos são preservados.
--moss_image_prompt_upsample¶
Usa um modelo de visão e linguagem para expandir legendas positivas em layouts JSON nativos detalhados antes de armazenar embeddings. Padrão: false. As imagens de treino fundamentam as descrições e caixas, usando as dimensões reais do bucket. Os prompts de validação também são expandidos e a conversão JSON nativa é ativada.
--moss_image_prompt_upsampler_model_id¶
Repositório ou caminho local do modelo de legendas. Padrão: Qwen/Qwen3.5-27B. Usado com moss_image_prompt_upsample. O modelo requer GPU de 80 GB e RAM adicional; alterna o uso da GPU com o codificador de texto. Alterar o modelo ou ativar JSON usa um cache de embeddings separado.
--moss_image_validation_shift¶
Deslocamento de fluxo na validação do MOSS-Image. Padrão: 5.0. O deslocamento é aplicado uma única vez a uma grade uniforme do ruído até zero; quatro passos com deslocamento 1 usam [1, 0.75, 0.5, 0.25, 0], como nas trajetórias de treinamento do AnyFlow. O treinamento usa uma grade sem deslocamento de 1.000 pontos, com a distribuição logit-normal truncada e reescalada e mistura uniforme de 1% do relatório técnico, Apêndice A.2. flow_sigmoid_scale multiplica o desvio padrão nativo de 0,95; zero produz uma massa pontual com a mistura uniforme. As opções explícitas de amostragem uniforme, beta, cúbica e de passos personalizados continuam disponíveis.
--moss_image_uncond_skip_layers¶
Lista JSON de camadas do transformador, com índices a partir de zero, ignoradas no ramo negativo do CFG do MOSS-Image. Padrão: [22], conforme a receita do projeto. Use [] para CFG padrão. Os índices vão de 0 a 41. O ramo positivo é configurado separadamente com validation_guidance_skip_layers e validation_guidance_skip_scale.
--krea2_reference_latents¶
- O que: Habilita treino Krea 2 com reference dataset.
- Por que: Quando habilitado, Krea 2 usa a imagem de condicionamento pareada ao cachear os prompt embeddings Qwen3VL, e adiciona os latentes VAE limpos dessa imagem ao fluxo de tokens do transformer durante o treino.
- Dataset: Configure o dataset principal de imagens com
conditioning_dataapontando para um dataset de conditioning pareado. Os nomes dos arquivos devem coincidir entre imagens target e reference. - Escopo: Esta e uma opcao do lado do modelo Krea 2. Ela nao gera conditioning datasets; use as configuracoes normais de reference dataset do dataloader.
Opcoes de validacao do LTX-2¶
--ltx2_validation_pipeline_mode: Escolhe se a validacao LTX-2 roda apenas o modelo treinado (trained-stage) ou uma pipeline de validacao em dois estagios com spatial upscaler (spatial-upscale).--ltx2_validation_spatial_upsampler_model: Repo Hugging Face, diretorio local ou arquivo.safetensorslocal para o spatial latent upsampler do LTX-2. Padrao:Lightricks/LTX-2.3.--ltx2_validation_spatial_upsampler_filename: Nome do arquivo upsampler quando a opcao de modelo aponta para repo ou diretorio. Padrao:ltx-2.3-spatial-upscaler-x2-1.1.safetensors.--ltx2_validation_audio_guidance: Escala CFG de audio separada opcional para latentes de audio LTX-2 durante a validacao. Deixe sem definir para reutilizar--validation_guidance; use quando quiser dual CFG estilo Comfy com escalas separadas para video e audio.- O que spatial-upscale faz: O stage 1 gera video latents em metade da resolucao de validacao solicitada, o spatial upsampler dobra esses latents, e o stage 2 re-denoisa na resolucao solicitada com o stage-2 sigma schedule do LTX-2.
- Limite: Spatial-upscale validation e para video;
--validation_audio_onlymantem o caminho normal de validacao single-stage.
Opcoes de condicionamento do LTX-2¶
Estas sao configuracoes avancadas opcionais para treino LTX-2. Defina-as em JSON/TOML com os nomes abaixo, ou passe os flags CLI correspondentes, como --ltx2_first_frame_conditioning_probability.
- Condicionamento intrinseco de tokens alvo: tokens de video alvo selecionados sao copiados dos latentes limpos, seus timesteps viram
0, e eles sao excluidos da perda de video. ltx2_intrinsic_conditioning: array JSON de objetos de condicao, por exemplo[{"type":"first_frame","probability":1.0}]. Valorestypesuportados:first_frame,prefix,suffix,spatial_cropemask.- Chaves curtas:
ltx2_first_frame_conditioning_probability,ltx2_prefix_conditioning_probability,ltx2_prefix_conditioning_frames,ltx2_suffix_conditioning_probability,ltx2_suffix_conditioning_frameseltx2_mask_conditioning_probability. - Para
mask, valor1significa condicionamento limpo/sem perda; valor0significa treino ruidoso normal. - Escala de referencia IC-LoRA:
ltx2_reference_spatial_scale_factoreltx2_reference_temporal_scale_factorajustam coordenadas dos tokens de referencia. A escala espacial e inferida pelos tamanhos latentes de referencia/alvo quando omitida. - Referencia IC-LoRA de validacao:
validation_ltx2_video_conditioninge uma lista JSON de videos de referencia locais para validacao, por exemplo[{"path":"data/reference.mp4","strength":1.0}]. - Escopo: Essas configuracoes controlam apenas o comportamento de condicionamento LTX-2 no modelo. Pareamento de datasets, arquivos de mascara, datasets de referencia, controles WebUI e templates de dataset sao configurados separadamente.
🎛 Parametros de treinamento¶
--num_train_epochs¶
- O que: Numero de epocas de treinamento (quantas vezes todas as imagens sao vistas). Definir como 0 permite que
--max_train_stepstenha prioridade. - Por que: Determina o numero de repeticoes de imagens, impactando a duracao do treino. Mais epocas tendem a resultar em overfitting, mas podem ser necessarias para capturar os conceitos. Um valor razoavel pode ser 5 a 50.
--max_train_steps¶
- O que: Numero de passos para encerrar o treinamento. Se 0,
--num_train_epochstem prioridade. - Por que: Util para encurtar a duracao do treinamento.
--strict_epoch_limit¶
- O que: Para o treinamento quando o contador de épocas atinge
--num_train_epochs, mesmo que--max_train_stepsainda não tenha sido alcançado. - Por que: Desative em execuções com
--max_train_stepsexplícito que devem continuar por passagens extras de época até atingir o limite de passos. Execuções com--max_train_steps=0sempre são guiadas por épocas e usam limite estrito.
--learning_rate¶
- O que: Taxa de aprendizado inicial apos warmup.
- Por que: A taxa de aprendizado e como o "tamanho do passo" nas atualizacoes de gradiente. Alta demais causa overshoot; baixa demais nao chega na solucao ideal. Para
full, pode ser tao baixa quanto1e-7a no maximo1e-6; paralora, minima1e-5e maxima ate1e-3. Em taxas maiores, e vantajoso usar EMA com warmup — veja--use_ema,--lr_warmup_stepse--lr_scheduler.
--lr_scheduler¶
- O que: Como a taxa de aprendizado escala ao longo do tempo.
- Opcoes: constant, constant_with_warmup, cosine, cosine_with_restarts, polynomial (recomendado), linear
- Por que: Modelos se beneficiam de ajustes continuos para explorar melhor o loss landscape. O padrao e cosine; isso permite transicao suave entre extremos. Com taxa constante, e comum escolher um valor alto demais (divergencia) ou baixo demais (minimo local). Um agendamento polynomial funciona melhor com warmup, aproximando-se gradualmente de
learning_ratee depois desacelerando ate--lr_endao final.
--optimizer¶
- O que: Otimizador usado no treinamento.
- Opcoes: adamw_bf16, ao-adamw8bit, ao-adamw4bit, ao-adamfp8, ao-adamwfp8, adamw_schedulefree, adamw_schedulefree+aggressive, adamw_schedulefree+no_kahan, optimi-stableadamw, optimi-adamw, optimi-lion, optimi-radam, optimi-ranger, optimi-adan, optimi-adam, optimi-sgd, soap, bnb-adagrad, bnb-adagrad8bit, bnb-adam, bnb-adam8bit, bnb-adamw, bnb-adamw8bit, bnb-adamw-paged, bnb-adamw8bit-paged, bnb-lion, bnb-lion8bit, bnb-lion-paged, bnb-lion8bit-paged, bnb-ademamix, bnb-ademamix8bit, bnb-ademamix-paged, bnb-ademamix8bit-paged, prodigy
Nota: Alguns otimizadores podem nao estar disponiveis em hardware nao-NVIDIA.
--optimizer_config¶
- O que: Ajusta configuracoes do otimizador.
- Por que: Como os otimizadores tem muitas configuracoes, nao e viavel ter um argumento para cada uma. Em vez disso, use uma lista separada por virgulas para sobrescrever defaults.
- Exemplo: Voce pode definir
d_coefpara o otimizador prodigy:--optimizer_config=d_coef=0.1
Nota: Betas do otimizador sao sobrescritos com
--optimizer_beta1e--optimizer_beta2.
--train_batch_size¶
- O que: Batch size global padrão para o dataloader de treinamento. Um dataset primário pode sobrescrever o tamanho do seu microbatch do sampler com
train_batch_size; datasets sem override usam este valor. - Por que: Afeta consumo de memoria, qualidade de convergencia e velocidade. Batch maior tende a melhorar resultados, mas pode causar overfitting ou instabilidade e aumentar a duracao do treino. Experimente, mas em geral tente maximizar VRAM sem reduzir a velocidade.
- Configuração estática: O escalonamento da learning rate no trainer e outras configurações ou relatórios que exigem um único batch size fixo usam este valor global, mesmo quando datasets sobrescrevem seus tamanhos de microbatch.
- Acúmulo de gradientes: Quando os datasets selecionados têm tamanhos de microbatch resolvidos diferentes, o total global de amostras de uma atualização do otimizador é a soma dos tamanhos reais dos microbatches locais em todos os microsteps de acúmulo e ranks data-parallel. Um dataset selecionado sem override usa este padrão global naquele rank. A fórmula de batch global/efetivo continua sendo uma referência configurada, não a contagem exata por atualização. Gradient checkpointing não altera essa aritmética.
--gradient_accumulation_steps¶
- O que: Numero de passos a acumular antes de fazer backward/update, dividindo o trabalho em varios batches para economizar memoria ao custo de runtime maior.
- Por que: Util para modelos ou datasets maiores.
Nota: Nao habilite fused backward pass em otimizadores ao usar gradient accumulation.
--allow_dataset_oversubscription¶
- O que: Ajusta automaticamente
repeatsquando um bucket de aspecto e menor que o requisito de dimensionamento de buckets desse dataset. - Por que: Evita falhas quando o tamanho do dataset nao atende os requisitos minimos da configuracao multi-GPU.
- Como funciona:
- Calcula o requisito de dimensionamento de buckets de cada dataset:
train_batch_size resolvido do dataset × num_gpus × gradient_accumulation_steps - Se algum bucket de aspecto tiver menos samples que o requisito de dimensionamento de buckets desse dataset, aumenta
repeats - So aplica quando
repeatsnao esta configurado explicitamente no dataset - Registra um warning mostrando o ajuste e a justificativa
- Casos de uso:
- Datasets pequenos (< 100 imagens) com varias GPUs
- Experimentar batch sizes diferentes sem reconfigurar datasets
- Prototipar antes de coletar um dataset completo
- Exemplo: Com 25 imagens, 8 GPUs e
train_batch_size=4, o requisito de dimensionamento de buckets do dataset e 32. Esta flag definirarepeats=1para fornecer 50 samples (25 × 2). - Nota: Isso nao sobrescreve valores de
repeatsdefinidos manualmente no dataloader. Assim como--disable_bucket_pruning, esta flag oferece conveniencia sem comportamento surpreendente.
Veja o guia DATALOADER.md para mais detalhes sobre tamanho de dataset em treino multi-GPU.
🛠 Otimizacoes avancadas¶
--use_ema¶
- O que: Manter uma media movel exponencial (EMA) dos pesos e como reintegrar periodicamente o modelo em si mesmo.
- Por que: Pode melhorar estabilidade ao custo de mais recursos e um pequeno aumento no tempo de treino.
--ema_device¶
- Opcoes:
cpu,accelerator; padrao:cpu - O que: Escolhe onde os pesos EMA ficam entre atualizacoes.
- Por que: Manter EMA no acelerador atualiza mais rapido, mas custa VRAM. Manter no CPU reduz memoria, mas exige transferencias, a menos que
--ema_cpu_onlyesteja definido.
--ema_cpu_only¶
- O que: Impede que os pesos EMA sejam movidos de volta para o acelerador ao atualizar quando
--ema_device=cpu. - Por que: Economiza tempo de transferencia e VRAM para EMAs grandes. Nao tem efeito se
--ema_device=acceleratorpois os pesos ja ficam no acelerador.
--ema_foreach_disable¶
- O que: Desabilita o uso dos kernels
torch._foreach_*para atualizacoes EMA. - Por que: Alguns backends ou combinacoes de hardware tem problemas com foreach. Desabilitar volta para a implementacao escalar, com leve reducao de velocidade.
--ema_update_interval¶
- O que: Reduz a frequencia de atualizacao dos parametros EMA.
- Por que: Atualizar a cada passo e desnecessario. Por exemplo,
--ema_update_interval=100atualiza EMA a cada 100 passos, reduzindo overhead quando--ema_device=cpuou--ema_cpu_onlyestao habilitados.
--ema_decay¶
- O que: Controla o fator de suavizacao usado nas atualizacoes EMA.
- Por que: Valores maiores (ex.:
0.999) fazem a EMA responder lentamente e produzir pesos mais estaveis. Valores menores (ex.:0.99) se adaptam mais rapido.
--ema_warmup_steps¶
- O que: Copia os pesos atuais para a EMA antes do passo de otimizador configurado e depois muda diretamente para
--ema_decay. - Por que: Combina com receitas de treinamento que adiam a suavizacao EMA sem deixar a EMA congelada na inicializacao. O padrao
0preserva a rampa EMA existente do SimpleTuner.
--snr_gamma¶
- O que: Utiliza fator de perda ponderado por min-SNR.
- Por que: O gamma min-SNR pondera a perda de um timestep pela posicao no schedule. Timesteps muito ruidosos sao reduzidos, e timesteps menos ruidosos aumentados. O valor recomendado pelo paper original e 5, mas voce pode usar 1 a 20. Acima de 20, a matematica muda pouco. Um valor 1 e o mais forte.
--use_soft_min_snr¶
- O que: Treina usando um peso mais gradual na loss landscape.
- Por que: Em pixel diffusion, modelos degradam sem um agendamento de loss especifico. Isso e o caso do DeepFloyd, onde soft-min-snr-gamma foi quase obrigatorio. Em difusao latente, pode funcionar, mas em experimentos pequenos pode produzir resultados borrados.
--flow_cubic_schedule_weights¶
- O que: Amostra timesteps de flow matching de uma densidade definida por pesos nao negativos em pontos igualmente espacados entre 0 e 1. Aceita um array JSON ou valores separados por virgula. Zero ou um peso seleciona distribuicao uniforme, dois definem densidade linear e tres ou mais usam interpolacao cubica de Hermite monotona.
- Por que: Concentra o treinamento em regioes de ruido escolhidas sem reduzir o schedule a timesteps discretos. As convencoes nativas de timestep do modelo e o flow schedule shift configurado continuam sendo aplicados.
- Conflitos: Nao pode ser combinado com
--flow_use_uniform_schedule,--flow_use_beta_schedule,--flux_fast_scheduleou--flow_custom_timesteps. - Exemplo:
"flow_cubic_schedule_weights": [0.1, 1.0, 0.3, 2.0]
--diff2flow_enabled¶
- O que: Habilita a ponte Diffusion-to-Flow para modelos epsilon ou v-prediction.
- Por que: Permite que modelos treinados com objetivos de difusao padrao usem alvos flow-matching (noise - latents) sem mudar a arquitetura.
- Nota: Recurso experimental.
--diff2flow_loss¶
- O que: Treina com loss de Flow Matching em vez da loss de predicao nativa.
- Por que: Quando habilitado com
--diff2flow_enabled, calcula a loss contra o alvo flow (noise - latents) em vez do alvo nativo (epsilon ou velocity). - Nota: Requer
--diff2flow_enabled.
--mixflow_enabled¶
- O que: Habilita o pós-treinamento MixFlow com interpolação desacelerada para modelos Flow Matching.
- Por que: Altera a amostragem de timesteps e a velocidade de interpolação sem mudar a arquitetura do modelo.
- Nota: Não pode ser combinado com outros schedules de timestep. Consulte o guia do MixFlow.
--mixflow_gamma¶
- O que: Controla o intervalo da interpolação desacelerada do MixFlow.
- Intervalo:
0.0a1.0; padrão:0.8. - Nota:
0.0preserva a interpolação padrão, mas mantém a amostragem de timesteps do MixFlow.
--scheduled_sampling_max_step_offset¶
- O que: Numero maximo de passos para "roll out" durante o treinamento.
- Por que: Habilita Scheduled Sampling (Rollout), onde o modelo gera suas proprias entradas por alguns passos. Isso ajuda o modelo a corrigir seus erros e reduz exposure bias.
- Padrao: 0 (desabilitado). Defina um inteiro positivo (ex.: 5 ou 10) para habilitar.
--scheduled_sampling_strategy¶
- O que: Estrategia para escolher o offset do rollout.
- Opcoes:
uniform,biased_early,biased_late. - Padrao:
uniform. - Por que: Controla a distribuicao de comprimentos de rollout.
uniformamostra igualmente;biased_earlyfavorece rollouts curtos;biased_latefavorece rollouts longos.
--scheduled_sampling_probability¶
- O que: Probabilidade de aplicar um offset de rollout nao-zero para um sample.
- Padrao: 0.0.
- Por que: Controla com que frequencia scheduled sampling e aplicado. 0.0 desabilita mesmo se
max_step_offset> 0. 1.0 aplica em todos os samples.
--scheduled_sampling_prob_start¶
- O que: Probabilidade inicial de scheduled sampling no inicio do ramp.
- Padrao: 0.0.
--scheduled_sampling_prob_end¶
- O que: Probabilidade final de scheduled sampling no fim do ramp.
- Padrao: 0.5.
--scheduled_sampling_ramp_steps¶
- O que: Numero de passos para rampar a probabilidade de
prob_startparaprob_end. - Padrao: 0 (sem ramp).
--scheduled_sampling_start_step¶
- O que: Passo global para iniciar o ramp de scheduled sampling.
- Padrao: 0.0.
--scheduled_sampling_ramp_shape¶
- O que: Forma do ramp de probabilidade.
- Opcoes:
linear,cosine. - Padrao:
linear.
--scheduled_sampling_sampler¶
- O que: Solver usado para os passos de rollout.
- Opcoes:
unipc,euler,dpm. - Padrao:
unipc.
--scheduled_sampling_order¶
- O que: Ordem do solver usado no rollout.
- Padrao: 2.
--scheduled_sampling_reflexflow¶
- O que: Habilita melhorias estilo ReflexFlow (anti-drift + ponderacao compensada por frequencia) durante scheduled sampling para modelos flow-matching.
- Por que: Reduz exposure bias ao fazer rollout em modelos flow-matching ao adicionar regularizacao direcional e perda ponderada por viés.
- Padrao: Habilita automaticamente para modelos flow-matching quando
--scheduled_sampling_max_step_offset> 0; sobrescreva com--scheduled_sampling_reflexflow=false.
--scheduled_sampling_reflexflow_alpha¶
- O que: Fator de escala para o peso de compensacao por frequencia derivado do exposure bias.
- Padrao: 1.0.
- Por que: Valores maiores aumentam regioes com maior exposure bias durante o rollout em modelos flow-matching.
--scheduled_sampling_reflexflow_beta1¶
- O que: Peso para o regularizador anti-drift (direcional) do ReflexFlow.
- Padrao: 10.0.
- Por que: Controla o quao forte o modelo e incentivado a alinhar sua direcao prevista com o sample alvo limpo ao usar scheduled sampling em modelos flow-matching.
--scheduled_sampling_reflexflow_beta2¶
- O que: Peso para o termo de compensacao por frequencia (reponderacao de loss) do ReflexFlow.
- Padrao: 1.0.
- Por que: Escala a loss flow-matching reponderada, seguindo o knob β₂ descrito no paper ReflexFlow.
🎯 iREPA (Alinhamento de Representacoes Melhorado)¶
iREPA preserva a estrutura espacial com um projetor convolucional e normalizacao espacial por frame. Ele melhora CREPA para Transformers e U-REPA para UNets. Veja o guia iREPA.
--irepa_enabled¶
- Tipo: Flag booleana
- Padrao:
false - O que: Melhora um caminho CREPA ou U-REPA ativo com as operacoes espaciais do iREPA.
- Nota: Habilite tambem
crepa_enabledpara Transformer ouurepa_enabledpara UNet. - Modo de treinamento: Modelo completo ou LoRA PEFT padrao. LyCORIS nao consegue salvar o projetor auxiliar e nao e suportado.
--irepa_spatial_norm_alpha¶
- Tipo: Float
- Padrao:
0.6 - O que: Escala a subtracao da media das features do teacher antes da divisao pelo desvio padrao espacial.
- Nota:
0.6e a configuracao de referencia para latent diffusion;1.0centraliza totalmente cada canal.
--irepa_projector_kernel_size¶
- Tipo: Inteiro (
1,3,5ou7) - Padrao:
3 - O que: Define o kernel da convolucao espacial do projetor.
🎯 CREPA (Cross-frame Representation Alignment)¶
CREPA e uma tecnica de regularizacao para fine-tuning de modelos de difusao de video que melhora a consistencia temporal alinhando hidden states com features visuais pre-treinadas de frames adjacentes. Baseada no paper "Cross-Frame Representation Alignment for Fine-Tuning Video Diffusion Models".
--crepa_enabled¶
- O que: Habilita regularizacao CREPA durante o treinamento.
- Por que: Melhora a consistencia semantica entre frames ao alinhar hidden states do DiT com features DINOv2 de frames vizinhos.
- Padrao:
false - Nota: So se aplica a modelos de difusao baseados em Transformer (estilo DiT). Para modelos UNet (SDXL, SD1.5, Kolors), use U-REPA.
--crepa_block_index¶
- O que: Qual bloco transformer usar para alinhamento.
- Por que: O paper recomenda o bloco 8 para CogVideoX e o bloco 10 para Hunyuan Video. Blocos anteriores tendem a funcionar melhor por atuarem como "encoder" do DiT.
- Obrigatorio: Sim, quando CREPA esta habilitado.
--crepa_lambda¶
- O que: Peso da loss de alinhamento CREPA em relacao a loss principal.
- Por que: Controla o quanto a regularizacao influencia o treino. O paper usa 0.5 para CogVideoX e 1.0 para Hunyuan Video.
- Padrao:
0.5
--crepa_adjacent_distance¶
- O que: Distancia
dpara alinhamento de frames vizinhos. - Por que: Pela Equacao 6 do paper, \(K = \{f-d, f+d\}\) define quais frames alinhar. Com
d=1, cada frame alinha com seus vizinhos imediatos. - Padrao:
1
--crepa_adjacent_tau¶
- O que: Coeficiente de temperatura para o peso exponencial de distancia.
- Por que: Controla quao rapido o peso de alinhamento decai com a distancia via \(e^{-|k-f|/\tau}\). Valores menores focam mais nos vizinhos imediatos.
- Padrao:
1.0
--crepa_cumulative_neighbors¶
- O que: Usa modo cumulativo em vez de modo adjacente.
- Por que:
- Modo adjacente (padrao): Alinha apenas com frames na distancia exata
d(corresponde a \(K = \{f-d, f+d\}\)) - Modo cumulativo: Alinha com todos os frames de distancia 1 ate
d, oferecendo gradientes mais suaves - Padrao:
false
--crepa_normalize_neighbour_sum¶
- O que: Normaliza a soma dos vizinhos pela soma de pesos por frame.
- Por que: Mantem
crepa_alignment_scoreem [-1, 1] e deixa a escala da loss mais literal. Desvio experimental da equacao (6) do paper. - Padrao:
false
--crepa_normalize_by_frames¶
- O que: Normaliza a loss de alinhamento pelo numero de frames.
- Por que: Garante escala consistente da loss independentemente do comprimento do video. Desabilite para dar mais sinal a videos longos.
- Padrao:
true
--crepa_spatial_align¶
- O que: Usa interpolacao espacial quando o numero de tokens difere entre DiT e encoder.
- Por que: Hidden states do DiT e features DINOv2 podem ter resolucoes espaciais diferentes. Quando habilitado, interpolacao bilinear alinha espacialmente. Quando desabilitado, usa pooling global.
- Padrao:
true
--crepa_model¶
- O que: Qual encoder pre-treinado usar para extrair features.
- Por que: O paper usa DINOv2-g (ViT-Giant). Variantes DINO menores usam menos memoria, enquanto professores Qwen-VL podem fornecer features visuais semanticas mais fortes.
- Padrao:
dinov2_vitg14 - Opcoes:
dinov2_vitg14,dinov2_vitb14,dinov2_vits14,qwen3-vl-4b,qwen2.5-vl-7b, ou um id de modelo Qwen-VL do Hugging Face.
--crepa_encoder_frames_batch_size¶
- O que: Quantos frames o encoder externo processa em paralelo. Zero ou negativo para todos os frames do batch de uma vez. Se nao for divisor, o restante sera processado como batch menor.
- Por que: Encoders visuais externos podem processar frames em batches fatiados para reduzir VRAM ao custo de velocidade.
- Padrao:
-1
--crepa_use_backbone_features¶
- O que: Pula o encoder externo e alinha um bloco estudante a um bloco professor dentro do modelo de difusao.
- Por que: Evita carregar DINOv2 quando o backbone ja tem uma camada semantica mais forte para supervisionar.
- Padrao:
false
--crepa_feature_source¶
- O que: Seleciona de onde o CREPA obtem o sinal de professor.
- Por que: Use
encoderpara o caminho classico com encoder externo,backbonepara alinhamento interno bloco a bloco, ouself_flowpara o professor EMA com visao mais limpa usado no Self-Flow. - Opcoes:
encoder,backbone,self_flow - Padrao:
encoder
--crepa_self_flow¶
- O que: Alias booleano legado que ativa o modo Self-Flow.
- Por que: Configs antigas ainda podem usa-lo, mas configs novas devem preferir
crepa_feature_source=self_flow. - Padrao:
false - Nota: Entra em conflito com
crepa_use_backbone_featurese comcrepa_feature_sourceapontando para outro modo.
--crepa_self_flow_mask_ratio¶
- O que: Fracao de tokens que recebe o timestep alternativo no Self-Flow.
- Por que: Controla quanta assimetria de informacao existe entre tokens mais limpos e mais ruidosos. Valores altos fortalecem o sinal auto-supervisionado, mas podem desestabilizar o treino.
- Padrao:
0.1 - Faixa:
0.0a0.5
--crepa_teacher_block_index¶
- O que: Indice do bloco professor ao usar features do backbone ou Self-Flow.
- Por que: Permite alinhar um bloco estudante mais cedo a um bloco professor mais profundo sem encoder externo. No Self-Flow ele e exigido explicitamente para que o professor EMA leia uma camada semantica mais profunda.
- Padrao: Usa
crepa_block_indexse nao for fornecido no modo backbone; e obrigatorio no modo Self-Flow.
--crepa_encoder_image_size¶
- O que: Resolucao de entrada para o encoder.
- Por que: Modelos DINOv2 funcionam melhor na resolucao de treino. O modelo giant usa 518x518.
- Padrao:
518
--crepa_scheduler¶
- O que: Agendamento para decaimento do coeficiente CREPA durante o treinamento.
- Por que: Permite reduzir a forca da regularizacao CREPA conforme o treinamento progride, prevenindo overfitting nas features profundas do encoder.
- Opcoes:
constant,linear,cosine,polynomial - Padrao:
constant
--crepa_warmup_steps¶
- O que: Numero de passos para aumentar linearmente o peso CREPA de 0 ate
crepa_lambda. - Por que: Aquecimento gradual pode ajudar a estabilizar o treinamento inicial antes da regularizacao CREPA entrar em acao.
- Padrao:
0
--crepa_decay_steps¶
- O que: Total de passos para decaimento (apos warmup). Defina como 0 para decair durante todo o treinamento.
- Por que: Controla a duracao da fase de decaimento. O decaimento comeca apos o warmup completar.
- Padrao:
0(usamax_train_steps)
--crepa_lambda_end¶
- O que: Peso CREPA final apos o decaimento completar.
- Por que: Definir como 0 efetivamente desabilita o CREPA no final do treinamento, util para text2video onde CREPA pode causar artefatos.
- Padrao:
0.0
--crepa_power¶
- O que: Fator de potencia para decaimento polinomial. 1.0 = linear, 2.0 = quadratico, etc.
- Por que: Valores maiores causam decaimento inicial mais rapido que desacelera no final.
- Padrao:
1.0
--crepa_cutoff_step¶
- O que: Passo de corte rigido apos o qual o CREPA e desabilitado.
- Por que: Util para desabilitar o CREPA apos o modelo convergir no alinhamento temporal.
- Padrao:
0(sem corte baseado em passo)
--crepa_similarity_threshold¶
- O que: Limiar de EMA de similaridade no qual o corte CREPA e acionado.
- Por que: Quando a media movel exponencial do score de alinhamento (
crepa_alignment_score) atinge este valor, o CREPA e desabilitado para prevenir overfitting nas features profundas do encoder. Isto e particularmente util para treinamento text2video. O score pode passar de 1.0 secrepa_normalize_neighbour_sumnao estiver habilitado. - Padrao: None (desabilitado)
--crepa_similarity_ema_decay¶
- O que: Fator de decaimento da media movel exponencial para rastreamento de similaridade.
- Por que: Valores maiores fornecem rastreamento mais suave (0.99 ≈ janela de 100 passos), valores menores reagem mais rapido a mudancas.
- Padrao:
0.99
--crepa_threshold_mode¶
- O que: Comportamento quando o limiar de similaridade e atingido.
- Opcoes:
permanent(CREPA permanece desligado apos atingir o limiar),recoverable(CREPA reabilita se a similaridade cair) - Padrao:
permanent
Exemplo de configuracao¶
# Habilite CREPA para fine-tuning de video
crepa_enabled = true
crepa_block_index = 8 # Ajuste conforme seu modelo
crepa_lambda = 0.5
crepa_adjacent_distance = 1
crepa_adjacent_tau = 1.0
crepa_cumulative_neighbors = false
crepa_normalize_neighbour_sum = false
crepa_normalize_by_frames = true
crepa_spatial_align = true
crepa_model = "dinov2_vitg14" # ou "qwen3-vl-4b" para features visuais Qwen-VL
crepa_encoder_frames_batch_size = -1
crepa_use_backbone_features = false
# crepa_teacher_block_index = 16
crepa_encoder_image_size = 518
# Agendamento CREPA (opcional)
# crepa_scheduler = "cosine" # Tipo de decaimento: constant, linear, cosine, polynomial
# crepa_warmup_steps = 100 # Warmup antes do CREPA entrar em acao
# crepa_decay_steps = 1000 # Passos para decaimento (0 = treinamento inteiro)
# crepa_lambda_end = 0.0 # Peso final apos decaimento
# crepa_cutoff_step = 5000 # Passo de corte rigido (0 = desabilitado)
# crepa_similarity_threshold = 0.9 # Corte baseado em similaridade
# crepa_threshold_mode = "permanent" # permanent ou recoverable
🎯 U-REPA (Alinhamento de Representacoes para UNet)¶
U-REPA e uma tecnica de regularizacao para modelos de difusao baseados em UNet (SDXL, SD1.5, Kolors). Ela alinha as features do mid-block da UNet com features visuais pre-treinadas e adiciona uma loss de manifold para preservar a estrutura de similaridade relativa.
--urepa_enabled¶
- O que: Habilita U-REPA durante o treino.
- Por que: Adiciona alinhamento de representacoes para o mid-block da UNet usando um encoder visual congelado.
- Padrao:
false - Nota: So se aplica a modelos UNet (SDXL, SD1.5, Kolors).
--urepa_lambda¶
- O que: Peso da loss de alinhamento U-REPA em relacao a loss principal.
- Por que: Controla a forca da regularizacao.
- Padrao:
0.5
--urepa_manifold_weight¶
- O que: Peso da loss de manifold em relacao a loss de alinhamento.
- Por que: Prioriza a estrutura de similaridade relativa (padrao do paper: 3.0).
- Padrao:
3.0
--urepa_model¶
- O que: Identificador do torch hub para o encoder visual congelado.
- Por que: Default e DINOv2 ViT-G/14; modelos menores (ex.:
dinov2_vits14) sao mais rapidos. - Padrao:
dinov2_vitg14
--urepa_encoder_image_size¶
- O que: Resolucao de entrada para o preprocessamento do encoder.
- Por que: Use a resolucao nativa do encoder (518 para DINOv2 ViT-G/14; 224 para ViT-S/14).
- Padrao:
518
--urepa_use_tae¶
- O que: Usa Tiny AutoEncoder em vez do VAE completo para decodificar.
- Por que: Mais rapido e economiza VRAM, mas com menor qualidade de decodificacao.
- Padrao:
false
--urepa_scheduler¶
- O que: Agenda de decaimento do coeficiente U-REPA.
- Por que: Permite reduzir a forca da regularizacao ao longo do treino.
- Opcoes:
constant,linear,cosine,polynomial - Padrao:
constant
--urepa_warmup_steps¶
- O que: Numero de passos para aumentar linearmente o peso de 0 ate
urepa_lambda. - Por que: Warmup ajuda a estabilizar o inicio do treino.
- Padrao:
0
--urepa_decay_steps¶
- O que: Total de passos de decaimento (apos o warmup). 0 significa decair ao longo de todo o treino.
- Por que: Controla a duracao do decaimento.
- Padrao:
0(usamax_train_steps)
--urepa_lambda_end¶
- O que: Peso final do U-REPA apos o decaimento.
- Por que: 0 desativa efetivamente o U-REPA no fim do treino.
- Padrao:
0.0
--urepa_power¶
- O que: Expoente do decaimento polinomial. 1.0 = linear, 2.0 = quadratic, etc.
- Por que: Valores maiores decaem mais rapido no inicio e mais lento no fim.
- Padrao:
1.0
--urepa_cutoff_step¶
- O que: Passo de corte apos o qual o U-REPA e desativado.
- Por que: Util para desligar apos a convergencia do alinhamento.
- Padrao:
0(sem corte)
--urepa_similarity_threshold¶
- O que: Limiar de similaridade (EMA) para desativar U-REPA.
- Por que: Quando a media movel de
urepa_similarityatinge esse valor, o U-REPA e desativado para evitar overfitting. - Padrao: None (desativado)
--urepa_similarity_ema_decay¶
- O que: Fator de decaimento da media movel exponencial da similaridade.
- Por que: Valores maiores suavizam (0.99 ~ 100 passos), menores reagem mais rapido.
- Padrao:
0.99
--urepa_threshold_mode¶
- O que: Comportamento ao atingir o limiar.
- Opcoes:
permanent(desliga para sempre),recoverable(reativa se a similaridade cair) - Padrao:
permanent
Exemplo de configuracao¶
# Habilita U-REPA para fine-tuning de UNet (SDXL, SD1.5, Kolors)
urepa_enabled = true
urepa_lambda = 0.5
urepa_manifold_weight = 3.0
urepa_model = "dinov2_vitg14"
urepa_encoder_image_size = 518
urepa_use_tae = false
# U-REPA Scheduling (opcional)
# urepa_scheduler = "cosine" # Tipo de decaimento: constant, linear, cosine, polynomial
# urepa_warmup_steps = 100 # Warmup antes do U-REPA
# urepa_decay_steps = 1000 # Passos de decaimento (0 = treino inteiro)
# urepa_lambda_end = 0.0 # Peso final apos o decaimento
# urepa_cutoff_step = 5000 # Corte rigido (0 = desativado)
# urepa_similarity_threshold = 0.9 # Corte baseado em similaridade
# urepa_threshold_mode = "permanent" # permanent ou recoverable
🔄 Checkpointing e retomada¶
--checkpoint_step_interval (alias: --checkpointing_steps)¶
- O que: Intervalo em que checkpoints de estado de treino sao salvos (em passos).
- Por que: Util para retomar treinamento e para inferencia. A cada n iteracoes, um checkpoint parcial e salvo em
.safetensors, no layout do Diffusers.
Internal Guidance¶
Internal Guidance supervisiona um bloco inicial do diffusion transformer com o mesmo alvo de denoising da cabeça final. Consulte Internal Guidance.
--internal_guidance_enabled¶
- O que: Ativa a cabeça e a loss auxiliar.
- Suporte: Diffusion transformers com LoRA PEFT padrão ou treino completo. UNet, autoregressivo e LyCORIS são rejeitados.
- Padrão:
false
--internal_guidance_loss_weight¶
- O que: Multiplicador da loss intermediária.
- Padrão:
0.5; deve ser maior que zero.
--internal_guidance_block_index¶
- O que: Bloco transformer com índice zero-based.
- Padrão: Um quarto da profundidade.
--validation_internal_guidance_scale¶
- O que: Aplica
intermediate + scale * (final - intermediate)na validation. - Padrão:
1.0(desativado); a referência usa1.4.
Explorative Modeling (XM)¶
XM avalia varios candidatos de treino e retropropaga apenas o candidato que melhor explica cada amostra supervisionada ou bloco de tokens. Cada familia de modelo precisa implementar suporte para o alvo selecionado. Veja Explorative Modeling para o guia do usuário.
--xm_enabled¶
- O que: Habilita selecao de candidatos XM.
- Padrao:
false
--xm_candidate_count¶
- O que: Numero de ruidos ou rotas latentes candidatas por amostra.
- Padrao:
1; deve ser pelo menos2quando XM esta habilitado.
--xm_training_target¶
- O que: Tipo de candidato. Use
noisepara diffusion/flow eroutepara planners AR/RVQ. - Escolhas:
noise,route - Padrao:
noise
--xm_selection_scope¶
- O que: Seleciona vencedores por
sampleou porblockde tokens/frames. - Padrao:
sample
--xm_block_size¶
- O que: Tamanho do trecho de tokens ou frames para XM por blocos.
0usa toda a sequencia supervisionada. - Padrao:
0
NextLat¶
NextLat adiciona um pequeno preditor auxiliar que mapeia cada token oculto capturado para o proximo token oculto. Requer uma familia transformer que exponha hidden states pelo buffer do SimpleTuner. Veja NextLat para o guia do usuário.
--nextlat_enabled¶
- O que: Habilita predicao de hidden states NextLat.
- Padrao:
false
--nextlat_block_index¶
- O que: Bloco transformer zero-based a capturar.
- Padrao:
-1, que usa o ultimo bloco compativel.
--nextlat_weight¶
- O que: Multiplicador da loss auxiliar NextLat.
- Padrao:
0.0; deve ser maior que zero quando NextLat esta habilitado.
--nextlat_state_loss¶
- O que: Distancia para prever o proximo hidden state.
- Escolhas:
smooth_l1,mse - Padrao:
smooth_l1
--nextlat_kl_weight¶
- O que: Peso KL opcional quando a familia de modelo fornece uma cabeca de logits para hidden states previstos.
- Padrao:
0.0
🔁 LayerSync (Hidden State Self-Alignment)¶
LayerSync incentiva uma camada "estudante" a combinar com uma camada "professora" mais forte dentro do mesmo transformer, usando similaridade de cosseno sobre tokens ocultos.
--layersync_enabled¶
- O que: Habilita alinhamento LayerSync de hidden states entre dois blocos transformer do mesmo modelo.
- Notas: Aloca um buffer de hidden states; falha no startup se flags obrigatorias faltarem.
- Padrao:
false
--layersync_student_block¶
- O que: Indice do bloco transformer tratado como ancora estudante.
- Indexacao: Aceita profundidades 1-based do paper LayerSync ou IDs 0-based; a implementacao tenta
idx-1primeiro, depoisidx. - Obrigatorio: Sim quando LayerSync esta habilitado.
--layersync_teacher_block¶
- O que: Indice do bloco transformer tratado como alvo professor (pode ser mais profundo que o estudante).
- Indexacao: Mesma logica 1-based primeiro, depois fallback 0-based do bloco estudante.
- Padrao: Usa o bloco estudante quando omitido para que a loss vire auto-similaridade.
--layersync_lambda¶
- O que: Peso da loss de alinhamento por cosseno entre hidden states do estudante e professor (cosseno negativo).
- Efeito: Escala o regularizador auxiliar adicionado a loss base; valores maiores empurram tokens a alinhar mais fortemente.
- Nome upstream:
--reg-weightna base de codigo LayerSync original. - Obrigatorio: Deve ser > 0 quando LayerSync esta habilitado (caso contrario o treino aborta).
- Padrao:
0.2quando LayerSync esta habilitado (igual ao repo de referencia),0.0caso contrario.
Mapeamento de opcoes upstream (LayerSync → SimpleTuner):
- --encoder-depth → --layersync_student_block (aceita profundidade 1-based ou indice 0-based)
- --gt-encoder-depth → --layersync_teacher_block (1-based preferido; padrao estudante quando omitido)
- --reg-weight → --layersync_lambda
Notas: LayerSync sempre faz detach do hidden state professor antes da similaridade, como na implementacao de referencia. Depende de modelos que exponham hidden states (a maioria dos backbones transformer no SimpleTuner) e adiciona memoria por passo para o buffer; desabilite se a VRAM estiver apertada.
--checkpoint_epoch_interval¶
- O que: Roda checkpointing a cada N epocas completas.
- Por que: Complementa checkpoints por passo garantindo captura nas fronteiras de epoca, mesmo quando o numero de passos varia por amostragem multi-dataset.
--resume_from_checkpoint¶
- O que: Especifica se e de onde retomar o treinamento. Aceita
latest, um nome/caminho local de checkpoint ou um URI S3/R2. - Por que: Permite continuar de um estado salvo, manualmente ou do mais recente.
- Retomada remota: Forneca um URI completo (
s3://bucket/jobs/.../checkpoint-100) ou uma chave relativa ao bucket (jobs/.../checkpoint-100).latestso funciona comoutput_dirlocal. - Requisitos: A retomada remota precisa de uma entrada S3 em publishing_config (bucket + credenciais) que consiga ler o checkpoint.
- Notas: Checkpoints remotos devem incluir
checkpoint_manifest.json(gerado por execucoes recentes do SimpleTuner). Um checkpoint e composto de um subdiretoriounete opcionalmenteunet_ema. Ounetpode ser colocado em qualquer layout Diffusers SDXL para usar como modelo normal.
ℹ️ Modelos transformer como PixArt, SD3 ou Hunyuan usam os subdiretorios
transformeretransformer_ema.
--init_lora_step¶
- O que: Continua a contagem do passo global a partir do adapter somente de modelo carregado por
--init_lora. - Quando: Use somente quando o checkpoint completo do trainer nao estiver disponivel, mas os pesos LoRA tiverem sobrevivido.
- Inferencia automatica: Quando esta opcao e omitida, o SimpleTuner usa o metadata
global_stepde um arquivo safetensors local fornecido por--init_lora, quando presente. Um valor explicito, incluindo0, substitui o metadata. - Requisitos: Deve ser nao negativo e menor que
--max_train_steps; exige--init_lorae nao pode ser combinado com--resume_from_checkpoint. - Estado: A cadencia de checkpoints e validacao continua a partir desse passo, mas os estados do optimizer, sampler e RNG recomecam. Os schedules de learning rate
constanteconstant_with_warmupsao restaurados para o passo correspondente.
--init_lora_ema¶
- O que: Carrega o estado raw
ema_model.ptdo SimpleTuner associado a--init_lora. - Requisitos: Exige
--init_lorae--use_ema=true. - Nota: Espera o estado EMA raw salvo com o checkpoint, nao um arquivo safetensors LoRA EMA exportado.
--delete_invalid_checkpoints¶
- O que: Remove checkpoints locais que nao podem ser carregados ao retomar.
- Comportamento: Com
--resume_from_checkpoint=latest, o SimpleTuner remove checkpoints locais invalidos e tenta o proximo checkpoint mais recente. Checkpoints novos gravam um arquivo.guarddepois que os arquivos necessarios para retomada sao salvos, entao um checkpoint mais novo sem esse guard pode ser descartado quando existe um checkpoint anterior com guard. - Seguranca: Somente diretorios locais de checkpoint dentro de
output_dirsao removidos. Caminhos explicitos de checkpoint ainda levantam a falha original de carregamento depois da remocao. - Padrao:
false
--disk_low_threshold¶
- O que: Espaço mínimo livre em disco necessário antes de salvar checkpoints e compilar grafos com TorchInductor (incluindo recompilação).
- Por que: Detecta pouco espaço antecipadamente e aplica a ação configurada ao sistema de arquivos dos checkpoints ou do cache do compilador.
- Formato: String de tamanho como
100G,50M,1T,500K, ou bytes simples. - Padrao: Nenhum (funcionalidade desativada)
- Escopo: Cada processo que compila verifica
TORCHINDUCTOR_CACHE_DIR(ou o padrão do PyTorch) e umTRITON_CACHE_DIRseparado, quando configurado. É uma verificação prévia, não uma reserva: a compilação ainda pode esgotar o disco após iniciar, e a inicialização do backend pode escrever antes da verificação. Escolha um limite suficiente para compilar. As verificações não recuperam erros de falta de memória CUDA nem repetem compilações que falharam.
--disk_low_action¶
- O que: Acao a tomar quando o espaco em disco esta abaixo do limite.
- Opcoes:
stop,wait,script - Padrao:
stop - Comportamento:
stop: Encerra o treinamento imediatamente com uma mensagem de erro.wait: Faz loop a cada 30 segundos ate o espaco ficar disponivel. Pode esperar indefinidamente.script: Executa o script especificado por--disk_low_scriptpara liberar espaco.
--disk_low_script¶
- O que: Caminho para um script de limpeza a executar quando o espaco em disco esta baixo.
- Por que: Permite limpeza automatizada (ex: remover checkpoints antigos, limpar cache) quando o espaco em disco esta baixo.
- Notas: Usado apenas quando
--disk_low_action=script. O script deve ser executavel. Se o script falhar ou nao liberar espaco suficiente, o treinamento parara com um erro. - Padrao: Nenhum
📊 Logging e monitoramento¶
--logging_dir¶
- O que: Diretorio para logs do TensorBoard.
- Por que: Permite monitorar progresso e metricas de performance.
--report_to¶
- O que: Especifica a plataforma para reportar resultados e logs.
- Por que: Habilita monitoramento local ou externo.
simpletunergrava JSONL, manifesto, metadados de validacao e um relatorio HTML autonomo emoutput_dir. Use valores separados por virgula para multiplos trackers. - Opcoes: simpletuner, wandb, tensorboard, swanlab, comet_ml, custom-tracker, none
--validation_image_format¶
- O que: Formato das imagens salvas em
output_dir/validation_images. - Opcoes: png, webp, jpeg
- Padrao: png
--validation_image_quality¶
- O que: Qualidade de WebP e JPEG, de 1 a 100.
- Padrao: 90. Ignorado para PNG.
Variaveis de configuracao do ambiente¶
As opcoes acima se aplicam em grande parte ao config.json — mas algumas entradas devem ser definidas no config.env.
TRAINING_NUM_PROCESSESdeve ser definido para o numero de GPUs no sistema. Para a maioria dos casos, isso basta para habilitar treino DDP. Usenum_processesnoconfig.jsonse preferir nao usarconfig.env.TRAINING_DYNAMO_BACKENDpadrao eno, mas pode ser definido para qualquer backend suportado do torch.compile (ex.:inductor,aot_eager,cudagraphs) e combinado com--dynamo_mode,--dynamo_fullgraphou--dynamo_use_regional_compilationpara ajuste fino.SIMPLETUNER_LOG_LEVELpadrao eINFO, mas pode ser definido paraDEBUGpara adicionar mais informacoes de issues nodebug.log.SIMPLETUNER_ALLOW_MODIFYING_BSZ=1ignora a verificação de incompatibilidade de batch_size do sampler ao retomar de um checkpoint. Use apenas se intencionalmente alteroutrain_batch_sizeentre execuções e aceita o risco de estado inconsistente do sampler. Equivalente a--i_know_what_i_am_doing.VENV_PATHpode ser definido para o caminho do seu virtual env python, se nao estiver no local tipico.venv.ACCELERATE_EXTRA_ARGSpode ficar vazio ou conter argumentos extras como--multi_gpuou flags especificas do FSDP.
Este e um panorama basico para ajudar voce a comecar. Para uma lista completa de opcoes e explicacoes mais detalhadas, consulte a especificacao completa:
Referência da linha de comando¶
Uso¶
usage: train.py [-h] --model_family
{kolors,auraflow,omnigen,flux,deepfloyd,cosmos2image,sana,qwen_image,pixart_sigma,sdxl,sd1x,sd2x,wan,hidream,sd3,lumina2,ltxvideo}
[--model_flavour MODEL_FLAVOUR] [--controlnet [CONTROLNET]]
[--pretrained_model_name_or_path PRETRAINED_MODEL_NAME_OR_PATH]
--output_dir OUTPUT_DIR [--logging_dir LOGGING_DIR]
--model_type {full,lora} [--seed SEED]
[--resolution RESOLUTION]
[--resume_from_checkpoint RESUME_FROM_CHECKPOINT]
[--prediction_type {epsilon,v_prediction,sample,flow_matching,flow_map}]
[--pretrained_vae_model_name_or_path PRETRAINED_VAE_MODEL_NAME_OR_PATH]
[--vae_dtype {default,fp32,fp16,bf16}]
[--vae_cache_ondemand [VAE_CACHE_ONDEMAND]]
[--accelerator_cache_clear_interval ACCELERATOR_CACHE_CLEAR_INTERVAL]
[--aspect_bucket_rounding {1,2,3,4,5,6,7,8,9}]
[--base_model_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}]
[--text_encoder_1_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}]
[--text_encoder_2_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}]
[--text_encoder_3_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}]
[--text_encoder_4_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}]
[--gradient_checkpointing_interval GRADIENT_CHECKPOINTING_INTERVAL]
[--gradient_checkpointing_segment_stride GRADIENT_CHECKPOINTING_SEGMENT_STRIDE]
[--offload_during_startup [OFFLOAD_DURING_STARTUP]]
[--quantize_via {cpu,accelerator,pipeline}]
[--quantization_config QUANTIZATION_CONFIG]
[--fuse_qkv_projections [FUSE_QKV_PROJECTIONS]]
[--control [CONTROL]]
[--controlnet_custom_config CONTROLNET_CUSTOM_CONFIG]
[--controlnet_model_name_or_path CONTROLNET_MODEL_NAME_OR_PATH]
[--tread_config TREAD_CONFIG]
[--pretrained_transformer_model_name_or_path PRETRAINED_TRANSFORMER_MODEL_NAME_OR_PATH]
[--pretrained_transformer_subfolder PRETRAINED_TRANSFORMER_SUBFOLDER]
[--pretrained_unet_model_name_or_path PRETRAINED_UNET_MODEL_NAME_OR_PATH]
[--pretrained_unet_subfolder PRETRAINED_UNET_SUBFOLDER]
[--pretrained_t5_model_name_or_path PRETRAINED_T5_MODEL_NAME_OR_PATH]
[--pretrained_gemma_model_name_or_path PRETRAINED_GEMMA_MODEL_NAME_OR_PATH]
[--qwen_text_encoder_model_name_or_path QWEN_TEXT_ENCODER_MODEL_NAME_OR_PATH]
[--revision REVISION] [--variant VARIANT]
[--base_model_default_dtype {bf16,fp32}]
[--unet_attention_slice [UNET_ATTENTION_SLICE]]
[--num_train_epochs NUM_TRAIN_EPOCHS]
[--max_train_steps MAX_TRAIN_STEPS]
[--train_batch_size TRAIN_BATCH_SIZE]
[--learning_rate LEARNING_RATE] --optimizer
{adamw_bf16,ao-adamw8bit,ao-adamw4bit,ao-adamfp8,ao-adamwfp8,adamw_schedulefree,adamw_schedulefree+aggressive,adamw_schedulefree+no_kahan,optimi-stableadamw,optimi-adamw,optimi-lion,optimi-radam,optimi-ranger,optimi-adan,optimi-adam,optimi-sgd,soap,prodigy}
[--optimizer_config OPTIMIZER_CONFIG]
[--lr_scheduler {linear,sine,cosine,cosine_with_restarts,polynomial,constant,constant_with_warmup}]
[--gradient_accumulation_steps GRADIENT_ACCUMULATION_STEPS]
[--lr_warmup_steps LR_WARMUP_STEPS]
[--checkpoints_total_limit CHECKPOINTS_TOTAL_LIMIT]
[--gradient_checkpointing [GRADIENT_CHECKPOINTING]]
[--train_text_encoder [TRAIN_TEXT_ENCODER]]
[--text_encoder_lr TEXT_ENCODER_LR]
[--lr_num_cycles LR_NUM_CYCLES] [--lr_power LR_POWER]
[--use_soft_min_snr [USE_SOFT_MIN_SNR]] [--use_ema [USE_EMA]]
[--ema_device {accelerator,cpu}]
[--ema_cpu_only [EMA_CPU_ONLY]]
[--ema_update_interval EMA_UPDATE_INTERVAL]
[--ema_foreach_disable [EMA_FOREACH_DISABLE]]
[--ema_decay EMA_DECAY] [--lora_rank LORA_RANK]
[--lora_alpha LORA_ALPHA] [--lora_type {standard,lycoris}]
[--lora_dropout LORA_DROPOUT]
[--lora_init_type {default,gaussian,loftq,olora,pissa}]
[--peft_lora_mode {standard,singlora}]
[--peft_lora_target_modules PEFT_LORA_TARGET_MODULES]
[--singlora_ramp_up_steps SINGLORA_RAMP_UP_STEPS]
[--init_lora INIT_LORA] [--init_lora_step INIT_LORA_STEP]
[--init_lora_ema INIT_LORA_EMA]
[--lycoris_config LYCORIS_CONFIG]
[--init_lokr_norm INIT_LOKR_NORM]
[--flux_lora_target {mmdit,context,context+ffs,all,all+ffs,ai-toolkit,tiny,nano,controlnet,all+ffs+embedder,all+ffs+embedder+controlnet}]
[--use_dora [USE_DORA]]
[--resolution_type {pixel,area,pixel_area}]
--data_backend_config DATA_BACKEND_CONFIG
[--caption_strategy {filename,textfile,instance_prompt,parquet}]
[--conditioning_multidataset_sampling {combined,random}]
[--instance_prompt INSTANCE_PROMPT]
[--parquet_caption_column PARQUET_CAPTION_COLUMN]
[--parquet_filename_column PARQUET_FILENAME_COLUMN]
[--ignore_missing_files [IGNORE_MISSING_FILES]]
[--vae_cache_scan_behaviour {recreate,sync}]
[--vae_enable_slicing [VAE_ENABLE_SLICING]]
[--vae_enable_tiling [VAE_ENABLE_TILING]]
[--vae_enable_patch_conv [VAE_ENABLE_PATCH_CONV]]
[--vae_batch_size VAE_BATCH_SIZE]
[--caption_dropout_probability CAPTION_DROPOUT_PROBABILITY]
[--tokenizer_max_length TOKENIZER_MAX_LENGTH]
[--validation_step_interval VALIDATION_STEP_INTERVAL]
[--validation_epoch_interval VALIDATION_EPOCH_INTERVAL]
[--validate_after_step VALIDATE_AFTER_STEP]
[--validate_after_epoch VALIDATE_AFTER_EPOCH]
[--disable_benchmark [DISABLE_BENCHMARK]]
[--validation_prompt VALIDATION_PROMPT]
[--validation_input VALIDATION_INPUT]
[--num_validation_images NUM_VALIDATION_IMAGES]
[--num_eval_images NUM_EVAL_IMAGES]
[--eval_steps_interval EVAL_STEPS_INTERVAL]
[--eval_epoch_interval EVAL_EPOCH_INTERVAL]
[--eval_timesteps EVAL_TIMESTEPS]
[--eval_dataset_pooling [EVAL_DATASET_POOLING]]
[--evaluation_type {none,clip}]
[--pretrained_evaluation_model_name_or_path PRETRAINED_EVALUATION_MODEL_NAME_OR_PATH]
[--validation_guidance VALIDATION_GUIDANCE]
[--validation_num_inference_steps VALIDATION_NUM_INFERENCE_STEPS]
[--validation_on_startup [VALIDATION_ON_STARTUP]]
[--validation_using_datasets [VALIDATION_USING_DATASETS]]
[--validation_torch_compile [VALIDATION_TORCH_COMPILE]]
[--validation_guidance_real VALIDATION_GUIDANCE_REAL]
[--validation_no_cfg_until_timestep VALIDATION_NO_CFG_UNTIL_TIMESTEP]
[--validation_negative_prompt VALIDATION_NEGATIVE_PROMPT]
[--validation_randomize [VALIDATION_RANDOMIZE]]
[--validation_seed VALIDATION_SEED]
[--validation_disable [VALIDATION_DISABLE]]
[--validation_prompt_library [VALIDATION_PROMPT_LIBRARY]]
[--user_prompt_library USER_PROMPT_LIBRARY]
[--eval_dataset_id EVAL_DATASET_ID]
[--validation_stitch_input_location {left,right}]
[--validation_guidance_rescale VALIDATION_GUIDANCE_RESCALE]
[--validation_disable_unconditional [VALIDATION_DISABLE_UNCONDITIONAL]]
[--validation_guidance_skip_layers VALIDATION_GUIDANCE_SKIP_LAYERS]
[--validation_guidance_skip_layers_start VALIDATION_GUIDANCE_SKIP_LAYERS_START]
[--validation_guidance_skip_layers_stop VALIDATION_GUIDANCE_SKIP_LAYERS_STOP]
[--validation_guidance_skip_scale VALIDATION_GUIDANCE_SKIP_SCALE]
[--validation_lycoris_strength VALIDATION_LYCORIS_STRENGTH]
[--validation_noise_scheduler {ddim,ddpm,euler,euler-a,unipc,dpm++,perflow}]
[--validation_num_video_frames VALIDATION_NUM_VIDEO_FRAMES]
[--validation_audio_only [VALIDATION_AUDIO_ONLY]]
[--validation_resolution VALIDATION_RESOLUTION]
[--validation_seed_source {cpu,gpu}]
[--i_know_what_i_am_doing [I_KNOW_WHAT_I_AM_DOING]]
[--flow_sigmoid_scale FLOW_SIGMOID_SCALE]
[--flux_fast_schedule [FLUX_FAST_SCHEDULE]]
[--flow_use_uniform_schedule [FLOW_USE_UNIFORM_SCHEDULE]]
[--flow_use_beta_schedule [FLOW_USE_BETA_SCHEDULE]]
[--flow_beta_schedule_alpha FLOW_BETA_SCHEDULE_ALPHA]
[--flow_beta_schedule_beta FLOW_BETA_SCHEDULE_BETA]
[--flow_cubic_schedule_weights FLOW_CUBIC_SCHEDULE_WEIGHTS]
[--flow_schedule_shift FLOW_SCHEDULE_SHIFT]
[--flow_schedule_auto_shift [FLOW_SCHEDULE_AUTO_SHIFT]]
[--mixflow_enabled [MIXFLOW_ENABLED]]
[--mixflow_gamma MIXFLOW_GAMMA]
[--audio_flow_schedule_shift AUDIO_FLOW_SCHEDULE_SHIFT]
[--flow_custom_timesteps FLOW_CUSTOM_TIMESTEPS]
[--flow_timesteps_mode {fixed-list,round-robin}]
[--flux_guidance_mode {constant,random-range}]
[--flux_attention_masked_training [FLUX_ATTENTION_MASKED_TRAINING]]
[--flux_guidance_value FLUX_GUIDANCE_VALUE]
[--flux_guidance_min FLUX_GUIDANCE_MIN]
[--flux_guidance_max FLUX_GUIDANCE_MAX]
[--t5_padding {zero,unmodified}]
[--sd3_clip_uncond_behaviour {empty_string,zero}]
[--sd3_t5_uncond_behaviour {empty_string,zero}]
[--soft_min_snr_sigma_data SOFT_MIN_SNR_SIGMA_DATA]
[--mixed_precision {no,fp16,bf16,fp8}]
[--attention_mechanism {diffusers,xformers,flash-attn,flash-attn-2,flash-attn-3,flash-attn-3-varlen,flex,kohaku-fa,kohaku-fa-auto,metal-flash-attention,metal-flash-attention-int8,metal-flash-attention-int4,cudnn,native-efficient,native-flash,native-math,native-npu,native-xla,sla,sageattention,sageattention-int8-fp16-triton,sageattention-int8-fp16-cuda,sageattention-int8-fp8-cuda}]
[--sageattention_usage {training,inference,training+inference}]
[--disable_tf32 [DISABLE_TF32]]
[--set_grads_to_none [SET_GRADS_TO_NONE]]
[--noise_offset NOISE_OFFSET]
[--noise_offset_probability NOISE_OFFSET_PROBABILITY]
[--input_perturbation INPUT_PERTURBATION]
[--input_perturbation_steps INPUT_PERTURBATION_STEPS]
[--lr_end LR_END] [--lr_scale [LR_SCALE]]
[--lr_scale_sqrt [LR_SCALE_SQRT]]
[--strict_epoch_limit [STRICT_EPOCH_LIMIT]]
[--freeze_encoder_before FREEZE_ENCODER_BEFORE]
[--freeze_encoder_after FREEZE_ENCODER_AFTER]
[--freeze_encoder_strategy {before,between,after}]
[--layer_freeze_strategy {none,bitfit}]
[--fully_unload_text_encoder [FULLY_UNLOAD_TEXT_ENCODER]]
[--save_text_encoder [SAVE_TEXT_ENCODER]]
[--text_encoder_limit TEXT_ENCODER_LIMIT]
[--prepend_instance_prompt [PREPEND_INSTANCE_PROMPT]]
[--only_instance_prompt [ONLY_INSTANCE_PROMPT]]
[--data_aesthetic_score DATA_AESTHETIC_SCORE]
[--delete_unwanted_images [DELETE_UNWANTED_IMAGES]]
[--delete_problematic_images [DELETE_PROBLEMATIC_IMAGES]]
[--disable_bucket_pruning [DISABLE_BUCKET_PRUNING]]
[--disable_segmented_timestep_sampling [DISABLE_SEGMENTED_TIMESTEP_SAMPLING]]
[--preserve_data_backend_cache [PRESERVE_DATA_BACKEND_CACHE]]
[--override_dataset_config [OVERRIDE_DATASET_CONFIG]]
[--cache_dir CACHE_DIR] [--cache_dir_text CACHE_DIR_TEXT]
[--text_cache_ondemand [TEXT_CACHE_ONDEMAND]]
[--text_cache_disable [TEXT_CACHE_DISABLE]]
[--cache_dir_vae CACHE_DIR_VAE]
[--compress_disk_cache [COMPRESS_DISK_CACHE]]
[--aspect_bucket_disable_rebuild [ASPECT_BUCKET_DISABLE_REBUILD]]
[--keep_vae_loaded [KEEP_VAE_LOADED]]
[--skip_file_discovery SKIP_FILE_DISCOVERY]
[--data_backend_sampling {uniform,auto-weighting}]
[--image_processing_batch_size IMAGE_PROCESSING_BATCH_SIZE]
[--write_batch_size WRITE_BATCH_SIZE]
[--read_batch_size READ_BATCH_SIZE]
[--text_encoder_batch_size TEXT_ENCODER_BATCH_SIZE]
[--enable_multiprocessing [ENABLE_MULTIPROCESSING]]
[--max_workers MAX_WORKERS]
[--aws_max_pool_connections AWS_MAX_POOL_CONNECTIONS]
[--torch_num_threads TORCH_NUM_THREADS]
[--dataloader_prefetch [DATALOADER_PREFETCH]]
[--dataloader_prefetch_qlen DATALOADER_PREFETCH_QLEN]
[--dataloader_prefetch_device_threshold_mb DATALOADER_PREFETCH_DEVICE_THRESHOLD_MB]
[--aspect_bucket_worker_count ASPECT_BUCKET_WORKER_COUNT]
[--aspect_bucket_alignment {8,16,24,32,64}]
[--minimum_image_size MINIMUM_IMAGE_SIZE]
[--maximum_image_size MAXIMUM_IMAGE_SIZE]
[--target_downsample_size TARGET_DOWNSAMPLE_SIZE]
[--max_upscale_threshold MAX_UPSCALE_THRESHOLD]
[--metadata_update_interval METADATA_UPDATE_INTERVAL]
[--debug_aspect_buckets [DEBUG_ASPECT_BUCKETS]]
[--debug_dataset_loader [DEBUG_DATASET_LOADER]]
[--print_filenames [PRINT_FILENAMES]]
[--print_sampler_statistics [PRINT_SAMPLER_STATISTICS]]
[--timestep_bias_strategy {earlier,later,range,none}]
[--timestep_bias_begin TIMESTEP_BIAS_BEGIN]
[--timestep_bias_end TIMESTEP_BIAS_END]
[--timestep_bias_multiplier TIMESTEP_BIAS_MULTIPLIER]
[--timestep_bias_portion TIMESTEP_BIAS_PORTION]
[--training_scheduler_timestep_spacing {leading,linspace,trailing}]
[--inference_scheduler_timestep_spacing {leading,linspace,trailing}]
[--loss_type {l2,huber,smooth_l1}]
[--huber_schedule {snr,exponential,constant}]
[--huber_c HUBER_C] [--snr_gamma SNR_GAMMA]
[--masked_loss_probability MASKED_LOSS_PROBABILITY]
[--hidream_use_load_balancing_loss [HIDREAM_USE_LOAD_BALANCING_LOSS]]
[--hidream_load_balancing_loss_weight HIDREAM_LOAD_BALANCING_LOSS_WEIGHT]
[--adam_beta1 ADAM_BETA1] [--adam_beta2 ADAM_BETA2]
[--optimizer_beta1 OPTIMIZER_BETA1]
[--optimizer_beta2 OPTIMIZER_BETA2]
[--optimizer_cpu_offload_method {none}]
[--gradient_precision {unmodified,fp32}]
[--adam_weight_decay ADAM_WEIGHT_DECAY]
[--adam_epsilon ADAM_EPSILON] [--prodigy_steps PRODIGY_STEPS]
[--max_grad_norm MAX_GRAD_NORM]
[--grad_clip_method {value,norm}]
[--optimizer_offload_gradients [OPTIMIZER_OFFLOAD_GRADIENTS]]
[--fuse_optimizer [FUSE_OPTIMIZER]]
[--optimizer_release_gradients [OPTIMIZER_RELEASE_GRADIENTS]]
[--push_to_hub [PUSH_TO_HUB]]
[--push_to_hub_background [PUSH_TO_HUB_BACKGROUND]]
[--push_checkpoints_to_hub [PUSH_CHECKPOINTS_TO_HUB]]
[--publishing_config PUBLISHING_CONFIG]
[--hub_model_id HUB_MODEL_ID]
[--model_card_private [MODEL_CARD_PRIVATE]]
[--model_card_safe_for_work [MODEL_CARD_SAFE_FOR_WORK]]
[--model_card_note MODEL_CARD_NOTE]
[--model_card_base_model MODEL_CARD_BASE_MODEL]
[--modelspec_comment MODELSPEC_COMMENT]
[--report_to {simpletuner,tensorboard,wandb,swanlab,comet_ml,custom-tracker,none}]
[--checkpoint_step_interval CHECKPOINT_STEP_INTERVAL]
[--checkpoint_epoch_interval CHECKPOINT_EPOCH_INTERVAL]
[--checkpointing_rolling_steps CHECKPOINTING_ROLLING_STEPS]
[--checkpointing_use_tempdir [CHECKPOINTING_USE_TEMPDIR]]
[--delete_invalid_checkpoints [DELETE_INVALID_CHECKPOINTS]]
[--checkpoints_rolling_total_limit CHECKPOINTS_ROLLING_TOTAL_LIMIT]
[--tracker_run_name TRACKER_RUN_NAME]
[--tracker_project_name TRACKER_PROJECT_NAME]
[--tracker_image_layout {gallery,table}]
[--enable_watermark [ENABLE_WATERMARK]]
[--framerate FRAMERATE]
[--seed_for_each_device [SEED_FOR_EACH_DEVICE]]
[--snr_weight SNR_WEIGHT]
[--rescale_betas_zero_snr [RESCALE_BETAS_ZERO_SNR]]
[--webhook_config WEBHOOK_CONFIG]
[--webhook_reporting_interval WEBHOOK_REPORTING_INTERVAL]
[--distillation_method {lcm,dcm,dmd,perflow,flow_dpo,anyflow,assistant_lora,h3_drift,self_transcendence}]
[--distillation_config DISTILLATION_CONFIG]
[--ema_validation {none,ema_only,comparison}]
[--local_rank LOCAL_RANK] [--ltx_train_mode {t2v,i2v}]
[--ltx_i2v_prob LTX_I2V_PROB]
[--ltx_partial_noise_fraction LTX_PARTIAL_NOISE_FRACTION]
[--ltx_protect_first_frame [LTX_PROTECT_FIRST_FRAME]]
[--offload_param_path OFFLOAD_PARAM_PATH]
[--offset_noise [OFFSET_NOISE]]
[--quantize_activations [QUANTIZE_ACTIVATIONS]]
[--refiner_training [REFINER_TRAINING]]
[--refiner_training_invert_schedule [REFINER_TRAINING_INVERT_SCHEDULE]]
[--refiner_training_strength REFINER_TRAINING_STRENGTH]
[--sdxl_refiner_uses_full_range [SDXL_REFINER_USES_FULL_RANGE]]
[--sana_complex_human_instruction SANA_COMPLEX_HUMAN_INSTRUCTION]
The following SimpleTuner command-line options are available:
Argumentos¶
options:
-h, --help show this help message and exit
--model_family {kolors,auraflow,omnigen,flux,deepfloyd,cosmos2image,sana,qwen_image,pixart_sigma,sdxl,sd1x,sd2x,wan,hidream,sd3,lumina2,ltxvideo,ace_step,heartmula}
The base model architecture family to train
--model_flavour MODEL_FLAVOUR
Specific variant of the selected model family.
Os flavours de ACE-Step são `base`, `v15-turbo`,
`v15-base` e `v15-sft`. Os flavours v1.5 suportam
treinamento e validacao de audio integrada, e exigem
`--trust_remote_code` para o repositorio upstream.
--controlnet [CONTROLNET]
Train ControlNet (full or LoRA) branches alongside the
primary network.
--pretrained_model_name_or_path PRETRAINED_MODEL_NAME_OR_PATH
Optional override of the model checkpoint. Leave blank
to use the default path for the selected model
flavour.
--output_dir OUTPUT_DIR
Directory where model checkpoints and logs will be
saved
--logging_dir LOGGING_DIR
Directory for TensorBoard logs
--model_type {full,lora}
Choose between full model training or LoRA adapter
training
--seed SEED Seed used for deterministic training behaviour
--resolution RESOLUTION
Resolution for training images
--resume_from_checkpoint RESUME_FROM_CHECKPOINT
Select checkpoint to resume training from
--prediction_type {epsilon,v_prediction,sample,flow_matching,flow_map}
The parameterization type for the diffusion model
--pretrained_vae_model_name_or_path PRETRAINED_VAE_MODEL_NAME_OR_PATH
Path to pretrained VAE model
--vae_dtype {default,fp32,fp16,bf16}
Precision for VAE encoding/decoding. Lower precision
saves memory.
--vae_cache_ondemand [VAE_CACHE_ONDEMAND]
Process VAE latents during training instead of
precomputing them
--vae_cache_disable [VAE_CACHE_DISABLE]
Implicitly enables on-demand caching and disables
writing embeddings to disk.
--accelerator_cache_clear_interval ACCELERATOR_CACHE_CLEAR_INTERVAL
Clear the cache from VRAM every X steps to prevent
memory leaks
--aspect_bucket_rounding {1,2,3,4,5,6,7,8,9}
Number of decimal places to round aspect ratios to for
bucket creation
--base_model_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}
Precision for loading the base model. Lower precision
saves memory.
--text_encoder_1_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}
Precision for text encoders. Lower precision saves
memory.
--text_encoder_2_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}
Precision for text encoders. Lower precision saves
memory.
--text_encoder_3_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}
Precision for text encoders. Lower precision saves
memory.
--text_encoder_4_precision {no_change,int8-quanto,int4-quanto,int2-quanto,int8-torchao,int8dq-torchao,int8dq-int4-torchao,nf4-bnb,int4-torchao,fp8-quanto,fp8uz-quanto,fp8-native,fp8-torchao,fp8wo-torchao,fp8-int4-torchao,fp8-transformerengine}
Precision for text encoders. Lower precision saves
memory.
--gradient_checkpointing_interval GRADIENT_CHECKPOINTING_INTERVAL
Checkpoint every N transformer blocks
--gradient_checkpointing_segment_stride GRADIENT_CHECKPOINTING_SEGMENT_STRIDE
Start a checkpointed segment every N transformer blocks
--offload_during_startup [OFFLOAD_DURING_STARTUP]
Offload text encoders to CPU during VAE caching
--quantize_via {cpu,accelerator,pipeline}
Where to perform model quantization
--quantization_config QUANTIZATION_CONFIG
JSON or file path describing Diffusers quantization
config for pipeline quantization
--fuse_qkv_projections [FUSE_QKV_PROJECTIONS]
Enables Flash Attention 3 when supported; otherwise
falls back to PyTorch SDPA.
--control [CONTROL] Enable channel-wise control style training
--controlnet_custom_config CONTROLNET_CUSTOM_CONFIG
Custom configuration for ControlNet models
--controlnet_model_name_or_path CONTROLNET_MODEL_NAME_OR_PATH
Path to ControlNet model weights to preload
--tread_config TREAD_CONFIG
Configuration for TREAD training method
--diffusion_blocks_config DIFFUSION_BLOCKS_CONFIG
Configuration for DiffusionBlocks training
--pretrained_transformer_model_name_or_path PRETRAINED_TRANSFORMER_MODEL_NAME_OR_PATH
Path to pretrained transformer model
--pretrained_transformer_subfolder PRETRAINED_TRANSFORMER_SUBFOLDER
Subfolder containing transformer model weights
--pretrained_unet_model_name_or_path PRETRAINED_UNET_MODEL_NAME_OR_PATH
Path to pretrained UNet model
--pretrained_unet_subfolder PRETRAINED_UNET_SUBFOLDER
Subfolder containing UNet model weights
--pretrained_t5_model_name_or_path PRETRAINED_T5_MODEL_NAME_OR_PATH
Path to pretrained T5 model
--pretrained_gemma_model_name_or_path PRETRAINED_GEMMA_MODEL_NAME_OR_PATH
Path to pretrained Gemma model
--qwen_text_encoder_model_name_or_path QWEN_TEXT_ENCODER_MODEL_NAME_OR_PATH
Path to pretrained Qwen text encoder model
--revision REVISION Git branch/tag/commit for model version
--variant VARIANT Model variant (e.g., fp16, bf16)
--base_model_default_dtype {bf16,fp32}
Default precision for quantized base model weights
--unet_attention_slice [UNET_ATTENTION_SLICE]
Enable attention slicing for SDXL UNet
--num_train_epochs NUM_TRAIN_EPOCHS
Number of times to iterate through the entire dataset
--max_train_steps MAX_TRAIN_STEPS
Maximum number of training steps (0 = use epochs
instead)
--train_batch_size TRAIN_BATCH_SIZE
Number of samples processed per forward/backward pass
(per device).
--learning_rate LEARNING_RATE
Base learning rate for training
--optimizer {adamw_bf16,ao-adamw8bit,ao-adamw4bit,ao-adamfp8,ao-adamwfp8,adamw_schedulefree,adamw_schedulefree+aggressive,adamw_schedulefree+no_kahan,optimi-stableadamw,optimi-adamw,optimi-lion,optimi-radam,optimi-ranger,optimi-adan,optimi-adam,optimi-sgd,soap,prodigy}
Optimization algorithm for training
--optimizer_config OPTIMIZER_CONFIG
Comma-separated key=value pairs forwarded to the
selected optimizer
--lr_scheduler {linear,sine,cosine,cosine_with_restarts,polynomial,constant,constant_with_warmup}
How learning rate changes during training
--gradient_accumulation_steps GRADIENT_ACCUMULATION_STEPS
Number of steps to accumulate gradients
--lr_warmup_steps LR_WARMUP_STEPS
Number of steps to gradually increase LR from 0
--checkpoints_total_limit CHECKPOINTS_TOTAL_LIMIT
Maximum number of checkpoints to keep on disk
--gradient_checkpointing [GRADIENT_CHECKPOINTING]
Trade compute for memory during training
--train_text_encoder [TRAIN_TEXT_ENCODER]
Also train the text encoder (CLIP) model
--text_encoder_lr TEXT_ENCODER_LR
Separate learning rate for text encoder
--lr_num_cycles LR_NUM_CYCLES
Number of cosine annealing cycles
--lr_power LR_POWER Power for polynomial decay scheduler
--use_soft_min_snr [USE_SOFT_MIN_SNR]
Use soft clamping instead of hard clamping for Min-SNR
--use_ema [USE_EMA] Maintain an exponential moving average copy of the
model during training.
--ema_device {accelerator,cpu}
Where to keep the EMA weights in-between updates.
--ema_cpu_only [EMA_CPU_ONLY]
Keep EMA weights exclusively on CPU even when
ema_device would normally move them.
--ema_update_interval EMA_UPDATE_INTERVAL
Update EMA weights every N optimizer steps
--ema_foreach_disable [EMA_FOREACH_DISABLE]
Fallback to standard tensor ops instead of
torch.foreach updates.
--ema_decay EMA_DECAY
Smoothing factor for EMA updates (closer to 1.0 =
slower drift).
--lora_rank LORA_RANK
Dimension of LoRA update matrices
--lora_alpha LORA_ALPHA
Scaling factor for LoRA updates
--lora_type {standard,lycoris}
LoRA implementation type
--lora_dropout LORA_DROPOUT
LoRA dropout randomly ignores neurons during training.
This can help prevent overfitting.
--lora_init_type {default,gaussian,loftq,olora,pissa}
The initialization type for the LoRA model
--peft_lora_mode {standard,singlora}
PEFT LoRA training mode
--peft_lora_target_modules PEFT_LORA_TARGET_MODULES
JSON array (or path to a JSON file) listing PEFT
LoRA target module names. Overrides preset targets.
--singlora_ramp_up_steps SINGLORA_RAMP_UP_STEPS
Number of ramp-up steps for SingLoRA
--slider_lora_target [SLIDER_LORA_TARGET]
Route LoRA training to slider-friendly targets
(self-attn + conv/time embeddings). Only affects
standard PEFT LoRA.
--init_lora INIT_LORA
Specify an existing LoRA or LyCORIS safetensors file
to initialize the adapter
--init_lora_step INIT_LORA_STEP
Continue global-step accounting from a model-only LoRA
checkpoint without optimizer state
--init_lora_ema INIT_LORA_EMA
Load a raw SimpleTuner EMA state alongside init_lora
--lycoris_config LYCORIS_CONFIG
Path to LyCORIS configuration JSON file
--init_lokr_norm INIT_LOKR_NORM
Perturbed normal initialization for LyCORIS LoKr
layers
--flux_lora_target {mmdit,context,context+ffs,all,all+ffs,ai-toolkit,tiny,nano,controlnet,all+ffs+embedder,all+ffs+embedder+controlnet}
Which layers to train in Flux models
--use_dora [USE_DORA]
Enable DoRA (Weight-Decomposed LoRA)
--resolution_type {pixel,area,pixel_area}
How to interpret the resolution value
--data_backend_config DATA_BACKEND_CONFIG
Select a saved dataset configuration (managed in
Datasets & Environments tabs)
--caption_strategy {filename,textfile,instance_prompt,parquet}
How to load captions for images
--conditioning_multidataset_sampling {combined,random}
How to sample from multiple conditioning datasets
--instance_prompt INSTANCE_PROMPT
Instance prompt for training
--parquet_caption_column PARQUET_CAPTION_COLUMN
Column name containing captions in parquet files
--parquet_filename_column PARQUET_FILENAME_COLUMN
Column name containing image paths in parquet files
--ignore_missing_files [IGNORE_MISSING_FILES]
Continue training even if some files are missing
--vae_cache_scan_behaviour {recreate,sync}
How to scan VAE cache for missing files
--vae_enable_slicing [VAE_ENABLE_SLICING]
Enable VAE attention slicing for memory efficiency
--vae_enable_tiling [VAE_ENABLE_TILING]
Enable VAE tiling for large images
--vae_enable_patch_conv [VAE_ENABLE_PATCH_CONV]
Enable patch-based 3D conv for HunyuanVideo VAE to
reduce peak VRAM (slight slowdown)
--vae_batch_size VAE_BATCH_SIZE
Batch size for VAE encoding during caching
--caption_dropout_probability CAPTION_DROPOUT_PROBABILITY
Caption dropout will randomly drop captions and, for
SDXL, size conditioning inputs based on this
probability
--tokenizer_max_length TOKENIZER_MAX_LENGTH
Override the tokenizer sequence length (advanced).
--validation_step_interval VALIDATION_STEP_INTERVAL
Run validation every N training steps (deprecated alias: --validation_steps)
--validation_epoch_interval VALIDATION_EPOCH_INTERVAL
Run validation every N training epochs
--validate_after_step VALIDATE_AFTER_STEP
Skip scheduled validation until the global training
step reaches this value
--validate_after_epoch VALIDATE_AFTER_EPOCH
Skip scheduled validation until the training epoch
reaches this value
--disable_benchmark [DISABLE_BENCHMARK]
Skip generating baseline comparison images before
training starts
--validation_prompt VALIDATION_PROMPT
Prompt to use for validation images
--validation_input VALIDATION_INPUT
JSON list of validation input image paths and prompts
--num_validation_images NUM_VALIDATION_IMAGES
Number of images to generate per validation
--num_eval_images NUM_EVAL_IMAGES
Number of images to generate for evaluation metrics
--eval_steps_interval EVAL_STEPS_INTERVAL
Run evaluation every N training steps
--eval_epoch_interval EVAL_EPOCH_INTERVAL
Run evaluation every N training epochs (decimals run
multiple times per epoch)
--eval_timesteps EVAL_TIMESTEPS
Number of timesteps for evaluation
--eval_dataset_pooling [EVAL_DATASET_POOLING]
Combine evaluation metrics from all datasets into a
single chart
--evaluation_type {none,clip}
Type of evaluation metrics to compute
--pretrained_evaluation_model_name_or_path PRETRAINED_EVALUATION_MODEL_NAME_OR_PATH
Path to pretrained model for evaluation metrics
--validation_guidance VALIDATION_GUIDANCE
CFG guidance scale for validation images
--validation_num_inference_steps VALIDATION_NUM_INFERENCE_STEPS
Number of diffusion steps for validation renders
--validation_on_startup [VALIDATION_ON_STARTUP]
Run validation on the base model before training
starts
--validation_using_datasets [VALIDATION_USING_DATASETS]
Use random images from training datasets for
validation
--validation_torch_compile [VALIDATION_TORCH_COMPILE]
Use torch.compile() on validation pipeline for speed
--validation_guidance_real VALIDATION_GUIDANCE_REAL
CFG value for distilled models (e.g., FLUX schnell)
--validation_no_cfg_until_timestep VALIDATION_NO_CFG_UNTIL_TIMESTEP
Skip CFG for initial timesteps (Flux only)
--validation_negative_prompt VALIDATION_NEGATIVE_PROMPT
Negative prompt for validation images
--validation_randomize [VALIDATION_RANDOMIZE]
Use random seeds for each validation
--validation_seed VALIDATION_SEED
Fixed seed for reproducible validation images
--validation_disable [VALIDATION_DISABLE]
Completely disable validation image generation
--validation_prompt_library [VALIDATION_PROMPT_LIBRARY]
Usa a biblioteca de prompts integrada do SimpleTuner.
Use "audio" para prompts de musica/audio com caption
e letras.
--user_prompt_library USER_PROMPT_LIBRARY
Caminho para uma biblioteca JSON personalizada. As
entradas podem usar prompt ou caption, alem de lyrics opcional.
--eval_dataset_id EVAL_DATASET_ID
Specific dataset to use for evaluation metrics
--validation_stitch_input_location {left,right}
Where to place input image in img2img validations
--validation_guidance_rescale VALIDATION_GUIDANCE_RESCALE
CFG rescale value for validation
--validation_disable_unconditional [VALIDATION_DISABLE_UNCONDITIONAL]
Disable unconditional image generation during
validation
--validation_guidance_skip_layers VALIDATION_GUIDANCE_SKIP_LAYERS
JSON list of transformer layers to skip during
classifier-free guidance
--validation_guidance_skip_layers_start VALIDATION_GUIDANCE_SKIP_LAYERS_START
Starting layer index to skip guidance
--validation_guidance_skip_layers_stop VALIDATION_GUIDANCE_SKIP_LAYERS_STOP
Ending layer index to skip guidance
--validation_guidance_skip_scale VALIDATION_GUIDANCE_SKIP_SCALE
Scale guidance strength when applying layer skipping
--validation_lycoris_strength VALIDATION_LYCORIS_STRENGTH
Strength multiplier for LyCORIS validation
--validation_noise_scheduler {ddim,ddpm,euler,euler-a,unipc,dpm++,perflow}
Noise scheduler for validation
--validation_num_video_frames VALIDATION_NUM_VIDEO_FRAMES
Number of frames for video validation
--validation_audio_only [VALIDATION_AUDIO_ONLY]
Disable video generation during validation and emit
audio only
--validation_resolution VALIDATION_RESOLUTION
Override resolution for validation images (pixels or
megapixels)
--validation_seed_source {cpu,gpu}
Source device used to generate validation seeds
--i_know_what_i_am_doing [I_KNOW_WHAT_I_AM_DOING]
Unlock experimental overrides and bypass built-in
safety limits. Also bypasses the sampler batch-size
mismatch check on resume (same effect as
SIMPLETUNER_ALLOW_MODIFYING_BSZ=1).
--flow_sigmoid_scale FLOW_SIGMOID_SCALE
Scale factor for sigmoid timestep sampling for flow-
matching models.
--flux_fast_schedule [FLUX_FAST_SCHEDULE]
Use experimental fast schedule for Flux training
--flow_use_uniform_schedule [FLOW_USE_UNIFORM_SCHEDULE]
Use uniform schedule instead of sigmoid for flow-
matching
--flow_use_beta_schedule [FLOW_USE_BETA_SCHEDULE]
Use beta schedule instead of sigmoid for flow-matching
--flow_beta_schedule_alpha FLOW_BETA_SCHEDULE_ALPHA
Alpha value for beta schedule (default: 2.0)
--flow_beta_schedule_beta FLOW_BETA_SCHEDULE_BETA
Beta value for beta schedule (default: 2.0)
--flow_cubic_schedule_weights FLOW_CUBIC_SCHEDULE_WEIGHTS
Sample flow timesteps from a smooth density through
equally spaced non-negative weights. Use a JSON array
or comma-separated values; zero or one weight produces
a uniform distribution.
--flow_schedule_shift FLOW_SCHEDULE_SHIFT
Shift the noise schedule for flow-matching models
--flow_schedule_auto_shift [FLOW_SCHEDULE_AUTO_SHIFT]
Auto-adjust schedule shift based on image resolution
--mixflow_enabled [MIXFLOW_ENABLED]
Enable MixFlow slowed-interpolation post-training for
flow-matching models.
--mixflow_gamma MIXFLOW_GAMMA
Set the MixFlow slowed-interpolation range coefficient
(default: 0.8).
--audio_flow_schedule_shift AUDIO_FLOW_SCHEDULE_SHIFT
Shift the audio noise schedule for flow-matching
models with audio latents
--flow_custom_timesteps FLOW_CUSTOM_TIMESTEPS
Override flow-matching timestep sampling with a fixed
comma-separated list. The list is interpreted as
sigmas only when every value is in [0,1]; otherwise
all values are interpreted as timesteps [0,1000].
--flow_timesteps_mode {fixed-list,round-robin}
Select how flow_custom_timesteps values are assigned
to samples.
--flux_guidance_mode {constant,random-range}
Guidance mode for Flux training
--flux_attention_masked_training [FLUX_ATTENTION_MASKED_TRAINING]
Enable attention masked training for Flux models
--flux_guidance_value FLUX_GUIDANCE_VALUE
Guidance value for constant mode
--flux_guidance_min FLUX_GUIDANCE_MIN
Minimum guidance value for random-range mode
--flux_guidance_max FLUX_GUIDANCE_MAX
Maximum guidance value for random-range mode
--t5_padding {zero,unmodified}
Padding behavior for T5 text encoder
--sd3_clip_uncond_behaviour {empty_string,zero}
How SD3 handles unconditional prompts
--sd3_t5_uncond_behaviour {empty_string,zero}
How SD3 T5 handles unconditional prompts
--soft_min_snr_sigma_data SOFT_MIN_SNR_SIGMA_DATA
Sigma data for soft min SNR weighting
--mixed_precision {no,fp16,bf16,fp8}
Precision for training computations
--attention_mechanism {diffusers,xformers,flash-attn,flash-attn-2,flash-attn-3,flash-attn-3-varlen,flex,kohaku-fa,kohaku-fa-auto,metal-flash-attention,metal-flash-attention-int8,metal-flash-attention-int4,cudnn,native-efficient,native-flash,native-math,native-npu,native-xla,sla,sageattention,sageattention-int8-fp16-triton,sageattention-int8-fp16-cuda,sageattention-int8-fp8-cuda}
Attention computation backend
--sageattention_usage {training,inference,training+inference}
When to use SageAttention
--disable_tf32 [DISABLE_TF32]
Force IEEE FP32 precision (disables TF32) using
PyTorch's fp32_precision controls when available
--set_grads_to_none [SET_GRADS_TO_NONE]
Set gradients to None instead of zero
--noise_offset NOISE_OFFSET
Add noise offset to training
--noise_offset_probability NOISE_OFFSET_PROBABILITY
Probability of applying noise offset
--input_perturbation INPUT_PERTURBATION
Add additional noise only to the inputs fed to the
model during training
--input_perturbation_steps INPUT_PERTURBATION_STEPS
Only apply input perturbation over the first N steps
with linear decay
--lr_end LR_END A polynomial learning rate will end up at this value
after the specified number of warmup steps
--lr_scale [LR_SCALE]
Scale the learning rate by the number of GPUs,
gradient accumulation steps, and batch size
--lr_scale_sqrt [LR_SCALE_SQRT]
If using --lr_scale, use the square root of (number of
GPUs * gradient accumulation steps * batch size)
--strict_epoch_limit [STRICT_EPOCH_LIMIT]
Stop training when the epoch counter reaches
--num_train_epochs, even if --max_train_steps
has not been reached
--freeze_encoder_before FREEZE_ENCODER_BEFORE
When using 'before' strategy, we will freeze layers
earlier than this
--freeze_encoder_after FREEZE_ENCODER_AFTER
When using 'after' strategy, we will freeze layers
later than this
--freeze_encoder_strategy {before,between,after}
When freezing the text encoder, we can use the
'before', 'between', or 'after' strategy
--layer_freeze_strategy {none,bitfit}
When freezing parameters, we can use the 'none' or
'bitfit' strategy
--fully_unload_text_encoder [FULLY_UNLOAD_TEXT_ENCODER]
If set, will fully unload the text_encoder from memory
when not in use
--save_text_encoder [SAVE_TEXT_ENCODER]
If set, will save the text encoder after training
--text_encoder_limit TEXT_ENCODER_LIMIT
When training the text encoder, we want to limit how
long it trains for to avoid catastrophic loss
--prepend_instance_prompt [PREPEND_INSTANCE_PROMPT]
When determining the captions from the filename,
prepend the instance prompt as an enforced keyword
--only_instance_prompt [ONLY_INSTANCE_PROMPT]
Use the instance prompt instead of the caption from
filename
--data_aesthetic_score DATA_AESTHETIC_SCORE
Since currently we do not calculate aesthetic scores
for data, we will statically set it to one value. This
is only used by the SDXL Refiner
--delete_unwanted_images [DELETE_UNWANTED_IMAGES]
If set, will delete images that are not of a minimum
size to save on disk space for large training runs
--delete_problematic_images [DELETE_PROBLEMATIC_IMAGES]
If set, any images that error out during load will be
removed from the underlying storage medium
--disable_bucket_pruning [DISABLE_BUCKET_PRUNING]
When training on very small datasets, you might not
care that the batch sizes will outpace your image
count. Setting this option will prevent SimpleTuner
from deleting your bucket lists that do not meet the
minimum image count requirements. Use at your own
risk, it may end up throwing off your statistics or
epoch tracking
--disable_segmented_timestep_sampling [DISABLE_SEGMENTED_TIMESTEP_SAMPLING]
By default, the timestep schedule is divided into
roughly `train_batch_size` number of segments, and
then each of those are sampled from separately. This
improves the selection distribution, but may not be
desired in certain training scenarios, eg. when
limiting the timestep selection range
--preserve_data_backend_cache [PRESERVE_DATA_BACKEND_CACHE]
For very large cloud storage buckets that will never
change, enabling this option will prevent the trainer
from scanning it at startup, by preserving the cache
files that we generate. Be careful when using this,
as, switching datasets can result in the preserved
cache being used, which would be problematic.
Currently, cache is not stored in the dataset itself
but rather, locally. This may change in a future
release
--override_dataset_config [OVERRIDE_DATASET_CONFIG]
When provided, the dataset's config will not be
checked against the live backend config
--cache_dir CACHE_DIR
The directory where the downloaded models and datasets
will be stored
--cache_dir_text CACHE_DIR_TEXT
This is the path to a local directory that will
contain your text embed cache
--text_cache_ondemand [TEXT_CACHE_ONDEMAND]
Codifica embeddings de texto ausentes durante o treinamento,
sem pré-computar todo o cache. Entradas existentes são reutilizadas.
--text_cache_disable [TEXT_CACHE_DISABLE]
Desativa escritas no cache e codifica ausências sob demanda.
Entradas existentes ainda são lidas. Implica --text_cache_ondemand.
--text_embed_full_cache [TEXT_EMBED_FULL_CACHE]
Store full raw text encoder outputs in the text embed
cache. This opts out of model-specific cache size
optimisations, such as Ideogram 4's frozen text
projection cache.
--cache_dir_vae CACHE_DIR_VAE
This is the path to a local directory that will
contain your VAE outputs
--compress_disk_cache [COMPRESS_DISK_CACHE]
If set, will gzip-compress the disk cache for Pytorch
files. This will save substantial disk space, but may
slow down the training process
--aspect_bucket_disable_rebuild [ASPECT_BUCKET_DISABLE_REBUILD]
When using a randomised aspect bucket list, the VAE
and aspect cache are rebuilt on each epoch. With a
large and diverse enough dataset, rebuilding the
aspect list may take a long time, and this may be
undesirable. This option will not override
vae_cache_clear_each_epoch. If both options are
provided, only the VAE cache will be rebuilt
--keep_vae_loaded [KEEP_VAE_LOADED]
If set, will keep the VAE loaded in memory. This can
reduce disk churn, but consumes VRAM during the
forward pass
--skip_file_discovery SKIP_FILE_DISCOVERY
Comma-separated values of which stages to skip
discovery for. Skipping any stage will speed up
resumption, but will increase the risk of errors, as
missing images or incorrectly bucketed images may not
be caught. Valid options: aspect, vae, text, metadata
--data_backend_sampling {uniform,auto-weighting}
When using multiple data backends, the sampling
weighting can be set to 'uniform' or 'auto-weighting'
--image_processing_batch_size IMAGE_PROCESSING_BATCH_SIZE
When resizing and cropping images, we do it in
parallel using processes or threads. This defines how
many images will be read into the queue before they
are processed
--write_batch_size WRITE_BATCH_SIZE
When using certain storage backends, it is better to
batch smaller writes rather than continuous
dispatching. In SimpleTuner, write batching is
currently applied during VAE caching, when many small
objects are written. This mostly applies to S3, but
some shared server filesystems may benefit as well.
Default: 64
--read_batch_size READ_BATCH_SIZE
Used by the VAE cache to prefetch image data. This is
the number of images to read ahead
--text_encoder_batch_size TEXT_ENCODER_BATCH_SIZE
Batch size used when precomputing uncached text
embeddings. A value of 1 preserves the original one-
caption-per-forward behavior.
--enable_multiprocessing [ENABLE_MULTIPROCESSING]
If set, will use processes instead of threads during
metadata caching operations
--max_workers MAX_WORKERS
How many active threads or processes to run during VAE
caching
--aws_max_pool_connections AWS_MAX_POOL_CONNECTIONS
When using AWS backends, the maximum number of
connections to keep open to the S3 bucket at a single
time
--torch_num_threads TORCH_NUM_THREADS
The number of threads to use for PyTorch operations.
This is not the same as the number of workers
--dataloader_prefetch [DATALOADER_PREFETCH]
When provided, the dataloader will read-ahead and
attempt to retrieve latents, text embeds, and other
metadata ahead of the time when the batch is required,
so that it can be immediately available
--dataloader_prefetch_qlen DATALOADER_PREFETCH_QLEN
Set the number of prefetched batches
--dataloader_prefetch_device_threshold_mb DATALOADER_PREFETCH_DEVICE_THRESHOLD_MB
Minimum CPU batch payload in MiB to page-lock and
transfer on a dedicated CUDA stream during dataloader
prefetch; 0 disables device staging
--aspect_bucket_worker_count ASPECT_BUCKET_WORKER_COUNT
The number of workers to use for aspect bucketing.
This is a CPU-bound task, so the number of workers
should be set to the number of CPU threads available.
If you use an I/O bound backend, an even higher value
may make sense. Default: 12
--aspect_bucket_alignment {8,16,24,32,64}
When training diffusion models, the image sizes
generally must align to a 64 pixel interval
--minimum_image_size MINIMUM_IMAGE_SIZE
The minimum resolution for both sides of input images
--maximum_image_size MAXIMUM_IMAGE_SIZE
When cropping images that are excessively large, the
entire scene context may be lost, eg. the crop might
just end up being a portion of the background. To
avoid this, a maximum image size may be provided,
which will result in very-large images being
downsampled before cropping them. This value uses
--resolution_type to determine whether it is a pixel
edge or megapixel value
--target_downsample_size TARGET_DOWNSAMPLE_SIZE
When using --maximum_image_size, very-large images
exceeding that value will be downsampled to this
target size before cropping
--max_upscale_threshold MAX_UPSCALE_THRESHOLD
Limit upscaling of small images to prevent quality
degradation (opt-in). When set, filters out aspect
buckets requiring upscaling beyond this threshold.
For example, 0.2 allows up to 20% upscaling. Default
(None) allows unlimited upscaling. Must be between 0
and 1.
--metadata_update_interval METADATA_UPDATE_INTERVAL
When generating the aspect bucket indicies, we want to
save it every X seconds
--debug_aspect_buckets [DEBUG_ASPECT_BUCKETS]
If set, will print excessive debugging for aspect
bucket operations
--debug_dataset_loader [DEBUG_DATASET_LOADER]
If set, will print excessive debugging for data loader
operations
--print_filenames [PRINT_FILENAMES]
If any image files are stopping the process eg. due to
corruption or truncation, this will help identify
which is at fault
--print_sampler_statistics [PRINT_SAMPLER_STATISTICS]
If provided, will print statistics about the dataset
sampler. This is useful for debugging
--timestep_bias_strategy {earlier,later,range,none}
Strategy for biasing timestep sampling
--timestep_bias_begin TIMESTEP_BIAS_BEGIN
Beginning of timestep bias range
--timestep_bias_end TIMESTEP_BIAS_END
End of timestep bias range
--timestep_bias_multiplier TIMESTEP_BIAS_MULTIPLIER
Multiplier for timestep bias probability
--timestep_bias_portion TIMESTEP_BIAS_PORTION
Portion of training steps to apply timestep bias
--training_scheduler_timestep_spacing {leading,linspace,trailing}
Timestep spacing for training scheduler
--inference_scheduler_timestep_spacing {leading,linspace,trailing}
Timestep spacing for inference scheduler
--loss_type {l2,huber,smooth_l1}
Loss function for training
--huber_schedule {snr,exponential,constant}
Schedule for Huber loss transition threshold
--huber_c HUBER_C Transition point between L2 and L1 regions for Huber
loss
--snr_gamma SNR_GAMMA
SNR weighting gamma value (0 = disabled)
--masked_loss_probability MASKED_LOSS_PROBABILITY
Probability of applying masked loss weighting per
batch
--hidream_use_load_balancing_loss [HIDREAM_USE_LOAD_BALANCING_LOSS]
Apply experimental load balancing loss when training
HiDream models.
--hidream_load_balancing_loss_weight HIDREAM_LOAD_BALANCING_LOSS_WEIGHT
Strength multiplier for HiDream load balancing loss.
--adam_beta1 ADAM_BETA1
First moment decay rate for Adam optimizers
--adam_beta2 ADAM_BETA2
Second moment decay rate for Adam optimizers
--optimizer_beta1 OPTIMIZER_BETA1
First moment decay rate for optimizers
--optimizer_beta2 OPTIMIZER_BETA2
Second moment decay rate for optimizers
--optimizer_cpu_offload_method {none}
Method for CPU offloading optimizer states
--gradient_precision {unmodified,fp32}
Precision for gradient computation
--adam_weight_decay ADAM_WEIGHT_DECAY
L2 regularisation strength for Adam-family optimizers.
--adam_epsilon ADAM_EPSILON
Small constant added for numerical stability.
--prodigy_steps PRODIGY_STEPS
Number of steps Prodigy should spend adapting its
learning rate.
--max_grad_norm MAX_GRAD_NORM
Gradient clipping threshold to prevent exploding
gradients.
--grad_clip_method {value,norm}
Strategy for applying max_grad_norm during clipping.
--optimizer_offload_gradients [OPTIMIZER_OFFLOAD_GRADIENTS]
Move optimizer gradients to CPU to save GPU memory.
--fuse_optimizer [FUSE_OPTIMIZER]
Enable fused kernels when offloading to reduce memory
overhead.
--optimizer_release_gradients [OPTIMIZER_RELEASE_GRADIENTS]
Free gradient tensors immediately after optimizer step
when using Optimi optimizers.
--push_to_hub [PUSH_TO_HUB]
Automatically upload the trained model to your Hugging
Face Hub repository.
--push_to_hub_background [PUSH_TO_HUB_BACKGROUND]
Run Hub uploads in a background worker so training is
not blocked while pushing.
--push_checkpoints_to_hub [PUSH_CHECKPOINTS_TO_HUB]
Upload intermediate checkpoints to the same Hugging
Face repository during training.
--publishing_config PUBLISHING_CONFIG
Optional JSON/file path describing additional
publishing targets (S3/Backblaze B2/Azure Blob/Dropbox).
--hub_model_id HUB_MODEL_ID
If left blank, SimpleTuner derives a name from the
project settings when pushing to Hub.
--model_card_private [MODEL_CARD_PRIVATE]
Create the Hugging Face repository as private instead
of public.
--model_card_safe_for_work [MODEL_CARD_SAFE_FOR_WORK]
Remove the default NSFW warning from the generated
model card on Hugging Face Hub.
--model_card_base_model MODEL_CARD_BASE_MODEL
Base repository for model-card metadata when training from a local checkpoint.
--model_card_note MODEL_CARD_NOTE
Optional note that appears at the top of the generated
model card.
--modelspec_comment MODELSPEC_COMMENT
Text embedded in safetensors file metadata as
modelspec.comment, visible in external model viewers.
--report_to {simpletuner,tensorboard,wandb,swanlab,comet_ml,custom-tracker,none}
Where to log training metrics
--checkpoint_step_interval CHECKPOINT_STEP_INTERVAL
Save model checkpoint every N steps (deprecated alias: --checkpointing_steps)
--checkpoint_epoch_interval CHECKPOINT_EPOCH_INTERVAL
Save model checkpoint every N epochs
--checkpointing_rolling_steps CHECKPOINTING_ROLLING_STEPS
Rolling checkpoint window size for continuous
checkpointing
--checkpointing_use_tempdir [CHECKPOINTING_USE_TEMPDIR]
Use temporary directory for checkpoint files before
final save
--delete_invalid_checkpoints [DELETE_INVALID_CHECKPOINTS]
Delete local checkpoints that cannot be loaded while
resuming.
--checkpoints_rolling_total_limit CHECKPOINTS_ROLLING_TOTAL_LIMIT
Maximum number of rolling checkpoints to keep
--tracker_run_name TRACKER_RUN_NAME
Name for this training run in tracking platforms
--tracker_project_name TRACKER_PROJECT_NAME
Project name in tracking platforms
--tracker_image_layout {gallery,table}
How validation images are displayed in trackers
--enable_watermark [ENABLE_WATERMARK]
Add invisible watermark to generated images
--framerate FRAMERATE
Framerate for video model training
--seed_for_each_device [SEED_FOR_EACH_DEVICE]
Use a unique deterministic seed per GPU instead of
sharing one seed across devices.
--snr_weight SNR_WEIGHT
Weight factor for SNR-based loss scaling
--rescale_betas_zero_snr [RESCALE_BETAS_ZERO_SNR]
Rescale betas for zero terminal SNR
--webhook_config WEBHOOK_CONFIG
Path to webhook configuration file
--webhook_reporting_interval WEBHOOK_REPORTING_INTERVAL
Interval for webhook reports (seconds)
--distillation_method {lcm,dcm,dmd,perflow,flow_dpo,anyflow,assistant_lora,h3_drift,self_transcendence}
Method for model distillation
Distillation methods cannot be combined with
--train_text_encoder.
--distillation_config DISTILLATION_CONFIG
Path to distillation configuration file
--ema_validation {none,ema_only,comparison}
Control how EMA weights are used during validation
runs.
--local_rank LOCAL_RANK
Local rank for distributed training
--ltx_train_mode {t2v,i2v}
Training mode for LTX models
--ltx_i2v_prob LTX_I2V_PROB
Probability of using image-to-video training for LTX
--ltx_partial_noise_fraction LTX_PARTIAL_NOISE_FRACTION
Fraction of noise to add for LTX partial training
--ltx_protect_first_frame [LTX_PROTECT_FIRST_FRAME]
Protect the first frame from noise in LTX training
--offload_param_path OFFLOAD_PARAM_PATH
Path to offloaded parameter files
--offset_noise [OFFSET_NOISE]
Enable offset-noise training
--quantize_activations [QUANTIZE_ACTIVATIONS]
Quantize model activations during training
--refiner_training [REFINER_TRAINING]
Enable refiner model training mode
--refiner_training_invert_schedule [REFINER_TRAINING_INVERT_SCHEDULE]
Invert the noise schedule for refiner training
--refiner_training_strength REFINER_TRAINING_STRENGTH
Strength of refiner training
--sdxl_refiner_uses_full_range [SDXL_REFINER_USES_FULL_RANGE]
Use full timestep range for SDXL refiner
--sana_complex_human_instruction SANA_COMPLEX_HUMAN_INSTRUCTION
Complex human instruction for Sana model training
--distillation_method=assistant_lora¶
--distillation_method=assistant_lora treina um adaptador auxiliar positivo com novas gerações do modelo base, desativando o adaptador e usando datasets de legendas. O suporte inicial é Qwen Image 2.1. distillation_config.assistant_lora aceita num_inference_steps (40), resolutions ([[1024, 1024]], largura e altura, múltiplos de 32) e seed (42). Exige embeddings de texto pré-calculados; não armazena latentes finais. Consulte o guia do Qwen.
Datasets de legendas exigem dataloader_prefetch: false para que o cursor do checkpoint corresponda às legendas consumidas. A retomada rejeita mudanças nos identificadores/textos, lote, repetições, embaralhamento, semente, acumulação ou configuração distribuída. Os checkpoints do auxiliar também rejeitam mudanças na semente de geração, na lista de resoluções ou no número de passos de inferência do professor.
Assistant LoRA e AnyFlow elevam temporariamente o limite do cache de compilação Dynamo por código para pelo menos 32, acomodando variantes do professor, treino e validação. Um limite maior do usuário é preservado; o original é restaurado ao sair, inclusive após erros.