某些电脑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")
相关推荐
await future OSError: [WinError 10014] 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。
fire已经安装仍报错ModuleNotFoundError: No module named 'fire'
AttributeError: module 'socket' has no attribute 'SO_REUSEPORT'. sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
eSpeak NG语音生成器生成语音失败无法使用
AttributeError: module 'distutils' has no attribute '_msvccompiler'. Did you mean: 'ccompiler'
RuntimeError: Distributed package doesn't have NCCL built in
RuntimeError: use_libuv was requested but PyTorch was build without libuv support
triton.runtime.errors.OutOfResources: out of resource: shared memory, Required: 126978, Hardware limit: 101376. Reducing block sizes or `num_stages` may help
最近更新

pixi包管理器简易教程系列:pypi方法安装pytorch
pytorch可以从conda-forge安装,也可以从Pypi安装,看到目前官方页面上安装命令里已经不提供conda的安装命令了,只有pip命令,所以这里用pypi方式安装。 打开项目文件夹内的pixi.toml文件,添加下面命令要求 执...

pixi包管理器简易教程系列:入门之创建项目及激活虚拟环境
pixi是新一代包管理和环境管理工具,安装python依赖包非常快,用了几次感觉还不错,记录一下个人学习使用pixi的一些经验。 Linux系统安装pixi方法 或是 wget -qO- https://pixi.sh/install.sh...

comfyui视频人物换主体工作流及模型下载
本次分享一个好玩的视频人物换主体工作流,本工作流可以使用一张图片中的主体替换视频中的人物主体。比如抖音上很多热门的猴子炒饭,奥特曼炒饭,猴子vlog等等,都可以使用人物主体替换把原来视频中的人物替换成指定的人物。 comfyui工作流节点使...

github.com镜像加速网站,解决无法访问下载速度慢的问题
github.com是全球最大的开源社区,上面有着大量的优秀的开源应用。特别是当前AI极速发展,各种AI应用层出不穷,极大的方便了我们生活办公。但是由于网络原因,有时候github.com从国内可能无法访问,要么就访问速度极慢,不能方便快捷...

comfyui工作流软件官方原版windows版一键启动整合包下载
comfyui是目前非常热门的一个应用,它使python应用可以图形化以节点的方式直接拖拽使用,使用起来非常方便,而且可以与其他python应用节点配合使用,大大丰富了comfyui的功能,而且网上大量平台可以下载到各种的comfyui工作...

视频人物动作迁移wan2.1 VACE comfyUI工作流及模型下载,一键人物动作复刻
本次分享一个非常好玩的视频人物动作迁移comfyui工作流,可以通过文生视频或图片转视频将视频素材中的人物动作复制到新生成的视频人物中,视频生成模型主要使用了wan2.1 VACE模型。 comfyui工作流节点使用说明 首先打开网盘链接将...

凡人修仙传动画韩立高清图片壁纸素材AI绘画图集
恭迎韩天尊! 祝贺韩天尊顺利结婴! 热门国漫凡人修仙传动画已经更新了5年了,最新一集,主人公韩立顺利结婴,成为一名元婴修士。我属于是比较喜欢看动漫的,看过的动漫估计没过百也得大几十了,热门国漫大多都看过。凡人修仙传算是最喜欢的动漫之一,韩立...

凡人修仙传动画紫灵高清图片壁纸素材AI绘画图集,AI国漫女神系列
凡人修仙传动画乱星海第一美女紫灵是大家非常喜欢的一个角色,动画人物造型精美,是众多女性角色中最受欢迎之一,热度极高。很多人喜欢收集紫灵的图片,但是视频里截图的话可能截不到喜欢的图,下面分享一些紫灵的AI绘画图片素材,图片都是SD生成的,都是...

凡人修仙传动画宋玉高清图片壁纸素材AI绘画图集,AI国漫女神系列
凡人修仙传动画里宋玉是大家比较喜欢的一个角色,动画人物造型精美,当前热度极高。虽然凡人修仙传原著里只是韩老魔的弟子,但是很多短视频创作者非常能整活,已经把宋玉纳入韩老魔后宫了。很多人喜欢收集宋玉的图片,但是视频里截图的话可能截不到喜欢的图,...

凡人修仙传动画人物梅凝高清壁纸素材AI绘画图片,AI国漫女神系列
有些人比较喜欢凡人修仙传动画里梅凝这个角色,视频里截图的话可能截不到喜欢的图,下面分享一些梅凝的AI绘画图片素材,图片都是SD生成的,都是高清大图,非凡人修仙传动画视频截图。部分梅凝图片如下: 图片及模型文件下载链接: https://pa...