ArtificialGuyBR

Home / Blog / Fixing things

Comparação de Checkpoint e LoRA com Seed Fixo

Metodologia prática para comparar modelos Stable Diffusion com justiça — controle variáveis e leia grids honestamente.

5 sources cited Fixing things

Comparação de Checkpoint e LoRA com Seed Fixo

TL;DR

  • O card de teste izolight exige parâmetros fixos em todas as avaliações — seed, sampler, steps, CFG, resolução e VAE devem ser idênticos para cada teste de checkpoint/LoRA. Para mais contexto sobre extração de trigger words de LoRA, o node ComfyUI é a fonte autoritativa.
  • v3 usa LoRA Auto Trigger — tags canônicas são extraídas automaticamente da API do Civitai ou dos metadados do modelo.
  • v2 muda para conditionings médios — para as categorias Portrait e Close-up, o node ConditioningAverage do ComfyUI mescla embeddings de texto em vez de concatenar prompts.
  • 30 LoRAs testadas — cobrindo Lava Style, Liquid Flow, Chrome Style, Bubblegum e outras categorias de estilo. Veja também nosso guia de workflow ComfyUI.

Origem: Da Ideia no Reddit ao Workflow ComfyUI

O artigo da izolight abre com uma referência direta: "A few days ago I stumbled upon a reddit post with a model testing card", linkando para r/StableDiffusion [[1]](https://civitai.com/articles/4474). Esse post (r/StableDiffusion/comments/1b39b07) é a semente de toda a metodologia.

O autor então construiu uma implementação ComfyUI com duas melhorias explícitas sobre o conceito do Reddit:

  1. Parâmetros controlados centralmente — "I decided to improve this a bit with centrally controlled parameters for the generation" [[1]](https://civitai.com/articles/4474)
  2. Suporte a LoRA e Lightning LoRA — "...and support for LoRA and Lightning LoRA" [[1]](https://civitai.com/articles/4474)

O workflow resultante posiciona "all the input parameters on the left side with the final output (as a preview that can be saved) there too" [[1]](https://civitai.com/articles/4474). Esse layout mantém a superfície de controle visível enquanto o grid de comparação renderiza.


Núcleo Metodológico: Um Conjunto de Parâmetros, Muitos Modelos

O princípio central: toda variável que possa afetar a saída deve ser travada identicamente em todas as células de teste. Para um tratamento mais aprofundado, veja avaliação de checkpoint SDXL.

O que o Card Realmente Testou

O workflow avaliou três checkpoints SDXL, todos usando os mesmos parâmetros de geração:

Checkpoint | Base | Versão | Parâmetros Principais | Fonte

|---|---|---|---|---

Realities Edge XL | SDXL Lightning | V7 (BakedVAE) | CFG 7, steps 25, DPM++ 2M SDE, seed 1 | https://civitai.com/images/7804518 Juggernaut XL | SDXL | V9 + RunDiffusionPhoto 2 | CFG 7, steps 25, DPM++ 2M SDE, seed 1 | https://civitai.com/images/7804589 Albedo Base XL | SDXL | V2.1 | CFG 7, steps 25, DPM++ 2M SDE, seed 1 | https://civitai.com/images/7805074

Metadados de geração de cada modelo confirmam valores idênticos: cfgScale:7, steps:25, sampler:DPM++ 2M SDE, seed:1 [[2]](https://civitai.com/images/7804518) [[3]](https://civitai.com/images/7804589) [[4]](https://civitai.com/images/7805074). Todos os três usam arquitetura SDXL-base — confirmado pelos parâmetros consistentes em todas as amostras publicadas.

Suite de Testes de LoRA

As 30 LoRAs abrangem categorias de estilo, de Lava Style a Chrome Style, cobrindo:

  • Estilos artísticos: Lava Style, Liquid Flow Style, Chocolate Wet Style, Midas Magic Grimoire, Tempest Magic Grimoire, Hedgerow Style, Wooden Blocks Style, Cardboard, Dataviz, Dippers Style
  • Estilos técnicos/efeitos: Clockwork/Steampunk, Wisp Elementals, Gaelic/Celtic Patterns, Eldritch Palette Knife Painting, GlowNeon, KaleidoShatter, Lelo, Line Art, Mechanarion
  • Estilos avançados/compostos: Neo Futuristic Tech, Animal Exoskeleton Style, Ember Glut Style, Bling Style, Extinction/fading, Bubblegum Style, Carbon Fiber Style, Chrome Style

Cada uma foi testada com injeção automática de trigger words via node LoRA Auto Trigger [[1]](https://civitai.com/articles/4474).


Erros comuns e correções

Erro | Causa | Correção | Fonte

|---|---|---|---|

Células produzem composições totalmente diferentes | A seed varia entre células | Trave uma única seed em todas as células; o card izolight usa seed 1 [[2]](https://civitai.com/images/7804518) | https://civitai.com/images/7804518 Uma LoRA não mostra efeito visível | Trigger word ausente ou com erro | Use LoRA Auto Trigger (v3) para injetar tags canônicas da API Civitai ou de metadados [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words) | https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words Prompts de portrait diluem detalhes do sujeito | Concatenação de prompt cria penalidades de comprimento de token | Mude para ConditioningAverage para mesclar prompts (comportamento v2) [[1]](https://civitai.com/articles/4474) | https://civitai.com/articles/4474 Resultados variam entre execuções de teste | Sampler, steps ou CFG diferem por modelo | Defina os parâmetros centralmente uma vez; propague a todas as células | https://civitai.com/articles/4474 VAE diferente altera as cores | VAE distinto por checkpoint | Use o VAE baked de cada checkpoint; mantenha todos os outros parâmetros idênticos | https://civitai.com/articles/4474


Detalhe Técnico: Arquitetura do LoRA Auto Trigger

O projeto LoRA Auto Trigger é um fork de Extraltodeus/LoadLoraWithTags e adiciona suporte a LoRAs empilhadas de jags111/efficiency-nodes-comfyui [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words). Ele extrai trigger words de duas fontes:

  1. API do Civitai — para modelos hospedados no Civitai
  2. Metadados de treinamento do modelo — embutidos em arquivos .safetensors quando disponíveis

Essa abordagem de duas fontes garante cobertura mesmo para LoRAs distribuídas fora do Civitai. O node retorna tanto civitai_tags_list quanto meta_tags_list como listas Python, que podem ser filtradas e ponderadas via node TagsSelector [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words). Isso dá flexibilidade na seleção de trigger words para cada tipo de LoRA.


Evolução de Versão: Três Iterações

v1 — Baseline com Parâmetros Controlados Centralmente

O lançamento inicial estabeleceu a arquitetura central: um único workflow ComfyUI onde todos os parâmetros de geração são definidos uma vez e propagados a cada célula. Isso eliminou a fonte mais comum de artefatos de comparação — drift de parâmetros entre células.

v2 — De Concatenação para Conditionings Médios

O tratamento original de prompts concatenava strings de texto: "portrait of a woman" + "soft window light". Isso criava uma única sequência de tokens onde a atenção poderia diluir entre conceitos não relacionados.

A v2 introduziu conditionings médios para categorias Portrait e Close-up [[1]](https://civitai.com/articles/4474). O node ConditioningAverage do ComfyUI computa embeddings de texto separados para cada componente do prompt, depois os mescla em um único vetor antes de alimentar o U-Net. Isso preserva a direção semântica de cada prompt enquanto evita penalidades de comprimento de token.

Nota: O artigo menciona a mudança mas não explica o mecanismo. O descrito acima é o comportamento padrão do ConditioningAverage do ComfyUI.

v3 — Injeção Automatizada de Trigger Words

A v3 implementou LoRA Auto Trigger [[1]](https://civitai.com/articles/4474) [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words). Em vez de trigger words manuais, o node extrai tags canônicas de duas fontes: API do Civitai e metadados de treinamento .safetensors.

Por que isso importa: Ao comparar LoRAs lado a side, inconsistência manual de trigger words introduz viés. Uma LoRA recebe seu trigger canônico exato; outra recebe um trigger com erro ou omitido. Auto-trigger padroniza o que ativa cada LoRA, isolando o modelo em si como única variável.


O que a Fonte Não Revela

Mesmo com um card de teste detalhado, lacunas metodológicas permanecem:

  • Conteúdo dos prompts — prompts estão embutidos no anexo SVG/JSON (não acessíveis publicamente). O artigo nota que "better prompts for photo/anime comparison" poderiam melhorar a variedade [[1]](https://civitai.com/articles/4474).
  • Layout do grid — o anexo codifica o mapeamento de células, mas o artigo não descreve contagem de linhas/colunas ou atribuição de checkpoint/LoRA.
  • Contagem de seeds — apenas seed 1 aparece nos metadados publicados. Seeds adicionais podem ou não ter sido testados por célula.
  • Detalhes de Lightning LoRA — o artigo menciona suporte mas não explica como a avaliação de Lightning LoRA difere de LoRA padrão.
  • Racional de seleção de modelos — todos três são modelos SDXL fotorrealistas; os critérios de seleção não são especificados.
  • Post original do Reddit — o post r/StableDiffusion retornou apenas um SVG de verificação quando acessado; o conteúdo do post não pôde ser lido.

FAQ

Como comparar dois checkpoints Stable Diffusion de forma justa?

Trave toda variável que possa afetar a saída: seed, sampler, steps, CFG, resolução e VAE. Use o mesmo conjunto de prompts nos dois modelos. O card de teste izolight impõe isso via parâmetros controlados centralmente [[1]](https://civitai.com/articles/4474).

Quais parâmetros devem ser mantidos constantes ao comparar LoRAs?

Seed, sampler, steps, CFG, resolução, VAE e checkpoint base. Trigger words também devem ser padronizadas via LoRA Auto Trigger (v3) para evitar o viés de inconsistência manual [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words).

Por que usar seed fixa em grids de comparação de modelos?

Uma seed fixa elimina a variância estocástica entre células, então diferenças visuais podem ser atribuídas ao modelo em vez de ruído aleatório. O card izolight usa seed 1 em todas as amostras publicadas [[2]](https://civitai.com/images/7804518).

O que é average conditioning vs concatenação no ComfyUI?

Concatenação junta strings de prompt em uma sequência de tokens; average conditioning (o node ConditioningAverage) computa embeddings separados para cada componente do prompt, depois os mescla em um único vetor. A v2 do card usa média para as categorias Portrait e Close-up [[1]](https://civitai.com/articles/4474).

Como o LoRA Auto Trigger funciona?

O node extrai trigger words canônicas da API do Civitai (para LoRAs hospedadas no Civitai) e dos metadados de treinamento .safetensors. Retorna civitai_tags_list e meta_tags_list como listas Python filtráveis. Um fork de Extraltodeus/LoadLoraWithTags com suporte a LoRAs empilhadas de jags111/efficiency-nodes-comfyui [[5]](https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words).


Armadilhas Comuns de Avaliação vs. Design do Card

Essas armadilhas são amplamente reconhecidas na comunidade Stable Diffusion. O card resolve várias delas pelo design:

Armadilha | Correção do Card

|---|---

Seeds diferentes por célula | Seed única fixa propagada a todas as células Samplers/steps/CFG diferentes por modelo | Parâmetros controlados centralmente Inconsistência manual de trigger words | LoRA Auto Trigger (v3) Veredito com prompt único | Múltiplas categorias de teste (Portrait, Close-up, etc.) VAE diferente | Cada checkpoint usa seu VAE baked; parâmetros idênticos nos demais