INT8 quase não estraga as imagens, e o sampler AB-2 vence o Euler em 12 de 12 testes

Costuma-se dizer que, em modelos comprimidos para INT8, como o Flux, samplers complexos acumulam erro. Os autores do Flow-WLS testaram essa ideia em quatro modelos: o ruído do INT8 quase não aparece, e o simples AB-2 venceu o Euler nas 12 combinações de passos e CFG no Anima. Já o Flow-WLS, criado pelos próprios autores, perdeu para o Euler com poucos passos. Na prática: com CFG 3+, use flow_ab2; em modelos destilados com CFG 1, use flow_ab3.

Processado por IA de Habr AI; editado por Hamidun News
INT8 quase não estraga as imagens, e o sampler AB-2 vence o Euler em 12 de 12 testes
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Ruído dos kernels INT81,3% da norma da velocidade com CFG 1 e 5,7% com CFG 4
Dado-chave #2O AB-4 amplifica o ruído branco em 1,97 vez; o AB-2, só em 1,06 vez
Distância LPIPS entre INT8 e bf160,014 com CFG 1 e 0,029 com CFG 4

Se você roda Flux, Qwen-Image e modelos parecidos em uma placa de vídeo doméstica, quase certamente usa pesos quantizados: os números do modelo são arredondados para 8 bits (INT8) para que ele caiba na memória. Junto com isso circula um conselho: em um modelo assim, evite samplers "sofisticados", isto é, algoritmos que transformam ruído em imagem passo a passo, porque eles supostamente acumulam erro de arredondamento. O autor do projeto Flow-WLS testou essa ideia com medições.

O resultado: o ruído do INT8 quase não aparece na imagem, e o simples sampler AB-2 foi melhor que o Euler básico em todas as 12 combinações testadas (3 valores de CFG × 4 números de passos) no modelo Anima. O sentido prático é este: se você usa Euler só por medo da quantização, pode abandonar esse medo e trocar o sampler com um clique na lista suspensa do ComfyUI. Há ainda uma conclusão incômoda para o próprio autor: a ideia dele, o Flow-WLS, apresentada em trabalho anterior, perdeu para o Euler com poucos passos.

Glossário. CFG é a força com que o modelo segue o texto do prompt: quanto mais alto, mais qualquer erro é amplificado. Euler é o sampler mais simples: dá cada passo com base apenas na previsão atual. AB-2, AB-3 e AB-4 são métodos de Adams–Bashforth: eles levam em conta 2, 3 ou 4 passos anteriores, como se você estimasse a velocidade de um movimento não por um único quadro, mas por vários. LPIPS é uma métrica que mostra o quanto duas imagens diferem para a "visão" de uma rede neural; quanto menor, mais próxima da referência.

O que foi testado e como

Foram usados quatro modelos flow: Anima (em bf16 e com simulação de FP8, INT8, INT4 e NVFP4), Flux3-Klein INT8, Krea 2 INT8 (com ConvRot) e Moss-Image INT8. Os testes usaram 4 prompts, 2–3 seeds, de 8 a 24 passos e CFG de 1 a 5. A referência foi o mesmo modelo rodado com um número muito grande de passos (96, no caso do retrato no Anima).

No Flux3, foram comparados dois modos do mesmo modelo: com kernels INT8 reais (Q) e com os mesmos pesos descompactados para bf16, sem quantização das ativações (D). A diferença entre eles mostra o erro puro dos kernels. Antes dos experimentos, os autores registraram no README 15 hipóteses (H1–H15) e as condições para confirmá-las, para não ajustar a conclusão ao resultado. Parte das hipóteses não se confirmou, e isso foi mantido no texto.

A quantização é inofensiva, e o ruído é branco

O erro dos kernels INT8 reais é de 1,3% da norma da velocidade com CFG 1 e de 5,7% com CFG 4. O aumento de 4,36 vezes tem explicação: o erro é multiplicado pelo guidance, como qualquer diferença entre previsões. No latente final, isso resulta em no máximo 0,02 de erro relativo. A distância LPIPS entre os resultados Q e D é de 0,014 com CFG 1 e de 0,029 com CFG 4; a olho nu, não dá para notar a diferença.

O ruído, além disso, é "branco": a correlação entre passos vizinhos é de −0,001. Ou seja, a cada passo o erro é novo e não se acumula em uma direção. É justamente esse tipo de ruído que os métodos de ordem mais alta amplificam. Pelo cálculo, em relação ao Euler, o AB-2 o amplifica em 1,06 vez, o AB-3 em 1,21 e o AB-4 em 1,97. Mas o erro excedente do próprio AB-4 (0,5–0,8) é dezenas de vezes maior que o efeito da quantização (até 0,02), então o culpado não é o INT8, e sim a escolha do método.

O que escolher na prática

No Anima, foram testados CFG 1, 3 e 5 com 8, 12, 16 e 24 passos, em nove métodos no total:

  • o AB-2 é melhor que o Euler nas 12 células, por 0,03–0,12 de erro no latente, e os intervalos de confiança não incluem zero;
  • o DPM++ 2M supera o Euler com CFG alto, em 16–24 passos;
  • com CFG 1 (Flux3-Klein e Krea 2 destilados), os melhores são o AB-3 e a seleção dinâmica;
  • o AB-4 e as janelas longas do Flow-WLS, com 12 passos ou menos, não foram a melhor escolha em nenhum caso.

As imagens confirmam isso. No Anima, com 8 passos, o Euler deixa um ruído quase preto (LPIPS 0,89), enquanto o DPM++ 2M (0,35) e o AB-2 (0,42) entregam uma imagem completa; com 16 passos, o Euler marca 0,34, contra 0,20 do DPM++ 2M, 0,21 do AB-3 e 0,23 do AB-2. No Krea 2, com 12 passos, o Euler deixa a pele com aspecto "plástico" (0,34), e o AB-3 (0,21) devolve poros e sardas. No Flux3-Klein, com 12 passos, Euler, DPM++ 2M, AB-2 e AB-3 são iguais a olho nu (0,15), então ali não há motivo para trocar de sampler.

A causa está na natureza da saída da rede: uma tendência suave somada a um ruído sem relação entre os passos. O tamanho desse ruído é de cerca de 1% da norma com CFG 1, cerca de 4% com CFG 3 e 6–7% com CFG 5. Regras com pesos grandes amplificam esse ruído e só levam vantagem enquanto ele é pequeno.

Ajustar o filtro de histórico aos dados rendeu um ganho de no máximo 3,4% sobre a melhor regra existente, por isso não é preciso um novo sampler da classe Flow-WLS. Resultado colateral: a métrica de consistência em um único passo prevê mal o ranking final, enquanto a métrica acumulada ao longo da trajetória prevê razoavelmente bem (correlação de Spearman de 0,77 em média).

Instalação: clone o repositório YakovSava/flow-wls-research em ComfyUI/custom_nodes/ e reinicie o ComfyUI. Em sampler_name vão aparecer flow_ab2, flow_ab3 e flow_ab4. Também há o nó Flow Easy Sampler, com escolha entre duas opções. O AB-k funciona sem chamadas adicionais ao modelo, por isso custa o mesmo que o Euler. Recomendações: modelo comum com CFG 3 ou mais — flow_ab2 e, com 16+ passos, também dpmpp_2m; modelo destilado com CFG 1 — flow_ab3; menos de 12 passos — nem flow_ab4 nem janelas longas do Flow-WLS.

Limitações

O LPIPS mede a distância até a imagem obtida com muitos passos, e não a beleza; não houve teste cego com pessoas. A amostra é pequena: 4 prompts, 4 modelos, um seed por imagem, sem escolha da melhor. Para o Moss-Image não há referência convergida, então só efeitos grandes são confiáveis; para o Flux3 com CFG 4, a referência converge em 20–34%.

Para Moss e Krea 2, só o modo Q foi medido. O erro do arredondamento dos pesos em si, em relação a um original bf16 desconhecido, não foi medido. Modelos do tipo SDXL não foram testados.

O AB-2 e o DPM++ 2M foram incluídos em parte dos experimentos depois dos primeiros resultados, e isso está indicado no README. O AB-2 não é um método novo: o valor do trabalho está nas medições e no resultado negativo sobre a ideia dos próprios autores.

História

Perguntas frequentes sobre a notícia

O que foi testado e como?

Foram usados quatro modelos flow: Anima (em bf16 e com simulação de FP8, INT8, INT4 e NVFP4), Flux3-Klein INT8, Krea 2 INT8 (com ConvRot) e Moss-Image INT8. Os testes usaram 4 prompts, 2–3 seeds, de 8 a 24 passos e CFG de 1 a 5. A referência foi o mesmo modelo rodado com um número muito grande de passos (96, no caso do retrato no Anima). No Flux3, foram comparados dois modos do mesmo modelo: com kernels INT8 reais (Q) e com os mesmos pesos descompactados para bf16, sem quantização das ativações (D).

O que se sabe sobre A quantização é inofensiva, e o ruído é branco?

O erro dos kernels INT8 reais é de 1,3% da norma da velocidade com CFG 1 e de 5,7% com CFG 4. O aumento de 4,36 vezes tem explicação: o erro é multiplicado pelo guidance, como qualquer diferença entre previsões. No latente final, isso resulta em no máximo 0,02 de erro relativo. A distância LPIPS entre os resultados Q e D é de 0,014 com CFG 1 e de 0,029 com CFG 4; a olho nu, não dá para notar a diferença. O ruído, além disso, é "branco": a correlação entre passos vizinhos é de −0,001.

O que escolher na prática?

No Anima, foram testados CFG 1, 3 e 5 com 8, 12, 16 e 24 passos, em nove métodos no total: o AB-2 é melhor que o Euler nas 12 células, por 0,03–0,12 de erro no latente, e os intervalos de confiança não incluem zero; o DPM++ 2M supera o Euler com CFG alto, em 16–24 passos; com CFG 1 (Flux3-Klein e Krea 2 destilados), os melhores são o AB-3 e a seleção dinâmica; o AB-4 e as janelas longas do Flow-WLS, com 12 passos ou menos, não foram a melhor escolha em nenhum caso. As imagens confirmam isso.

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…