Krita AI Diffusion插件中ControlNet Pose功能报错问题分析与解决

Krita AI Diffusion插件中ControlNet Pose功能报错问题分析与解决

krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. krita-ai-diffusion 项目地址: https://gitcode.com/gh_mirrors/kr/krita-ai-diffusion

问题现象

在使用Krita AI Diffusion插件的ControlNet Pose功能时,部分用户遇到了"Server execution error: 'NoneType' object has no attribute 'getUnconnectedOutLayersNames'"的错误提示。该问题主要出现在插件v1.16.1和v1.17.0版本中,而v1.15.0版本则能正常工作。

错误分析

从错误日志可以看出,问题发生在OpenCV DNN模块尝试加载YOLO-NAS模型时。具体表现为:

  1. 系统尝试加载yolo_nas_l_fp16.onnx模型文件时失败
  2. OpenCV的ONNX导入器在处理TopK节点时出现错误
  3. 最终导致session对象为None,无法调用getUnconnectedOutLayersNames方法

根本原因

这个问题是由于插件版本更新后,默认的人体检测模型从yolox_l.onnx变更为yolo_nas_l_fp16.onnx引起的。新模型在某些系统环境下可能无法正确加载,特别是当OpenCV版本不支持模型中的TopK操作符时。

解决方案

方法一:删除缓存文件

用户可以尝试删除以下目录中的缓存文件: 用户目录\AppData\Roaming\krita\pykrita\ai_diffusion\.server\ComfyUI\custom_nodes\comfyui_controlnet_aux\ckpts\hr16

删除后,插件会重新下载模型文件,可能解决文件损坏导致的问题。

方法二:修改代码回退到旧模型

  1. 找到插件安装目录下的workflow.py文件
  2. 打开文件并定位到约702行处
  3. yolo_nas_l_fp16.onnx修改为yolox_l.onnx
  4. 保存文件并重启Krita

这个修改将使插件使用之前稳定的人体检测模型,避免新模型带来的兼容性问题。

技术背景

ControlNet Pose功能依赖于两个关键模型:

  1. 人体检测模型(如YOLO系列)用于定位图像中的人体位置
  2. 姿态估计模型(如DWPose)用于识别人体关键点

当检测模型加载失败时,整个姿态估计流程就会中断。YOLO-NAS是较新的目标检测模型,相比之前的YOLOX模型在某些方面有改进,但对运行环境的要求也更高。

预防措施

为了避免类似问题,用户可以:

  1. 保持OpenCV库为最新版本
  2. 确保模型文件完整下载
  3. 在插件更新后检查功能是否正常
  4. 关注插件的发布说明,了解重大变更

这个问题展示了AI工具链中模型兼容性的重要性,也提醒我们在升级过程中需要注意功能回退方案。

krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. krita-ai-diffusion 项目地址: https://gitcode.com/gh_mirrors/kr/krita-ai-diffusion

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢禹杉Torrent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值