AI软件下载
有趣网站推荐及实用软件下载

AI绘图时numpy相关错误导致生成黑色图像invalid value encountered in cast

某些电脑Python应用在生成图片时发生错误,生成了纯黑图片,并输出报错信息如下:

site-packages\rembg\sessions\base.py:52: RuntimeWarning: invalid value encountered in divide
im_ary = im_ary / np.max(im_ary)

site-packages\rembg\sessions\u2net.py:44: RuntimeWarning: invalid value encountered in cast
mask = Image.fromarray((pred * 255).astype(“uint8″), mode=”L”)

有些情况是代码问题,有些情况是原始图像问题,上面提到两个问题,

1、rembg 库中的除零问题 (invalid value encountered in divide):

提示图像数组中的最大值为零,导致出现无效除法操作。处理的图像数据中存在异常值,就是我们看到的结果全黑图像。

解决方案:可以在进行除法操作之前检查 np.max(im_ary) 是否为零,并在此情况下跳过除法操作,或确保输入图像数据的质量。

原始代码:

im_ary = np.array(im)
im_ary = im_ary / np.max(im_ary)

修改后的代码:

im_ary = np.array(im)

# 检查 np.max(im_ary) 是否为零
max_val = np.max(im_ary)

if max_val > 0:
    # 只有在最大值大于零时才进行归一化
    im_ary = im_ary / max_val
else:
    # 如果最大值为零,可以跳过归一化或者采取其他处理措施
    im_ary = np.zeros_like(im_ary)

2、rembg 库中的类型转换问题 (invalid value encountered in cast):

提示在进行数组转换为 uint8 类型时遇到了无效值。这可能是因为模型输出的 pred 数组中包含了超出 0-1 范围的值,导致在转换时发生问题。

解决方案:在转换前处理无效值及对 pred 进行剪裁或归一化处理,以确保其数值在合理范围内(如 [0, 1] 之间)

原代码为:

        pred = ort_outs[0][:, 0, :, :]

        ma = np.max(pred)
        mi = np.min(pred)

        pred = (pred - mi) / (ma - mi)
        pred = np.squeeze(pred)

        mask = Image.fromarray((pred * 255).astype("uint8"), mode="L")

修改后的代码:

        pred = ort_outs[0][:, 0, :, :]

        ma = np.max(pred)
        mi = np.min(pred)

        pred = (pred - mi) / (ma - mi)

        # 使用 np.nan_to_num 替换 NaN 和无穷大的值
        pred = np.nan_to_num(pred, nan=0.0, posinf=1.0, neginf=0.0)

        # 将数值剪裁到 [0, 1] 范围
        pred = np.clip(pred, 0, 1)
        pred = np.squeeze(pred)


        mask = Image.fromarray((pred * 255).astype("uint8"), mode="L")
电脑不给力运行不了?试试高配云电脑>>
如需1对1人工答疑支持
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

项目实操变现思路分享之AI绘画-诺瓦小站

项目实操变现思路分享之AI绘画

本次和大家分享的实操项目变现思路是AI绘画相关的,虽然AI绘画已经火了很久了,但是仍有很多玩法,有了其它一些AI工具的加持,操作起来也更容易,项目具体内容请看PDF文档。 教程链接: https://afdian.com/p/982e793...

项目实操变现思路分享之AI视频-诺瓦小站

项目实操变现思路分享之AI视频

目前AI视频生成技术有了比较大的进步,AI视频现在已经很流畅丝滑,视频效果也很好,用户也比较喜欢看。各短视频平台AI视频的流量都很大,我们可以通过AI工具创建AI视频来获取流量变现,操作简单上手较快。下面分享一下AI视频的实操变现思路。 项...

AI软件实战变现思路分享之AI音乐-诺瓦小站

AI软件实战变现思路分享之AI音乐

本次和大家分享的AI软件实战变现项目是AI音乐相关的,前两天和大家分享了两个AI音乐生成软件,顺便接着分享一下AI音乐的实战变现思路,项目实操教程下载链接: https://afdian.com/p/99e81c38fe2f11efb2b4...

觉得文章对你有帮助就打赏一下作者

非常感谢你的打赏,我将有更多的动力继续提供优质内容,让我们一起创建更加美好的世界!

支付宝扫一扫

微信扫一扫