Skip to content

Commit 593be20

Browse files
feat: add essentials_category to nodes and blueprints for Essentials tab (Comfy-Org#12573)
* feat: add essentials_category to nodes and blueprints for Essentials tab Add ESSENTIALS_CATEGORY or essentials_category to 12 node classes and all 36 blueprint JSONs. Update SubgraphEntry TypedDict and subgraph_manager to extract and pass through the field. Fixes COM-15221 Amp-Thread-ID: https://ampcode.com/threads/T-019c83de-f7ab-7779-a451-0ba5940b56a9 * fix: import NotRequired from typing_extensions for Python 3.10 compat * refactor: keep only node class ESSENTIALS_CATEGORY, remove blueprint/subgraph changes Frontend will own blueprint categorization separately. * fix: remove essentials_category from CreateVideo (not in spec) --------- Co-authored-by: guill <jacob.e.segal@gmail.com>
1 parent 3814bf4 commit 593be20

File tree

7 files changed

+10
-0
lines changed

7 files changed

+10
-0
lines changed

comfy_api_nodes/nodes_kling.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1459,6 +1459,7 @@ def define_schema(cls) -> IO.Schema:
14591459
node_id="KlingOmniProEditVideoNode",
14601460
display_name="Kling 3.0 Omni Edit Video",
14611461
category="api node/video/Kling",
1462+
essentials_category="Video Generation",
14621463
description="Edit an existing video with the latest model from Kling.",
14631464
inputs=[
14641465
IO.Combo.Input("model_name", options=["kling-v3-omni", "kling-video-o1"]),

comfy_api_nodes/nodes_recraft.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,7 @@ def define_schema(cls):
833833
node_id="RecraftVectorizeImageNode",
834834
display_name="Recraft Vectorize Image",
835835
category="api node/image/Recraft",
836+
essentials_category="Image Tools",
836837
description="Generates SVG synchronously from an input image.",
837838
inputs=[
838839
IO.Image.Input("image"),

comfy_extras/nodes_audio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def define_schema(cls):
1919
node_id="EmptyLatentAudio",
2020
display_name="Empty Latent Audio",
2121
category="latent/audio",
22+
essentials_category="Audio",
2223
inputs=[
2324
IO.Float.Input("seconds", default=47.6, min=1.0, max=1000.0, step=0.1),
2425
IO.Int.Input(
@@ -185,6 +186,7 @@ def define_schema(cls):
185186
search_aliases=["export mp3"],
186187
display_name="Save Audio (MP3)",
187188
category="audio",
189+
essentials_category="Audio",
188190
inputs=[
189191
IO.Audio.Input("audio"),
190192
IO.String.Input("filename_prefix", default="audio/ComfyUI"),

comfy_extras/nodes_image_compare.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ def define_schema(cls):
1414
display_name="Image Compare",
1515
description="Compares two images side by side with a slider.",
1616
category="image",
17+
essentials_category="Image Tools",
1718
is_experimental=True,
1819
is_output_node=True,
1920
inputs=[

comfy_extras/nodes_images.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def define_schema(cls):
5858
search_aliases=["trim"],
5959
display_name="Image Crop",
6060
category="image/transform",
61+
essentials_category="Image Tools",
6162
inputs=[
6263
IO.Image.Input("image"),
6364
IO.BoundingBox.Input("crop_region", component="ImageCrop"),

comfy_extras/nodes_post_processing.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def define_schema(cls):
2121
node_id="ImageBlend",
2222
display_name="Image Blend",
2323
category="image/postprocessing",
24+
essentials_category="Image Tools",
2425
inputs=[
2526
io.Image.Input("image1"),
2627
io.Image.Input("image2"),

nodes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def encode(self, clip, text):
8181

8282

8383
class ConditioningCombine:
84+
ESSENTIALS_CATEGORY = "Image Generation"
8485
@classmethod
8586
def INPUT_TYPES(s):
8687
return {"required": {"conditioning_1": ("CONDITIONING", ), "conditioning_2": ("CONDITIONING", )}}
@@ -1778,6 +1779,7 @@ def VALIDATE_INPUTS(s, image):
17781779
return True
17791780

17801781
class LoadImageMask:
1782+
ESSENTIALS_CATEGORY = "Image Tools"
17811783
SEARCH_ALIASES = ["import mask", "alpha mask", "channel mask"]
17821784

17831785
_color_channels = ["alpha", "red", "green", "blue"]
@@ -1886,6 +1888,7 @@ def upscale(self, image, upscale_method, width, height, crop):
18861888
return (s,)
18871889

18881890
class ImageScaleBy:
1891+
ESSENTIALS_CATEGORY = "Image Tools"
18891892
upscale_methods = ["nearest-exact", "bilinear", "area", "bicubic", "lanczos"]
18901893

18911894
@classmethod

0 commit comments

Comments
 (0)