|
|
发表于 2026-2-26 12:51:34
|
显示全部楼层
编辑遮罩的时候报错,试了几次都是这样。
Running XSeg editor.
Traceback (most recent call last):
File "<frozen DeepFaceLab.XSegEditor.XSegEditor>", line 1064, in paintEvent
TypeError: arguments did not match any overloaded call:
drawLine(self, l: QLineF): argument 1 has unexpected type 'numpy.float64'
drawLine(self, line: QLine): argument 1 has unexpected type 'numpy.float64'
drawLine(self, x1: int, y1: int, x2: int, y2: int): argument 1 has unexpected type 'numpy.float64'
drawLine(self, p1: QPoint, p2: QPoint): argument 1 has unexpected type 'numpy.float64'
drawLine(self, p1: Union[QPointF, QPoint], p2: Union[QPointF, QPoint]): argument 1 has unexpected type 'numpy.float64'
Press any key to continue . . .
用豆包查了一下:运行XSeg编辑器时出现了这个错误,原因是绘图函数中使用了numpy.float64类型的坐标,而Qt的drawLine方法需要整数或QPoint对象。以下是几种解决方法:
修改源代码
找到DeepFaceLab安装目录下的XSegEditor.py文件(可能在DeepFaceLab\mainscripts\XSegEditor.py或类似路径),定位到报错的第1064行附近的drawLine调用,将坐标值强制转换为整数。
例如,将:
painter.drawLine(x1, y1, x2, y2)
改为:
painter.drawLine(int(x1), int(y1), int(x2), int(y2))
更新DeepFaceLab
检查是否有新版本修复了此问题,可以从官方GitHub仓库下载最新版或更新。
使用预编译版本
如果不想修改代码,可以下载官方发布的整合包(如从dfldata.cc获取),这些版本通常已经处理了此类兼容性问题。
临时重启编辑器
有时重新启动XSeg编辑器或重新加载项目可以暂时绕过该错误,但不是根本解决办法。
如果问题持续,请检查是否修改了DeepFaceLab的依赖库版本(如numpy或PyQt),或考虑在社区寻求帮助。 |
|