diff --git a/README.md b/README.md index c3b4cd5..c6a3b66 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ Inspired by [SDPose-OOD](https://github.com/judian17/ComfyUI-SDPose-OOD). ``` 3. Install only the backend you plan to use: ```bash + # Choose ONE backend path based on your workflow / hardware: + # Body / OpenPose pip install ultralytics @@ -48,7 +50,7 @@ Inspired by [SDPose-OOD](https://github.com/judian17/ComfyUI-SDPose-OOD). ### Windows / ComfyUI install note - `IBB_POSE` no longer requires `groundingdino-py`, `chumpy` or `huggingface_hub` during node installation. -- If your embedded ComfyUI Python had previous failed installs cached, remove those partial packages before retrying, for example: +- If your embedded ComfyUI Python had previous failed installs cached, remove those partial packages before retrying, for example. Only do this if you know other nodes do not rely on those packages: ```bash python -m pip uninstall -y groundingdino-py chumpy huggingface_hub python -m pip cache purge diff --git a/ibb_pose_nodes.py b/ibb_pose_nodes.py index 85c1cbd..b70f0fe 100644 --- a/ibb_pose_nodes.py +++ b/ibb_pose_nodes.py @@ -723,11 +723,15 @@ class IBBLoadPoseModel: if dev.type != "cpu": cuda_prov = ["CUDAExecutionProvider", "CPUExecutionProvider"] try: - _t = ort.InferenceSession(pose_path, providers=cuda_prov) - providers = cuda_prov - del _t + available = set(ort.get_available_providers()) + if "CUDAExecutionProvider" in available: + providers = cuda_prov + else: + raise RuntimeError("CUDAExecutionProvider unavailable") except Exception: print("IBB_POSE: ONNX CUDAExecutionProvider unavailable – using CPU.") + else: + providers = cuda_prov print(f"IBB_POSE: Loading DWPose ONNX | providers: {providers}") det_session = ort.InferenceSession(det_path, providers=providers)