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:
de huggingface_hub importação 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:
de difusores.utils importação load_image image = load_image("your-example.jpg")
- Modelos de carregamento:
de difusores importação 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 = "Foto de homem em filme analógico. filme desbotado, dessaturado, foto de 35 mm, granulado, vinheta, vintage, Kodachrome, Lomografia, manchado, altamente detalhado, encontrado encontrado, obra-prima, melhor qualidade" negative_prompt = "(lowres, baixa qualidade, pior qualidade:1.2), (texto:1.2), marca d'água, pintura, desenho, ilustração, falha, deformado, mutante, vesgo, feio, desfigurado" 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
tubulação
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