PhotoMaker:通过堆叠 ID 嵌入定制逼真的人体照片
[论文] [项目页] [模型卡]
如果ID保真度对您来说还不够,请尝试我们的风格化应用程序,您可能会感到惊喜。
PhotoMaker的正式实现:通过 Stacked ID Embedding 定制逼真的人体照片。
🌠 主要特点:
- 几秒钟内快速定制,无需额外的 LoRA 培训。
- 确保令人印象深刻的 ID 保真度、提供多样性、有前途的文本可控性和高质量的生成。
- 可以作为适配器与社区中的其他基础模型以及 LoRA 模块进行协作。
❗❗ 注意:如果有任何基于 PhotoMaker 的资源和应用程序,请将它们留在讨论中,我们将在 README 文件的相关资源部分列出它们。现在我们知道了Replicate、Windows、ComfyUI和WebUI的实现。谢谢你们!
🚩新功能/更新
- ✅ Jan. 20, 2024.重要提示:对于那些不支持 bfloat16 的 GPU,请将此行更改为
torch_dtype = torch.float16
,速度将大大提高(V100 上 1min/img(之前) vs. 14s/img(之后)) 。PhotoMaker 的最低 GPU 内存要求是15G。 - ✅ 2024 年 1 月 15 日。我们发布 PhotoMaker。
🔥示例
现实一代
- PhotoMaker 笔记本演示
风格化生成
注意:仅更改基本模型并添加 LoRA 模块以获得更好的风格化
- PhotoMaker 风格的笔记本演示
🔧 依赖关系和安装
- Python >= 3.8 (推荐使用Anaconda或Miniconda )
- PyTorch >= 2.0.0
conda create --name photomaker python=3.10
conda activate photomaker
pip install -U pip
# Install requirements
pip install -r requirements.txt
# Install photomaker
pip install git+https://github.com/TencentARC/PhotoMaker.git
然后您可以运行以下命令来使用它
from photomaker import PhotoMakerStableDiffusionXLPipeline
⏬ 下载模型
模型会通过以下两行自动下载:
from huggingface_hub import hf_hub_download
photomaker_path = hf_hub_download(repo_id="TencentARC/PhotoMaker", filename="photomaker-v1.bin", repo_type="model")
您也可以选择从此网址手动下载。
💻 如何测试
像扩散器一样使用
- 依赖性
import torch
import os
from diffusers.utils import load_image
from diffusers import EulerDiscreteScheduler
from photomaker import PhotoMakerStableDiffusionXLPipeline
### Load base model
pipe = PhotoMakerStableDiffusionXLPipeline.from_pretrained(
base_model_path, # can change to any base model based on SDXL
torch_dtype=torch.bfloat16,
use_safetensors=True,
variant="fp16"
).to(device)
### Load PhotoMaker checkpoint
pipe.load_photomaker_adapter(
os.path.dirname(photomaker_path),
subfolder="",
weight_name=os.path.basename(photomaker_path),
trigger_word="img" # define the trigger word
)
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config)
### Also can cooperate with other LoRA modules
# 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()
- 输入身份证图像
### define the input ID images
input_folder_name = './examples/newton_man'
image_basename_list = os.listdir(input_folder_name)
image_path_list = sorted([os.path.join(input_folder_name, basename) for basename in image_basename_list])
input_id_images = []
for image_path in image_path_list:
input_id_images.append(load_image(image_path))
- 一代
# Note that the trigger word `img` must follow the class word for personalization
prompt = "a half-body portrait of a man img wearing the sunglasses in Iron man suit, best quality"
negative_prompt = "(asymmetry, worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch), open mouth, grayscale"
generator = torch.Generator(device=device).manual_seed(42)
images = 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,
).images[0]
gen_images.save('out_photomaker.png')
启动本地渐变演示
运行以下命令:
python gradio_demo/app.py
您可以在此文件中自定义此脚本。
如果你想在 MAC 上运行它,你应该按照这个说明,然后运行 app.py。
使用提示:
- 上传更多要定制的人的照片以提高 ID 保真度。如果输入是亚洲人脸,可以考虑在类词前添加“亚洲人”,例如,
Asian woman img
- 风格化时,生成的脸部看起来是否过于真实?将Style 强度调整为30-50,数字越大,ID 保真度越差,但风格化能力会更好。您还可以尝试其他具有良好风格化效果的基础模型或 LoRA。
- 减少生成图像的数量和采样步骤以获得更快的速度。但是,请记住,减少采样步骤可能会损害 ID 保真度。
相关资源
复制 PhotoMaker 的演示:
- 演示链接,在复制上运行 PhotoMaker,由@yorickvP提供。
- 演示链接(风格版本)。
Windows 版本的 PhotoMaker:
- bmaltais/PhotoMaker by @bmaltais,易于在 Windows 上部署 PhotoMaker。可以在此链接中找到说明。
- sdbds/PhotoMaker-for-windows作者:@sdbds。
舒适的用户界面:
- https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker
- https://github.com/StartHua/Comfyui-Mine-PhotoMaker
- https://github.com/shiimizu/ComfyUI-PhotoMaker
其他应用程序/网络演示
- Colab: https: //github.com/camenduru/PhotoMaker-colab作者:@camenduru
- 怪物 API:https://monsterapi.ai/playground?model =photo-maker
- 皮诺基奥:https://pinokio.computer/item?uri =https://github.com/cocktailpeanutlabs/photomaker
Graido 演示 45 行
由@Gradio提供
🤗致谢
- PhotoMaker由腾讯ARC实验室和南开大学MCG-NKU联合主办。
- 灵感来自许多优秀的演示和存储库,包括IP-Adapter、multimodalart/Ip-Adapter-FaceID、FastComposer和T2I-Adapter。感谢他们的出色工作!
- 感谢腾讯PCG维纳斯团队的反馈和建议。
- 感谢 HuggingFace 团队的慷慨支持!
免责声明
该项目致力于对人工智能驱动的图像生成领域产生积极影响。用户可以自由地使用此工具创建图像,但他们应该遵守当地法律并负责任地使用它。开发者对用户潜在的误用不承担任何责任。
书目词典
如果您发现 PhotoMaker 对您的研究和应用有用,请使用此 BibTeX 进行引用:
@article{li2023photomaker,
title={PhotoMaker: Customizing Realistic Human Photos via Stacked ID Embedding},
author={Li, Zhen and Cao, Mingdeng and Wang, Xintao and Qi, Zhongang and Cheng, Ming-Ming and Shan, Ying},
booktitle={arXiv preprint arxiv:2312.04461},
year={2023}
}