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.
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:
- 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.
- 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
- Abra um terminal e execute o seguinte comando para clonar o repositório InstantCharacter:
- 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
checkpoints
eassets
emodels
etc. catálogo.
- Faça o download do modelo do Hugging Face:
- 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 cantandotrigger
Pode ser alternado entre diferentes estilos (por exemploMakoto_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
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- Use o endereço do espelho Hugging Face ou
- 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.
- Ele está disponível comercialmente?
- A licença atual é apenas para uso em pesquisa. O uso comercial requer uma licença da Tencent.