From 4b34511db965262df3ef0103621cca16b5fd42f2 Mon Sep 17 00:00:00 2001 From: bymyself Date: Wed, 4 Feb 2026 16:54:43 -0800 Subject: [PATCH] feat: add ESSENTIALS_CATEGORY to core nodes Marked nodes: - Basic: LoadImage, SaveImage, LoadVideo, SaveVideo, Load3D, CLIPTextEncode - Image Tools: ImageScale, ImageInvert, ImageBatch, ImageCrop, ImageRotate, ImageBlur - Image Tools/Preprocessing: Canny - Image Generation: LoraLoader - Audio: LoadAudio, SaveAudio Amp-Thread-ID: https://ampcode.com/threads/T-019c2b25-cd90-7218-9071-03cb46b351b3 --- comfy_extras/nodes_audio.py | 2 ++ comfy_extras/nodes_canny.py | 1 + comfy_extras/nodes_images.py | 2 ++ comfy_extras/nodes_load_3d.py | 1 + comfy_extras/nodes_post_processing.py | 1 + comfy_extras/nodes_video.py | 2 ++ nodes.py | 8 ++++++++ 7 files changed, 17 insertions(+) diff --git a/comfy_extras/nodes_audio.py b/comfy_extras/nodes_audio.py index bef723dce..5ab681c85 100644 --- a/comfy_extras/nodes_audio.py +++ b/comfy_extras/nodes_audio.py @@ -129,6 +129,7 @@ class SaveAudio(IO.ComfyNode): search_aliases=["export flac"], display_name="Save Audio (FLAC)", category="audio", + essentials_category="Audio", inputs=[ IO.Audio.Input("audio"), IO.String.Input("filename_prefix", default="audio/ComfyUI"), @@ -270,6 +271,7 @@ class LoadAudio(IO.ComfyNode): search_aliases=["import audio", "open audio", "audio file"], display_name="Load Audio", category="audio", + essentials_category="Audio", inputs=[ IO.Combo.Input("audio", upload=IO.UploadType.audio, options=sorted(files)), ], diff --git a/comfy_extras/nodes_canny.py b/comfy_extras/nodes_canny.py index 6e0fadca5..9b2cc7a43 100644 --- a/comfy_extras/nodes_canny.py +++ b/comfy_extras/nodes_canny.py @@ -12,6 +12,7 @@ class Canny(io.ComfyNode): node_id="Canny", search_aliases=["edge detection", "outline", "contour detection", "line art"], category="image/preprocessors", + essentials_category="Image Tools/Preprocessing", inputs=[ io.Image.Input("image"), io.Float.Input("low_threshold", default=0.4, min=0.01, max=0.99, step=0.01), diff --git a/comfy_extras/nodes_images.py b/comfy_extras/nodes_images.py index cb4fb24a1..afb2ff82b 100644 --- a/comfy_extras/nodes_images.py +++ b/comfy_extras/nodes_images.py @@ -25,6 +25,7 @@ class ImageCrop(IO.ComfyNode): search_aliases=["trim"], display_name="Image Crop", category="image/transform", + essentials_category="Image Tools", inputs=[ IO.Image.Input("image"), IO.Int.Input("width", default=512, min=1, max=nodes.MAX_RESOLUTION, step=1), @@ -537,6 +538,7 @@ class ImageRotate(IO.ComfyNode): node_id="ImageRotate", search_aliases=["turn", "flip orientation"], category="image/transform", + essentials_category="Image Tools", inputs=[ IO.Image.Input("image"), IO.Combo.Input("rotation", options=["none", "90 degrees", "180 degrees", "270 degrees"]), diff --git a/comfy_extras/nodes_load_3d.py b/comfy_extras/nodes_load_3d.py index edbb5cd40..ec0a02ba3 100644 --- a/comfy_extras/nodes_load_3d.py +++ b/comfy_extras/nodes_load_3d.py @@ -31,6 +31,7 @@ class Load3D(IO.ComfyNode): node_id="Load3D", display_name="Load 3D & Animation", category="3d", + essentials_category="Basic", is_experimental=True, inputs=[ IO.Combo.Input("model_file", options=sorted(files), upload=IO.UploadType.model), diff --git a/comfy_extras/nodes_post_processing.py b/comfy_extras/nodes_post_processing.py index a52a90e2c..81cbeb032 100644 --- a/comfy_extras/nodes_post_processing.py +++ b/comfy_extras/nodes_post_processing.py @@ -77,6 +77,7 @@ class Blur(io.ComfyNode): return io.Schema( node_id="ImageBlur", category="image/postprocessing", + essentials_category="Image Tools", inputs=[ io.Image.Input("image"), io.Int.Input("blur_radius", default=1, min=1, max=31, step=1), diff --git a/comfy_extras/nodes_video.py b/comfy_extras/nodes_video.py index ccf7b63d3..ed7af592d 100644 --- a/comfy_extras/nodes_video.py +++ b/comfy_extras/nodes_video.py @@ -73,6 +73,7 @@ class SaveVideo(io.ComfyNode): search_aliases=["export video"], display_name="Save Video", category="image/video", + essentials_category="Basic", description="Saves the input images to your ComfyUI output directory.", inputs=[ io.Video.Input("video", tooltip="The video to save."), @@ -174,6 +175,7 @@ class LoadVideo(io.ComfyNode): search_aliases=["import video", "open video", "video file"], display_name="Load Video", category="image/video", + essentials_category="Basic", inputs=[ io.Combo.Input("file", options=sorted(files), upload=io.UploadType.video), ], diff --git a/nodes.py b/nodes.py index e11a8ed80..736c1e00f 100644 --- a/nodes.py +++ b/nodes.py @@ -69,6 +69,7 @@ class CLIPTextEncode(ComfyNodeABC): FUNCTION = "encode" CATEGORY = "conditioning" + ESSENTIALS_CATEGORY = "Basic" DESCRIPTION = "Encodes a text prompt using a CLIP model into an embedding that can be used to guide the diffusion model towards generating specific images." SEARCH_ALIASES = ["text", "prompt", "text prompt", "positive prompt", "negative prompt", "encode text", "text encoder", "encode prompt"] @@ -667,6 +668,8 @@ class CLIPSetLastLayer: return (clip,) class LoraLoader: + ESSENTIALS_CATEGORY = "Image Generation" + def __init__(self): self.loaded_lora = None @@ -1648,6 +1651,7 @@ class SaveImage: OUTPUT_NODE = True CATEGORY = "image" + ESSENTIALS_CATEGORY = "Basic" DESCRIPTION = "Saves the input images to your ComfyUI output directory." SEARCH_ALIASES = ["save", "save image", "export image", "output image", "write image", "download"] @@ -1706,6 +1710,7 @@ class LoadImage: } CATEGORY = "image" + ESSENTIALS_CATEGORY = "Basic" SEARCH_ALIASES = ["load image", "open image", "import image", "image input", "upload image", "read image", "image loader"] RETURN_TYPES = ("IMAGE", "MASK") @@ -1863,6 +1868,7 @@ class ImageScale: FUNCTION = "upscale" CATEGORY = "image/upscaling" + ESSENTIALS_CATEGORY = "Image Tools" SEARCH_ALIASES = ["resize", "resize image", "scale image", "image resize", "zoom", "zoom in", "change size"] def upscale(self, image, upscale_method, width, height, crop): @@ -1902,6 +1908,7 @@ class ImageScaleBy: class ImageInvert: SEARCH_ALIASES = ["reverse colors"] + ESSENTIALS_CATEGORY = "Image Tools" @classmethod def INPUT_TYPES(s): @@ -1918,6 +1925,7 @@ class ImageInvert: class ImageBatch: SEARCH_ALIASES = ["combine images", "merge images", "stack images"] + ESSENTIALS_CATEGORY = "Image Tools" @classmethod def INPUT_TYPES(s):