Aprendizagem pessoal com IA
e orientação prática
TRAE

UNO: suporte para ferramentas de geração de imagens personalizadas de assunto único e de vários assuntos (adequadas para gráficos de comércio eletrônico)

Introdução geral

O UNO é uma estrutura de geração de imagens de código aberto desenvolvida pela ByteDance Intelligent Creation Team. Ela é baseada em FLUXO.1, com foco na geração de imagens personalizadas de assunto único e de vários assuntos por meio de uma abordagem de generalização "menos para mais", o UNO resolve os desafios da extensão de dados e da consistência de assuntos em cenários de vários assuntos, aproveitando o recurso de geração de contexto do Diffusion Transformer (DiT) em conjunto com um processo de síntese de dados altamente consistente. Ele permite que os usuários gerem imagens de alta qualidade a partir de descrições textuais e imagens de referência, o que é amplamente aplicável à criação de imagens personalizadas, ao design de personagens virtuais e a outros cenários. O código do projeto está licenciado sob Apache 2.0 e os pesos do modelo estão licenciados sob CC BY-NC 4.0, adequado para pesquisa acadêmica e uso não comercial.

UNO: suporte para ferramentas de geração de imagens personalizadas de tema único e de múltiplos temas (adequadas para gráficos de comércio eletrônico) -1


 

Lista de funções

  • Geração de imagem de objeto único: gera uma imagem consistente com a descrição baseada em uma única imagem de referência, preservando as características do objeto.
  • Geração de imagens de vários assuntos: gera vários assuntos específicos na mesma cena, mantendo seus respectivos recursos organizados.
  • Geração de contexto: explorando o recurso de aprendizado de contexto do transformador de difusão para gerar imagens altamente consistentes.
  • Otimização de pouca memória: suporta o modo fp8 com um pico de memória de aproximadamente 16 GB para GPUs de consumo.
  • Ajuste fino do modelo: fornece estratégias de pré-treinamento e treinamento em vários estágios para dar suporte à otimização iterativa de modelos de texto para imagem.
  • Suporte de código aberto: o código de treinamento, o código de inferência e os pesos do modelo são fornecidos para facilitar a extensão do aplicativo pelos pesquisadores.

 

Usando a Ajuda

Processo de instalação

Para usar o UNO, é necessário instalar e configurar as dependências em seu ambiente local. A seguir, as etapas de instalação detalhadas para ambientes Python 3.10 a 3.12.

  1. Criação de um ambiente virtual
    Primeiro, crie um ambiente virtual Python separado para evitar conflitos de dependência. Você pode usar o seguinte comando:

    python -m venv uno_env
    source uno_env/bin/activate  # Linux/MacOS
    uno_env\Scripts\activate  # Windows
    

    Ou use o Conda para criar um ambiente:

    conda create -n uno_env python=3.10 -y
    conda activate uno_env
    
  2. Instalando o PyTorch
    Se estiver usando uma GPU AMD, NVIDIA RTX série 50 ou macOS MPS, será necessário instalar manualmente a versão apropriada do PyTorch. Consulte o site do PyTorch (https://pytorch.org/) Selecione a versão correta. Por exemplo:

    pip install torch torchvision torchaudio
    
  3. Instalação das dependências do UNO
    Clone o repositório UNO e instale as dependências:

    git clone https://github.com/bytedance/UNO.git
    cd UNO
    pip install -e .  # 仅用于推理
    pip install -e .[train]  # 用于推理和训练
    

    Observação: Certifique-se de que requirements.txt as dependências estão instaladas corretamente. Se encontrar problemas, verifique se há bibliotecas de sistema ausentes (como a ffmpeg) e por meio de conda install -c conda-forge ffmpeg Instalação.

  4. Faça o download dos pontos de controle do modelo
    O UNO se baseia no modelo FLUX.1-dev e nos pontos de verificação associados. Ele pode ser baixado das seguintes maneiras:

    • download automáticoAo executar scripts de inferência, os pontos de verificação são passados automaticamente pelo hf_hub_download Faça o download para o caminho padrão (~/.cache/huggingface).
    • download do manualUse a CLI do Hugging Face para fazer download de modelos:
      huggingface-cli download black-forest-labs/FLUX.1-dev
      huggingface-cli download xlabs-ai/xflux_text_encoders
      huggingface-cli download openai/clip-vit-large-patch14
      huggingface-cli download bytedance-research/UNO
      

    Após o download, coloque o modelo no diretório especificado (por exemplo models/unet responder cantando models/loras).

  5. Verificar a instalação
    Após a conclusão da instalação, execute o seguinte comando para verificar se o ambiente está configurado corretamente:

    python -c "import torch; print(torch.cuda.is_available())"
    

    Se o retorno TrueA seguir, um exemplo de uma configuração bem-sucedida do ambiente de GPU.

Uso

O UNO fornece uma interface Gradio (app.py) é usado para geração interativa de imagens e também pode ser usado para executar scripts de inferência a partir da linha de comando (inference.py). A seguir estão os principais procedimentos operacionais.

Geração de imagens por meio da interface Gradio

  1. Iniciando o aplicativo Gradio
    Certifique-se de que o Gradio esteja instalado (incluído no pacote requirements.txt (em). Execute o seguinte comando para iniciar a interface:

    python app.py
    

    Na inicialização, o navegador abre uma página local (geralmente a página http://127.0.0.1:7860).

  2. parâmetro de entrada
    Na interface do Gradio:

    • Digite um prompt de texto (prompt), descreva a cena da imagem que deseja gerar, por exemplo, "um gato e um cachorro brincando em um parque".
    • Carregue de 1 a 4 imagens de referência (image_ref1 até que image_ref4), essas imagens definem a aparência do objeto.
    • Defina o valor da semente (seed) para controlar a aleatoriedade dos resultados gerados; o valor padrão é 3407.
    • Selecione o tipo de modelo (flux-deveflux-dev-fp8 talvez flux-schnell), recomendado flux-dev-fp8 para reduzir os requisitos de memória gráfica.
  3. Geração de imagens
    Clique no botão Generate (Gerar) e o UNO gerará os resultados com base nos prompts e na imagem de referência. O tempo de geração depende do desempenho do hardware e, normalmente, leva de alguns segundos a alguns minutos em GPUs de consumo, como a RTX 3090.

Executar o raciocínio a partir da linha de comando

  1. Prepare-se para entrar
    Crie um arquivo de configuração que contenha os caminhos do prompt e da imagem de referência ou especifique os parâmetros diretamente na linha de comando. Exemplo:

    python inference.py --prompt "A man in a suit, standing in a city" --image_paths "./assets/examples/man.jpg" --model_type "flux-dev-fp8" --save_path "./output"
    
  2. Descrição dos parâmetros comuns
    • --promptDescrição textual: Uma descrição textual que define o conteúdo da imagem gerada.
    • --image_pathsCaminho de imagem de referência com suporte a várias imagens.
    • --model_typeTipo de modelo, recomendado flux-dev-fp8.
    • --offloadAtivar o descarregamento da memória de vídeo para reduzir o uso da memória de vídeo.
    • --num_stepsNúmero de etapas de difusão: O número de etapas de difusão, padrão 25, afeta a qualidade da geração.
    • --guidanceFator de orientação: O fator de orientação, padrão 4, controla a correspondência do texto com a imagem.
  3. Exibir resultados
    A imagem gerada é salva no arquivo --save_path O diretório especificado (por exemplo output/inference).

Operação da função em destaque

Geração de um único sujeito

  • procedimento::
    1. Carregue uma imagem do assunto (por exemplo, uma foto de uma pessoa).
    2. Digite um prompt de texto que descreva a cena-alvo (por exemplo, "Esta pessoa está caminhando na praia").
    3. Defina a resolução da imagem de referência como 512 (padrão).
    4. Para gerar uma imagem, o UNO mantém a aparência das características do sujeito (por exemplo, rosto, roupas).
  • advertênciaImagem de referência: Certifique-se de que a imagem de referência seja nítida e que o objeto esteja bem caracterizado, evitando imagens borradas ou de baixa qualidade.

Geração de vários assuntos

  • procedimento::
    1. Faça upload de várias imagens de referência (por exemplo, uma foto de um gato e uma foto de um cachorro).
    2. Insira prompts de texto para descrever cenas com vários assuntos (por exemplo, "O gato e o cachorro estão brincando na grama").
    3. Defina a resolução da imagem de referência como 320 (padrão para vários temas).
    4. Para gerar a imagem, o UNO evita a confusão de características do sujeito por meio da técnica UnoPE (Universal Rotation Position Embedding).
  • advertênciaO número de imagens de referência não deve exceder 4 e cada tema deve ser claramente distinguido na imagem.

Otimização de pouca memória

  • fazer uso de flux-dev-fp8 o espaço de memória é reduzido para cerca de 16 GB.
  • começar a usar --offload descarregando parte do cálculo para a CPU, reduzindo ainda mais os requisitos de memória gráfica.
  • Para usuários de GPUs de consumo, como RTX 3090 ou RTX 4090.

Perguntas frequentes

  • Memória de vídeo insuficienteTentativa de reduzir a resolução (--width responder cantando --height) para 512x512, ou use a opção flux-dev-fp8 Modelos.
  • falha na instalaçãoVerifique se a versão do PyTorch é compatível com a GPU e instale manualmente uma versão específica, se necessário.
  • Geração insatisfatória de resultados: Ajustes --guidance(aumentado para 5 ou 6) ou --num_steps(aumentado para 50) para melhorar a qualidade da imagem.

 

cenário do aplicativo

  1. Criação de imagens personalizadas
    Os usuários podem carregar suas próprias fotos e combiná-las com descrições de texto para gerar imagens de cenários específicos. Por exemplo, o upload de uma selfie gera uma imagem de "você caminhando na cidade do futuro", que é adequada para a criação de conteúdo de mídia social.
  2. Design de personagens virtuais
    Os desenvolvedores de jogos ou animadores podem fazer upload de esboços de personagens para gerar imagens de personagens para diferentes cenários e manter uma aparência consistente do personagem, adequada para mangá, animação ou desenvolvimento de jogos.
  3. Publicidade e marketing
    As equipes de marketing podem carregar imagens de mascotes de produtos ou marcas para gerar diversos cenários de publicidade (por exemplo, produtos exibidos em diferentes estações) e aumentar a diversidade do conteúdo visual.
  4. pesquisa acadêmica
    Os pesquisadores podem usar o código-fonte aberto e o fluxo de treinamento do UNO para explorar a aplicação de modelos de difusão à geração de vários sujeitos, validar novos algoritmos ou otimizar os modelos existentes.

 

QA

  1. Qual é o hardware compatível com o UNO?
    O UNO recomenda as GPUs NVIDIA (como RTX 3090 ou 4090) com um mínimo de 16 GB de memória de vídeo. As GPUs AMD e o macOS MPS são compatíveis, mas o PyTorch precisa ser configurado manualmente.
  2. Como melhorar a qualidade das imagens geradas?
    Adição de uma etapa de difusão (--num_steps definido como 50) ou ajustar o fator de bootstrap (--guidance (definido como 5-6). Certifique-se de que a imagem de referência seja clara e que os avisos de texto sejam específicos.
  3. O UNO é suportado comercialmente?
    Os pesos do modelo estão licenciados sob CC BY-NC 4.0 apenas para uso não comercial. O uso comercial está sujeito aos termos da licença original do FLUX.1-dev.
  4. Como lidar com a confusão de recursos na geração de vários assuntos?
    UNO Reduza a confusão usando a técnica UnoPE. Certifique-se de que os recursos do tema de cada imagem de referência estejam claros e que a resolução seja adequadamente reduzida (por exemplo, 320) para otimizar o efeito.
Endereço para download de documentos relacionados
Os direitos autorais dos recursos de download © pertencem ao autor; todos os recursos deste site são da rede, apenas para fins de aprendizado; por favor, apoie a versão original!
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " UNO: suporte para ferramentas de geração de imagens personalizadas de assunto único e de vários assuntos (adequadas para gráficos de comércio eletrônico)
pt_BRPortuguês do Brasil