Introdução geral
O InstantID é uma tecnologia de ponta que se concentra na geração de imagens com estilo ou pose personalizados em segundos, usando uma única foto de identificação de referência e garantindo um alto nível de fidelidade. A tecnologia emprega uma solução baseada em modelo de difusão que orienta com precisão o processo de geração de imagens, integrando imagens faciais, imagens de referência e dicas textuais. Os principais recursos incluem a geração de imagens de alta fidelidade, a compatibilidade com modelos populares de difusão de texto para imagem pré-treinados que podem ser usados sem a necessidade de um ajuste fino extenso ou de várias imagens de referência, além de alta fidelidade facial e recursos de edição de texto.
O InstantID é um novo método de última geração, livre de ajustes, para a geração de retenção de ID de recursos de avatar a partir de uma única imagem, com suporte a uma variedade de tarefas posteriores. Clone rostos a partir de apenas uma foto e use palavras-chave para gerar imagens de estilos diferentes do mesmo rosto.
Lista de funções
- Geração de retenção de identidade com zero amostra: não há necessidade de várias imagens, apenas uma imagem da face frontal para gerar vários estilos de retratos.
- Geração de alta fidelidade: os resultados gerados têm alta fidelidade e podem preservar bem os recursos de identidade da imagem original.
- Suporte a várias tarefas downstream: oferece suporte a várias tarefas downstream, como migração de estilo, edição de imagens, etc.
- Código-fonte e modelos abertos: o código-fonte aberto e os modelos pré-treinados são fornecidos para facilitar o download e o uso.
- Compatibilidade forte: suporta a integração com outros projetos, como InstantStyle e Kolors de uso compatível.
Usando a Ajuda
Carregue uma imagem de pessoa. Para imagens de várias pessoas, detectaremos apenas os rostos maiores. Certifique-se de que o rosto não seja muito pequeno e não esteja visivelmente obscurecido ou borrado.
(Opcional) Carregue outra imagem de figura como pose de referência. Se não for feito o upload, usaremos a imagem da primeira pessoa para extrair os pontos de referência. Se um rosto cortado foi usado na etapa 1, é recomendável carregá-lo para extrair uma nova pose.
Prompts de texto de entrada, assim como os modelos normais de texto para imagem.
Clique no botão Submit (Enviar) para iniciar a personalização.
Os usuários devem fornecer uma única foto de identificação de referência
Diferentes estilos e poses podem ser selecionados para a geração de imagens personalizadas
Não há necessidade de fazer ajustes finos durante o teste ou de coletar várias imagens para ajustes finos
As imagens geradas podem ser usadas diretamente para fusão com modelos populares pré-treinados e redes de controle
Oferece suporte à adição flexível de atributos de identidade a funções não humanas
Processo de instalação
- Clonar um repositório do GitHub:
git clone https://github.com/instantX-research/InstantID.git cd InstantID
- Instale a dependência:
pip install -r requirements.txt
- Faça o download do modelo pré-treinado:
from huggingface_hub import hf_hub_download hf_hub_download(repo_id="InstantX/InstantID", filename="ControlNetModel/config.json", local_dir="./checkpoints") hf_hub_download(repo_id="InstantX/InstantID", filename="ControlNetModel/diffusion_pytorch_model.safetensors", local_dir="./checkpoints") hf_hub_download(repo_id="InstantX/InstantID", filename="ip-adapter.bin", local_dir="./checkpoints")
Processo de uso
- Prepare a imagem:
from diffusers.utils import load_image image = load_image("your-example.jpg")
- Modelos de carregamento:
from diffusers import StableDiffusionXLInstantIDPipeline, ControlNetModel controlnet = ControlNetModel.from_pretrained("./checkpoints/ControlNetModel", torch_dtype=torch.float16) pipe = StableDiffusionXLInstantIDPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", controlnet=controlnet, torch_dtype=torch.float16) pipe.cuda() pipe.load_ip_adapter_instantid("./checkpoints/ip-adapter.bin")
- Gerar uma imagem:
prompt = "analog film photo of a man. faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage, masterpiece, best quality" negative_prompt = "(lowres, low quality, worst quality:1.2), (text:1.2), watermark, painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured" image = pipe(prompt, image_embeds=face_emb, image=face_kps, controlnet_conditioning_scale=0.8).images[0]
Procedimento de operação detalhado
- Preparação do ambienteVerifique se as dependências necessárias estão instaladas e se o modelo pré-treinado foi baixado.
- Carregar imagem: Uso
load_image
carrega a imagem a ser processada. - Modelos de carregamento: Uso
from_pretrained
carrega o modelo ControlNet pré-treinado e o StableDiffusionXLInstantIDPipeline. - Geração de imagensPalavra-chave: Defina a palavra-chave e a palavra-chave negativa para a imagem gerada chamando a função
pipe
para gerar uma imagem.
Seguindo essas etapas, os usuários podem gerar facilmente imagens de retenção de identidade de alta fidelidade com o InstantID.
Programa de implementação da ComfyUI
Selecione o SDXL Base Dock. Você também pode experimentar o processo de 4 etapas do SDXL Turbo, que é muito eficaz para testes rápidos.
O primeiro carregamento geralmente leva mais de 60 segundos, mas o nó faz o possível para armazenar o modelo em cache.
https://github.com/huxiuhan/ComfyUI-InstantID
Endereço do InstantID Experience