ArtificialGuyBR

Home / Blog / Prompting and control

Wildcards e Prompts Dinâmicos: A1111, Forge, Fooocus

Sintaxe de wildcards e geração de prompts dinâmicos no A1111, Forge e Fooocus

3 sources cited Prompting and control

Wildcards e Prompts Dinâmicos: A1111, Forge, Fooocus

TL;DR: Wildcards e prompts dinâmicos permitem que usuários do Stable Diffusion insiram valores aleatórios ou pré-definidos em prompts usando a sintaxe __nome_do_arquivo__. Este artigo aborda a sintaxe no A1111, Forge e Fooocus, modos de geração e correções comuns.

O Que São Wildcards?

Um wildcard é um token de placeholder como __nome_do_arquivo__ que se expande para um valor aleatório de um arquivo .txt no momento da geração. Em vez de escrever "uma foto de um cachorro", você escreve __animal__ e a ferramenta escolhe uma linha do arquivo. Isso permite explorar muitas variações de prompt sem reescrever cada uma manualmente.


Comparação de Sintaxe Entre Plataformas

Sintaxe Básica de Wildcards

Todas as três plataformas usam a mesma estrutura básica de token:

__nome_do_arquivo__

O token referencia um arquivo .txt contendo um valor por linha. Durante a geração, a ferramenta lê o arquivo, escolhe uma linha e a insere no prompt.

A1111 Dynamic Prompts usa isso como mecanismo principal (https://github.com/adieyal/sd-dynamic-prompts). A extensão lê arquivos de extensions/sd-dynamic-prompts/wildcards e substitui valores aleatória ou combinatoriamente.

Fooocus usa sintaxe idêntica (https://github.com/lllyasviel/Fooocus). Usuários colocam arquivos .txt no diretório wildcards/ e os referenciam da mesma forma nos prompts.

Forge herda da base de código do A1111 mas não inclui uma extensão nativa de wildcards (https://github.com/lllyasviel/stable-diffusion-webui-forge). Usuários devem instalar a extensão sd-dynamic-prompts separadamente para obter suporte completo a wildcards.

Sintaxe de Variantes

A1111 e Forge usam chaves com separadores de pipe para escolhas aleatórias inline:

{opcao1|opcao2|opcao3}

Para selecionar múltiplos valores de uma lista:

{2$$chocolate|baunilha|morango}

O número seguido por $$ diz à ferramenta para escolher aquele número de opções únicas da lista.

Variantes do Fooocus

Fooocus suporta um sistema de variantes mais simples. Ele lê listas pré-definidas e as aplica com base na configuração, mas sua sintaxe de variantes é menos flexível que a estrutura {}|{} do A1111.


Modos de Geração Explicados

Modo Combinatório (A1111)

Geração combinatória lista todas as combinações possíveis de opções em vez de amostrar um resultado aleatório. Para um template como {a|b} {c|d}, ele produz:

  • a c, a d, b c, b d

Quando wildcards estão presentes, ele adiciona um prompt por valor do wildcard. Isso pode explodir rapidamente com múltiplos wildcards, então o A1111 inclui um controle deslizante Max Generations para limitar a saída.

Modo Aleatório (Todas as Plataformas)

Modo aleatório escolhe uma opção por posição por prompt. O mesmo template produz apenas um resultado por geração:

a c

ou

b d

Você pode executá-lo várias vezes para obter variedade, mas sem garantia de cobrir todas as combinações.

Diferença Principal

Modo | O que faz | Caso de uso | Source

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

Combinatório | Produz todas as combinações possíveis | Testes exaustivos, geração de datasets | sd-dynamic-prompts/README.md Aleatório | Escolhe uma combinação aleatória por geração | Exploração criativa, imagens únicas | sd-dynamic-prompts/README.md


Criando Arquivos de Wildcard Reutilizáveis

Estrutura de Diretórios do A1111

extensions/sd-dynamic-prompts/wildcards/
├── seasons.txt
├── artists/
│   ├── famous.txt
│   └── contemporary.txt
└── styles/
    ├── impressionist.txt
    └── surrealist.txt

Estrutura de Diretórios do Fooocus

wildcards/
├── animal.txt
├── artist.txt
├── color.txt
├── color_flower.txt
├── extended-color.txt
├── flower.txt
└── nationality.txt

Fooocus inclui sete arquivos padrão. Você pode adicionar os seus criando novos arquivos .txt neste diretório.

Recursos Avançados do A1111

Correspondência glob: Use __artistas*__ para corresponder a todos os arquivos começando com "artistas" em múltiplos arquivos.

Correspondência recursiva: Use __styles/**/*__ para corresponder a arquivos em qualquer subdiretório aninhado.

Aninhamento: Coloque um token wildcard dentro de outro arquivo wildcard. Se countries.txt contém __africa__, ele será resolvido recursivamente para os valores reais em africa.txt.


Considerações Específicas por Plataforma

A1111 Dynamic Prompts

A1111 tem o sistema de wildcards mais completo. Ele suporta:

  • Diretórios hierárquicos de wildcards
  • Correspondência de arquivos glob e recursiva
  • Modos de geração combinatória e aleatória
  • Seleção múltipla com desduplicação via {2$$}

A desvantagem: o modo combinatório pode gerar milhares de prompts se você não tomar cuidado com o limite Max Generations.

Fooocus

Fooocus adota uma abordagem mais simples. Ele usa a mesma sintaxe __nome_do_arquivo__ mas oferece menos opções de configuração. Inclui um motor de processamento de prompts baseado em GPT-2 offline que pode ajudar com variedade de prompts, mas não oferece modo combinatório explícito.

Forge

Forge é construído sobre o A1111 mas não inclui extensões de wildcard por padrão. Usuários relatam que wildcards às vezes falham ao resolver, mostrando o texto literal __token__ em vez disso. A correção mais comum é instalar a extensão sd-dynamic-prompts e garantir que os arquivos estão no diretório correto.


Erros Comuns e Correções

Wildcard retorna texto literal __season__

Causa: O arquivo wildcard não está no diretório correto, ou o nome do arquivo não corresponde ao token usado no prompt.

Correção: Coloque o arquivo em extensions/sd-dynamic-prompts/wildcards/ e verifique se o nome do arquivo corresponde exatamente. Caminhos devem ser absolutos, não relativos.

Valores duplicados de wildcard na saída

Causa: Usar o mesmo wildcard duas vezes em um prompt sem desduplicação.

Correção: Envolva em uma variante: {2$$__sabores__} garante seleções únicas do mesmo arquivo.

Muitas imagens geradas

Causa: Modo combinatório está habilitado com múltiplos wildcards, produzindo um número exponencial de combinações.

Correção: Desmarque a caixa combinatória, ou aumente o limite do controle deslizante Max Generations para limitar a saída.

Controle deslizante de contagem de lote muito baixo

Causa: O máximo padrão de contagem de lote do A1111 é 100, o que é insuficiente para grandes conjuntos combinatórios.

Correção: Edite ui-config.json e altere "txt2img/Batch count/maximum" para um valor maior como 1000.


Recursos de Aprendizado

Documentação Oficial

Documentação Interna

Para detalhes de implementação mais profundos, veja:

Solução de Problemas

Mensagens de erro comuns:

  • "No values found for wildcard some/wildcard" — Verifique se o arquivo existe no diretório wildcard correto
  • "MetadataIncompleteBuffer" e "PytorchStreamReader" — Isso se refere a corrupção de arquivo de modelo, não a wildcards

Conclusão

Cada plataforma lida com wildcards de forma diferente. A1111 fornece o conjunto de recursos mais abrangente com geração combinatória e correspondência avançada de arquivos. Fooocus oferece uma experiência mais simples e direta, mas não tem modo combinatório. Forge herda a arquitetura do A1111 mas requer instalação manual de extensão para suporte confiável a wildcards.

Escolha a plataforma com base nas suas necessidades:

  • A1111: Melhor para testes sistemáticos e exploração exaustiva de prompts
  • Fooocus: Melhor para uso rápido e simples de wildcards sem sobrecarga de configuração
  • Forge: Compatível com extensões do A1111 mas requer configuração

FAQ

Qual a diferença entre modo aleatório e combinatório no A1111?

Modo aleatório escolhe uma combinação por geração. Modo combinatório gera todas as combinações possíveis do seu template. Use aleatório para exploração criativa; use combinatório quando precisar de cobertura completa de todas as opções.

Onde coloco arquivos wildcard no Fooocus?

Coloque arquivos .txt no diretório wildcards/ na raiz da sua instalação do Fooocus. O repositório inclui sete arquivos padrão: animal.txt, artist.txt, color.txt, color_flower.txt, extended-color.txt, flower.txt e nationality.txt.

Qual sintaxe é compartilhada entre A1111, Forge e Fooocus?

Todos os três usam sublinhados duplos para wildcards: __nome_do_arquivo__. A extensão A1111 Dynamic Prompts fornece o conjunto completo de recursos; Fooocus usa o mesmo token mas com menos opções; Forge herda do A1111 mas precisa da extensão instalada.

Posso aninhar wildcards dentro de outros wildcards?

Sim. No A1111, você pode colocar tokens __wildcard__ dentro de outros arquivos wildcard. Se countries.txt contém __africa__, o sistema resolve recursivamente para valores de africa.txt. Isso suporta estruturas hierárquicas complexas de wildcards.

Como fazer o Fooocus esgotar todos os artistas de um arquivo?

Fooocus usa seleção aleatória por padrão, então não é possível garantir que todos os valores sejam usados em uma única execução. Crie um arquivo wildcard abrangente listando todos os artistas, então gere múltiplas imagens para aumentar a cobertura. O motor de processamento de prompts GPT-2 do Fooocus pode ajudar a variar os resultados.