FLUX.1-Kontext-dev: Modelo de IA para Aumento de Imagens

Modelo de IA para aprimorar imagens com instruções textuais

Conteúdo da página

A Black Forest Labs lançou o FLUX.1-Kontext-dev, um modelo avançado de IA para transformação de imagem em imagem que aprimora imagens existentes usando instruções de texto.

Diferente do FLUX.1-dev, que gera imagens apenas a partir de texto, o FLUX.1-Kontext-dev utiliza tanto uma imagem de entrada quanto um prompt de texto para criar versões modificadas, preservando elementos-chave.

gopher em uma bicicleta Esta imagem demonstra a capacidade do FLUX.1-Kontext-dev de aprimorar imagens.

A imagem original do mascote Go:

Logotipo Gopher Go

foi transformada com a instrução this gopher rides on the bicycle on the hilly road. Um resultado decente, não é?

O que é o FLUX.1-Kontext-dev?

O FLUX.1-Kontext-dev foi desenvolvido para geração e edição de imagens em contexto. Suas principais funcionalidades incluem:

  • Consistência de Personagens: Preserva elementos únicos (como personagens ou objetos) em várias cenas
  • Edição Local: Modifica partes específicas de uma imagem sem afetar o restante
  • Referência de Estilo: Gera novas cenas mantendo os estilos de imagens de referência
  • Aumento de Imagem: Transforma imagens com base em instruções de texto

Instalação

Pré-requisitos

Você precisará de:

  • 16GB+ de VRAM na sua GPU (NVIDIA RTX recomendada)
  • Python 3.8+ com pip
  • Acesso ao Hugging Face (conta e token)

Etapas de Configuração

  1. Crie uma conta no Hugging Face em huggingface.co caso ainda não tenha uma

  2. Acesse a página do modelo: https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

  3. Aceite o acordo de licença (uso não comercial)

  4. Crie um token de acesso de escrita em https://huggingface.co/settings/tokens

  5. Baixe o modelo:

git clone https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev

Ou use o caminho do modelo diretamente no seu código.

Instalação

Instale os pacotes Python necessários:

pip install -U diffusers torch transformers pillow accelerate sentencepiece

Ou usando o uv:

cd tools/fkon
uv sync

Uso

Script Python Básico

Aqui está um exemplo completo usando o FLUX.1-Kontext-dev:

import torch
from diffusers import FluxKontextPipeline
from PIL import Image

# Carregar o modelo
model_path = "/path/to/FLUX.1-Kontext-dev"
pipe = FluxKontextPipeline.from_pretrained(
    model_path, 
    torch_dtype=torch.bfloat16
)

# Habilitar offloading para CPU para economizar VRAM
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()

# Carregar sua imagem de entrada
input_image = Image.open("path/to/your/image.png").convert("RGB")

# Defina seu prompt de aumento
prompt = "this gopher rides on the bicycle on the hilly road"

# Gerar imagem aumentada
result = pipe(
    prompt=prompt,
    image=input_image,
    height=496,
    width=680,
    guidance_scale=3.5,
    num_inference_steps=60,
    max_sequence_length=512,
    generator=torch.Generator("cpu").manual_seed(42)
)

# Salvar o resultado
output_image = result.images[0]
output_image.save("augmented_image.jpg")

Tratamento de Dimensões

O FLUX.1-Kontext-dev possui requisitos específicos de dimensões:

  • Múltiplos de 16: As dimensões devem ser múltiplas de 16
  • Ajuste automático: O modelo pode ajustar as dimensões para atender aos seus requisitos
  • Redimensionamento de saída: Nossa ferramenta redimensiona automaticamente a saída de volta para as dimensões solicitadas

A ferramenta lida com isso da seguinte forma:

  1. Arredondando as dimensões solicitadas para múltiplos de 16
  2. Redimensionando a imagem de entrada para as dimensões arredondadas
  3. Gerando a imagem (o modelo pode ajustar ainda mais)
  4. Redimensionando a saída de volta para as dimensões solicitadas

Casos de Uso Exemplo

  1. Transformação de Personagens

Transforme um personagem mantendo a consistência:

prompt = "this gopher rides on the bicycle on the hilly road"
  1. Remoção de Objetos

Remova elementos indesejados:

prompt = "please remove the human dressed as minnie mouse from this photo"

Dicas e Melhores Práticas

  1. Gerenciamento de VRAM: Use enable_model_cpu_offload() se tiver VRAM limitada
  2. Planejamento de Dimensões: Solicite dimensões que sejam múltiplos de 16 para minimizar ajustes
  3. Clareza no Prompt: Seja específico nas instruções de texto para obter melhores resultados
  4. Geração em Lote: Gere várias variações (--n 4) para obter o melhor resultado
  5. Controle de Seed: Use seeds manuais para resultados reproduzíveis

Limitações

  • Licença não comercial: Requer licença comercial para uso empresarial
  • Intensivo em hardware: Necessita de uma GPU potente com VRAM significativa
  • Restrições de dimensão: Pode ajustar dimensões automaticamente
  • Tempo de processamento: Pode levar de 10 a 15 minutos por imagem, dependendo do hardware

Assinar

Receba novos artigos sobre sistemas, infraestrutura e engenharia de IA.