GitHub - TencentARC/PhotoMaker: PhotoMaker

contente


🌠 Principais Características:

  1. Personalização rápida em questão de segundos, sem necessidade de treinamento adicional em LoRA. 2. Garante uma fidelidade de ID impressionante, oferecendo diversidade, prometendo controlabilidade de texto e geração de alta qualidade. 3. Pode servir como um Adaptador para colaborar com outros Modelos Base ao lado de módulos LoRA na comunidade.

TencentARC%2FPhotoMaker | Trendshift

❗❗ Observação: Se houver recursos e aplicativos baseados em PhotoMaker, por favor, deixe-os na discussão e os listaremos na seção de Recursos Relacionados no arquivo README. Agora sabemos a implementação de Replicate, Windows, ComfyUI e WebUI. Obrigado a todos!

photomaker_demo_fast

🚩 Novas Funcionalidades/Atualizações

  • ✅ 20 de janeiro de 2024. Uma nota importante: Para as GPUs que não suportam bfloat16, por favor altere esta linha para torch_dtype = torch.float16, a velocidade será consideravelmente melhorada (1min/img (antes) vs. 14s/img (depois) na V100). O requisito mínimo de memória da GPU para o PhotoMaker é de 11G (Por favor, consulte este link para economizar memória da GPU).
  • ✅ 15 de janeiro de 2024. Lançamos o PhotoMaker.

🔥 Exemplos

Geração realista

Geração de Estilização

Nota: apenas altere o modelo base e adicione os módulos LoRA para uma melhor estilização

🔧 Dependências e Instalação

conda create --name photomaker python=3.10 conda activate photomaker pip install -U pip

Instalar requisitos

pip install -r requirements.txt

Instalar photomaker

pip install git+https://github.com/TencentARC/PhotoMaker.git

Em seguida, você pode executar o seguinte comando para usá-lo

from photomaker import PhotoMakerStableDiffusionXLPipeline

⏬ Baixar Modelos

O modelo será baixado automaticamente através das seguintes duas linhas:

from huggingface_hub import hf_hub_download photomaker_path = hf_hub_download(repo_id="TencentARC/PhotoMaker", filename="photomaker-v1.bin", repo_type="model")

Você também pode optar por baixar manualmente a partir deste url.

💻 Como Testar

Use like difusores

  • Dependência

import torch import os from diffusers.utils import load_image from diffusers import EulerDiscreteScheduler from photomaker import PhotoMakerStableDiffusionXLPipeline

Carregar modelo base

pipe = PhotoMakerStableDiffusionXLPipeline.from_pretrained( base_model_path, # pode ser alterado para qualquer modelo base com base em SDXL torch_dtype=torch.bfloat16, use_safetensors=True, variant="fp16" ).to(device)

Carregar ponto de verificação do PhotoMaker

pipe.load_photomaker_adapter( os.path.dirname(photomaker_path), subfolder="", weight_name=os.path.basename(photomaker_path), trigger_word="img" # define a palavra de gatilho )

pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config)

Também pode cooperar com outros módulos LoRA

pipe.load_lora_weights(os.path.dirname(lora_path), weight_name=lora_model_name, adapter_name="xl_more_art-full")

pipe.set_adapters(["photomaker", "xl_more_art-full"], adapter_weights=[1.0, 0.5])

pipe.fuse_lora()

  • Imagens de ID de entrada

define o ID de entrada das imagens

nome_da_pasta_de_entrada = './exemplos/newton_man' lista_de_nomes_de_arquivos = os.listdir(nome_da_pasta_de_entrada) lista_de_caminhos_das_imagens = sorted([os.path.join(nome_da_pasta_de_entrada, nome_do_arquivo) for nome_do_arquivo in lista_de_nomes_de_arquivos])

input_id_images = [] para caminho_da_imagem em lista_de_caminhos_de_imagem: input_id_images.append(carregar_imagem(caminho_da_imagem))

  • Geração

Note que a palavra de gatilho img deve seguir a palavra de classe para personalização

prompt = "um retrato de meio corpo de um homem img usando óculos de sol no traje do Homem de Ferro, melhor qualidade" prompt negativo = "(assimetria, pior qualidade, baixa qualidade, ilustração, 3d, 2d, pintura, desenhos animados, esboço), boca aberta, escala de cinza" gerador = torch.Gerador(dispositivo=device).semente_manual(42) imagens = pipe( prompt=prompt, input_id_images=input_id_images, negative_prompt=negative_prompt, num_images_per_prompt=1, num_inference_steps=num_steps, start_merge_step=10, generator=generator, ).imagens[0] imagens_gen.save('out_photomaker.png')

Iniciar uma demonstração local do gradio

Execute o seguinte comando:

python gradio_demo/app.py

Você poderia personalizar este script neste arquivo.

Se você deseja executá-lo no MAC, você deve seguir esta Instrução e então executar o app.py.

Dicas de Uso:

  • Carregue mais fotos da pessoa a ser personalizada para melhorar a fidelidade do ID. Se a entrada for rosto(s) asiático(s), talvez considere adicionar 'Asiático' antes da palavra da classe, por exemplo, imagem de mulher asiática.
  • Ao estilizar, o rosto gerado parece muito realista? Ajuste a força do Estilo para 30-50, quanto maior o número, menor a fidelidade do ID, mas a capacidade de estilização será melhor. Você também pode experimentar outros modelos base ou LoRAs com bons efeitos de estilização.
  • Reduza o número de imagens geradas e etapas de amostragem para obter maior velocidade. No entanto, por favor, tenha em mente que reduzir as etapas de amostragem pode comprometer a fidelidade do ID.

Recursos Relacionados

Replicar demonstração do PhotoMaker:

  1. Link da demonstração, execute o PhotoMaker no replicate, fornecido por @yorickvP e @jd7h. 2. Link da demonstração (versão de estilo).

Versão WebUI do PhotoMaker:

  1. stable-diffusion-webui-forge: https://github.com/lllyasviel/stable-diffusion-webui-forge fornecido por @Lvmin Zhang 2. Fooocus App: Fooocus-inswapper fornecido por @machineminded

Versão do Windows do PhotoMaker:

  1. bmaltais/PhotoMaker por @bmaltais, fácil de implantar o PhotoMaker no Windows. A descrição pode ser encontrada neste link. 2. sdbds/PhotoMaker-for-windows por @sdbds.

ComfyUI:

Versão puramente C/C++/CUDA do PhotoMaker:

Outras Aplicações / Demonstrativos Web

Graido demo em 45 linhas

Fornecido por @Gradio

🤗 Agradecimentos

  • PhotoMaker é co-organizado pelo Tencent ARC Lab e pela Universidade Nankai MCG-NKU.
  • Inspirado por muitas demos e repositórios excelentes, incluindo IP-Adapter, multimodalart/Ip-Adapter-FaceID, FastComposer e T2I-Adapter. Obrigado pelo excelente trabalho deles!
  • Agradecimentos à equipe Venus da Tencent PCG por seus feedbacks e sugestões.
  • Agradecimentos à equipe HuggingFace por seu generoso apoio!

Aviso Legal

Este projeto se esforça para impactar positivamente o domínio da geração de imagens impulsionada por IA. Os usuários têm a liberdade de criar imagens usando esta ferramenta, mas espera-se que cumpram as leis locais e a utilizem de forma responsável. Os desenvolvedores não assumem qualquer responsabilidade por possíveis usos indevidos por parte dos usuários.

BibTeX

Se você achar o PhotoMaker útil para sua pesquisa e aplicações, por favor cite usando este BibTeX:

@inproceedings{li2023photomaker, title={PhotoMaker: Personalização de Fotos Realistas de Humanos via Incorporação de ID Empilhada}, author={Li, Zhen e Cao, Mingdeng e Wang, Xintao e Qi, Zhongang e Cheng, Ming-Ming e Shan, Ying}, booktitle={Conferência IEEE sobre Visão Computacional e Reconhecimento de Padrões (CVPR)}, year={2024}

Resumir
Implementação oficial do PhotoMaker: Customizando Fotos Realistas de Humanos via Empilhamento de IDs. Principais características: personalização rápida em segundos, fidelidade de ID impressionante, diversidade, controlabilidade de texto e geração de alta qualidade. Pode ser usado como Adaptador para colaborar com outros Modelos Básicos ao lado de módulos LoRA na comunidade. Novidades: 20 de janeiro de 2024: Para GPUs que não suportam bfloat16, altere uma linha para torch.float16 para melhorar significativamente a velocidade. Requisito mínimo de memória da GPU: 11G. 15 de janeiro de 2024: Lançamento do PhotoMaker. Exemplos de geração realista disponíveis. Inclui link para demonstração do PhotoMaker e notebook demo. Para mais detalhes, consulte o artigo original.