AI魔法学院客服
PhotoMaker:腾讯最新开源,根据照片生成该人物各种风格图片,项目可落地!
腾讯开源的照片生成工具PhotoMaker,采用高效个性化文本到图像生成方法,可生成逼真人类照片并具备堆叠ID嵌入功能。该技术展现了在文本到图像生成领域的新突破,尤其在个性化和真实感方面。使用Python和PyTorch框架,并提供了详细的安装、依赖项和测试指导。用户可通过Gradio界面上传多张定制人物照片,调整风格强度、基础模型和LoRAs,生成个性化图像。减少采样步骤可加速生成,但可能影响ID忠实度。项目链接:https://github.com/TencentARC/PhotoMaker。
 2024-04-07
收藏 复制地址分享海报

项目简介

PhotoMaker是腾讯最近开源的照片生成工具,这是一种高效的个性化文本到图像生成方法。该工具不仅能根据文本描述生成逼真的人类照片,还具备“堆叠ID嵌入”功能,这一功能可以利用多张照片作为身份ID,获取人物特征,从而创造出新的、个性化的人物图像。

PhotoMaker展现了在文本到图像生成领域的新突破,尤其是在个性化和真实感方面的进步。这种技术有望在多个领域中发挥重要作用,例如艺术创作、媒体出版等。

 

示例

 

 

 

 

依赖和安装

Python >= 3.8(推荐使用 Anaconda MinicondaPyTorch >= 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 photomakerpip install git+https://github.com/TencentARC/PhotoMaker.git

 

然后可以运行以下命令来使用

· 

from photomaker import PhotoMakerStableDiffusionXLPipeline

 

如何测试

像使用 diffusers 一样使用 

 

·依赖项

· 

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()

 

·输入 ID 图像

· 

### 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')

 

 

启动一个本地 gradio 演示

运行以下命令:

· 

python gradio_demo/app.py

 

使用提示

上传更多要定制的人物的照片,以提高 ID 忠实度。如果输入是亚洲面孔,可以考虑在类别词前加上亚洲,例如,亚洲女性图像。 

 

在进行风格化时,生成的面孔如果看起来太真实了,调整风格强度到 30-50,数字越大,ID 忠实度越低,但风格化能力会更好。你也可以尝试使用其他基础模型或具有良好风格化效果的 LoRAs 

 

减少生成的图像数量和采样步骤可以加快速度。然而,减少采样步骤可能会影响 ID 忠实度。

 

项目链接

https://github.com/TencentARC/PhotoMaker

 

 

 

 

出自:https://mp.weixin.qq.com/s/SY-JGJfm728Gs6IyWgnGoA

本文档由网友提供,仅限参考学习,如有不妥或产生版权问题,请联系我们及时删除。 客服请加微信:skillupvip
评论
1 评论
超级凶鸭2024/4/10 10:45:32
**回复**:

**创造性**:腾讯的PhotoMaker真是个创新之作!文本到图像的生成技术已经发展到这种程度,真是让人眼前一亮。不仅能生成逼真的人类照片,还能嵌入堆叠ID,实用性和个性化都兼顾了。期待看到更多这样的创新项目!
20秒读懂全文
伴读
**文章摘要**:

腾讯最近开源了名为PhotoMaker的照片生成工具,它采用高效的个性化文本到图像生成方法,不仅能根据文本描述生成逼真的人类照片,还具有堆叠ID嵌入功能,可利用多张照片作为身份ID创建新的个性化人物图像。该工具在文本到图像生成领域实现了新突破,尤其在个性化和真实感方面表现卓越,有望在艺术创作、媒体出版等领域发挥重要作用。

**关键词**:

One More Thing
One More Thing again ...

找组织,加入AI魔法学院群