SD中的插件一般安装比较简单,但也有一些插件安装会比较难。比如我在安装SadTalker时,就遇到很多问题,一度放弃了,后来查了一些网上攻略,自己也反复查看日志,终于解决,不吐不快。
一、在Stable Diffusion webui中安装SadTalker插件后,重启Stable Diffusion WebUI,在界面中没有出现SadTalker标签。
查绘世启动器中的运行提示,在运行到SadTalker插件时,系统出现很多错误提示,某个文件 某行代码有什么问题之类,最后为:
SadTalker module 'numpy' has no attribute 'complex'.
大意是说complex在numpy.py某个版本会已取消,可以退回以前版本之类。
退回原来的版本容易,但其他一些插件又会因为numpy.py版本过低引发新的问题。经网上搜索,找到“高斯小哥”的文章:已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘complex‘_attributeerror: module 'numpy' has no attribute 'c-CSDN博客
因此,结合本人电脑的错误提示:File "D:\SD\sd-webui-aki-v4.9\python\lib\site-packages\librosa\core\constantq.py", line 1058, in <module>
dtype=np.complex,
解决方法是:将该文件的1058行进行修改:
# wn_freqs_mul = np.zeros(treal.shape, dtype=np.complex) # 修改前
wn_freqs_mul = np.zeros(treal.shape, dtype=np.complex_) # 修改后
经过修改后,再次启动WebUI,终于能看到SadTalker标签了,
选择图像,选择声音文件,调整参数,生成,程序终于欢快地跑起来了。
且慢,
二、插件运行过程中,前端视频生成框中提示Error(错误),过程中止。
WHY?是声音文件太长?格式不标准?在扩展文件夹中找到示例声音文件,也不行。查看控制台中输出的日志,显示:
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\gradio_demo.py", line 96, in test
first_coeff_path, crop_pic_path, crop_info = self.preprocess_model.generate(pic_path, first_frame_dir, preprocess, True, size)
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\utils\preprocess.py", line 96, in generate
x_full_frames, crop, quad = self.propress.crop(x_full_frames, still=True if 'ext' in crop_or_resize.lower() else False, xsize=512)
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\utils\croper.py", line 128, in crop
lm = self.get_landmark(img_np)
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\utils\croper.py", line 35, in get_landmark
lm = landmark_98_to_68(self.predictor.detector.get_landmarks(img)) # [0]
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\face3d\util\my_awing_arch.py", line 373, in get_landmarks
pred = calculate_points(heatmaps).reshape(-1, 2)
File "D:\SD\sd-webui-aki-v4.9/extensions/SadTalker\src\face3d\util\my_awing_arch.py", line 18, in calculate_points
preds = preds.astype(np.float, copy=False)
File "D:\SD\sd-webui-aki-v4.9\python\lib\site-packages\numpy_init_.py", line 338, in getattr
raise AttributeError(former_attrs[attr])
AttributeError: module 'numpy' has no attribute 'float'.
np.float
was a deprecated alias for the builtin float
. To avoid this error in existing code, use float
by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64
here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
大意是说程序使用了 numpy 包中不存在的属性 float,np.float 是一个过期的别名。
还是一样的毛病,numpy.py版本过低引发的问题。
解决方法是:
1、找到图中位置的两个文件(注意保留副本)
2、将my_awing_arch.py中的第18行
preds = preds.astype(np.float, copy=False)
改为
preds = preds.astype(float, copy=False)
如下图:
3、将preprocess.py中的101行
trans_params = np.array([w0, h0, s, t[0], t[1]])
改为:
trans_params = np.array([w0, h0, s, t[0][0], t[1][0]])
如下图:
第2点的解决根据错误提示很好解决。但第3点的解决很长一段时间都不知怎么办?几经试验查找,几乎准备放弃了。一次偶然,搜到了修复 SadTalker 无法在新版本 Stable Diffusion WebUI 中运行的问题!_sadtalker will not support download all the files -CSDN博客
才终于找到解决方法。
4、再次运行SadTalker,生成初步时仍提示错误。
AttributeError: module 'numpy' has no attribute 'float'.
np.float
was a deprecated alias for the builtin float
. To avoid this error in existing code, use float
by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.float64
here.
File "D:\SD\sd-webui-aki-v4.9\python\lib\site-packages\librosa\util\utils.py", line 2099, in dtype_r2c
np.dtype(np.float): np.complex,
看来还有漏网之鱼。找到该文件,修改之。
再重启运行之,经过几分钟的等待,终于成功了。试验作品在视频区,大家可观看下。
视频区有试验作品:邓丽君小姐播新闻,赫本小姐播音《三峡》
极域电子教室座位表程序下载链接:链接:https://pan.baidu.com/s/1X0WUTtXmr1EhFg9CNgoIKA?pwd=odvs
提取码:odvs
考试指令系统下载链接:https://pan.baidu.com/s/11x9fS1gUEPCd6w15KHCxSw?pwd=zvw3
提取码:zvw3
照片插入电子表格程序链接:https://pan.baidu.com/s/1dvW5q9G53prkUDVcO6uffA?pwd=w3jp
提取码:w3jp
版权归原作者 老菜鸟YDZ 所有, 如有侵权,请联系我们删除。