Skip to content

AnyID‐LoraInpaintForAnyThing

zouxinyi0625 edited this page Nov 28, 2023 · 10 revisions

anyid : 一键训练某一物体的Lora 并 一键应用在其他图片上更好的绘制

定位:

  • 您可以用AnyID分支进行简便的物品(商品,衣物,动物)的LoRA训练
  • 可以在上传的图片中涂抹部分区域使用训练好的物品进行替换,例如下图的猫猫就是训练的作者自己的猫猫。

iwEcAqNqcGcDAQTRBJIF0QJSBrAPN9JrJndOvwUzzeALKU0AB9IKRuCqCAAJomltCgAL0gADXPI jpg_720x720q90

注意: AnyID的推理目前仅支持,相似形状的衣物/物体 替换,算法仍在持续优化中,欢迎关注试用~

环境安装

您可以直接使用分支Readme提供的镜像,一键拉起anyid分支的使用。

(使用前请进入EasyPhoto目录 git pull 至最新版)

也可以通过下面的方式进行手动的安装。

已安装EasyPhoto

如您已经下载并体验了EasyPhoto插件的人脸版本(main),您可进入EasyPhoto 安装目录进行分支的切换来使用:

1. 切换分支

Step1: 进入EasyPhoto所在目录,键入git branch -a 查看本地及远程的所有分支。

git branch -a
image

若没有anyid 分支,请键入 git feth origin 拉取远程分支

git fetch

Step2: 切换分支

 git checkout -b anyid remotes/origin/anyid
image
2. 安装LightGlue

LightGlue官网地址:https://github.com/cvg/LightGlue

在终端中,(任意目录)运行下面的命令,来安装LightGlue(请注意需要安装在启动webui所在的python目录)

wget https://pai-vision-data-sh.oss-cn-shanghai.aliyuncs.com/aigc-data/easyphoto/models/LightGlue.zip
unzip LightGlue.zip
cd LightGlue
python -m pip install -e .
  • 如windows环境未安装wget / unzip 命令,请手动下载并解压上方链接的zip包,在所用的python环境下,终端进入刚才解压的文件夹的目录,并 运行 python -m pip install -e . 命令。

  • 秋叶安装包,单机右上角的启动命令提示符来进入终端。

image

执行完上述步骤后启动WebUI即可。

image

未安装EasyPhoto

1. 安装AnyId
  • 【方式1】从WebUI 的网址下载安装
image
  • 【方式2】手动下载 EasyPhoto 代码文件包,并参考上面的步骤切换到anyid分支
2. 安装LightGlue

同上方介绍。

算法概述

AnyID仍遵循EasyPhoto中的LoRA训练+ControlNet-based inpaint 链路。

训练

我们通过LightGlue算法用上传的main图片对训练图片中的主体进行抠图,并排除异常(非当前ID数据),用于进行模型的训练。

请注意,所上传的main图片需尽可能的仅包含完整/正面的主体信息来更好的进行辅助抠图。

Main 图片示例
image

推理

在训练完成后,您可切换至推理选项卡进行模型的推理。

上传一张需要替换的模版图片(template),并进行所要替换的区域的标注,点击生成即可完成推理。

整个推理大体上分为三步:

  • Step1: 将main 图片与模版图片进行匹配,并完成初步贴图,得到用于控制的图像。
  • Step2: 对贴图后的结果进行形状编辑,更好的使用模版的形状。【暂时关闭】
  • Step3: 用SD模型根据输入图像及相关control进行inpaint,完成最终的模型推理。
名称 含义 默认值
Diffusion Steps Inpaint 推理步数 50
Diffusion denoising stength Inpaint 重构系数 0.7
LoRA weight LoRA 权重(越大越保留main特征) 0.8
IoU Threshold 匹配main和template的停止条件 (可达范围内越大越贴合,但搜索时间更长,可通过后台log查看优化过程) 0.7
Angle 贴图角度(启用优化时,作为初值,禁用时直接用于贴图) 0.0
Ratio 贴图放缩比例(同上) 1.0
Batch Size 出图数目 1
Refine Input Mask 是否优化输入的Template mask True
Optimize Angle and Ratio 是否优化贴图旋转角度及比例(关闭时直接使用angle,ratio) True
Refine Boundry 是否优化边缘(开启后会对mask边界二次重绘) True
Pure Image Main是否为颜色/花纹简单图像(开启后,整体色调保持与main主体一致,关闭后将由ipa先生成参考图像,用于保持原图花纹) True
Global Inpaint 是否进行全图重绘。(开启后,出图更协调,但出图时间长,显存开销大。依赖于输入的模版图像本身的分辨率) False

您可在出图右侧查看结果,从左到右依次为:

  • 直接inpaint结果
  • refine boundary结果
  • global inpaint结果
  • first paste结果(贴图效果较差时,可考虑手动设置angle ratio并关闭优化)