| from kornia.filters import canny |
| import comfy.model_management |
|
|
|
|
| class Canny: |
| @classmethod |
| def INPUT_TYPES(s): |
| return {"required": {"image": ("IMAGE",), |
| "low_threshold": ("FLOAT", {"default": 0.4, "min": 0.01, "max": 0.99, "step": 0.01}), |
| "high_threshold": ("FLOAT", {"default": 0.8, "min": 0.01, "max": 0.99, "step": 0.01}) |
| }} |
|
|
| RETURN_TYPES = ("IMAGE",) |
| FUNCTION = "detect_edge" |
|
|
| CATEGORY = "image/preprocessors" |
|
|
| def detect_edge(self, image, low_threshold, high_threshold): |
| output = canny(image.to(comfy.model_management.get_torch_device()).movedim(-1, 1), low_threshold, high_threshold) |
| img_out = output[1].to(comfy.model_management.intermediate_device()).repeat(1, 3, 1, 1).movedim(1, -1) |
| return (img_out,) |
|
|
| NODE_CLASS_MAPPINGS = { |
| "Canny": Canny, |
| } |
|
|