Connect with us

Flux pela Black Forest Labs: O Próximo Salto em Modelos de Texto para Imagem. É Melhor que o Midjourney?

Ferramentas de IA 101

Flux pela Black Forest Labs: O Próximo Salto em Modelos de Texto para Imagem. É Melhor que o Midjourney?

mm
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labs, a equipe por trás do modelo de difusão estável revolucionário, lançou Flux – uma suíte de modelos de ponta que prometem redefinir as capacidades de imagens geradas por IA. Mas o Flux realmente representa um salto à frente no campo e como se compara aos líderes da indústria, como o Midjourney? Vamos mergulhar profundamente no mundo do Flux e explorar seu potencial para redefinir o futuro da arte e mídia geradas por IA.

O Nascimento da Black Forest Labs

A Black Forest Labs não é apenas mais uma startup de IA; é uma potência de talentos com um histórico de desenvolvimento de modelos de IA generativos fundamentais. A equipe inclui os criadores do VQGAN, Latent Diffusion e da família de modelos de difusão estável que conquistou o mundo da arte de IA.

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Com uma rodada de financiamento de série de US$ 31 milhões liderada pela Andreessen Horowitz e apoio de notáveis investidores anjo, a Black Forest Labs posicionou-se à frente da pesquisa de IA generativa. Sua missão é clara: desenvolver e avançar modelos de aprendizado profundo generativos de estado da arte para mídias como imagens e vídeos, enquanto impulsiona os limites da criatividade, eficiência e diversidade.

Apresentando a Família de Modelos Flux

A Black Forest Labs introduziu a suíte de modelos de texto para imagem FLUX.1, projetada para estabelecer novos padrões em detalhe de imagem, aderência a prompts, diversidade de estilo e complexidade de cena. A família Flux consiste em três variantes, cada uma adaptada para diferentes casos de uso e níveis de acessibilidade:

  1. FLUX.1 [pro]: O modelo de bandeira, oferecendo desempenho de nível superior na geração de imagens com aderência a prompts superior, qualidade visual, detalhe de imagem e diversidade de saída. Disponível por meio de uma API, é posicionado como a opção premium para uso profissional e empresarial.
  2. FLUX.1 [dev]: Um modelo de peso aberto, destilado por orientação, para aplicações não comerciais. É projetado para alcançar qualidade e capacidades de aderência a prompts semelhantes às da versão pro, enquanto é mais eficiente.
  3. FLUX.1 [schnell]: O modelo mais rápido da suíte, otimizado para desenvolvimento local e uso pessoal. Está disponível abertamente sob uma licença Apache 2.0, tornando-o acessível para uma ampla gama de aplicações e experimentos.

Fornecerei alguns exemplos de prompts criativos e únicos que demonstram as capacidades do FLUX.1. Esses prompts destacarão a força do modelo em lidar com texto, composições complexas e elementos desafiadores, como mãos.

  • Mesclagem de Estilo Artístico com Texto: “Crie um retrato de Vincent van Gogh em seu estilo característico, mas substitua sua barba por pinceladas em espiral que formam as palavras ‘Starry Night’ em cursiva.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Cena de Ação Dinâmica com Integração de Texto: “Um super-herói explodindo através de uma página de quadrinhos. As linhas de ação e efeitos sonoros devem formar o nome do herói ‘FLUX FORCE’ em tipografia dinâmica e ousada.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • Conceito Surreal com Colocação de Objeto Precisa: “Primeiro plano de um gato fofinho com cores marrons e brancas sob a luz do sol da janela. Foco aguçado na textura e cor do olho. Iluminação natural para capturar o brilho e a profundidade do olho de forma autêntica.”
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Esses prompts são projetados para desafiar as capacidades do FLUX.1 em renderização de texto, composições complexas e criação de objetos detalhados, enquanto também destacam seu potencial para geração de imagens criativas e únicas.

Inovações Técnicas por trás do Flux

No coração das impressionantes capacidades do Flux, encontra-se uma série de inovações técnicas que o distinguem de seus antecessores e contemporâneos:

Modelos de Fluxo com Transformadores em Escala

Todos os modelos FLUX.1 públicos são construídos em uma arquitetura híbrida que combina blocos de difusão multimodais e paralelos, escalados para impressionantes 12 bilhões de parâmetros. Isso representa um salto significativo em tamanho e complexidade de modelo em comparação com muitos modelos de texto para imagem existentes.

Os modelos Flux melhoram os modelos de difusão de estado da arte anteriores, incorporando a correspondência de fluxo, um método geral e conceitualmente simples para treinar modelos generativos. A correspondência de fluxo fornece um quadro mais flexível para modelagem generativa, com modelos de difusão sendo um caso especial dentro dessa abordagem mais ampla.

Para melhorar o desempenho do modelo e a eficiência do hardware, a Black Forest Labs integrou incorporações de posição rotatória e camadas de atenção paralela. Essas técnicas permitem um melhor tratamento de relações espaciais em imagens e um processamento mais eficiente de grandes conjuntos de dados.

Inovações Arquiteturais

Vamos desmembrar alguns dos principais elementos arquiteturais que contribuem para o desempenho do Flux:

  1. Arquitetura Híbrida: Ao combinar blocos de difusão multimodais e paralelos, o Flux pode processar efetivamente tanto informações textuais quanto visuais, levando a uma melhor alinhamento entre prompts e imagens geradas.
  2. Correspondência de Fluxo: Essa abordagem permite uma modelagem generativa mais flexível e eficiente. Fornece um quadro unificado que abrange modelos de difusão e outras técnicas generativas, potencialmente levando a modelos de imagem mais robustos e versáteis.
  3. Incorporações de Posição Rotatória: Essas incorporações ajudam o modelo a entender e manter melhor as relações espaciais dentro das imagens, o que é crucial para a geração de conteúdo visual coerente e detalhado.
  4. Camadas de Atenção Paralela: Essa técnica permite um processamento mais eficiente dos mecanismos de atenção, que são críticos para entender as relações entre diferentes elementos em ambos os prompts textuais e imagens geradas.
  5. Escala para 12B Parâmetros: O tamanho impressionante do modelo permite que ele capture e sintetize padrões e relações mais complexos, potencialmente resultando em saídas de maior qualidade e diversidade.

Benchmarks do Flux: Um Novo Padrão em Síntese de Imagem

https://blackforestlabs.ai/announcing-black-forest-labs/

https://blackforestlabs.ai/announcing-black-forest-labs/

A Black Forest Labs afirma que o FLUX.1 estabelece novos padrões em síntese de imagem, superando modelos populares como Midjourney v6.0, DALL·E 3 (HD) e SD3-Ultra em vários aspectos importantes:

  1. Qualidade Visual: O Flux visa produzir imagens com fidelidade mais alta, detalhes mais realistas e melhor apelo estético geral.
  2. Adesão a Prompts: O modelo é projetado para aderir mais de perto aos prompts textuais dados, gerando imagens que refletem com mais precisão as intenções do usuário, especialmente para solicitações complexas ou nuances.
  3. Variedade de Tamanho/Proporção: O Flux suporta uma ampla gama de proporções e resoluções, de 0,1 a 2,0 megapixels, oferecendo flexibilidade para vários casos de uso.
  4. Tipografia: O modelo mostra capacidades melhoradas na geração e renderização de texto dentro das imagens, um desafio comum para muitos modelos de texto para imagem.
  5. Diversidade de Saída: O Flux é especificamente ajustado para preservar toda a diversidade de saída do pré-treinamento, oferecendo uma gama mais ampla de possibilidades criativas.

Flux vs. Midjourney: Uma Análise Comparativa

https://blackforestlabs.ai/announcing-black-forest-labs/

Agora, vamos abordar a pergunta que arde: O Flux é melhor que o Midjourney? Para responder a isso, precisamos considerar vários fatores:

Qualidade de Imagem e Estética

Tanto o Flux quanto o Midjourney são conhecidos por produzir imagens de alta qualidade e visualmente impressionantes. O Midjourney tem sido elogiado por seu charme artístico e capacidade de criar imagens com um apelo estético distinto. O Flux, com sua arquitetura avançada e contagem de parâmetros maior, visa igualar ou superar esse nível de qualidade.

Exemplos iniciais do Flux mostram detalhes impressionantes, texturas realistas e um forte domínio da iluminação e composição. No entanto, a natureza subjetiva da arte torna difícil afirmar com certeza a superioridade nessa área. Os usuários podem encontrar que cada modelo tem suas forças em diferentes estilos ou tipos de imagens.

Adesão a Prompts

Uma área onde o Flux potencialmente supera o Midjourney é na adesão a prompts. A Black Forest Labs enfatizou seu foco em melhorar a capacidade do modelo de interpretar e executar prompts de forma precisa. Isso pode resultar em imagens geradas que mais de perto refletem as intenções do usuário, especialmente para solicitações complexas ou nuances.

O Midjourney às vezes foi criticado por tomar liberdades criativas com prompts, o que pode levar a resultados belos, mas inesperados. A abordagem do Flux pode oferecer um controle mais preciso sobre a saída gerada.

Velocidade e Eficiência

Com a introdução do FLUX.1 [schnell], a Black Forest Labs está mirando uma das principais vantagens do Midjourney: a velocidade. O Midjourney é conhecido por seus tempos de geração rápidos, o que o tornou popular para processos criativos iterativos. Se o Flux puder igualar ou superar essa velocidade enquanto mantém a qualidade, isso poderia ser um ponto de venda significativo.

Acessibilidade e Facilidade de Uso

O Midjourney ganhou popularidade em parte devido à sua interface de usuário amigável e integração com o Discord. O Flux, sendo mais novo, pode precisar de tempo para desenvolver interfaces igualmente acessíveis. No entanto, a natureza de código aberto dos modelos FLUX.1 [schnell] e [dev] pode levar a uma ampla gama de ferramentas e integrações desenvolvidas pela comunidade, potencialmente superando o Midjourney em termos de flexibilidade e opções de personalização.

Capacidades Técnicas

A arquitetura avançada e o tamanho maior do modelo do Flux sugerem que ele pode ter mais capacidade bruta em termos de compreensão de prompts complexos e geração de detalhes intricados. A abordagem de correspondência de fluxo e a arquitetura híbrida podem permitir que o Flux lide com uma gama mais ampla de tarefas e gere saídas mais diversificadas.

Considerações Éticas e Mitigação de Viés

Tanto o Flux quanto o Midjourney enfrentam o desafio de abordar preocupações éticas em imagens geradas por IA, como viés, desinformação e questões de direitos autorais. A ênfase da Black Forest Labs na transparência e seu compromisso em tornar os modelos amplamente acessíveis podem potencialmente levar a uma supervisão comunitária mais robusta e melhorias mais rápidas nesses aspectos.

Implementação de Código e Implantação

Usando o Flux com Diffusers

Os modelos Flux podem ser facilmente integrados a fluxos de trabalho existentes usando a biblioteca Hugging Face Diffusers. Aqui está um guia passo a passo para usar o FLUX.1 [dev] ou FLUX.1 [schnell] com Diffusers:

  1. Primeiro, instale ou atualize a biblioteca Diffusers:
!pip install git+https://github.com/huggingface/diffusers.git
  1. Em seguida, você pode usar o FluxPipeline para executar o modelo:
import torch
from diffusers import FluxPipeline

# Carregue o modelo
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)

# Ative o descarregamento de CPU para economizar VRAM (opcional)
pipe.enable_model_cpu_offload()

# Gere uma imagem
prompt = "Um gato segurando um sinal que diz olá mundo"
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type="pil",
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]

# Salve a imagem gerada
image.save("flux-dev.png")

Este trecho de código demonstra como carregar o modelo FLUX.1 [dev], gerar uma imagem a partir de um prompt textual e salvar o resultado.

Implantando o Flux como uma API com LitServe

Para aqueles que desejam implantar o Flux como um serviço de API escalável, a Black Forest Labs fornece um exemplo usando LitServe, um motor de inferência de alto desempenho. Aqui está uma visão geral do processo de implantação:

Defina o servidor de modelo:

from io import BytesIO
from fastapi import Response
import torch
import time
import litserve as ls
from optimum.quanto import freeze, qfloat8, quantize
from diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer, T5EncoderModel, T5TokenizerFast

class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# Carregue componentes do modelo
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="scheduler")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2", torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2", torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="transformer", torch_dtype=torch.bfloat16)

# Quantize para 8-bit para caber em um GPU L4
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)

# Inicialize o pipeline Flux
self.pipe = FluxPipeline(
scheduler=scheduler,
text_encoder=text_encoder,
tokenizer=tokenizer,
text_encoder_2=None,
tokenizer_2=tokenizer_2,
vae=vae,
transformer=None,
)
self.pipe.text_encoder_2 = text_encoder_2
self.pipe.transformer = transformer
self.pipe.enable_model_cpu_offload()

def decode_request(self, request):
return request["prompt"]

def predict(self, prompt):
image = self.pipe(
prompt=prompt,
width=1024,
height=1024,
num_inference_steps=4,
generator=torch.Generator().manual_seed(int(time.time())),
).images[0]
return image

def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})

# Inicie o servidor
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)

Este código define um servidor de modelo LitServe para o Flux, incluindo carregamento de modelo, tratamento de solicitações, geração de imagens e codificação de respostas.

Inicie o servidor:

python server.py

Use o modelo API:

Você pode testar a API usando um script de cliente simples:

import requests
import json

url = "http://localhost:8000/predict"
prompt = "um robô sentado em uma cadeira pintando uma imagem em uma tela de uma paisagem futurista, arte pop"

response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)

print("Imagem gerada e salva como generated_image.png")

Recursos Chave da Implantação

  1. Arquitetura sem Servidor: A configuração do LitServe permite uma implantação escalável e sem servidor que pode escalar para zero quando não estiver em uso.
  2. API Privada: Você pode implantar o Flux como uma API privada em sua própria infraestrutura.
  3. Suporte a Multi-GPU: A configuração é projetada para funcionar eficientemente em várias GPUs.
  4. Quantização: O código demonstra como quantizar o modelo para precisão de 8 bits, permitindo que ele execute em hardware menos poderoso, como GPUs L4 da NVIDIA.
  5. Descarregamento de CPU: O método enable_model_cpu_offload() é usado para conservar a memória da GPU, descarregando partes do modelo para a CPU quando não estiverem em uso.

Aplicações Práticas do Flux

A versatilidade e o poder do Flux abrem uma ampla gama de aplicações potenciais em várias indústrias:

  1. Indústrias Criativas: Designers gráficos, ilustradores e artistas podem usar o Flux para gerar rapidamente arte conceitual, quadros de humor e inspirações visuais.
  2. Marketing e Publicidade: Marketeiros podem criar visuais personalizados para campanhas, conteúdo de mídia social e mockups de produtos com velocidade e qualidade sem precedentes.
  3. Desenvolvimento de Jogos: Designers de jogos podem usar o Flux para prototipar rapidamente ambientes, personagens e ativos, acelerando o processo de pré-produção.
  4. Arquitetura e Design de Interiores: Arquitetos e designers podem gerar visualizações realistas de espaços e estruturas com base em descrições textuais.
  5. Educação: Educadores podem criar auxílios visuais personalizados e ilustrações para melhorar os materiais de aprendizado e tornar conceitos complexos mais acessíveis.
  6. Cinema e Animação: Artistas de storyboards e animadores podem usar o Flux para visualizar cenas e personagens rapidamente, acelerando o processo de pré-visualização.

O Futuro do Flux e Geração de Imagem por Texto

A Black Forest Labs deixou claro que o Flux é apenas o começo de suas ambições no espaço de IA generativa. Eles anunciaram planos para desenvolver sistemas generativos competitivos de texto para vídeo, prometendo capacidades precisas de criação e edição em alta definição e velocidade sem precedentes.

Essa estrada sugere que o Flux não é apenas um produto autônomo, mas parte de um ecossistema mais amplo de ferramentas de IA generativa. À medida que a tecnologia evolui, podemos esperar ver:

  1. Integração Aprimorada: Fluxos de trabalho sem interrupção entre geração de texto para imagem e texto para vídeo, permitindo a criação de conteúdo mais complexo e dinâmico.
  2. Personalização Aprimorada: Controle mais refinado sobre a saída gerada, possivelmente por meio de técnicas avançadas de engenharia de prompts ou interfaces de usuário intuitivas.
  3. Geração em Tempo Real: À medida que modelos como o FLUX.1 [schnell] continuam a melhorar, podemos ver capacidades de geração de imagens em tempo real que poderiam revolucionar a criação de conteúdo ao vivo e a mídia interativa.
  4. Geração Cross-Modal: A capacidade de gerar e manipular conteúdo em várias modalidades (texto, imagem, vídeo, áudio) de forma coesa e integrada.
  5. Desenvolvimento de IA Ético: Continuação do foco no desenvolvimento de modelos de IA que não apenas são poderosos, mas também responsáveis e eticamente sólidos.

Conclusão: O Flux é Melhor que o Midjourney?

A pergunta de se o Flux é “melhor” que o Midjourney não é facilmente respondida com um simples sim ou não. Ambos os modelos representam a vanguarda da tecnologia de geração de imagem por texto, cada um com suas próprias forças e características únicas.

O Flux, com sua arquitetura avançada e ênfase na adesão a prompts, pode oferecer controle mais preciso e potencialmente maior qualidade em certos cenários. Suas variantes de código aberto também fornecem oportunidades para personalização e integração que podem ser altamente valiosas para desenvolvedores e pesquisadores.

O Midjourney, por outro lado, tem um histórico comprovado, uma grande e ativa base de usuários e um estilo artístico distinto que muitos usuários aprenderam a amar. Sua integração com o Discord e interface de usuário amigável o tornaram altamente acessível a criativos de todos os níveis de habilidade técnica.

No final, o modelo “melhor” pode depender do caso de uso específico, preferências pessoais e das capacidades evolutivas de cada plataforma. O que é claro é que o Flux representa um passo significativo à frente no campo da IA generativa, introduzindo técnicas inovadoras e empurrando os limites do que é possível na síntese de imagem por texto.

Eu passei os últimos cinco anos me imergindo no fascinante mundo de Aprendizado de Máquina e Aprendizado Profundo. Minha paixão e especialização me levaram a contribuir para mais de 50 projetos diversificados de engenharia de software, com um foco particular em IA/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.