Skip to content
zouxinyi0625 edited this page Nov 17, 2023 · 14 revisions

一、环境问题

0、Autodl 使用官方镜像后遇到 tb-nightly 安装失败

答:不要使用小李启动器,直接运行 python3 launch.py --port 7860 即可正常启动

1、ModuleNotFoundError: No module named 'launch'

具体报错:Traceback (most recent call last): File "C:\Users\xxx\xxx\sd-webui-EasyPhoto\install.py", line 1, in  import launch ModuleNotFoundError: No module named 'launch'

答:Easyphoto是一个WebUI插件,需要安装SDWebui后才可以使用。

2、AttributeError: module "insightface' has no attribute "model_zoo'

答:insightface版本较低,查看是否其他插件要求低版本insightface,可以先关闭其他插件,让easyphoto安装相关依赖。

3、RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

答:一般是模型权重没有下完全,需要查看具体的报错然后重新下载相关的模型权重。

4、ModuleNotFoundError: No module named "Cython'

答:这个一般是旧版秋叶安装包才会出现的问题,旧版的秋叶安装包不包含Cython,需要更新秋叶安装包。

5、requests.exceptions.ConnectionError:HTTPSConnectionPool

具体报错:requests.exceptions.ConnectionError:HTTPSConnectionPool(host='pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com', port=443):Max retries exceeded with url: /webui/control_v11f1e_sd15_tile.pth (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fb23911cd30>: Failed to establish à new connection: (Errno 1101 Connection timed out'))

答:这个是没有使用国内网络导致的,关闭代理即可。后续会更新模型到huggingface,在国外的下载速度会快很多。

6、mouth_mask = face_skin(input_image, retinaface_detection) TypeError: 'NoneType' object is not callable

答:权重没下载全,检查一下easyphoto_utils.py下列表里的各个权重是否存在。

7、ModuleNotFoundError: No module named 'venv'

答:这个问题是windows环境的问题,引入是因为使用了modelscope模型,可以参考modelscope的issue, 2023/10/17,他们还未修复,等到modelscope=1.9.3 更新后应该可以修复,参考链接 https://github.com/modelscope/modelscope/issues/572

8、Image size (222447600 pixels) exceeds Limit of 178956970 pixels, could be decompression bomb DOS

答:图片过大,上传小一些的图片,PIL无法读取太大的图片。

9、h_1, w_1, c_1 = np. shape(processed.images[1]) IndexError: list index out of range

答:这个是旧版本EasyPhoto在秋叶安装包上的问题,更新新版本即可。

10、urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=7890) 

具体报错:urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=7890) : Max retries exceeded with url: http://www.modelscope.cn/api/v1/models/damo/cv_resnet50_face-detection_retinaface (Caused bv ResponseError('too manv 502 error responses'))

答:这是modelscope网络不稳定导致的,可以多重试几次。

11、stderr: ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。

答:如果使用的是秋叶包的话,则是因为没有使用管理员模式运行,右键管理员模式运行即可。

12、AttributeError: 'Nonetype': object has no attribute 'model_name'.

答:重启webui即可。

13、RuntimeError: Couldn't install requirements for insightface.

答:在Windows下安装insightface需要注意安装visual studio,在如下链接中下载Community版本即可https://visualstudio.microsoft.com/zh-hans/downloads/。安装过程中需要选择C++组件。

14、template images = eval (selected template images) File "string>", line 0 SyntaxError: invalid syntax

答:没有选中模板图片。需要注意选择模板图片。

15、error: Microsoft Visual C++ 14.0 or greater is required. 

具体报错:error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

答:在Windows下安装insightface需要注意安装visual studio,在如下链接中下载Community版本即可https://visualstudio.microsoft.com/zh-hans/downloads/

安装过程中需要选择C++组件。

16、SDXL styles插件冲突:Template 1 error: Error info is expected string or bytes-like object

需要在使用EasyPhoto之前关闭 SDXL styles 插件,否则推理会出问题。

17、秋叶安装包下载地址:

答:https://pan.quark.cn/s/d6ee9d78dc5f

二、使用问题

1、训练中每个参数有什么用:

参数名 参数解释 调整后的影响
resolution 训练时喂入网络的图片大小,默认值为512。 调大后会增大显存占用,因为预测时也使用512的大小预测,不推荐调整。
validation & save steps 验证图片与保存中间权重的steps数,默认值为100,代表每100步验证一次图片并保存权重。 调节后会影响训练中验证的次数,间接影响训练速度与最终效果。 假设将其调整为200,总训练步数为800,那么只评估四次,训练速度加快。 因为模型的lora是根据每个验证结果进行融合的,验证少了理论融合效果会降低。
max train steps 最大训练步数,默认值为800。 调节后会影响训练的总步数。 最终训练步数 = Min(图片数 * max_steps_per_photos, max_train_steps)
max steps per photos 每张图片的最大训练次数,默认为200。 调节后会影响每张图片的重复训练次数。 最终训练步数 = Min(图片数 * max_steps_per_photos, max_train_steps)
train batch size 训练的批次大小,每个批次喂入模型训练的图片数量,默认值为1。 需要结合gradient accumulationsteps使用,推荐二者相乘为4,代表每个训练step的总图片数为4。 调节后影响显存占用与训练速度,如果机器的显存大的话可以将其调整为4以加快训练,但需要同时调节gradient accumulationsteps为1,以保证单次step的总图片数量不变。
gradient accumulationsteps 是否进行梯度累计,默认值为4。 调节后影响训练速度,需要同时调节train batch size,以保证单次step的总图片数量不变。
dataloader num workers  数据加载的works数量,windows下不生效,因为设置了会报错,Linux正常设置。 在cpu资源充足的情况下,设置的值越大,数据加载速度越快,训练速度越快。
learning rate  训练Lora的学习率,默认为1e-4。 一般来讲,每个训练step的总图片数越大,learning rate要越大,有经验的同学再尝试调节。1e-4是多次实验得出的最佳值。
rank Lora权重的特征长度,默认为128。 影响Lora的表征能力、训练速度、与显存占用: 调大后表征能力变强,容易过拟合,训练速度略微下降,显存占用略微上升。
network alpha Lora训练的正则化参数 一般为rank的二分之一,参考rank做调整。

2、预测中每个参数有什么用:

参数名 参数解释 调整后的影响
Additional Prompt 正向提示词,会传入Stable Diffusion模型进行预测。 可以根据自身希望增加的元素调整prompt词。
Seed 种子值。 用于保证结果的可复现性,为-1时会随机选择一个种子数。
Face Fusion Ratio Before 第一次人脸融合的强度。 调节后会影响人物相似度,一般来讲,值越大与训练人物的相似度越高。
Face Fusion Ratio After 第二次人脸融合的强度。 调节后会影响人物相似度,一般来讲,值越大与训练人物的相似度越高。
First Diffusion steps 第一次进行Stable Diffusion的总步数。第一次Diffusion主要进行人像区域的调整,使得人像更自然。 调节后会影响图片质量与出图速度,一般值越大图片质量越高,出图越慢。
First Diffusion denoising strength 第一次进行Stable Diffusion的重绘比例。 调节后会影响图片的重绘比例与出图速度,一般值越大,人像变动越大。
Second Diffusion steps 第二次进行Stable Diffusion的总步数。 第二次Diffusion主要进行人像周围区域的调整,使得图片更和谐。 调节后会影响图片质量与出图速度,一般值越大图片质量越高,出图越慢。
Second Diffusion denoising strength 第二次进行Stable Diffusion的重绘比例。 调节后会影响图片的重绘比例与出图速度,一般值越大,人像周围变动越大。
Crop Face Preprocess 是否对人像裁剪后再处理。 推荐开启,假设输入的是大图,会对人像区域先做裁剪后再进行人像调整,调整结果更精细。
Apply Face Fusion Before 是否进行第一次人脸融合。 调节后会影响是否进行第一次人脸融合,会影响人像的相似度。
Apply Face Fusion After 是否进行第二次人脸融合。 调节后会影响是否进行第二次人脸融合,会影响人像的相似度。 如果感觉人像发虚则取消该次融合。
Apply color shift first 是否进行第一次DIffusion后的色彩校正。 调节后会影响图片的人像自然程度。
Apply color shift last 是否进行第二次DIffusion后的色彩校正。 调节后会影响图片的人像自然程度。
Background Restore 是否进行背景的重建。 开启后可以对人像区域外背景进行重建,在使用动漫化模型时,可以让整个图片更和谐。

3、感觉不太像

答:人像相似度受到多个原因影响,训练图片、预测图片、主观因素都会影响。

首先看训练图片,我们推荐使用 同一个人的 5-20 张头肩照或者半身照进行训练,其中最好包含正面的人像,这样可以让模型更好的学习。并且Easyphoto会在训练一开始 打印所有训练图片的人像相似度,一般来讲,同一个人的人像相似度在0.55-0.70,如果低于该值则说明训练人像本身不够相似,同一个人在不同时期的相片也是不一样的。

然后看预测图片,最简单的例子就是肤色,假设训练图像的肤色和预测图像的肤色完全不同,那么新生成的人像怎么看都会有违和感。

另外,人像相似度是一个比较主观的看法,我们推荐使用face id得分来计算相似度,在指标上来看像不像。Easyphoto在人像相似度与美观之间做了平衡,在保留人像特征的情况下,尽量提高人像的相似度,后续我们会持续优化相似度。

4、为什么我训练完之后在预测界面没有找到自己的user id

答:需要点击右边的刷新按钮才会刷新出来。

image

5、为什么我训练完预测结果图片发虚

答:可以尝试关闭Apply Face Fusion After,关闭第二次人脸融合,此时图像不再发虚。

6、预测的输出图片在哪里

答:训练好的输出图片在stable-diffusion-webui/outputs/easyphoto-outputs路径下。

7、训练好的模型在哪里

答:训练好的权重文件在stable-diffusion-webui/outputs/easyphoto-user-id-infos中,另外stable-diffusion-webui/models/Lora中也有一份以User id命名的Lora权重。

一个user_id一个文件夹,如果觉得文件大小过大可以进入user_id/user_weights删除中间的safetensors文件,以下内容删除不影响正常预测:

stable-diffusion-webui/outputs/easyphoto-user-id-infos/{user_id}/user_weights/checkpoint-*.safetensors

stable-diffusion-webui/outputs/easyphoto-user-id-infos/{user_id}/user_weights/pytorch_lora_weights.safetensors

8、训练速度太慢了

答:首先查看自己的显卡,如果显存在24G左右(3090与4090)可以尝试将train batch size调整为4,gradient accumulationsteps调整为1。

如果显存在16G左右可以尝试将train batch size调整为2,gradient accumulationsteps调整为2。

另外,适当调整validation & save steps也可以加快训练速度,比如从100调整为200。

9、下载的权重文件太多了,每次启动都要下载吗

答:只需要第一次启动的时候下载一次即可,无需重复下载,插件会自动将每个权重放在对应的位置。

10. 训练完的lora 和使用可不可以整体平移

答:可以的,参考 https://github.com/aigc-apps/sd-webui-EasyPhoto/issues/154 , 然后Lora可以单独使用,也可以迁移整体内容,在别的机器上使用EasyPhoto

11. 多人重绘,人脸附近有白色边框

答:这是一个算法问题,可以通过修改一些参数缓解,具体参考https://github.com/aigc-apps/sd-webui-EasyPhoto/issues/177 讨论

11、总共需要多少权重,以及他们的作用

HuggingFace 模型地址: https://huggingface.co/alibaba-pai/pai-easyphoto/tree/main 单页可能未显示完全,可以往右边拉。 答:

权重名 作用 下载地址 放置位置
ChilloutMix-ni-fp16.safetensors 基础的 Stable Diffusion (v1) 模型,在此基础上生成。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/ChilloutMix-ni-fp16.safetensors stable-diffusion-webui/models/Stable-diffusion
SDXL_1.0_ArienMixXL_v2.0.safetensors 基础的 Stable Diffusion (XL) 模型,在此基础上生成。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/SDXL_1.0_ArienMixXL_v2.0.safetensors stable-diffusion-webui/models/Stable-diffusion
control_v11p_sd15_openpose.pth 用于进行人像形状的控制,保持轮廓相似 (SD v1)。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/control_v11p_sd15_openpose.pth stable-diffusion-webui/models/ControlNet
control_v11p_sd15_canny.pth 用于进行人像形状的控制,防止图像崩坏,保持轮廓稳定 (SD v1)。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/control_v11p_sd15_canny.pth stable-diffusion-webui/models/ControlNet
control_v11f1e_sd15_tile.pth 用于保证图片的高分辨率控制,同时让图像更和谐。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/control_v11f1e_sd15_tile.pth stable-diffusion-webui/models/ControlNet
control_sd15_random_color.pth 用于保证图片的颜色控制,以适应不同的模板。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/control_sd15_random_color.pth stable-diffusion-webui/models/ControlNet
diffusers_xl_canny_mid.safetensors 用于进行人像形状的控制,防止图像崩坏,保持轮廓稳定 (SDXL)。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/diffusers_xl_canny_mid.safetensors stable-diffusion-webui/models/ControlNet
FilmVelvia3.safetensors 用于提供一定的摄影风格。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/FilmVelvia3.safetensors stable-diffusion-webui/models/Lora
body_pose_model.pth 控制模型的openpose权重之一。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/body_pose_model.pth stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/openpose
facenet.pth 控制模型的openpose权重之一。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/facenet.pth stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/openpose
hand_pose_model.pth 控制模型的openpose权重之一。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/hand_pose_model.pth stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/openpose
vae-ft-mse-840000-ema-pruned.ckpt SD1 VAE权重,可以让生成的更符合真实与生动。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/vae-ft-mse-840000-ema-pruned.ckpt stable-diffusion-webui/models/VAE
madebyollin-sdxl-vae-fp16-fix.safetensors SDXL VAE权重,支持 fp16,可以让推理更快。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/madebyollin-sdxl-vae-fp16-fix.safetensors stable-diffusion-webui/models/VAE
madebyollin_sdxl_vae_fp16_fix/diffusion_pytorch_model.safetensors SDXL VAE权重,支持 fp16,可以让训练更快。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/madebyollin_sdxl_vae_fp16_fix/diffusion_pytorch_model.safetensors stable-diffusion-webui/extensions/sd-webui-EasyPhoto/models/stable-diffusion-xl/madebyollin_sdxl_vae_fp16_fix
face_skin.pth 人像分割模型,可以分割人像的各个区域。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/face_skin.pth stable-diffusion-webui/extensions/easyphoto-sd-webui/models
w600k_r50.onnx insightface的人脸embedding提取模型。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/w600k_r50.onnx stable-diffusion-webui/extensions/easyphoto-sd-webui/models/buffalo_l
2d106det.onnx insightface的人脸检测模型。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/2d106det.onnx stable-diffusion-webui/extensions/easyphoto-sd-webui/models/buffalo_l
det_10g.onnx insightface的人脸检测模型。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/det_10g.onnx stable-diffusion-webui/extensions/easyphoto-sd-webui/models/buffalo_l
diffusers_xl_canny_full.safetensors 用于进行人像形状的控制,防止图像崩坏,保持轮廓稳定 (SDXL)。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/diffusers_xl_canny_mid.safetensors stable-diffusion-webui/models/ControlNet
thibaud_xl_openpose.safetensors 用于进行人像形状的控制,保持轮廓相似 (SDXL)。 https://pai-aigc-photog.oss-cn-hangzhou.aliyuncs.com/webui/thibaud_xl_openpose.safetensors stable-diffusion-webui/models/ControlNet

modelscope模型则缓存在用户目录的cache文件夹下。

Clone this wiki locally