SD插件|EasyPhoto|妙鸭相机平替

Stable Diffusion WebUI扩展插件EasyPhoto,妙鸭相机APP免费平替,可以完美取代妙鸭相机,且更加安全快速,效果有过之而无不及,大部分参数都可以自定义,训练也极其简单还免费。

SD插件|EasyPhoto|妙鸭相机平替

Stable Diffusion WebUI|EasyPhoto|妙鸭相机平替

Stable Diffusion WebUI扩展插件EasyPhoto,翻译中文为简单照片。最近通过AI生成照片的一个APP很火,叫做妙鸭相机,通过上传几张你的个人照片就可以训练出角色模型,然后用户可以自由生成各种照片。可这有两个缺点,毕竟要上传个人照片到别人的服务器,而且妙鸭相机官方对于用户安全隐私的协议定义模糊,已经导致很多用户不满,上传后的照片使用权居然归官方所有。其二就是需要收费,对于量大的用户来说也是一个痛点。而站长在体验了EasyPhoto之后认为,这真的可以完美取代妙鸭相机,有过之而无不及,大部分参数都可以自定义,可用性极强,训练也极其简单。

SD插件|EasyPhoto|妙鸭相机平替

项目仓库

GitHub:aigc-apps/sd-webui-EasyPhoto: 📷 EasyPhoto

网络问题

在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请自行查看【魔法上网】的教程内容。

安装教程

快捷安装

sd-webui-EasyPhoto

提取密码 解压密码 文件大小 232.48MB 文件格式 RAR 资源价格 免费 下载次数 7

这种方式最为简单,下载后直接解压该文件,你将会得到一个名为sd-webui-EasyPhoto文件夹,将其移动至.\stable-diffusion-webui\extensions目录内即可完成安装。

本站已经将需要用到的相关模型放置于该插件内,安装后可以免去自行下载相关模型的繁琐步骤。

在线安装

此方法适用于魔法环境没有问题的朋友,可以通过在线安装的方式一键安装,非常方便。

打开Stable Diffusion扩展界面后,点击从网址安装按钮,然后在扩展的git仓库网址输入框中粘贴如下网址,最后点击安装按钮即可,然后等待安装脚本自动执行。

https://github.com/aigc-apps/sd-webui-EasyPhoto.git
SD插件|EasyPhoto|妙鸭相机平替

这可能需要等待几分钟,不要刷新或关闭网页。安装完成后点击页面最下方的重载UI按钮,UI重新启动后就可以在主菜单中看到EasyPhoto选项卡。

其它依赖

本插件还依赖于阿里的魔塔huggingface的一些模型,如果你的魔法网络环境没有问题,那么你可以直接正常使用,该插件会自动下载相关内容。

但如果你的魔法网络存在问题,可以使用本站所提供的环境依赖包,关于该依赖的详细安装方式如下。


该插件的辅助模型默认路径为%USERPROFILE%\.cache,如果你是初次使用,可能不存在此路径,可以在CMD中执行如下代码判断该路径是否存在,如果不存在则自动创建。

if not exist %USERPROFILE%\.cache mkdir %USERPROFILE%\.cache

执行完上面的代码之后,我们可以通过在CMD执行下面的代码自动打开模型目录

start %USERPROFILE%\.cache

将我们下载完成的模型文件解压缩,你将会得到两个文件夹,名称分别为huggingfacemodelscope移动至刚刚打开的文件夹(.cache)下即可。

.cache

提取密码 解压密码 文件大小 3.38GB 文件格式 RAR 资源价格 免费 下载次数 2

使用教程

基础设置

在使用此插件功能之前,我们还需要设置一下Controlnet。

我们至少需要三个Controlnets用于推理。因此,您需要设置Multi ControlNet: Max models amount (requires restart)

SD插件|EasyPhoto|妙鸭相机平替

模型训练

以下是程序的主界面,站长来讲解一下基础功能。

SD插件|EasyPhoto|妙鸭相机平替

在开始即用之前,我们需要训练一个自己的角色模型,方便以后生成的图像都使用该模型,来确定角色的形象可以与所需要的人物一致。

我们点击Upload Photos按钮,上传5张至20张之间的同一个角色照片,比如站长本次使用的是樱景宁宁写真图,共计20张图片。

在右侧The base checkpoint you use.选择基础模型,也就是你希望训练模型时使用哪个模型做为训练时的基础Base,这很重要,这关乎于以后的出图风格。

如果要设置参数,以下是每个参数的解析:

参数名含义
resolution训练时喂入网络的图片大小,默认值为512。
validation & save steps验证图片与保存中间权重的steps数,默认值为100,代表每100步验证一次图片并保存权重。
max train steps最大训练步数,默认值为800。
max steps per photos每张图片的最大训练次数,默认为200。
train batch size训练的批次大小,默认值为1。
gradient accumulationsteps是否进行梯度累计,默认值为4,结合train batch size来看,每个Step相当于喂入四张图片。
dataloader num workers数据加载的works数量,windows下不生效,因为设置了会报错,Linux正常设置。
learning rate训练Lora的学习率,默认为1e-4。
rank Lora权重的特征长度,默认为128。
network alphaLora训练的正则化参数,一般为rank的二分之一,默认为64。

在你设置完所有参数后,点击Start Training按钮,即可开始训练。此时网页会自动弹出一个窗口,让你输入一个名字,也就是角色的ID,方便让你知道以后应该选用哪个模型做为你的角色。随便输入,只要你能记得这是谁就好。

SD插件|EasyPhoto|妙鸭相机平替

训练期间你可以多次点击Refresh Log按钮,来查看训练的进度。默认设置的最大部署为800,也就是当训练步数达到800时就会完成模型训练,

SD插件|EasyPhoto|妙鸭相机平替

其实全部保持默认,训练后的效果也还不错。站长2080TI的显卡,20张超大原图分辨率图像的训练时间为5个小时左右,如果你的图像并不大,经过裁切之后可以大幅缩短训练时间。

图像生成

模型训练完成之后,我们可以来到Inference选项卡,里面内置了一些模板,你可以直接点击一张照片模板,然后在下面选择对应的基础模型和你训练的模型ID,比如本站设置训练樱景宁宁的角色IDNN,那么在User id (The User id you provide while training)内你就可以选择为NN的模型,如果你没有看到该模型,可以点击🔄按钮刷新模型列表,这将会自动查找最新模型。

SD插件|EasyPhoto|妙鸭相机平替

如果你需要高级编辑设置,那么可以打开高级选项卡,设置Prompt提示词和种子之类的内容,非常方便。

下面是生成后的效果图,个人认识还是挺好的,最起码训练过程非常简单,人人都可以上手,比LoRA训练快多了。

注意:第一次生成会比较慢,后面速度就会变快啦。

效果展示

为了方便大家对比,知道原角色长什么样子,这里放几张宁宁的训练图像。

下面是模板图与二次生成的图像对比,左面是模板,右面是二创。

效果真的很赞,如果你觉得不够像,也可以在高级选项卡内,调节面部融合的比例,这可以让你自由控制角色相似度!

多人模板

如果你希望一次生成多张人脸的内容,那么也可以通过如下设置进行生成。

  • 步骤1:转到EasyPhoto的设置页面,设置num_of_Faceid大于1。
  • 步骤2:应用设置。
  • 步骤3:重新启动webui的ui界面。
  • 步骤4:返回EasyPhoto并上传多人模板。
  • 步骤5:选择两个人的用户ID。
  • 步骤6:单击“生成”按钮。执行图像生成。
SD插件|EasyPhoto|妙鸭相机平替
SD插件|EasyPhoto|妙鸭相机平替

算法相关

1. 架构概述

SD插件|EasyPhoto|妙鸭相机平替

在人工智能肖像领域,我们希望模型生成的图像逼真且与用户相似,而传统方法会引入不真实的光照(如人脸融合或roop)。为了解决这种不真实的问题,我们引入了稳定扩散模型的图像到图像功能。生成完美的个人肖像需要考虑所需的生成场景和用户的数字二重身。我们使用一个预先准备好的模板作为所需的生成场景,并使用一个在线训练的人脸 LoRA 模型作为用户的数字二重身,这是一种流行的稳定扩散微调模型。我们使用少量用户图像来训练用户的稳定数字二重身,并在推理过程中根据人脸 LoRA 模型和预期生成场景生成个人肖像图像。

2. 训练细节

SD插件|EasyPhoto|妙鸭相机平替

首先,我们对输入的用户图像进行人脸检测,确定人脸位置后,按照一定比例截取输入图像。然后,我们使用显著性检测模型和皮肤美化模型获得干净的人脸训练图像,该图像基本上只包含人脸。然后,我们为每张图像贴上一个固定标签。这里不需要使用标签器,而且效果很好。最后,我们对稳定扩散模型进行微调,得到用户的数字二重身。

在训练过程中,我们会利用模板图像进行实时验证,在训练结束后,我们会计算验证图像与用户图像之间的人脸 ID 差距,从而实现 Lora 融合,确保我们的 Lora 是用户的完美数字二重身。

此外,我们将选择验证中与用户最相似的图像作为 face_id 图像,用于推理。

3. 推理细节

a. 第一次扩散:

首先,我们将对接收到的模板图像进行人脸检测,以确定为实现稳定扩散而需要涂抹的遮罩。然后,我们将使用模板图像与最佳用户图像进行人脸融合。人脸融合完成后,我们将使用上述遮罩对融合后的人脸图像进行内绘(fusion_image)。此外,我们还将通过仿射变换(replace_image)把训练中获得的最佳 face_id 图像贴到模板图像上。然后,我们将对其应用 Controlnets,在融合图像中使用带有颜色的 canny 提取特征,在替换图像中使用 openpose 提取特征,以确保图像的相似性和稳定性。然后,我们将使用稳定扩散(Stable Diffusion)结合用户的数字分割进行生成。

b. 第二次扩散:

在得到第一次扩散的结果后,我们将把该结果与最佳用户图像进行人脸融合,然后再次使用稳定扩散与用户的数字二重身进行生成。第二次生成将使用更高的分辨率。

总结

对于动手能力较差的人来说,这个插件真的很好用了,毕竟效果真的很顶,而且可自定义的参数也比较多。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/easyphoto.html

(1)
上一篇 2023-09-13 18:17
下一篇 2023-09-28 15:11

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(4条)

  • CurryLau
    CurryLau 2023-09-30 12:56

    已安装里已经看到安装了,但选项卡里就是出不来

  • haixiao
    haixiao 2023-10-07 22:44

    RuntimeError: Error running install.py for extension D:\AIhuihua\extensions\sd-webui-EasyPhoto.
    提示:Python 运行时抛出了一个异常。请检查疑难解答页面。
    Command: “D:\AIhuihua\py310\python.exe” “D:\AIhuihua\extensions\sd-webui-EasyPhoto\install.py”
    Error code: 1
    stdout: Installing requirements for easyphoto-webui
    Installing requirements for tensorflow
    Installing requirements for easyphoto-webui
    Installing requirements for modelscope

    下载了整个包扔到extensions里的 一键启动 提示 离线下载了还需要魔法网络吗?

  • mark
    mark 2023-12-13 09:12

    这个是不是和用SD先生成一系列照片,再使用一键AI换脸把生成的照片上的人进行换脸的效果是一样的?

  • 222
    222 2023-12-30 20:07

    这插件是不是有大问题,关闭sd后cpu直接99%,十几个rundll32在占用

微信