|  | 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, | 
					
						
						|  | } | 
					
						
						|  |  |