Tema Nab, tema de navegação mais profissional
Ctrl + D Marcar este site como favorito

InstantCharacter: uma ferramenta de código aberto para gerar caracteres consistentes a partir de uma única imagem

Introdução geral

O InstantCharacter é um projeto de código aberto desenvolvido pela Tencent Hunyuan e pela equipe do InstantX, hospedado no GitHub. Ele usa uma imagem de referência e uma descrição de texto para gerar imagens de personagens com aparência consistente para uma variedade de cenas e estilos. O projeto baseia-se na tecnologia Diffusion Transformer, que rompe as limitações da arquitetura U-Net tradicional para oferecer maior qualidade de imagem e flexibilidade. Os usuários podem gerar imagens de personagens que correspondem às suas descrições sem parametrização complexa e com operações simples, que são amplamente utilizadas em animação, jogos e arte digital. Suporte a projetos Fluxo.1 e fornece a adaptação do estilo LoRA para uma geração estilizada e fácil de usar.

InstantCharacter: uma ferramenta de código aberto para gerar caracteres consistentes a partir de uma única imagem-1

 

Lista de funções

  • Geração consistente de personagens a partir de uma única imagem: gere imagens de personagens para diferentes cenas, ações e pontos de vista com apenas uma imagem de referência.
  • Geração orientada por texto: ajuste os movimentos, as cenas e os estilos dos personagens com instruções de texto, por exemplo, "garota tocando violão na rua".
  • Suporte à migração de estilos: compatível com vários estilos de LoRA, como o estilo Ghibli ou Makoto Shinkai, para gerar imagens artísticas.
  • Saída de imagem de alta qualidade: gere imagens de caracteres detalhadas e de alta resolução com base nos modelos Flux.1.
  • Suporte ao modelo de código aberto: suporte ao Flux e a outros modelos de texto para imagem de código aberto, os desenvolvedores podem ampliar livremente a função.
  • Adaptadores leves: use módulos de adaptador dimensionáveis para reduzir o consumo de recursos computacionais e melhorar a eficiência da geração.
  • Otimização do conjunto de dados em larga escala: treinamento baseado em dez milhões de conjuntos de dados de amostra para garantir a consistência da função e a controlabilidade do texto.

 

Usando a Ajuda

Processo de instalação

O InstantCharacter requer um ambiente habilitado para GPU; recomenda-se uma GPU NVIDIA (mínimo de 48 GB de VRAM, otimizado para 24 GB). Abaixo estão as etapas detalhadas de instalação:

  1. Preparação ambiental::
    • Instale o Python 3.8 ou posterior.
    • Recomenda-se a instalação do PyTorch (com suporte a CUDA). pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118.
    • Para instalar a biblioteca de dependências, execute o seguinte comando:
      pip install transformers accelerate diffusers huggingface_cli
      
    • Certifique-se de ter o Git e o Git LFS instalados em seu sistema para fazer download de arquivos grandes.
  2. armazém de clones::
    • Abra um terminal e execute o seguinte comando para clonar o repositório InstantCharacter:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. Faça o download dos pontos de controle do modelo::
    • Faça o download do modelo do Hugging Face:
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Se não conseguir acessar o Hugging Face, você pode usar um endereço espelhado:
      export HF_ENDPOINT=https://hf-mirror.com
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Quando o download for concluído, verifique se a estrutura de pastas contém checkpointseassetsemodels etc. catálogo.
  4. Configuração do ambiente de tempo de execução::
    • Certifique-se de que o driver da GPU e a versão CUDA sejam compatíveis com o PyTorch.
    • Mova o modelo e o código para um dispositivo habilitado para CUDA, execute o pipe.to("cuda").

Uso

A principal função do InstantCharacter é gerar imagens de caracteres a partir de imagens de referência e prompts de texto. Veja a seguir o procedimento detalhado:

1. carregamento de modelos e adaptadores

  • Use o pipeline.py O script carrega o modelo básico e os adaptadores. O código de amostra é o seguinte:
    import torch
    from PIL import Image
    from pipeline import InstantCharacterFluxPipeline
    # 设置种子以确保可重复性
    seed = 123456
    # 加载基础模型
    base_model = 'black-forest-labs/FLUX.1-dev'
    ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin'
    image_encoder_path = 'google/siglip-so400m-patch14-384'
    image_encoder_2_path = 'facebook/dinov2-giant'
    # 初始化管道
    pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16)
    pipe.to("cuda")
    pipe.init_adapter(
    image_encoder_path=image_encoder_path,
    image_encoder_2_path=image_encoder_2_path,
    subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024)
    )
    
  • O código acima carrega o modelo Flux.1 e o adaptador IP do InstantCharacter, garantindo que o modelo seja executado na GPU.

2. preparação de imagens de referência

  • Selecione uma imagem que contenha um caractere (por exemplo assets/girl.jpg), certifique-se de que o fundo seja simples (por exemplo, fundo branco).
  • Carrega a imagem e a converte para o formato RGB:
    ref_image_path = 'assets/girl.jpg'
    ref_image = Image.open(ref_image_path).convert('RGB')
    

3. geração de imagens de caracteres (sem migração de estilo)

  • Use prompts textuais para gerar imagens e definir parâmetros, como o número de etapas de inferência e a escala de bootstrap:
    prompt = "A girl is playing a guitar in street"
    image = pipe(
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter.png")
    
  • subject_scale Controla a consistência da função, com valores mais baixos favorecendo a estilização (por exemplo, 0,6 ou 0,8).

4. migração de estilo usando o Style LoRA

  • O InstantCharacter oferece suporte a LoRA estilizado (por exemplo, estilo Ghibli ou Makoto Shinkai). Carregue arquivos LoRA e gere imagens estilizadas:
    lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors'
    trigger = 'ghibli style'
    prompt = "A girl is playing a guitar in street"
    image = pipe.with_style_lora(
    lora_file_path=lora_file_path,
    trigger=trigger,
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter_style_ghibli.png")
    
  • intercambialidade lora_file_path responder cantando trigger Pode ser alternado entre diferentes estilos (por exemplo Makoto_Shinkai_style.safetensors).

5) Execute a interface do Gradio (opcional)

  • O projeto fornece uma interface Gradio para facilitar a interação. Executar app.py::
    python app.py
    
  • Abra um navegador para acessar o endereço local (por exemplo http://127.0.0.1:7860), carregue a imagem e digite a palavra de prompt para gerar a imagem.

advertência

  • A geração de caracteres de animais pode ser instável; recomenda-se usar imagens de caracteres humanos.
  • A geração de resoluções mais altas requer mais memória, sendo recomendadas as GPUs das séries A100 ou RTX 5000.
  • Como os downloads de modelos podem ser interrompidos devido a problemas de rede, é recomendável usar o --resume-download Parâmetros.

 

cenário do aplicativo

  1. Animação e produção de filmes
    • Gere rapidamente arte conceitual de personagens ou storyboards para encurtar o ciclo de pré-design. Os usuários podem fazer upload de esboços de personagens, inserir descrições de cenas (por exemplo, "Personagem correndo na floresta") e gerar imagens consistentes para visualização de animação ou teste de personagens.
  2. desenvolvimento de jogos
    • Gere imagens com várias visualizações e movimentos para personagens de jogos. Os desenvolvedores carregam designs de personagens e geram sprites com diferentes poses (por exemplo, "personagem balançando uma espada") para uso em recursos de jogos 2D ou 3D.
  3. Criação de arte digital
    • Os artistas usam o Style LoRA para gerar imagens artísticas de personagens, como personagens realistas transformados em um estilo Ghibli, para uso em ilustração ou criação de NFT.
  4. Conteúdo de mídia social
    • Os usuários fazem upload de selfies para gerar avatares no estilo anime ou cenas animadas (por exemplo, "Dancing by myself in a sci-fi city") para conteúdo personalizado de mídia social.

 

QA

  1. Quais modelos são compatíveis com o InstantCharacter?
    • O modelo Flux.1 é suportado atualmente e pode ser estendido a outros modelos de texto para imagem de código aberto no futuro.
  2. Qual é a quantidade de memória de vídeo necessária para executá-lo?
    • Memória recomendada de 48 GB, otimizada para suportar 24 GB. Técnicas de quantificação estão sendo desenvolvidas para reduzir os requisitos de memória.
  3. Como resolver a falha no download do modelo?
    • Use o endereço do espelho Hugging Face ou --resume-download para garantir a estabilidade da rede.
  4. Por que os personagens animais gerados são instáveis?
    • Os dados de treinamento do modelo são dominados por caracteres humanos, e os recursos de animais são subotimizados, o que sugere o uso de imagens de caracteres humanos.
  5. Ele está disponível comercialmente?
    • A licença atual é apenas para uso em pesquisa. O uso comercial requer uma licença da Tencent.

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

Código de leitura a seguir

qrcode

Entre em contato conosco

voltar ao topo

pt_BRPortuguês do Brasil