前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用AI制作艺术照

使用AI制作艺术照

原创
作者头像
mariolu
发布2024-04-19 09:10:38
1260
发布2024-04-19 09:10:38
举报
文章被收录于专栏:Python实用主义Python实用主义

一、PhotoMaker

在这里介绍一个AI制作艺术分身的开源库。

https://github.com/TencentARC/PhotoMaker/tree/main

PhotoMaker是通过Stacked ID Embedding定制逼真的人体照片。

有以下特点:

  1. 快速定制,无需额外的 LoRA 训练。
  2. 有丰富的印象深刻的 ID 保真度、提供多样性、有前途的文本可控性和高质量的生成。
  3. 可以作为适配器与社区中的其他基础模型以及 LoRA 模块进行协作。

二、产品演示

这里有个部署好的demo网站,我们先来试看下效果

https://huggingface.co/spaces/TencentARC/PhotoMaker

2.1 上传周星星的人照,

当然这里可以用自己的靓照。各位看官自便哈。

2.2 描述期望生成的照片word

这里期望是“photo of a man img”,同时手持苹果“take a apple”,坐在车里"sit inside car",穿着钢铁侠衣服"wear iron man suit"。

提交Submit,得到生成的图片。

这里人脸都被遮住了,我们删除提示词"wear iron man suit”。于是就有了如下图片

然后我们把提示词“photo of a man img”,改成女生像"photo of a woman img"

我们再用一些描述美女的词来生成图像“instagram photo, portrait photo of a woman img, colorful, perfect face, natural skin, hard shadows, film grain”

注意这里生成配置有个Advanced Option,可以进一步定制生成结果。

我们再来进行另一组图片生成一个以周星星为原型的厨娘,她穿着围裙在杀鱼。“protrait photo of a woman img, cooking, wear an apron, kill fish”。

2.3 官方实例

官方提供了更丰富的demo,我们也可以拿来demo。

三、依赖关系和安装

代码语言:javascript
复制
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

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

代码语言:javascript
复制
from photomaker import PhotoMakerStableDiffusionXLPipeline

下载模型

模型会通过以下两行自动下载:

代码语言:javascript
复制
from huggingface_hub import hf_hub_download
photomaker_path = hf_hub_download(repo_id="TencentARC/PhotoMaker", filename="photomaker-v1.bin", repo_type="model")

您也可以选择从此网址手动下载。

? 如何测试

像扩散器一样使用

  • 依赖性
代码语言:javascript
复制
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()
  • 输入身份证图像
代码语言:javascript
复制
### 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))
  • 一代
代码语言:javascript
复制
# 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')

运行以下命令:

代码语言:javascript
复制
python gradio_demo/app.py

使用提示:

  • 上传更多要定制的人的照片以提高 ID 保真度。如果输入是亚洲人脸,可以考虑在类词前添加“亚洲人”,例如,Asian woman img
  • 风格化时,生成的脸部看起来是否过于真实?将Style 强度调整为30-50,数字越大,ID 保真度越差,但风格化能力会更好。您还可以尝试其他具有良好风格化效果的基础模型或 LoRA。
  • 减少生成图像的数量和采样步骤以获得更快的速度。但是,请记住,减少采样步骤可能会损害 ID 保真度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、PhotoMaker
    • 有以下特点:
    • 二、产品演示
      • 2.1 上传周星星的人照,
        • 2.2 描述期望生成的照片word
          • 2.3 官方实例
          • 三、依赖关系和安装
          • 下载模型
          • ? 如何测试
            • 像扩散器一样使用
              • 使用提示:
              相关产品与服务
              媒体 AI 处理
              媒体 AI 处理(Media Artificial Intelligence processing)基于腾讯云点播产品提供智能化的媒体内容审核、分析、识别能力,包含违禁检测,画面识别、语音转文字等功能。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
              http://www.vxiaotou.com