Mesclagem de modelos: SuperMerger vs Chattiori
Compare SuperMerger e Chattiori para mesclagem de Stable Diffusion. Bloco-ponderado, adição de diferença e avaliação por similaridade cosseno.
On this page
- TL;DR
- O que a mesclagem de modelo do Stable Diffusion faz na prática?
- Quais métodos de mesclagem o SuperMerger suporta?
- Quais recursos o Chattiori Model Merger oferece?
- Como ler e reproduzir uma receita de mesclagem da comunidade?
- Como avaliar se uma mesclagem melhorou de fato algo?
- Erros comuns e correções
- FAQ
Mesclagem de modelos: SuperMerger vs Chattiori
Mesclar checkpoints do Stable Diffusion é uma das formas mais práticas de criar um modelo sem treinar do zero. Você combina os pesos de modelos já existentes para manter os recursos desejados. As duas ferramentas mais usadas para isso são SuperMerger, uma extensão do WebUI, e Chattiori Model Merger, um script de linha de comando. Para uma visão geral das estratégias de mesclagem e controle por bloco, veja o guia de mesclagem de modelos.
TL;DR
- Use SuperMerger quando quiser experimentar dentro do AUTOMATIC1111's WebUI, ajustar razões visualmente e iterar sem salvar checkpoints intermediários.
- Use Chattiori Model Merger quando precisar de mesclagem focada em CPU, fluxos de trabalho com três modelos ou pipelines CLI reprodutíveis.
- Avalie com similaridade cosseno ou testes subjetivos, não com tamanho de arquivo ou tempo de mesclagem; essas métricas refletem o quanto a estrutura de saída foi preservada.
O que a mesclagem de modelo do Stable Diffusion faz na prática?
Um checkpoint do Stable Diffusion é um conjunto de tensores que representam a U-Net, o text encoder e, às vezes, a VAE. Mesclar substitui esses tensores por combinações ponderadas de tensores de outros checkpoints. A forma mais simples é uma interpolação linear: (1 - alpha) * modelA + alpha * modelB. Métodos mais avançados somam a diferença entre dois modelos, blendam três checkpoints de uma vez ou trocam tensores com base na similaridade direcional em vez da magnitude bruta.
O objetivo não é média estilos cegamente. O objetivo é transferir conceitos — anatomia, line art, detalhe de roupas — de um modelo para a estrutura de outro. Uma mesclagem errada pode embaçar rostos ou diluir cores; uma correta pode entregar um modelo que responde a prompts melhor que qualquer pai individual.
Quais métodos de mesclagem o SuperMerger suporta?
SuperMerger é uma extensão para o AUTOMATIC1111's WebUI. Seu README descreve a ferramenta como permitindo "merged models to be loaded as models for image generation without saving them", o que evita I/O repetido no disco durante experimentação.
A extensão expõe vários modos de mesclagem diretamente na interface:
Mode | Formula | Notes ------|---------|------- Weight sum | (1 - alpha) * A + alpha * B | Interpolação linear padrão Add difference | A + alpha * (B - C) | Injeta a delta entre B e C em A Triple sum | (1 - alpha - beta) * A + alpha * B + beta * C | Blend de três modelos Sum twice | (1 - beta) * ((1 - alpha) * A + alpha * B) + beta * C | Blend em duas etapas
Além disso, SuperMerger oferece métodos de cálculo que mudam como a matemática é executada. A documentação lista cosineA e cosineB como modos que "calculate to minimize loss during merging, using ModelA as the reference" ou ModelB como referência, respectivamente. São úteis quando os dois checkpoints compartilham maioria da estrutura e você quer preservar a arquitetura geral de um modelo enquanto empresta detalhes ao outro.
A extensão também suporta mesclagem por bloco-ponderado. Seu README explica que "each block may correspond to background depiction, characters, art style, etc.", então é possível atribuir pesos diferentes a blocos individuais da U-Net em vez de mesclar o checkpoint inteiro uniformemente. A mesclagem elemental vai além, permitindo alvo específico de tensores dentro de blocos, embora a documentação avise que isso serve melhor para ajustes finos do que para experimentação ampla.
Quais recursos o Chattiori Model Merger oferece?
Chattiori Model Merger é um script Python projetado para rodar por padrão na CPU, o que o torna prático para Colab ou máquinas com VRAM limitada. Seu README lista modos para weight sum, sigmoid, geometric mean, max, add difference, smooth add difference, multiply difference, similarity add difference, train difference, triple sum, tensor sum, sum twice, no interpolation, read metadata, DARE e outros.
A ferramenta aceita strings de peso por bloco e sintaxe elemental pelo mesmo argumento --alpha, então é possível migrar receitas do SuperMerger sem reescritas. Também embute VAEs no checkpoint de saída, remove tensores não usados e salva nos formatos .safetensors ou .ckpt com metadados ricos.
Um recurso distinto do Chattiori são seus modos de estrutura cosseno: --cosine0, --cosine1 e --cosine2. O README afirma que --cosine0 faz "Model 0 define the structure" enquanto injeta detalhes do Model 1, e --cosine2 usa Model 2 como base estrutural enquanto mistura detalhes dos dois modelos anteriores. Isso é útil quando quer manter a compreensão de prompt de um modelo, mas adotar o estilo de renderização de outro.
Como ler e reproduzir uma receita de mesclagem da comunidade?
Receitas da comunidade geralmente são compartilhadas como passos numerados com pesos por bloco, em vez de um único valor de alpha. A receita Blessing Mix (civitai.com/articles/645) tenta reconstruir BracingEvoMix usando modelos-fonte publicamente disponíveis, organizados em output_blocks, input_blocks e uma mesclagem de base encoder, cada um com sua própria agenda de alpha.
Para reproduzir uma receita dessas, é necessário uma ferramenta que suporte notação por peso de bloco. O SuperMerger e o Chattiori aceitam pesos por bloco, então a mesma receita pode ser executada em qualquer ambiente. O processo geralmente segue esse roteiro:
- Identifique se cada passo usa add difference, weight sum ou outro modo.
- Mapeie os IDs de bloco —
IN00atéIN11,M00,OUT00atéOUT11eBASE— para o formato esperado pela ferramenta. - Execute os passos sequencialmente, salvando checkpoints intermediários se a ferramenta não mantê-los na memória.
- Compare a saída final com o modelo-alvo usando similaridade cosseno ou inspeção visual.
A receita Blessing Mix reporta similaridades por bloco com BracingEvoMix, com saída final atingindo 98,5% de similaridade e blocos de entrada 98,6%. Esses números são métricas relatadas pela comunidade, não benchmarks independentes. Para entender o que cada modelo-fonte traz, consulte o model card do Evt_V4-preview, que documenta detalhes de treino e estilo de saída.
Como avaliar se uma mesclagem melhorou de fato algo?
A similaridade cosseno é a verificação quantitativa mais comum. O calculador wkpark/sd-cosine-similarity, forkeado de JosephusCheung's ASimilarityCalculatior, suporta output_blocks, input_blocks e middle_block, o que corresponde ao fluxo de trabalho por bloco usado por ambas as ferramentas de mesclagem. Alta similaridade com um modelo-alvo sugere que a mesclagem preservou detalhes estruturais, mas não garante melhor resposta a prompts ou menos artefatos.
A avaliação subjetiva continua essencial. Uma mesclagem pode pontuar bem em similaridade cosseno e ainda produzir mãos turvas ou fundos diluídos. A documentação do BracingEvoMix classifica sua própria versão v2 em dimensões como reação a prompts, fotorealismo, precisão de desenho de mãos e estabilidade de pose, com notas autoatribuídas de 40 a 95 de 100. Essa espécie de checklist multidimensional é mais útil do que uma única porcentagem de similaridade.
Ao comparar duas mesclagens, teste o mesmo conjunto de prompts nas duas e procure regressões em blocos específicos. O recurso de bloco-pinpoint do SuperMerger e as strings de alpha por bloco do Chattiori permitem refazer apenas as camadas problemáticas em vez de reconstruir o modelo inteiro do zero.
Erros comuns e correções
Sintoma | Causa provável | Correção --------|---------------|---------- Saída de mesclagem parece diluída | Alpha muito alto para um pai com estilo diferente | Reduza o alpha ou use modo cosseno para preservar a estrutura da base Rostos degeneram, mas fundos ficam nítidos | Pesos de bloco de entrada muito agressivos | Diminua pesos em IN07, OUT03, OUT04 e OUT05, que a documentação elemental sinaliza como camadas de alta influência Arquivo não carrega no WebUI | VAE ausente ou CLIP ids não conferem | Use a opção de embutir VAE e resete os CLIP ids antes de salvar Mesclagem consome VRAM excessivo | Mesclagem em GPU com arquivos .ckpt grandes | Mude para modo CPU ou converta as fontes para .safetensors primeiro Similaridade cosseno é enganosamente alta | Apenas um subconjunto de blocos foi medido | Compare checkpoints completos ou adicione os blocos omitidos ao cálculo de similaridade
FAQ
Qual é a diferença entre add difference e weight sum? Weight sum mistura dois modelos linearmente. Add difference injeta a diferença aprendida entre um terceiro modelo e a base no modelo principal, o que está mais perto de instalar um ajuste tipo LoRA permanentemente.
A mesclagem por bloco-ponderado realmente importa? Sim. A documentação do OrangeMixs mostra receitas publicadas que dependem de controle por bloco, e o README do SuperMerger nota que blocos correspondem a elementos semânticos diferentes como fundo, personagens e estilo de arte.
Posso mesclar modelos SDXL com essas ferramentas? SuperMerger suporta XL com pesos de bloco de comprimento 25, e o Chattiori detecta a arquitetura automaticamente. Ambas as ferramentas avisam que mesclagens XL exigem memória de sistema substancial.
O que a similaridade cosseno me diz sobre uma mesclagem? Ela mede o alinhamento direcional entre tensores. Uma nota alta significa que o modelo mesclado manteve a direção estrutural do alvo, mas não mede qualidade estética ou adesão a prompts.
O Chattiori Model Merger é melhor que o SuperMerger? Não universalmente. SuperMerger é mais rápido para experimentação interativa no WebUI; Chattiori é melhor para servidores headless, Colab e scripts que precisam de saídas determinísticas.
Como evitar quebrar uma mesclagem com edições elementais? Comece com pesos de bloco. A documentação elemental recomenda ajustes por nível de elemento apenas como ajuste final quando a mesclagem por bloco não resolver um problema específico.
Posso mesclar mais de três modelos de uma vez? SuperMerger suporta triple sum e sum twice como modos diretos. Para ensembles maiores, mescle sequencialmente ou use uma ferramenta como ModelMergeTool para médias ponderadas simples.
Qual é o modo de mesclagem mais seguro para iniciantes? Weight sum com um único valor de alpha. É determinístico, fácil de reverter e menos provável de produzir interações tensoriais inesperadas do que add difference ou train difference.