Modelos e plataformas de IA
StreamDiffusion: Uma Solução de Nível de Pipeline para Geração Interativa em Tempo Real

Devido ao seu vasto potencial e oportunidades de comercialização, particularmente em jogos, transmissão e streaming de vídeo, o Metaverso é atualmente uma das tecnologias de crescimento mais rápido. As aplicações modernas do Metaverso utilizam frameworks de IA, incluindo visão computacional e modelos de difusão, para melhorar sua realidade. Um desafio significativo para as aplicações do Metaverso é integrar vários pipelines de difusão que forneçam baixa latência e alta taxa de transferência, garantindo interação eficaz entre humanos e essas aplicações.
Os frameworks de IA baseados em difusão de hoje em dia são excelentes em criar imagens a partir de prompts textuais ou de imagem, mas falham em interações em tempo real. Essa limitação é particularmente evidente em tarefas que exigem entrada contínua e alta taxa de transferência, como gráficos de jogos de vídeo, aplicações do Metaverso, transmissão e streaming de vídeo ao vivo.
Neste artigo, discutiremos o StreamDiffusion, um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, abordando as limitações atuais dos frameworks baseados em difusão em tarefas que envolvem entrada contínua. O StreamDiffusion é uma abordagem inovadora que transforma o ruído sequencial da imagem original em ruído em lote, visando habilitar alta taxa de transferência e fluxos fluidos. Essa abordagem se afasta do método tradicional de espera e interação utilizado pelos frameworks baseados em difusão existentes. Nas seções seguintes, exploraremos o framework StreamDiffusion em detalhes, examinando seu funcionamento, arquitetura e resultados comparativos contra os frameworks atuais de ponta. Vamos começar.
StreamDiffusion: Uma Introdução à Geração Interativa em Tempo Real
As aplicações do Metaverso são aplicações intensivas em desempenho, pois processam uma grande quantidade de dados, incluindo textos, animações, vídeos e imagens em tempo real, para fornecer aos usuários suas interfaces interativas e experiências de marca. As aplicações modernas do Metaverso dependem de frameworks baseados em IA, incluindo visão computacional, processamento de imagem e modelos de difusão, para atingir baixa latência e alta taxa de transferência, garantindo uma experiência de usuário sem interrupções. Atualmente, a maioria das aplicações do Metaverso depende da redução da ocorrência de iterações de desruído para garantir alta taxa de transferência e melhorar as capacidades interativas das aplicações em tempo real. Esses frameworks optam por uma estratégia comum que envolve redefinir o processo de difusão com ODEs (Equações Diferenciais Ordinárias) ou reduzir modelos de difusão multi-etapa para algumas etapas ou até mesmo uma etapa. Embora a abordagem forneça resultados satisfatórios, ela tem certas limitações, incluindo flexibilidade limitada e altos custos computacionais.
Por outro lado, o StreamDiffusion é uma solução de nível de pipeline que começa de uma direção ortogonal e melhora as capacidades do framework para gerar imagens interativas em tempo real, garantindo alta taxa de transferência. O StreamDiffusion usa uma estratégia simples na qual, em vez de desruído da entrada original, o framework em lote a etapa de desruído. A estratégia inspira-se no processamento assíncrono, pois o framework não precisa esperar que a primeira etapa de desruído seja concluída antes de prosseguir para a segunda etapa, como demonstrado na imagem a seguir. Para lidar com a questão da frequência de processamento do U-Net e a frequência de entrada sincronicamente, o framework StreamDiffusion implementa uma estratégia de fila para armazenar a entrada e as saídas.

Embora o pipeline StreamDiffusion busque inspiração no processamento assíncrono, ele é único em seu próprio modo, pois implementa paralelismo de GPU que permite que o framework utilize um único componente U-Net para desruído de uma característica latente em lote. Além disso, os pipelines baseados em difusão existentes enfatizam os prompts dados nas imagens geradas, incorporando orientação de classificador livre, como resultado do qual os pipelines atuais são equipados com sobrecarga computacional redundante e excessiva. Para garantir que o pipeline StreamDiffusion não encontre os mesmos problemas, ele implementa uma abordagem inovadora de Orientação de Classificador Livre Residual (RCFG) que usa um ruído residual virtual para aproximar as condições negativas, permitindo que o framework calcule as condições de ruído negativo nas etapas iniciais do processo. Além disso, o pipeline StreamDiffusion também reduz os requisitos computacionais de um pipeline de difusão tradicional, implementando uma estratégia de filtro de similaridade estocástica que determina se o pipeline deve processar as imagens de entrada, calculando as similaridades entre entradas contínuas.
O framework StreamDiffusion é construído com base nos conhecimentos de modelos de difusão e modelos de difusão acelerados.

Os modelos de difusão são conhecidos por suas capacidades excepcionais de geração de imagens e pelo controle que oferecem. Devido às suas capacidades, os modelos de difusão encontraram aplicações em edição de imagem, geração de imagem a partir de texto e geração de vídeo. Além disso, o desenvolvimento de modelos consistentes demonstrou o potencial de melhorar a eficiência do processamento de amostras sem comprometer a qualidade das imagens geradas pelo modelo, o que abriu novas portas para expandir a aplicabilidade e eficiência dos modelos de difusão, reduzindo o número de etapas de amostragem. Embora extremamente capazes, os modelos de difusão tendem a ter uma limitação importante: geração de imagem lenta. Para lidar com essa limitação, os desenvolvedores introduziram modelos de difusão acelerados, frameworks baseados em difusão que não exigem etapas de treinamento adicionais ou implementam estratégias de previsão-correção e solvers de tamanho de passo adaptável para aumentar as velocidades de saída.
O fator de distinção entre StreamDiffusion e os frameworks baseados em difusão tradicionais é que, enquanto os últimos se concentram principalmente na latência baixa de modelos individuais, o primeiro introduz uma abordagem de nível de pipeline projetada para alcançar taxas de transferência altas, permitindo difusão interativa eficiente.
StreamDiffusion: Funcionamento e Arquitetura
O pipeline StreamDiffusion é um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, e ele emprega 6 componentes principais, nomeadamente: RCFG ou Orientação de Classificador Livre Residual, Estratégia de Lote de Stream, Filtro de Similaridade Estocástica, uma fila de entrada-saída, ferramentas de aceleração de modelo com autoencoder e um procedimento de pré-cálculo. Vamos falar sobre esses componentes em detalhes.
Estratégia de Lote de Stream
Tradionalmente, as etapas de desruído em um modelo de difusão são realizadas sequencialmente, resultando em um aumento significativo do tempo de processamento do U-Net para o número de etapas de processamento. No entanto, é essencial aumentar o número de etapas de processamento para gerar imagens de alta fidelidade, e o framework StreamDiffusion introduz a Estratégia de Lote de Stream para superar a resolução de alta latência em frameworks de difusão interativa.
Na Estratégia de Lote de Stream, as operações de desruído sequenciais são reestruturadas em processos em lote, com cada lote correspondendo a um número predeterminado de etapas de desruído, e o número dessas etapas de desruído é determinado pelo tamanho de cada lote. Graças à abordagem, cada elemento no lote pode prosseguir um passo adiante usando o U-Net único na sequência de desruído. Ao implementar a estratégia de lote de stream iterativamente, as imagens de entrada codificadas no tempo “t” podem ser transformadas em seus resultados de imagem para imagem no tempo “t+n”, assim simplificando o processo de desruído.
Orientação de Classificador Livre Residual
A CFG ou Orientação de Classificador Livre é um algoritmo de IA que executa uma série de cálculos de vetor entre o termo de condicionamento original e um termo de condicionamento negativo ou descondicionamento para melhorar o efeito do condicionamento original. O algoritmo fortalece o efeito do prompt, embora para calcular o ruído residual negativo, seja necessário emparelhar variáveis latentes de entrada individuais com embeddings de condicionamento negativo, seguido de passar os embeddings pelo U-Net no tempo de referência.
Para lidar com o problema apresentado pelo algoritmo de Orientação de Classificador Livre, o framework StreamDiffusion introduz o algoritmo de Orientação de Classificador Livre Residual, com o objetivo de reduzir os custos computacionais para interferência adicional do U-Net para embedding de condicionamento negativo. Primeiro, a entrada latente codificada é transferida para a distribuição de ruído usando valores determinados pelo agendador de ruído. Uma vez que o modelo de consistência latente tenha sido implementado, o algoritmo pode prever a distribuição de dados e usar o ruído residual da CFG para gerar a distribuição de ruído da próxima etapa.

Fila de Entrada-Saída
O principal problema com os frameworks de geração de imagem de alta velocidade é seus módulos de rede neural, incluindo os componentes U-Net e VAE. Para maximizar a eficiência e a velocidade de saída geral, os frameworks de geração de imagem movem processos como pré e pós-processamento de imagens que não exigem manipulação adicional pelos módulos de rede neural fora do pipeline, após o que eles são processados em paralelo. Além disso, em termos de manipulação da imagem de entrada, operações específicas, incluindo conversão de formato de tensor, redimensionamento de imagens de entrada e normalização, são executadas pelo pipeline de forma metódica.
Para lidar com a disparidade nas frequências de processamento entre a taxa de transferência do modelo e a entrada humana, o pipeline integra um sistema de fila de entrada-saída que permite uma paralelização eficiente, como demonstrado na imagem a seguir.

Os tensores de entrada processados são primeiro colocados em fila de forma metódica para os modelos de difusão, e durante cada quadro, o modelo recupera o tensor mais recente da fila de entrada e o encaminha para o codificador VAE, iniciando assim o processo de geração de imagem. Ao mesmo tempo, a saída do tensor do decodificador VAE é alimentada na fila de saída. Finalmente, os dados de imagem processados são transmitidos para o cliente de renderização.
Filtro de Similaridade Estocástica
Em cenários em que as imagens permanecem inalteradas ou mostram mudanças mínimas sem um ambiente estático ou sem interação ativa do usuário, imagens de entrada semelhantes são alimentadas repetidamente nos componentes U-Net e VAE. A alimentação repetida leva à geração de imagens quase idênticas e ao consumo adicional de recursos de GPU. Além disso, em cenários que envolvem entradas contínuas, imagens de entrada não modificadas podem surgir ocasionalmente. Para superar esse problema e evitar a utilização desnecessária de recursos, o pipeline StreamDiffusion emprega um componente de Filtro de Similaridade Estocástica em seu pipeline. O Filtro de Similaridade Estocástica calcula primeiro a similaridade de cosseno entre a imagem de referência e a imagem de entrada e usa a pontuação de similaridade de cosseno para calcular a probabilidade de pular os processos subsequentes de U-Net e VAE.
Com base na pontuação de probabilidade, o pipeline decide se os processos subsequentes, como codificação VAE, decodificação VAE e U-Net, devem ser pulados ou não. Se esses processos não forem pulados, o pipeline salva a imagem de entrada naquele momento e, ao mesmo tempo, atualiza a imagem de referência para ser usada no futuro. Esse mecanismo de pulo baseado em probabilidade permite que o pipeline StreamDiffusion opere totalmente em cenários dinâmicos com baixa similaridade entre quadros, enquanto em cenários estáticos, o pipeline opera com maior similaridade entre quadros. A abordagem ajuda a conservar os recursos computacionais e também garante a utilização ótima de GPU com base na similaridade das imagens de entrada.
Pré-Cálculo
A arquitetura U-Net necessita de embeddings de condicionamento, bem como variáveis latentes de entrada. Tradicionalmente, os embeddings de condicionamento são derivados de embeddings de prompts que permanecem constantes em todos os quadros. Para otimizar a derivação de embeddings de prompts, o pipeline StreamDiffusion pré-calcula esses embeddings de prompts e os armazena em uma cache, que são então chamados no modo de streaming ou interativo. Dentro do framework U-Net, o par de chave-valor é calculado com base no embedding de prompt pré-calculado de cada quadro, e com ligeiras modificações no U-Net, esses pares de chave-valor podem ser reutilizados.
Aceleração de Modelo e Autoencoder Pequeno
O pipeline StreamDiffusion emprega o TensorRT, uma ferramenta de otimização da Nvidia (NVDA ) para interfaces de aprendizado profundo, para construir os motores VAE e U-Net, para acelerar a velocidade de inferência. Para alcançar isso, o componente TensorRT executa várias otimizações em redes neurais projetadas para aumentar a eficiência e melhorar a taxa de transferência para frameworks e aplicações de aprendizado profundo.
Para otimizar a velocidade, o StreamDiffusion configura o framework para usar dimensões de entrada fixas e tamanhos de lote estáticos para garantir alocação de memória ótima e gráficos computacionais para um tamanho de entrada específico, visando alcançar tempos de processamento mais rápidos.

A figura acima fornece uma visão geral do pipeline de inferência. O pipeline de difusão central abriga os componentes U-Net e VAE. O pipeline incorpora um lote de desruído, uma cache de ruído amostrado, uma cache de embedding de prompt pré-calculado e uma cache de valores de agendador para melhorar a velocidade e a capacidade do pipeline de gerar imagens em tempo real. O Filtro de Similaridade Estocástica ou SSF é implantado para otimizar o uso de GPU e também para controlar dinamicamente a passagem do modelo de difusão.
StreamDiffusion: Experimentos e Resultados
Para avaliar suas capacidades, o pipeline StreamDiffusion é implementado nos frameworks LCM e SD-turbo. O TensorRT da Nvidia é usado como acelerador de modelo, e para permitir eficiência leve, o pipeline emprega o componente TAESD. Vamos agora dar uma olhada em como o pipeline StreamDiffusion se sai quando comparado aos frameworks atuais de ponta.
Avaliação Quantitativa
A figura a seguir demonstra a comparação de eficiência entre o U-Net sequencial original e os componentes de lote de desruído no pipeline, e como pode ser visto, a implementação da abordagem de lote de desruído ajuda a reduzir o tempo de processamento significativamente, quase 50%, quando comparado com os loops U-Net tradicionais em etapas de desruído sequenciais.

Além disso, o tempo de inferência médio em diferentes etapas de desruído também testemunha um aumento substancial com diferentes fatores de aceleração quando comparado com os pipelines atuais de ponta, e os resultados são demonstrados na imagem a seguir.

Em seguida, o pipeline StreamDiffusion com o componente RCFG demonstra um tempo de inferência menor quando comparado com pipelines que incluem o componente CFG tradicional.

Além disso, o impacto do uso do componente RCFG é evidente nas imagens a seguir quando comparado ao uso do componente CFG.

Como pode ser visto, o uso do CFG intensifica o impacto do prompt textual na geração de imagem, e a imagem se assemelha muito mais ao prompt de entrada quando comparada às imagens geradas pelo pipeline sem o uso do componente CFG. Os resultados melhoram ainda mais com o uso do componente RCFG, pois a influência dos prompts nas imagens geradas é significativamente maior quando comparada ao componente CFG original.
Pensamentos Finais
Neste artigo, discutimos o StreamDiffusion, um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, abordando as limitações atuais dos frameworks baseados em difusão em tarefas que envolvem entrada contínua. O StreamDiffusion é uma abordagem simples e inovadora que visa transformar o ruído sequencial da imagem original em ruído em lote. O StreamDiffusion visa habilitar alta taxa de transferência e fluxos fluidos, eliminando a abordagem tradicional de espera e interação adotada pelos frameworks baseados em difusão atuais. Os ganhos de eficiência potenciais destacam o potencial do pipeline StreamDiffusion para aplicações comerciais que oferecem computação de alto desempenho e soluções atraentes para IA gerativa.












