ArtificialGuyBR

Home / Blog / AI video

Fluxo de LoRA high-noise vs low-noise do Wan 2.2

Cadeia sequencial no ComfyUI: KSampler de high-noise alimenta o low-noise. Configuracao correta do LoraLoaderModelOnly e guia de treino.

8 sources cited AI video

Fluxo de LoRA high-noise vs low-noise do Wan 2.2

Um conselho comum da comunidade afirma que o Wan 2.2 requer dois pipelines independentes — um para o especialista de high-noise e outro para o especialista de low-noise — cada um com seu proprio ModelSamplingSD3 e KSampler. O fluxo oficial do ComfyUI encadeia os dois especialistas sequencialmente por um unico fluxo latente compartilhado.

TL;DR

  • Sequencial, e nao paralelo. O KSampler de high-noise alimenta seu latente parcialmente desruidosado diretamente no KSampler de low-noise — um unico fluxo latente compartilhado, nao dois pipelines independentes.
  • Use LoraLoaderModelOnly. Ele aplica o LoRA apenas ao modelo de difusao, deixando o codificador de texto T5 compartilhado intocado. O LoraLoader padrao modifica tanto o modelo de difusao quanto o codificador CLIP/T5.
  • Dois nos ModelSamplingSD3 sao necessarios. Cada especialista e um objeto de modelo separado carregado por seu proprio UNETLoader; ambos precisam de patches independentes com shift=8.0.

Por que o Wan 2.2 usa dois modelos especialistas

A variante 14B do Wan 2.2 usa uma arquitetura Mixture-of-Experts que separa a remocao de ruido entre dois modelos especializados [1]. O especialista de high-noise cuida da remocao de ruido inicial (timesteps ~875–1000) para layout, composicao e movimento. O especialista de low-noise cuida da remocao de ruido final (timesteps ~0–875) para textura, detalhe facial e fidelidade de cor [1]. Ambos os especialistas contam com cerca de 14B de parametros cada (27B no total), mas apenas 14B estao ativos por etapa, pois o modelo troca de especialista com base no SNR [1].

O limiar de SNR define o ponto de transicao [1]. O fluxo oficial do ComfyUI implementa isso com dois nos KSamplerAdvanced em sequencia: o primeiro roda as etapas 0–10, seu latente de saida vira entrada do segundo, que roda 10–20 [3]. O estágio de low-noise requer o latente parcialmente desruidosado do estágio de high-noise.

Para mais sobre agendamento de difusao, veja Fundamentos de treinamento do Wan 2.1.

A correcao crítica: sequencial, e nao paralelo

Varias fontes da comunidade descrevem o Wan 2.2 como exigindo "dois pipelines paralelos" — um cadeia de high-noise e outra de low-noise, cada uma com seu proprio ModelSamplingSD3 e KSampler [4]. O JSON oficial do fluxo 14B T2V do ComfyUI revela uma estrutura sequencial: dois nos UNETLoader (um por especialista), cada um com seu proprio ModelSamplingSD3, e depois dois nos KSamplerAdvanced em serie. O amostrador de high-noise (etapas 0–10) emite um LATENT que se conecta diretamente como entrada ao amostrador de low-noise (etapas 10–20) [3]. Ha um unico fluxo latente compartilhado.

Executar o especialista de low-noise a partir de ruido puro produz saida incoerente, pois ele espera um latente parcialmente estruturado. Executar apenas o especialista de high-noise pára na etapa 10, deixando ruido visivel [5]. Ambos os estagios sao necessarios e devem ser encadeados em ordem.

O pipeline completo para um fluxo Wan 2.2 14B com LoRAs e este:

  1. UNETLoader (high noise) -> carrega wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors
  2. LoraLoaderModelOnly -> encadeie quantos nos LoRA forem necessarios, cada um recebendo o MODEL de saida do anterior
  3. ModelSamplingSD3 -> aplica patch no modelo de high-noise com shift=8.0 [8]
  4. KSamplerAdvanced (high noise) -> start_step=0, end_step=10, return_with_leftover_noise=enable
  5. KSamplerAdvanced (low noise) -> start_step=10, end_step=20, return_with_leftover_noise=disable (recebe o latente da etapa 4)
  6. UNETLoader (low noise) -> carrega wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors
  7. LoraLoaderModelOnly -> mesma cadeia de LoRA aplicada ao modelo base de low-noise
  8. ModelSamplingSD3 -> aplica patch no modelo de low-noise com shift=8.0 [8]

Para fundamentos de nos do ComfyUI, veja Fundamentos de pipelines do ComfyUI.

Ambos os nos ModelSamplingSD3 usam shift=8.0 no fluxo oficial [3]. Nao mescle os dois nos ModelSamplingSD3 em um so — eles operam sobre objetos de modelo separados carregados por nos UNETLoader separados.

Por que LoraLoaderModelOnly, e nao LoraLoader

O Wan 2.2 usa um unico codificador de texto T5 (umt5_xxl) compartilhado pelos dois especialistas, e o treinamento padrao de LoRA visa apenas o transformador de difusao [6]. O node padrao LoraLoader retorna um modelo modificado e um CLIP modificado — seu codigo chama comfy.sd.load_lora_for_models(model, clip, lora, strength_model, strength_clip) e retorna (model_lora, clip_lora) [7]. Como os LoRAs do Wan 2.2 nao contêm pesos de CLIP, aplicá-los ao codificador compartilhado e desnecessario e pode alterar o comportamento do codificador.

O LoraLoaderModelOnly aplica o patch apenas ao MODEL — seu codigo passa None para clip e 0 para strength_clip [7]. Ele retorna um unico output MODEL que alimenta o proximo node na cadeia, e a descricao do node informa que "varios nos LoRA podem ser encadeados juntos" [7].

O parametro strength_model controla a intensidade com que os pesos do LoRA modificam o modelo.

Parametros de treino

O fluxo musubi-tuner para Wan 2.2 usa --network_dim 16 --network_alpha 16 com --learning_rate 3e-4 e um scheduler LR polinomial (power=8) [6]. Todos os hiperparametros — otimizador (adamw, weight_decay=0.1), precisao mista (fp16), checkpointing de gradiente e --fp8_base — sao compartilhados entre as duas execucoes de treino dos especialistas [6].

Modelos e nomes de arquivos exigidos

Os recursos oficiais do ComfyUI listam esses arquivos para as variantes 14B [2][3]:

ComponenteModelo T2VModelo I2V
Especialista de high-noisewan2.2_t2v_high_noise_14B_fp8_scaled.safetensorswan2.2_i2v_high_noise_14B_fp16.safetensors
Especialista de low-noisewan2.2_t2v_low_noise_14B_fp8_scaled.safetensorswan2.2_i2v_low_noise_14B_fp16.safetensors
VAE (modelos 14B)wan_2.1_vae.safetensorswan_2.1_vae.safetensors
Codificador de textoumt5_xxl_fp8_e4m3fn_scaled.safetensorsumt5_xxl_fp8_e4m3fn_scaled.safetensors

Coloque todos os modelos de difusao em ComfyUI/models/diffusion_models/, o VAE em ComfyUI/models/vae/ e o codificador de texto em ComfyUI/models/text_encoders/ [2].

A variante de 5B (wan2.2_ti2v_5B_fp16.safetensors) usa um VAE diferente (wan2.2_vae.safetensors) e um unico arquivo de modelo — sem divisao high/low noise [2]. O fluxo descrito aqui se aplica apenas aos modelos 14B.

Common Errors and Fixes

SintomaCausaCorrecao
Video de saida com ruido ou parado em uma etapa inicialApenas o KSampler de high-noise esta rodando; o estágio de low-noise faltaAdicione um segundo KSamplerAdvanced (etapas 10→20) e conecte a saida latente do primeiro KSampler a ele [3]
LoRA aplicado apenas a um especialista, entao seu efeito aparece nas etapas iniciais e desapareceA cadeia de LoRA alimenta o KSampler de high-noise, mas nao o de low-noise (ou o inverso)Carregue a mesma cadeia de LoRA em ambos os especialistas — veja as etapas 2 e 7 acima [7]
Adesao ao prompt muda inesperadamente apos adicionar um LoRAO LoraLoader tambem aplica patch ao codificador de texto umt5 compartilhado; os LoRAs do Wan 2.2 sao treinados contra o DiT apenasUse LoraLoaderModelOnly, que passa None para clip e deixa o codificador intocado [7]
Apenas o ultimo LoRA da cadeia se aplicaNos nao encadeados corretamente — cada um deve receber o output MODEL do anteriorConecte o output de cada LoraLoaderModelOnly para a entrada model do proximo node, sequencialmente [7]
Sinale de cor ou decodificacao macia/borradaIncompatibilidade de VAE — usando wan2.2_vae.safetensors para modelos 14B ou wan_2.1_vae.safetensors para 5BModelos 14B exigem wan_2.1_vae.safetensors; modelos 5B exigem wan2.2_vae.safetensors [2]
Video falta detalhe facial ou consistencia de faceEspecialista de low-noise subpotenciado — poucas etapas para o refinamento do estágio finalAumente as etapas do KSampler de low-noise (por exemplo, 2 high / 4 low, ou 4 high / 4 low) [5]

Treinamento de LoRAs para ambos os especialistas

O treinamento deve ser feito separadamente para cada especialista. Os comandos de treino do musubi-tuner diferem apenas no caminho do arquivo --dit e nos valores --min_timestep / --max_timestep [6]. O treino de high-noise usa --min_timestep 875 --max_timestep 1000; o treino de low-noise usa --min_timestep 0 --max_timestep 875 [6]. Todos os outros hiperparametros — taxa de aprendizado (3e-4), dimencaorede (16), alpha rede (16), otimizador (adamw com weight_decay=0.1), scheduler LR (polinomial, power=8) e precisao mista (fp16) — sao identicos [6]. Na inferencia, ambos os LoRAs treinados devem ser carregados: um na cadeia do especialista de high-noise, outro na cadeia do especialista de low-noise.

Se este for seu primeiro LoRA, comece com treinar um LoRA do zero e volte para os detalhes dos dois especialistas.

FAQ

Por que o Wan 2.2 tem dois arquivos de modelo para 14B? O Wan 2.2 usa uma arquitetura Mixture-of-Experts onde dois modelos separados de 14B lidam com diferentes fases da remocao de ruido. O especialista de high-noise gerencia estrutura e movimento iniciais; o especialista de low-noise cuida do refinamento de detalhe final. [1]

Como conecto os modelos de high-noise e low-noise no ComfyUI? A saida do KSamplerAdvanced de high-noise alimenta seu LATENT diretamente na entrada do KSamplerAdvanced de low-noise. Nao crie dois pipelines independentes que cada um gere a partir de ruido. [3]

Preciso de dois KSamplers separados para o Wan 2.2? Sim, conectados em sequencia. O KSamplerAdvanced de high-noise processa as etapas 0–10 e passa sua saida para o KSamplerAdvanced de low-noise, que processa as etapas 10–20. [3]

Qual e o limite de timestep entre os especialistas de high-noise e low-noise? O limite depende do SNR da etapa atual de remocao de ruido, definido pelo limiar minimo de SNR. O fluxo oficial lida com isso por faixas de etapas do KSamplerAdvanced, nao por troca manual de modelo. [1]

Por que usar LoraLoaderModelOnly em vez de LoraLoader para o Wan 2.2? O LoraLoaderModelOnly aplica pesos de LoRA apenas ao modelo de difusao, deixando o codificador de texto compartilhado intocado. O LoraLoader modifica tanto o modelo de difusao quanto o codificador CLIP/T5, o que e indesejado para LoRAs do Wan 2.2 treinados apenas contra o DiT. [7]

Qual valor de shift devo usar no ModelSamplingSD3 para o Wan 2.2? O fluxo oficial 14B T2V usa um valor de shift de 8.0 em ambos os nos ModelSamplingSD3. O parametro aceita valores entre 0.0 e 100.0. [8]

Treino um LoRA ou dois LoRAs para o Wan 2.2 14B? Voce treina dois LoRAs separados, um no modelo base de high-noise e outro no modelo base de low-noise, usando o mesmo dataset e hiperparametros identicos. Na inferencia, ambos os LoRas sao carregados, um em cada cadeia de especialista. [6]

Fontes