Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50c7b71a6a |
+1
-1
@@ -8,7 +8,7 @@
|
||||
import importlib
|
||||
import logging
|
||||
|
||||
version_code = [1, 3, 4]
|
||||
version_code = [1, 3, 5]
|
||||
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
|
||||
logging.info(f"### Loading: ComfyUI-Impact-Subpack ({version_str})")
|
||||
|
||||
|
||||
+4
-76
@@ -162,70 +162,12 @@ try:
|
||||
from numpy import dtype
|
||||
from numpy.dtypes import Float64DType
|
||||
except:
|
||||
logging.error("[Impact Subpack] installed 'numpy' is outdated. Please update 'numpy' to 1.26.4")
|
||||
raise Exception("[Impact Subpack] installed 'numpy' is outdated. Please update 'numpy' to 1.26.4")
|
||||
logging.error("[Impact Subpack] installed 'numpy' is outdated. Please update 'numpy>=1.26.4'")
|
||||
raise Exception("[Impact Subpack] installed 'numpy' is outdated. Please update 'numpy>=1.26.4'")
|
||||
|
||||
|
||||
torch_whitelist = []
|
||||
|
||||
# https://github.com/comfyanonymous/ComfyUI/issues/5516#issuecomment-2466152838
|
||||
def build_torch_whitelist():
|
||||
"""
|
||||
For security, only a limited set of namespaces is allowed during loading.
|
||||
|
||||
Since the same module may be identified by different namespaces depending on the model,
|
||||
some modules are additionally registered with aliases to ensure backward compatibility.
|
||||
"""
|
||||
global torch_whitelist
|
||||
|
||||
for name, obj in inspect.getmembers(modules):
|
||||
if inspect.isclass(obj) and obj.__module__.startswith("ultralytics.nn.modules"):
|
||||
aliasObj = type(name, (obj,), {})
|
||||
aliasObj.__module__ = "ultralytics.nn.modules"
|
||||
|
||||
torch_whitelist.append(obj)
|
||||
torch_whitelist.append(aliasObj)
|
||||
|
||||
for name, obj in inspect.getmembers(block_modules):
|
||||
if inspect.isclass(obj) and obj.__module__.startswith("ultralytics.nn.modules"):
|
||||
aliasObj = type(name, (obj,), {})
|
||||
aliasObj.__module__ = "ultralytics.nn.modules.block"
|
||||
|
||||
torch_whitelist.append(obj)
|
||||
torch_whitelist.append(aliasObj)
|
||||
|
||||
for name, obj in inspect.getmembers(loss_modules):
|
||||
if inspect.isclass(obj) and obj.__module__.startswith("ultralytics.utils.loss"):
|
||||
aliasObj = type(name, (obj,), {})
|
||||
aliasObj.__module__ = "ultralytics.yolo.utils.loss"
|
||||
|
||||
torch_whitelist.append(obj)
|
||||
torch_whitelist.append(aliasObj)
|
||||
|
||||
for name, obj in inspect.getmembers(torch_modules):
|
||||
if inspect.isclass(obj) and obj.__module__.startswith("torch.nn.modules"):
|
||||
torch_whitelist.append(obj)
|
||||
|
||||
aliasIterableSimpleNamespace = type("IterableSimpleNamespace", (IterableSimpleNamespace,), {})
|
||||
aliasIterableSimpleNamespace.__module__ = "ultralytics.yolo.utils"
|
||||
|
||||
aliasTaskAlignedAssigner = type("TaskAlignedAssigner", (TaskAlignedAssigner,), {})
|
||||
aliasTaskAlignedAssigner.__module__ = "ultralytics.yolo.utils.tal"
|
||||
|
||||
aliasYOLOv10DetectionModel = type("YOLOv10DetectionModel", (DetectionModel,), {})
|
||||
aliasYOLOv10DetectionModel.__module__ = "ultralytics.nn.tasks"
|
||||
aliasYOLOv10DetectionModel.__name__ = "YOLOv10DetectionModel"
|
||||
|
||||
aliasv10DetectLoss = type("v10DetectLoss", (loss_modules.E2EDetectLoss,), {})
|
||||
aliasv10DetectLoss.__name__ = "v10DetectLoss"
|
||||
aliasv10DetectLoss.__module__ = "ultralytics.utils.loss"
|
||||
|
||||
torch_whitelist += [DetectionModel, aliasYOLOv10DetectionModel, SegmentationModel, IterableSimpleNamespace,
|
||||
aliasIterableSimpleNamespace, TaskAlignedAssigner, aliasTaskAlignedAssigner, aliasv10DetectLoss,
|
||||
restricted_getattr, dill._dill._load_type, scalar, dtype, Float64DType]
|
||||
|
||||
build_torch_whitelist()
|
||||
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
logging.error("\n!!!!!\n\n[ComfyUI-Impact-Subpack] If this error occurs, please check the following link:\n\thttps://github.com/ltdrdata/ComfyUI-Impact-Pack/blob/Main/troubleshooting/TROUBLESHOOTING.md\n\n!!!!!\n")
|
||||
@@ -372,22 +314,8 @@ torch.load = torch_wrapper
|
||||
|
||||
|
||||
def load_yolo(model_path: str):
|
||||
# https://github.com/comfyanonymous/ComfyUI/issues/5516#issuecomment-2466152838
|
||||
if hasattr(torch.serialization, 'safe_globals'):
|
||||
with torch.serialization.safe_globals(torch_whitelist):
|
||||
try:
|
||||
return YOLO(model_path)
|
||||
except ModuleNotFoundError:
|
||||
# https://github.com/ultralytics/ultralytics/issues/3856
|
||||
YOLO("yolov8n.pt")
|
||||
return YOLO(model_path)
|
||||
else:
|
||||
try:
|
||||
return YOLO(model_path)
|
||||
except ModuleNotFoundError:
|
||||
YOLO("yolov8n.pt")
|
||||
return YOLO(model_path)
|
||||
|
||||
return YOLO(model_path)
|
||||
|
||||
|
||||
def inference_bbox(
|
||||
model,
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
[project]
|
||||
name = "comfyui-impact-subpack"
|
||||
description = "This node pack provides nodes that complement the Impact Pack, such as the UltralyticsDetectorProvider."
|
||||
version = "1.3.4"
|
||||
version = "1.3.5"
|
||||
license = { file = "LICENSE.txt" }
|
||||
dependencies = ["matplotlib", "ultralytics"]
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
matplotlib
|
||||
ultralytics
|
||||
ultralytics>=8.3.162
|
||||
numpy
|
||||
opencv-python-headless
|
||||
dill
|
||||
Reference in New Issue
Block a user