O Stable Diffusion é um modelo de deep learning de texto-para-imagem lançado em 2022 pela Stability AI. Ele utiliza técnicas de difusão para gerar imagens detalhadas a partir de descrições textuais. Além de gerar imagens a partir de texto, o Stable Diffusion pode ser usado para tarefas como inpainting (preenchimento de áreas faltantes em imagens), outpainting (expansão de imagens) e tradução de imagem-para-imagem guiada por um prompt textual.
O modelo opera em um espaço latente, o que significa que ele processa representações comprimidas das imagens em vez das imagens completas. Isso é feito através de um autoencoder variacional (VAE), que codifica a imagem em um espaço latente de menor dimensão. A difusão ocorre nesse espaço latente, onde o modelo adiciona e remove ruído de forma iterativa para gerar a imagem final. Esse processo é mais eficiente em termos computacionais e permite a geração de imagens de alta qualidade.
A ComfyUI é uma interface de usuário baseada em nós para o Stable Diffusion. Ela permite aos usuários conectar modelos, prompts e outros nós para criar fluxos de trabalho personalizados de geração de imagens. A interface é flexível e poderosa, mas pode ter uma curva de aprendizado mais acentuada devido à sua complexidade[5].
Adição de Nós: Para adicionar um nó, clique com o botão direito no espaço em branco e selecione a opção "Add Node". Você também pode adicionar nós ao digitar o nome do nó desejado.
Conexão de Nós: Conecte os nós arrastando as saídas de um nó para as entradas de outro. As cores dos nós ajudam a identificar conexões compatíveis.
Execução de Prompts: A interface possui uma barra lateral com opções para salvar, carregar e executar fluxos de trabalho. Você pode salvar seu fluxo de trabalho como um arquivo .json para reutilização futura[4][5].
Versão Portátil: Para atualizar, navegue até a pasta de instalação e execute o arquivo `update_comfyui.bat`.
Versão GitHub: Para instalar manualmente, clone o repositório do ComfyUI e instale as dependências Python necessárias. Para atualizar, use o comando `git pull` no terminal[4].
O Stable Diffusion, com sua capacidade de gerar imagens de alta qualidade a partir de descrições textuais, representa um avanço significativo na geração de imagens por IA. A ComfyUI, com sua interface baseada em nós, oferece uma maneira poderosa e flexível de explorar e utilizar o Stable Diffusion, permitindo a criação de fluxos de trabalho personalizados para diversas aplicações.
Acessar a página do comfyUI: https://github.com/comfyanonymous/ComfyUI?tab=readme-ov-file
Procurar a seção “Installing” e “Windows” e “Direct Link to Download”:
Baixar o programa e descompactar e pronto!
Confira sempre no endereço do link do autor se possui algum passo ou programa extra que você ainda tenha feito. No meus testes, eu já tinha instalado o programa A1111, então alguns passos não foram necessários pois já tinha feito antes. Se você ainda não fez alguma instalação antes, então veja os passos (no link do autor) de maneira correta e com muita atenção para não perder nenhum item.
Entre na pasta do comfyUI, renomeie o arquivo “extra_model_paths.yaml.example” para apenas “extra_model_paths.yaml”. Editar este arquivo e procure:
base_path: path/to/stable-diffusion-webui/, altere para:
base_path: D:\A1111\stable-diffusion-webui
Salve o arquivo.
Dentro do comfyUI procure a pasta de “update”, rode update_comfyui_and_python_dependencies.bat, aguarde.
Procure o arquivo: run_nvidia_gpu.bat
Aguarde até que apareça esta tela (mostrada abaixo)
Aperte o botão “Queue Prompt” e espere aparecer a imagem.
Tela do comfyUI com um WorkFlow básico (padrão), mostrando um imagem padrão de geração
O ComfyUI é uma interface gráfica modular para o modelo de difusão estável (Stable Diffusion), conhecida por sua capacidade de personalização e eficiência na geração de imagens e vídeos baseados em inteligência artificial. Ele oferece uma variedade de nós, que são componentes configuráveis que você pode interconectar para criar fluxos de trabalho personalizados para geração de imagens.
Um dos aspectos centrais do ComfyUI é o uso de modelos como o SDXL Turbo, que é projetado para a geração rápida de imagens. O modelo SDXL Turbo permite criação em tempo real com configurações simplificadas, mas é mais adequado para aprendizado e experimentação do que para produção de imagens de alta qualidade, especialmente quando se trata de textos detalhados ou retratos realistas. O modelo também oferece flexibilidade através de amostradores e agendadores personalizados, permitindo que os usuários experimentem diferentes configurações para ver como as mudanças afetam a geração de imagens.
O ComfyUI também utiliza componentes como o CLIP Text Encode para processar prompts de texto e convertê-los em embeddings que guiam a geração de imagens. Este modelo entende o significado semântico das palavras e pode associá-las a conceitos visuais, facilitando a criação de imagens que refletem com precisão as intenções do prompt.
Além disso, o ComfyUI oferece tutoriais detalhados e guias para usuários de todos os níveis, desde iniciantes até avançados, abrangendo uma variedade de técnicas e usos dentro da plataforma. Isso inclui desde a geração básica de imagens até aplicações mais complexas como animações e transferência de estilos em vídeos .
Se quiser explorar mais sobre o ComfyUI e suas capacidades, você pode acessar os recursos e tutoriais detalhados diretamente em sites especializados como [RunComfy] (https://www.runcomfy.com/tutorials).
Os NODES da figura acima podem ser explicados abaixo:
Nó de Carregamento do Modelo: Primeiro, você precisa carregar o modelo de difusão estável que será usado para gerar as imagens. Isso é feito através de um nó específico que permite selecionar e carregar o checkpoint do modelo desejado.
CLIP Text Encode: Este nó é responsável por processar os prompts de texto fornecidos pelo usuário. Ele converte o texto em embeddings (vetores de características) que capturam a informação semântica das palavras. Estes embeddings são então usados para guiar o modelo na geração de imagens que correspondam ao prompt.
Imagem Latente Inicial (Empty Latent Image): Neste nó, você define a imagem inicial no espaço latente, que é um estado inicial aleatório a partir do qual o modelo começará a geração da imagem. Você pode ajustar as dimensões desta imagem latente para controlar o tamanho da imagem gerada. Aqui ajustamos o tamanho da imagem e quantas imagens serão geradas.
KSampler: Este é o coração do processo de geração de imagem. O KSampler utiliza um método chamado difusão reversa para refinar a representação latente ao remover ruídos e adicionar detalhes significativos baseados nos embeddings de CLIP. Você pode ajustar parâmetros como o número de passos de amostragem, o valor da semente (seed), e o algoritmo de amostragem específico para controlar o processo de geração da imagem.
VAE Decoder (Decodificador VAE): Após o processo de difusão, a imagem no espaço latente é convertida de volta para o espaço de pixels usando o decodificador VAE. Este passo é crucial para transformar a representação latente compactada de volta em uma imagem visível que você pode visualizar e utilizar.
Visualizar a imagem: Após o processo de geração e decodificação da imagem, é importante ter um nó que permita visualizar a imagem resultante. Este nó é essencial para verificar a qualidade e os detalhes da imagem gerada, permitindo ajustes e modificações no fluxo de trabalho se necessário. O Nó de Visualização da Imagem mostra a imagem finalizada diretamente na interface do ComfyUI, possibilitando uma avaliação imediata do resultado do processo de geração de imagem. Este feedback visual é crítico para o ajuste fino dos parâmetros e para a otimização do processo de criação de imagens. Existe nó de salvar a imagem, mas tem a mesma função de visualização.
Esses componentes formam a base de um fluxo de trabalho típico de geração de imagens no ComfyUI. Dependendo do que você está tentando alcançar, pode haver a necessidade de outros nós adicionais para ajustes finos ou funcionalidades específicas. A interface do ComfyUI permite uma grande flexibilidade e personalização em como esses nós são configurados e interconectados.
Este nó é a porta de entrada para usar qualquer modelo de IA no ComfyUI, particularmente modelos de difusão como o Stable Diffusion. Veja os detalhes sobre como ele funciona e o que você precisa configurar:
Seleção do Modelo: Primeiramente, você precisa escolher qual modelo de difusão estável deseja usar. O ComfyUI suporta várias versões e variações de modelos, cada um com características e capacidades específicas, como a habilidade de gerar imagens de alta resolução ou de processar diferentes tipos de conteúdo visual.
Carregamento do Checkpoint: Após selecionar o modelo, o próximo passo é carregar o arquivo de checkpoint do modelo. Um checkpoint contém o estado treinado de um modelo de IA que pode ser utilizado para realizar tarefas de geração de imagens. Esse arquivo é essencial porque contém toda a informação necessária para o modelo operar.
Conexões: Uma vez que o checkpoint é carregado, o modelo está pronto para ser utilizado no fluxo de trabalho de geração de imagens. Este nó é frequentemente ligado diretamente aos nós que processam entradas de texto (como o CLIP Text Encode) ou que começam a manipulação do espaço latente para geração de imagens (VAE) e o KSampler.
Este nó é crucial porque sem ele, não seria possível utilizar as capacidades de geração de imagens do modelo escolhido. Ele serve como o fundamento para todos os outros processos que ocorrem em um fluxo de trabalho de geração de imagens no ComfyUI.
Claro, vamos detalhar o CLIP Text Encode, o segundo item essencial nos nós de geração de imagens no ComfyUI, focando especialmente em como ele opera e suas conexões no fluxo de trabalho.
NODE de carregaento de modelo. Ao clicar em cima do parâmetro irá ser mostrado um lista de modelos que estão na pasta models do comfyUI que você já deve ter baixado de algum lugar (https://civitai.com/)
Este nó é crucial para transformar texto em dados visuais compreensíveis para o modelo de IA.
Vamos entender cada etapa e como ele se integra ao sistema:
Entrada de Texto: Inicialmente, você fornece ao CLIP Text Encode um prompt de texto que descreve a imagem que deseja gerar. Esse texto pode ser algo simples como "um gato dormindo em uma almofada" ou algo mais complexo e detalhado, dependendo do nível de especificidade e criatividade desejados.
Processamento de Texto: O nó CLIP Text Encode usa o modelo de linguagem CLIP para processar o texto. O CLIP (Contrastive Language–Image Pre-training) é especialmente treinado para entender a relação entre texto e imagens, convertendo o texto em um vetor de características, ou embeddings, que captura as nuances semânticas do prompt.
Conexões:
Entrada: O CLIP Text Encode recebe texto diretamente do usuário ou de outro nó que prepara ou modifica o texto antes de ser processado. Normalmente vem alguma conexão do nó de modelo
Saída: Os embeddings gerados são então enviados para o próximo nó no fluxo de trabalho, geralmente um nó que gere a imagem latente inicial (como o Empty Latent Image) ou diretamente para o modelo de geração de imagens, dependendo da configuração do fluxo de trabalho. Este nó pode também estar conectado a nós que modificam ou ajustam os embeddings antes de serem utilizados na geração de imagens. Normalmente vai para o ksampler
Aqui você digita o prompt positivo indicando o que você deseja na geração da imagem e o prompt negativo recebe o que você não quer que saia geração
Aceita em português mas é altamente recomendável que seja em inglês (use tradutor google) pois os modelos são treinados em inglês.
Cria uma tela inicial no espaço latente a partir da qual a imagem será gerada.
Aqui estão os detalhes de seu funcionamento e conexões:
Definição de Imagem Latente Inicial: O nó Empty Latent Image estabelece a base para a geração da imagem. Ele cria uma representação latente inicial, que é essencialmente uma "imagem" em um estado de alta dimensionalidade e não estruturado. Esta imagem latente serve como o ponto de partida para o modelo começar a aplicar transformações e refinamentos.
Configuração de Dimensões: Você pode definir as dimensões desta imagem latente, como a altura e a largura, que influenciam diretamente o tamanho da imagem gerada. As dimensões escolhidas devem ser compatíveis com a arquitetura do modelo de difusão que você está utilizando.
Conexões:
Entrada: Este nó geralmente não recebe dados diretamente de outros nós, pois sua função é gerar uma imagem latente aleatória a partir do zero. No entanto, em configurações mais complexas, pode receber parâmetros de configuração de outros nós que ajustam como a imagem latente é inicializada. Geralmente nada, ele apenas envia informações.
Saída: A imagem latente gerada é então encaminhada para o próximo nó no fluxo de trabalho, tipicamente um nó como o KSampler. Este nó utiliza a imagem latente como base para começar o processo de denoising e detalhamento conforme os embeddings semânticos recebidos do nó CLIP Text Encode.
A criação de uma imagem latente inicial é um passo crítico porque define as condições iniciais para o modelo de difusão. A qualidade e características desta imagem latente podem afetar significativamente a eficácia e eficiência do processo de geração da imagem final.
O nó Empty Latent Image é essencial para estabelecer o ponto de partida para a complexa tarefa de transformar dados semânticos em imagens visuais. Ele serve como o canvas inicial sobre o qual os detalhes visuais são construídos, garantindo que o modelo de difusão tenha uma base sobre a qual aplicar suas capacidades de geração.
Aqui você define o tamanho da imagem a ser gerada. Este tamanho deve estar de acordo com o modelo que esta usando na geração. Valores típicos:
512 x 512 (quadrado): Modelos SD 1.5
512 x 768 (vertical): Modelos SD 1.5
768 x 512 (paisagem): Modelos SD 1.5
1024 x 1024 (Quadrado): Modelos SDXL
Entre outros...
O KSampler é o nó responsável pela transformação da imagem latente inicial em uma imagem finalizada, refinando e ajustando detalhes com base nos embeddings semânticos recebidos de nós anteriores, como o CLIP Text Encode.
Aqui estão os detalhes de seu funcionamento e conexões:
Função do KSampler: O KSampler usa um processo conhecido como difusão reversa para iterativamente refinar a imagem latente. Ele remove ruídos e adiciona detalhes relevantes que correspondem ao prompt textual. O objetivo é criar uma imagem que não apenas pareça visualmente agradável, mas que também seja fiel ao texto descritivo fornecido.
Parâmetros Ajustáveis: No KSampler, você pode ajustar vários parâmetros que influenciam o processo de geração de imagem, como o número de passos de amostragem, a semente de ruído inicial (seed), e o nome do amostrador. Essas configurações permitem um controle detalhado sobre a qualidade e o estilo da imagem final.
Conexões:
Entrada: O KSampler geralmente recebe uma imagem latente inicial do nó Empty Latent Image. Ele também pode receber embeddings semânticos do nó CLIP Text Encode, que ajudam a guiar o processo de refinamento da imagem de acordo com o conteúdo descrito no prompt e dados do nó modelo.
Saída: Após processar a imagem latente, o KSampler produz uma imagem final que é então enviada para um nó de visualização ou diretamente para um nó de saída, onde a imagem pode ser salvada ou exibida. Este nó também pode ser conectado a outros nós que realizam pós-processamento ou ajustes adicionais na imagem. Geralmente ligamos ele num VAE Decode.
O KSampler é crucial porque é o motor que efetivamente "pinta" a imagem final baseada nas instruções semânticas e na base visual fornecida pelos nós anteriores. Sem ele, o modelo não poderia traduzir adequadamente os prompts textuais em imagens.
É nó que realiza a maior parte do trabalho pesado de transformar uma ideia abstrata em uma representação visual concreta.
É o coração da geração: recebe vários sinais vindos de outros NODES, aplica transformações conforme os valores de parâmetros mostrados e depois de um tempo mand aa imagem praticamente pronta para outro NODE.
Alguns parâmetros importantes, serão explicados em detalhes mais depois:
SEED: "semente", número usado para dar inicio a geraçãoda imagem, importante caso queira repetir a imagem ou fazer semelhante (cada imagem possui seu SEED e não deve repetir)
STEPS: "passos", quantas vezes ele vai calcular e "caprichar" na geração da imagem: quanto maior mais tempo gasto mas a chance de termos uma imagem melhor é muito grande
Sampler e Scheduler: Algoritmos usados para a geração, alguns são mais demorados e outros mais rápidso e podem influênciar na qualidade da imagem e esta relacionado ao modelo escolhido
Entre outros...