修复 SadTalker 无法在新版本 Stable Diffusion WebUI 中运行的问题!

前言

大家好,我是每天分享AI应用的萤火君!

使用 Stable Diffusion WebUI 的同学可能会发现一个问题,升级到新版本之后(大约是1.9.0之后的版本),原本可以正常使用的 SadTalker 生成时报错了,用不了了。本文就来分析和解决这个问题。

简单介绍下SadTalker:SadTalker 可以说是比较早的开源数字人生产工具,只需要一张人物的照片和语音,我们就可以生成一个人物说话的视频。虽然现在已经有效果更好、更丰富的各种数字人产品,不过SadTalker还是有一些用处的。

言归正传,SadTalker在新版 Stable Diffusion WebUI 中到底发生了什么问题呢?

整理和输出教程属实不易,觉得这篇教程对你有所帮助的话,可以点击👇二维码领取资料😘

在这里插入图片描述

分析问题

即然它能运行在老版本的 Stable Diffusion WebUI 中,我猜就是程序兼容性的问题了。

那么到底哪里不兼容呢?程序出了问题,我们一般要先看看错误信息是什么。

前端页面中只显示了一个 Error,具体的错误还得看控制台中输出的日志,我这里给大家粘贴出来:

File "/root/SDWebUI/program/extensions/SadTalker/src/face3d/util/my_awing_arch.py", line 18, in calculate_points  
    preds = preds.astype(np.float, copy=False)  
  File "/root/miniconda3/envs/SDWebUI/lib/python3.10/site-packages/numpy/__init__.py", line 324, 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. Did you mean: 'cfloat'?

看不懂英文的同学不要害怕,可以找个工具自行翻译下。

这个错误从上往下看是SadTalk中的这个文件报错了,位置是第18行:

SadTalker/src/face3d/util/my_awing_arch.py

继续往下看是 Python3.10 中的 numpy 包抛出的错误:

python3.10/site-packages/numpy/__init__.py

再往下是详细的错误说明,大概是说程序使用了 numpy 包中不存在的属性 float,np.float 是一个过期的别名:

AttributeError: module ‘numpy’ has no attribute ‘float’.

`np.float` was a deprecated alias for the builtin `float`.

而且错误说明还给了一个明确的解决方案,直接使用 float 或者使用 np.float64。

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.

我们做个总结:SadTalk使用了 numpy 中的一个被过期删除的属性,然后程序报错了,解决方案是换个用法。

另外,这个问题仅在新版本的 Stable Diffusion WebUI 中出现,可以猜测是新版 SD WebUI 依赖的 numpy 版本升级了,而 SadTalker 没有同步升级,还在使用旧的 numpy。

解决问题

既然问题说的这么明白了,解决起来就很简单了。

我们不能将 numpy 降低到旧的版本,因为有的程序需要新版本,那就只能修改 SadTalker 使用新的方式了。

找到 src/face3d/util/my_awing_arch.py 第18行:

preds = preds.astype(np.float, copy=False)

修改为:

preds = preds.astype(float, copy=False)

除了这个地方,还有一处需要修改:

src/face3d/util/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]])

这个问题也是 numpy 版本升级导致的,t[0] 和 t[1] 是两个序列,不能直接作为数组中的元素。根据上下文我们使用索引取其中的第一个元素就可以了。

修改了这两处代码,SadTalker 又能正确的生成视频了。

安装插件

修改后的 SadTalker 我也发布在 Github上了,大家也可以直接使用下面这个链接来安装插件:

https://github.com/bosima/SadTalker

在这里插入图片描述

安装成功之后别忘了重启 Stable Diffusion WebUI。


以上就是本文的主要内容,如有问题欢迎留言。

感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!

在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

这份完整版的AIGC全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

### 解决 SadTalker 扩展在 SD WebUI 中执行回调时出现的错误 当遇到 `sadtalker` 扩展在 Stable Diffusion Web UI (SD WebUI) 中执行回调函数如 `ui_tabs_callback` 出现错误的情况,通常是因为环境配置不当或依赖库版本冲突所致。 #### 可能的原因分析 1. **模块属性不存在** 如果扩展试图访问某个 Python 模块中的特定属性而该属性并不存在,则会抛出 AttributeError 类型异常。例如,在尝试获取 `'ControlMode'` 属性失败的情况下[^1]。 2. **GPU 支持问题** 若系统未能成功初始化 PyTorch 的 CUDA 后端来利用 GPU 加速计算资源,则可能会触发 AssertionError 异常,并伴随有 "Torch is not able to use GPU" 提示信息[^2]。 3. **脚本逻辑缺陷** 当构建界面组件的过程中存在编程上的失误,比如未正确处理用户交互事件或是数据流管理失策等情形下也可能引发类似的错误。 4. **第三方工具链兼容性** 对于涉及多个软件平台间协作的任务(如 Prescan 和 MATLAB),如果一方提供的接口发生了变化却未及时同步更新到另一方的话同样会造成运行期故障[^3]。 5. **安装过程遗漏** 不完整的开发环境搭建流程可能导致某些必要的文件丢失或者路径设置错误等问题发生,进而影响应用程序正常启动与工作[^4]。 #### 推荐解决方案 为了有效排除上述潜在因素带来的干扰: - 验证所有必需的外部包都已按照官方文档说明完成安装; - 更新至最新版的框架及其配套插件集; - 审查自定义代码片段是否存在语法结构方面的问题; - 尝试切换不同的硬件加速选项以绕过可能存在的驱动程序适配难题; - 查看是否有其他社区成员分享了解决相同议题的经验贴作为参考依据。 通过以上措施可以大大降低此类技术障碍发生的概率,并有助于快速定位具体症结所在从而采取针对性修复行动。 ```bash # 使用 pip 工具重新安装指定版本号的依赖项 pip install --force-reinstall torch torchvision torchaudio -f https://download.pytorch.org/whl/cu117/torch_stable.html ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值