Prompt Cycler: rode uma lista de prompts no ComfyUI, um por imagem

Meu custom node gratuito transforma cada linha de uma caixa de texto em um prompt próprio e passa para o próximo a cada execução. Como instalar, conectar, mostrar o prompt atual e acrescentar um assunto fixo a cada linha com um nó Concatenate.

Anton Tenitsky13 de outubro de 20264 min de leituraVersão em vídeo abaixo

Este guia foi traduzido do inglês com IA e pode conter erros. Leia o original.

O nó Prompt Cycler no ComfyUI com uma lista de prompts, modo de ciclo em sequential, ao lado de uma imagem gerada de formações rochosas do deserto ao pôr do sol

Percorrer uma lista de prompts costumava ser surpreendentemente trabalhoso no ComfyUI, então criei meu próprio nó. No Prompt Cycler, cada linha de texto é um prompt próprio. Execute o fluxo e você recebe o próximo. Enfileire algumas centenas de execuções e você obtém algumas centenas de imagens diferentes.

Funciona com qualquer modelo, porque tudo o que ele faz é entregar texto. Normalmente o uso com o Flux; aqui faço a demonstração com o Stable Diffusion 1.5 puro, um modelo bem básico, então as imagens não são ótimas.

Em resumo

  • Onde pegar: tenitsky/tenitsky-prompt-cycler-simple no GitHub, gratuito. Descompacte ou clone em ComfyUI/custom_nodes e reinicie.
  • Como usar: um prompt por linha; a saída prompt dele vai para o CLIP Text Encode.
  • Modos: sequential ou random; reset_cycle recomeça da primeira linha.
  • Extras: o Display Any do rgthree mostra o prompt atual; um nó Concatenate acrescenta um assunto fixo a cada linha.

Instalação

O nó ainda não está no ComfyUI Manager. Instale pelo GitHub, de qualquer um destes jeitos:

  • ZIP: clique em Code → Download ZIP e descompacte na sua pasta ComfyUI/custom_nodes.
  • git:
    cd ComfyUI/custom_nodes
    git clone https://github.com/tenitsky/tenitsky-prompt-cycler-simple.git

Se o seu ComfyUI está atualizado, você não precisa rodar pip install -r requirements.txt. Reinicie o ComfyUI.

A página do repositório no GitHub com o menu Code aberto e Download ZIP destacado
Code → Download ZIP, depois descompacte em custom_nodes.

Novo no ComfyUI? Comece por noções básicas de nós do ComfyUI e texto para imagem.

Conecte

  1. Dê um duplo clique na tela e busque Prompt Cycler (listado como Tenitsky Prompt Cycler Simple). Ele já vem com prompts de exemplo carregados.
  2. Conecte a saída prompt dele à entrada de texto de um nó CLIP Text Encode, e este à entrada positiva do seu KSampler como de costume.
  3. Execute. Cada execução pega a próxima linha.

Os ajustes dele:

Ajuste O que faz
seed / control after generate Deixe em increment para cada execução avançar
cycle_mode sequential percorre a lista em ordem; random escolhe uma linha ao acaso
reset_cycle Recomeça da primeira linha
Caixa de texto Seus prompts, um por linha, quantos quiser

O nó também entrega cycle_index, o número da linha atual.

Veja o prompt atual

Gosto de adicionar o Display Any do rgthree e conectar o prompt a ele, para ver qual linha está rodando.

Um nó Display Any (rgthree) mostrando o texto: cat posing in front a space station orbiting a distant planet
O Display Any mostra o prompt em uso. Aqui o espaço que falta é o problema do delimitador descrito abaixo.

Acrescente o mesmo assunto a cada prompt

Para pôr um personagem específico em toda cena, adicione um nó Concatenate:

  1. Digite o assunto nele, por exemplo cat posing in front.
  2. Conecte o prompt do cycler como string_b.
  3. Conecte a saída STRING ao codificador de texto e ao Display Any.
  4. Defina o delimiter como um espaço. No começo esqueci e obtive «in fronta space station».
Um nó Concatenate com cat posing in front como primeira string, o cycler conectado como string_b e um campo de delimitador vazio
O Concatenate coloca o assunto fixo na frente de cada linha. Defina o delimitador como um espaço.

Agora o gato aparece em todas as imagens, seja qual for a cena.

Uma imagem do SD 1.5 de um gato preto e branco sentado numa pedra diante de um lago de montanha, com a lista de prompts à esquerda
«Cat posing in front» mais a próxima linha da lista: um gato num lago de montanha. SD 1.5 puro, então a qualidade é básica.

Combine a concatenação com uma lista longa e você pode rodar milhares de prompts.

Por que o criei

Isto tem sido uma salvação para mim. Antes, eu usava uma cadeia inteira de nós para fazer o mesmo trabalho: arquivos de texto, listas de prompts, um nó concatenate à parte com várias entradas e uma pré-visualização. Na época eu não sabia como comprimir e simplificar.

Um fluxo em lote antigo do SDXL com Text Concatenate, nós de string, um nó Bind do Inspire pack e notas
O que eu usava antes: muitos nós para o que um nó faz agora.

Para uma forma barata de rodar grandes listas de prompts, veja milhares de imagens de IA por menos de US$ 0,001 cada. Para a abordagem anterior, com vários nós, aplicada a renders 3D, veja listas de prompts: um render 3D em muitos estilos de arte.

Se você tem ideias para outros nós, deixe nos comentários do vídeo. Se forem úteis, posso criá-los e compartilhá-los.

Assista à versão em vídeo (3:17)

Tudo o que está acima também está no vídeo, se você preferir acompanhar na tela. O vídeo está em inglês.

Perguntas frequentes

Como rodo um prompt diferente para cada imagem no ComfyUI?

Coloque um prompt por linha no nó Prompt Cycler e conecte a saída prompt dele a um nó CLIP Text Encode. Cada execução usa a próxima linha; enfileire tantas execuções quantas linhas tiver.

Posso acrescentar o mesmo assunto a todos os prompts da lista?

Sim. Coloque o assunto num nó Concatenate, conecte o prompt do cycler como a outra string, defina um espaço como delimitador e envie o resultado ao codificador de texto.

O Prompt Cycler está no ComfyUI Manager?

Ainda não. Instale pelo GitHub, baixando o ZIP para custom_nodes ou com git clone.

Funciona com Flux ou SDXL?

Funciona com qualquer modelo, porque só entrega texto. Normalmente o uso com o Flux; a demonstração usa o SD 1.5.

Anton Tenitsky é artista 3D com mais de 15 anos em computação gráfica, que trabalhou com Nickelodeon, Gameloft, Marvel Rivals e muitos outros clientes. Mais sobre mim

Guias relacionados