mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-07-27 08:16:44 +00:00
33 lines
1015 B
Python
33 lines
1015 B
Python
from __future__ import annotations
|
|
|
|
from kornia.filters import canny
|
|
|
|
import comfy.model_management
|
|
from comfy_api.v3 import io
|
|
|
|
|
|
class Canny(io.ComfyNode):
|
|
@classmethod
|
|
def define_schema(cls):
|
|
return io.Schema(
|
|
node_id="Canny_V3",
|
|
category="image/preprocessors",
|
|
inputs=[
|
|
io.Image.Input("image"),
|
|
io.Float.Input("low_threshold", default=0.4, min=0.01, max=0.99, step=0.01),
|
|
io.Float.Input("high_threshold", default=0.8, min=0.01, max=0.99, step=0.01),
|
|
],
|
|
outputs=[io.Image.Output()],
|
|
)
|
|
|
|
@classmethod
|
|
def execute(cls, image, low_threshold, high_threshold) -> io.NodeOutput:
|
|
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 io.NodeOutput(img_out)
|
|
|
|
|
|
NODES_LIST = [
|
|
Canny,
|
|
]
|