Para que serve a seed no Stable Diffusion?

Por Atualizado em 3 min de leitura

A seed (semente) é um número inteiro que inicializa o ruído aleatório do qual toda geração parte. Com seed, prompt, modelo, configurações e software idênticos, o Stable Diffusion produz a mesma imagem; mude a seed e você obtém outra composição para o mesmo prompt. No Automatic1111 e neste site, o valor -1 sorteia a seed.

Por que a seed é importante

A difusão parte de um ruído, e cada imagem é uma função determinística desse ruído somado às suas configurações. A seed é a receita do ruído. Isso faz dela a ferramenta mais útil para aprender: fixe a seed, mude uma coisa só, compare. É exatamente o método por trás da nossa comparação de estilos de artistas: 1.731 artistas, quatro prompts fixos e uma seed fixa para cada prompt. Só o nome do artista muda; assim, as diferenças que você vê são o efeito do artista e nada mais.

Como usar na prática

  1. Gere com a seed em -1 até aparecer uma composição que agrade.
  2. Veja a seed nas informações da imagem (o Automatic1111 a grava nos metadados do PNG e a exibe abaixo da imagem) e cole-a no campo da seed.
  3. Agora refine o prompt ou o prompt negativo palavra por palavra: a composição costuma se manter, os detalhes mudam.
  4. Com um sampler não ancestral (Euler, DDIM, DPM++ 2M), a mesma seed continua dando uma imagem parecida quando você muda os passos ou o CFG, o que permite comparar as configurações de forma justa. Os samplers ancestrais, como o Euler a, acrescentam ruído novo a cada passo, e a imagem se afasta da original.

Os exemplos de prompts deste site informam a seed de quase todas as imagens, para você partir de um resultado conhecido.

O que quebra a reprodutibilidade

  • Outro modelo ou LoRA: o ruído é o mesmo, mas quem remove o ruído não é, então a imagem muda: um pouco com um LoRA leve, por completo com outro modelo.
  • Outro tamanho de imagem: o tensor de ruído tem outro formato, então a imagem não tem nenhuma relação com a anterior, mesmo com a mesma seed.
  • Outra GPU ou versão do software: diferenças minúsculas de ponto flutuante podem alterar detalhes; entre marcas de GPU diferentes, o Automatic1111 chega a sortear outro ruído, a menos que a fonte de números aleatórios dele esteja definida como CPU.
  • O Automatic1111 tem outras configurações que mudam o resultado, como variation seed, Clip skip e Eta noise seed delta; mantenha-as idênticas para repetições exatas.

Variações em torno de uma seed

O Automatic1111 tem um campo variation seed e um controle deslizante variation strength: entre 0,1 e 0,3 você obtém imagens irmãs da original, com a mesma pose e a mesma paleta e pequenas mudanças, o que ajuda a escolher as melhores mãos ou o melhor rosto. Um X/Y/Z plot com seeds em um eixo e uma palavra do prompt no outro produz uma grade de comparação em uma única execução.

Perguntas frequentes

Uma seed maior é melhor?

Não. A seed é o rótulo de um padrão de ruído, não um ajuste de qualidade; 7 e 4.294.967.295 valem o mesmo. Só importa que ela seja repetível.

Consigo obter a mesma imagem em outro site com a mesma seed?

Só se o site usar o mesmo modelo, o mesmo tamanho, o mesmo sampler, os mesmos passos, o mesmo CFG e o mesmo software. Entre duas instalações do Automatic1111, isso costuma acontecer; entre serviços diferentes, quase nunca.

Por que a mesma seed dá uma imagem diferente nas ferramentas deste site?

As ferramentas públicas aplicam a cada pedido o próprio prompt negativo, LoRAs de detalhe, número de passos e sampler, e o inpainting redimensiona sua imagem para caber em 1024 px; por isso o resultado é diferente do que a sua instalação local produz. Dentro do site, o mesmo pedido com a mesma seed é reproduzível.