Display names.

This commit is contained in:
Shanoah Alkire
2026-01-03 09:23:48 -08:00
parent 0159be8d6c
commit 7ea804ba03
9 changed files with 397 additions and 397 deletions
+31 -31
View File
@@ -58,13 +58,13 @@ class Sage_EmptyLatentImagePassthrough(io.ComfyNode):
description="Passes through an empty latent image.",
category="Sage Utils/image",
inputs=[
io.Int.Input("width", default=1024),
io.Int.Input("height", default=1024),
io.Int.Input("batch_size", default=1),
io.Combo.Input("type", default="4_channel", options=["4_channel", "16_channel", "radiance"], tooltip="The type of latent to create. 4_channel is for standard latent diffusion models, 16_channel is for SD3 models, and radiance is for Chroma Radiance models."),
io.Int.Input("width", display_name="width", default=1024),
io.Int.Input("height", display_name="height", default=1024),
io.Int.Input("batch_size", display_name="batch_size", default=1),
io.Combo.Input("type", display_name="type", default="4_channel", options=["4_channel", "16_channel", "radiance"], tooltip="The type of latent to create. 4_channel is for standard latent diffusion models, 16_channel is for SD3 models, and radiance is for Chroma Radiance models."),
],
outputs=[
io.Latent.Output("latent"),
io.Latent.Output("latent", display_name="latent"),
io.Int.Output("out_width", display_name="width"),
io.Int.Output("out_height", display_name="height"),
]
@@ -108,13 +108,13 @@ class Sage_SaveImageWithMetadata(io.ComfyNode):
category="Sage Utils/image",
is_output_node=True,
inputs=[
io.Image.Input("images", tooltip="The images to save."),
io.String.Input("filename_prefix", default="image_", tooltip="The prefix for the saved image filenames."),
io.Boolean.Input("include_node_metadata", default=True, tooltip="Whether to include node metadata in the saved image."),
io.Boolean.Input("include_extra_pnginfo_metadata", default=False, tooltip="Whether to include extra PNG info metadata."),
io.Boolean.Input("save_text", default=False, tooltip="Whether to save accompanying text files with metadata."),
io.String.Input("param_metadata", default="", tooltip="The metadata to embed in the image."),
io.String.Input("extra_metadata", default="", tooltip="Any extra metadata to include."),
io.Image.Input("images", display_name="images", tooltip="The images to save."),
io.String.Input("filename_prefix", display_name="filename_prefix", default="image_", tooltip="The prefix for the saved image filenames."),
io.Boolean.Input("include_node_metadata", display_name="include_node_metadata", default=True, tooltip="Whether to include node metadata in the saved image."),
io.Boolean.Input("include_extra_pnginfo_metadata", display_name="include_extra_pnginfo_metadata", default=False, tooltip="Whether to include extra PNG info metadata."),
io.Boolean.Input("save_text", display_name="save_text", default=False, tooltip="Whether to save accompanying text files with metadata."),
io.String.Input("param_metadata", display_name="param_metadata", default="", tooltip="The metadata to embed in the image."),
io.String.Input("extra_metadata", display_name="extra_metadata", default="", tooltip="Any extra metadata to include."),
],
outputs=[],
hidden=[io.Hidden.prompt, io.Hidden.extra_pnginfo]
@@ -356,8 +356,8 @@ class Sage_GuessResolutionByRatio(io.ComfyNode):
io.Int.Input("height", min = 64, max = 8192, default=1024, step = 1, tooltip="The input height."),
],
outputs=[
io.Int.Output("new_width", tooltip="The guessed width."),
io.Int.Output("new_height", tooltip="The guessed height."),
io.Int.Output("new_width", display_name="width", tooltip="The guessed width."),
io.Int.Output("new_height", display_name="height", tooltip="The guessed height."),
]
)
@@ -410,8 +410,8 @@ class Sage_QuickResPicker(io.ComfyNode):
io.Float.Input("multiplier", display_name="Multiplier", default=1.0, min = 0.1, max = 10.0, step = 0.1, round = 0.001, tooltip="The multiplier for the base resolution."),
],
outputs=[
io.Int.Output("width", display_name="Width", tooltip="The selected width."),
io.Int.Output("height", display_name="Height", tooltip="The selected height."),
io.Int.Output("width", display_name="width", tooltip="The selected width."),
io.Int.Output("height", display_name="height", tooltip="The selected height."),
]
)
@@ -446,18 +446,18 @@ class Sage_CubiqImageResize(io.ComfyNode):
description="Resizes an image using Cubiq interpolation.",
category="Sage Utils/image",
inputs=[
io.Image.Input("image", display_name="Image", tooltip="The image to resize."),
io.Int.Input("width", display_name="Width", default=1024, min = 0, max = MAX_RESOLUTION, step = 1, tooltip="The target width."),
io.Int.Input("height", display_name="Height", default=1024, min = 0, max = MAX_RESOLUTION, step = 1, tooltip="The target height."),
io.Combo.Input("interpolation", display_name="Interpolation", default="bicubic", options=["nearest", "bilinear", "bicubic", "area", "nearest-exact", "lanczos", "bislerp"], tooltip="The interpolation method."),
io.Combo.Input("method", display_name="Method", default="keep proportion", options=["stretch", "keep proportion", "fill / crop", "pad"], tooltip="The resizing method."),
io.Combo.Input("condition", display_name="Condition", default="always", options = ["always", "downscale if bigger", "upscale if smaller", "if bigger area", "if smaller area"], tooltip="The condition for conditioned resizing."),
io.Int.Input("multiple_of", display_name="Multiple Of", default=0, min = 0, max = 1024, step = 1, tooltip="Ensure dimensions are multiples of this value."),
io.Image.Input("image", display_name="image", tooltip="The image to resize."),
io.Int.Input("width", display_name="width", default=1024, min = 0, max = MAX_RESOLUTION, step = 1, tooltip="The target width."),
io.Int.Input("height", display_name="height", default=1024, min = 0, max = MAX_RESOLUTION, step = 1, tooltip="The target height."),
io.Combo.Input("interpolation", display_name="interpolation", default="bicubic", options=["nearest", "bilinear", "bicubic", "area", "nearest-exact", "lanczos", "bislerp"], tooltip="The interpolation method."),
io.Combo.Input("method", display_name="method", default="keep proportion", options=["stretch", "keep proportion", "fill / crop", "pad"], tooltip="The resizing method."),
io.Combo.Input("condition", display_name="condition", default="always", options = ["always", "downscale if bigger", "upscale if smaller", "if bigger area", "if smaller area"], tooltip="The condition for conditioned resizing."),
io.Int.Input("multiple_of", display_name="multiple_of", default=0, min = 0, max = 1024, step = 1, tooltip="Ensure dimensions are multiples of this value."),
],
outputs=[
io.Image.Output("out_image", tooltip="The resized image.", display_name="Image"),
io.Int.Output("out_width", tooltip="The new width.", display_name="Width"),
io.Int.Output("out_height", tooltip="The new height.", display_name="Height"),
io.Image.Output("out_image", tooltip="The resized image.", display_name="image"),
io.Int.Output("out_width", tooltip="The new width.", display_name="width"),
io.Int.Output("out_height", tooltip="The new height.", display_name="height"),
]
)
@@ -544,13 +544,13 @@ class Sage_ReferenceImage(io.ComfyNode):
description="Processes a reference image to produce conditioning and latent.",
category="Sage Utils/image",
inputs=[
io.Conditioning.Input("conditioning", tooltip="The input conditioning."),
io.Image.Input("image", tooltip="The reference image."),
io.Vae.Input("vae", tooltip="The VAE model for encoding the image."),
io.Conditioning.Input("conditioning", display_name="conditioning", tooltip="The input conditioning."),
io.Image.Input("image", display_name="image", tooltip="The reference image."),
io.Vae.Input("vae", display_name="vae", tooltip="The VAE model for encoding the image."),
],
outputs=[
io.Conditioning.Output("out_conditioning", tooltip="The output conditioning.", display_name="conditioning"),
io.Latent.Output("latent", tooltip="The encoded latent."),
io.Conditioning.Output("out_conditioning", display_name="conditioning", tooltip="The output conditioning."),
io.Latent.Output("latent", display_name="latent", tooltip="The encoded latent."),
]
)
+40 -40
View File
@@ -78,8 +78,8 @@ class Sage_ConstructLLMPrompt(io.ComfyNode):
description="Construct a prompt for an LLM based on the provided image and prompt.",
category="Sage Utils/LLM",
inputs=[
io.Combo.Input("prompt", options=prompt_list),
io.String.Input("extra_instructions", default="", multiline=True)
io.Combo.Input("prompt", display_name="prompt", options=prompt_list),
io.String.Input("extra_instructions", display_name="extra_instructions", default="", multiline=True)
] + extra_inputs,
outputs=[
io.String.Output("out_prompt", display_name="prompt")
@@ -151,10 +151,10 @@ class Sage_ConstructLLMPromptExtra(io.ComfyNode):
description="Construct extra instructions for an LLM based on the provided options.",
category="Sage Utils/LLM",
inputs=[
io.String.Input("extra_instructions", default="", multiline=True)
io.String.Input("extra_instructions", display_name="extra_instructions", default="", multiline=True)
] + extra_inputs,
outputs=[
io.String.Output("extra")
io.String.Output("extra", display_name="extra")
]
)
@@ -184,18 +184,18 @@ class Sage_OllamaAdvancedOptions(io.ComfyNode):
description="Get advanced options for LLMs.",
category="Sage Utils/LLM/Ollama",
inputs=[
io.Int.Input("num_keep", default=0, min=0, max=100, step=1),
io.Int.Input("num_predict", default=-1, min=-1, max=2048, step=1),
io.Int.Input("top_k", default=40, min=1, max=1000, step=1),
io.Float.Input("top_p", default=0.9, min=0.0, max=1.0, step=0.01),
io.Int.Input("repeat_last_n", default=64, min=0, max=256, step=1),
io.Float.Input("temperature", default=0.8, min=0.0, max=1.0, step=0.01),
io.Float.Input("repeat_penalty", default=1.1, min=1.0, max=2.0, step=0.01),
io.Float.Input("presence_penalty", default=0.0, min=-2.0, max=2.0, step=0.01),
io.Float.Input("frequency_penalty", default=0.0, min=-2.0, max=2.0, step=0.01)
io.Int.Input("num_keep", display_name="num_keep", default=0, min=0, max=100, step=1),
io.Int.Input("num_predict", display_name="num_predict", default=-1, min=-1, max=2048, step=1),
io.Int.Input("top_k", display_name="top_k", default=40, min=1, max=1000, step=1),
io.Float.Input("top_p", display_name="top_p", default=0.9, min=0.0, max=1.0, step=0.01),
io.Int.Input("repeat_last_n", display_name="repeat_last_n", default=64, min=0, max=256, step=1),
io.Float.Input("temperature", display_name="temperature", default=0.8, min=0.0, max=1.0, step=0.01),
io.Float.Input("repeat_penalty", display_name="repeat_penalty", default=1.1, min=1.0, max=2.0, step=0.01),
io.Float.Input("presence_penalty", display_name="presence_penalty", default=0.0, min=-2.0, max=2.0, step=0.01),
io.Float.Input("frequency_penalty", display_name="frequency_penalty", default=0.0, min=-2.0, max=2.0, step=0.01)
],
outputs=[
OllamaOptions.Output("options")
OllamaOptions.Output("options", display_name="options")
]
)
@@ -217,15 +217,15 @@ class Sage_OllamaLLMPromptText(io.ComfyNode):
description="Send a prompt to a language model and get a response. The model must be installed via Ollama.",
category="Sage Utils/LLM/Ollama",
inputs=[
io.String.Input("prompt", default=DEFAULT_TEXT_PROMPT, multiline=True),
io.Combo.Input("model", options=sorted(models)),
io.Int.Input("seed", default=0, min=0, max=2**32 - 1, step=1),
io.Float.Input("keep_alive", default=0.0, min=-1.0, max=60.0 * 60.0, step=1),
OllamaOptions.Input("options", optional=True),
io.String.Input("system_prompt", default="", multiline=True, optional=True)
io.String.Input("prompt", display_name="prompt", default=DEFAULT_TEXT_PROMPT, multiline=True),
io.Combo.Input("model", display_name="model", options=sorted(models)),
io.Int.Input("seed", display_name="seed", default=0, min=0, max=2**32 - 1, step=1),
io.Float.Input("keep_alive", display_name="keep_alive", default=0.0, min=-1.0, max=60.0 * 60.0, step=1),
OllamaOptions.Input("options", display_name="options", optional=True),
io.String.Input("system_prompt", display_name="system_prompt", default="", multiline=True, optional=True)
],
outputs=[
io.String.Output("response")
io.String.Output("response", display_name="response")
]
)
@@ -263,16 +263,16 @@ class Sage_OllamaLLMPromptVision(io.ComfyNode):
description="Send a prompt to a language model and get a response. Optionally, you can provide an image/s to the model if it supports multimodal input. The model must be installed via Ollama.",
category="Sage Utils/LLM/Ollama",
inputs=[
io.String.Input("prompt", default=DEFAULT_VISION_PROMPT, multiline=True),
io.Combo.Input("model", options=sorted(models)),
io.Image.Input("image"),
io.Int.Input("seed", default=0, min=0, max=2**32 - 1, step=1),
io.Float.Input("keep_alive", default=0.0, min=-1.0, max=60.0 * 60.0, step=0.1),
OllamaOptions.Input("options", optional=True),
io.String.Input("system_prompt", default="", multiline=True, optional=True)
io.String.Input("prompt", display_name="prompt", default=DEFAULT_VISION_PROMPT, multiline=True),
io.Combo.Input("model", display_name="model", options=sorted(models)),
io.Image.Input("image", display_name="image"),
io.Int.Input("seed", display_name="seed", default=0, min=0, max=2**32 - 1, step=1),
io.Float.Input("keep_alive", display_name="keep_alive", default=0.0, min=-1.0, max=60.0 * 60.0, step=0.1),
OllamaOptions.Input("options", display_name="options", optional=True),
io.String.Input("system_prompt", display_name="system_prompt", default="", multiline=True, optional=True)
],
outputs=[
io.String.Output("response")
io.String.Output("response", display_name="response")
]
)
@@ -370,13 +370,13 @@ class Sage_LMStudioLLMPromptText(io.ComfyNode):
description="Send a prompt to a language model and get a response. The model must be installed via LM Studio.",
category="Sage Utils/LLM/LM Studio",
inputs=[
io.String.Input("prompt", default=DEFAULT_TEXT_PROMPT, multiline=True),
io.Combo.Input("model", options=sorted(models)),
io.Int.Input("seed", default=0, min=0, max=2**32 - 1, step=1),
io.Int.Input("load_for_seconds", default=0, min=-1, max=60*60, step=1)
io.String.Input("prompt", display_name="prompt", default=DEFAULT_TEXT_PROMPT, multiline=True),
io.Combo.Input("model", display_name="model", options=sorted(models)),
io.Int.Input("seed", display_name="seed", default=0, min=0, max=2**32 - 1, step=1),
io.Int.Input("load_for_seconds", display_name="load_for_seconds", default=0, min=-1, max=60*60, step=1)
],
outputs=[
io.String.Output("response")
io.String.Output("response", display_name="response")
]
)
@@ -411,14 +411,14 @@ class Sage_LMStudioLLMPromptVision(io.ComfyNode):
description="Send a prompt to a language model and get a response. Optionally, you can provide an image/s to the model if it supports multimodal input. The model must be installed via LM Studio.",
category="Sage Utils/LLM/LM Studio",
inputs=[
io.String.Input("prompt", default=DEFAULT_VISION_PROMPT, multiline=True),
io.Combo.Input("model", options=sorted(models)),
io.Image.Input("image"),
io.Int.Input("seed", default=0, min=0, max=2**32 - 1, step=1),
io.Int.Input("load_for_seconds", default=0, min=-1, max=60*60, step=1)
io.String.Input("prompt", display_name="prompt", default=DEFAULT_VISION_PROMPT, multiline=True),
io.Combo.Input("model", display_name="model", options=sorted(models)),
io.Image.Input("image", display_name="image"),
io.Int.Input("seed", display_name="seed", default=0, min=0, max=2**32 - 1, step=1),
io.Int.Input("load_for_seconds", display_name="load_for_seconds", default=0, min=-1, max=60*60, step=1)
],
outputs=[
io.String.Output("response")
io.String.Output("response", display_name="response")
]
)
+24 -24
View File
@@ -46,13 +46,13 @@ class Sage_LoadModelFromInfo(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
ModelInfo.Input("model_info"),
ModelShiftInfo.Input("model_shifts", optional=True)
ModelInfo.Input("model_info", display_name="model_info"),
ModelShiftInfo.Input("model_shifts", display_name="model_shifts", optional=True)
],
outputs=[
io.Model.Output("model"),
io.Clip.Output("clip"),
io.Vae.Output("vae")
io.Model.Output("model", display_name="model"),
io.Clip.Output("clip", display_name="clip"),
io.Vae.Output("vae", display_name="vae")
]
)
@@ -84,10 +84,10 @@ class Sage_UNETLoaderFromInfo(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
UnetInfo.Input("unet_info")
UnetInfo.Input("unet_info", display_name="unet_info")
],
outputs=[
io.Model.Output("model")
io.Model.Output("model", display_name="model")
]
)
@@ -117,7 +117,7 @@ class Sage_CLIPLoaderFromInfo(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
ClipInfo.Input("clip_info")
ClipInfo.Input("clip_info", display_name="clip_info")
],
outputs=[
io.Clip.Output("clip")
@@ -148,7 +148,7 @@ class Sage_ChromaCLIPLoaderFromInfo(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
ClipInfo.Input("clip_info")
ClipInfo.Input("clip_info", display_name="clip_info")
],
outputs=[
io.Clip.Output("clip")
@@ -179,10 +179,10 @@ class Sage_VAELoaderFromInfo(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
VaeInfo.Input("vae_info")
VaeInfo.Input("vae_info", display_name="vae_info")
],
outputs=[
io.Vae.Output("vae")
io.Vae.Output("vae", display_name="vae")
]
)
@@ -210,10 +210,10 @@ class Sage_LoraStackLoader(io.ComfyNode):
category="Sage Utils/lora",
enable_expand=True,
inputs=[
io.Model.Input("model"),
io.Clip.Input("clip"),
LoraStack.Input("lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", optional=True)
io.Model.Input("model", display_name="model"),
io.Clip.Input("clip", display_name="clip"),
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", display_name="model_shifts", optional=True)
],
outputs=[
io.Model.Output("out_model", display_name="model"),
@@ -255,14 +255,14 @@ class Sage_ModelLoraStackLoader(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
ModelInfo.Input("model_info"),
LoraStack.Input("lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", optional=True)
ModelInfo.Input("model_info", display_name="model_info"),
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", display_name="model_shifts", optional=True)
],
outputs=[
io.Model.Output("model"),
io.Clip.Output("clip"),
io.Vae.Output("vae"),
io.Model.Output("model", display_name="model"),
io.Clip.Output("clip", display_name="clip"),
io.Vae.Output("vae", display_name="vae"),
LoraStack.Output("out_lora_stack", display_name="lora_stack"),
io.String.Output("keywords", display_name="keywords")
]
@@ -299,9 +299,9 @@ class Sage_UNETLoRALoader(io.ComfyNode):
category="Sage Utils/model",
enable_expand=True,
inputs=[
io.Model.Input("model"),
LoraStack.Input("lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", optional=True)
io.Model.Input("model", display_name="model"),
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True),
ModelShiftInfo.Input("model_shifts", display_name="model_shifts", optional=True)
],
outputs=[
io.Model.Output("out_model", display_name="model"),
+9 -9
View File
@@ -47,19 +47,19 @@ class Sage_ConstructMetadataFlexible(io.ComfyNode):
description="PLACEHOLDER: Flexible metadata constructor supporting multiple styles: A1111 Full (with LoRA hashes), A1111 Lite (simplified, only includes models on Civitai), and Simple (No models or LoRAs).",
category="Sage Utils/metadata",
inputs=[
ModelInfo.Input("model_info"),
io.String.Input("positive_string", default=""),
io.String.Input("negative_string", default=""),
SamplerInfo.Input("sampler_info"),
io.Int.Input("width", default=1024),
io.Int.Input("height", default=1024),
io.Combo.Input("metadata_style",
ModelInfo.Input("model_info", display_name="model_info"),
io.String.Input("positive_string", display_name="positive_string", default=""),
io.String.Input("negative_string", display_name="negative_string", default=""),
SamplerInfo.Input("sampler_info", display_name="sampler_info"),
io.Int.Input("width", display_name="width", default=1024),
io.Int.Input("height", display_name="height", default=1024),
io.Combo.Input("metadata_style", display_name="metadata_style",
options=["A1111 Full", "A1111 Lite", "Simple"],
default="A1111 Full"),
LoraStack.Input("lora_stack", optional=True)
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True)
],
outputs=[
io.String.Output("param_metadata")
io.String.Output("param_metadata", display_name="param_metadata")
]
)
return schema
+45 -45
View File
@@ -30,10 +30,10 @@ class Sage_SamplerSelector(io.ComfyNode):
description="Selects a sampler for use in the pipeline.",
category="Sage Utils/sampler",
inputs=[
io.Combo.Input("sampler_name", options=list(SAMPLERS), default="dpmpp_2m")
io.Combo.Input("sampler_name", display_name="sampler_name", options=list(SAMPLERS), default="dpmpp_2m")
],
outputs=[
io.String.Output("sampler")
io.String.Output("sampler", display_name="sampler")
]
)
@@ -52,12 +52,12 @@ class Sage_SchedulerSelector(io.ComfyNode):
description="Selects a scheduler for use in the pipeline, and passes the steps to be used in the KSampler.",
category="Sage Utils/sampler",
inputs=[
io.Int.Input("steps", default=20, min=1, max=10000),
io.Combo.Input("scheduler_name", options=list(SCHEDULERS), default="beta")
io.Int.Input("steps", display_name="steps", default=20, min=1, max=10000),
io.Combo.Input("scheduler_name", display_name="scheduler_name", options=list(SCHEDULERS), default="beta")
],
outputs=[
io.Int.Output("out_steps", display_name="steps"),
io.String.Output("scheduler")
io.String.Output("scheduler", display_name="scheduler")
]
)
@@ -77,14 +77,14 @@ class Sage_SamplerInfo(io.ComfyNode):
description="Grabs most of the sampler info. Should be routed both to the Construct Metadata node and the KSampler w/ Sampler Info node.",
category="Sage Utils/sampler",
inputs=[
io.Int.Input("seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", default=20, min=1, max=10000),
io.Float.Input("cfg", default=5.5, min=0.0, max=100.0, step=0.1, round=0.01),
io.Combo.Input("sampler_name", options=list(SAMPLERS), default="dpmpp_2m"),
io.Combo.Input("scheduler", options=list(SCHEDULERS), default="beta")
io.Int.Input("seed", display_name="seed", default=0, min=0, max=0xffffffffffffffff),
io.Int.Input("steps", display_name="steps", default=20, min=1, max=10000),
io.Float.Input("cfg", display_name="cfg", default=5.5, min=0.0, max=100.0, step=0.1, round=0.01),
io.Combo.Input("sampler_name", display_name="sampler_name", options=list(SAMPLERS), default="dpmpp_2m"),
io.Combo.Input("scheduler", display_name="scheduler", options=list(SCHEDULERS), default="beta")
],
outputs=[
SamplerInfo.Output("sampler_info")
SamplerInfo.Output("sampler_info", display_name="sampler_info")
]
)
@@ -115,13 +115,13 @@ class Sage_AdvSamplerInfo(io.ComfyNode):
description="Adds more optional values to the KSampler.",
category="Sage Utils/sampler",
inputs=[
io.Boolean.Input("add_noise", default=True),
io.Int.Input("start_at_step", default=0, min=0, max=10000),
io.Int.Input("end_at_step", default=10000, min=0, max=10000),
io.Boolean.Input("return_with_leftover_noise", default=False)
io.Boolean.Input("add_noise", display_name="add_noise", default=True),
io.Int.Input("start_at_step", display_name="start_at_step", default=0, min=0, max=10000),
io.Int.Input("end_at_step", display_name="end_at_step", default=10000, min=0, max=10000),
io.Boolean.Input("return_with_leftover_noise", display_name="return_with_leftover_noise", default=False)
],
outputs=[
AdvSamplerInfo.Output("adv_sampler_info")
AdvSamplerInfo.Output("adv_sampler_info", display_name="adv_sampler_info")
]
)
@@ -150,16 +150,16 @@ class Sage_KSampler(io.ComfyNode):
description="Uses the provided model, positive and negative conditioning to denoise the latent image. Designed to work with the Sampler info node.",
category="Sage Utils/sampler",
inputs=[
io.Model.Input("model"),
SamplerInfo.Input("sampler_info"),
io.Conditioning.Input("positive"),
io.Conditioning.Input("negative"),
io.Latent.Input("latent_image"),
io.Float.Input("denoise", default=1.0, min=0.0, max=1.0, step=0.01),
AdvSamplerInfo.Input("advanced_info", optional=True)
io.Model.Input("model", display_name="model"),
SamplerInfo.Input("sampler_info", display_name="sampler_info"),
io.Conditioning.Input("positive", display_name="positive"),
io.Conditioning.Input("negative", display_name="negative"),
io.Latent.Input("latent_image", display_name="latent_image"),
io.Float.Input("denoise", display_name="denoise", default=1.0, min=0.0, max=1.0, step=0.01),
AdvSamplerInfo.Input("advanced_info", display_name="advanced_info", optional=True)
],
outputs=[
io.Latent.Output("latent")
io.Latent.Output("latent", display_name="latent")
]
)
@@ -216,19 +216,19 @@ class Sage_KSamplerTiledDecoder(io.ComfyNode):
description="Uses the provided model, positive and negative conditioning to denoise the latent image, and generate an image with the provided vae. Designed to work with the Sampler info node. Will tile if tiling info is provided.",
category="Sage Utils/sampler",
inputs=[
io.Model.Input("model"),
SamplerInfo.Input("sampler_info"),
io.Conditioning.Input("positive"),
io.Conditioning.Input("negative"),
io.Latent.Input("latent_image"),
io.Vae.Input("vae"),
io.Float.Input("denoise", default=1.0, min=0.0, max=1.0, step=0.01),
TilingInfo.Input("tiling_info", optional=True),
AdvSamplerInfo.Input("advanced_info", optional=True)
io.Model.Input("model", display_name="model"),
SamplerInfo.Input("sampler_info", display_name="sampler_info"),
io.Conditioning.Input("positive", display_name="positive"),
io.Conditioning.Input("negative", display_name="negative"),
io.Latent.Input("latent_image", display_name="latent_image"),
io.Vae.Input("vae", display_name="vae"),
io.Float.Input("denoise", display_name="denoise", default=1.0, min=0.0, max=1.0, step=0.01),
TilingInfo.Input("tiling_info", display_name="tiling_info", optional=True),
AdvSamplerInfo.Input("advanced_info", display_name="advanced_info", optional=True)
],
outputs=[
io.Latent.Output("latent"),
io.Image.Output("image")
io.Latent.Output("latent", display_name="latent"),
io.Image.Output("image", display_name="image")
]
)
@@ -302,18 +302,18 @@ class Sage_KSamplerAudioDecoder(io.ComfyNode):
description="Uses the provided model, positive and negative conditioning to denoise the latent audio, and generate audio with the provided vae. Designed to work with the Sampler info node.",
category="Sage Utils/sampler",
inputs=[
io.Model.Input("model"),
SamplerInfo.Input("sampler_info"),
io.Conditioning.Input("positive"),
io.Conditioning.Input("negative"),
io.Latent.Input("latent_audio"),
io.Vae.Input("vae"),
io.Float.Input("denoise", default=1.0, min=0.0, max=1.0, step=0.01),
AdvSamplerInfo.Input("advanced_info", optional=True)
io.Model.Input("model", display_name="model"),
SamplerInfo.Input("sampler_info", display_name="sampler_info"),
io.Conditioning.Input("positive", display_name="positive"),
io.Conditioning.Input("negative", display_name="negative"),
io.Latent.Input("latent_audio", display_name="latent_audio"),
io.Vae.Input("vae", display_name="vae"),
io.Float.Input("denoise", display_name="denoise", default=1.0, min=0.0, max=1.0, step=0.01),
AdvSamplerInfo.Input("advanced_info", display_name="advanced_info", optional=True)
],
outputs=[
io.Latent.Output("latent"),
io.Audio.Output("audio")
io.Latent.Output("latent", display_name="latent"),
io.Audio.Output("audio", display_name="audio")
]
)
+113 -113
View File
@@ -58,10 +58,10 @@ class Sage_CheckpointSelector(io.ComfyNode):
description="Selects a checkpoint from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("ckpt_name", options=get_model_list("checkpoints")),
io.Combo.Input("ckpt_name", display_name="ckpt_name", options=get_model_list("checkpoints")),
],
outputs=[
ModelInfo.Output()
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -80,11 +80,11 @@ class Sage_UNETSelector(io.ComfyNode):
description="Selects a UNET model from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("unet_name", display_name="unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", display_name="weight_dtype", options=mi.weight_dtype_options, default="default"),
],
outputs=[
UnetInfo.Output()
UnetInfo.Output("unet_info", display_name="unet_info")
]
)
@@ -104,10 +104,10 @@ class Sage_VAESelector(io.ComfyNode):
description="Selects a VAE model from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("vae_name", options=get_model_list("vaes")),
io.Combo.Input("vae_name", display_name="vae_name", options=get_model_list("vaes")),
],
outputs=[
VaeInfo.Output()
VaeInfo.Output("vae_info", display_name="vae_info")
]
)
@@ -126,11 +126,11 @@ class Sage_CLIPSelector(io.ComfyNode):
description="Selects a CLIP model from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("clip_name", options=get_model_list("clips")),
io.Combo.Input("clip_type", options=mi.single_clip_loader_options, default="chroma"),
io.Combo.Input("clip_name", display_name="clip_name", options=get_model_list("clips")),
io.Combo.Input("clip_type", display_name="clip_type", options=mi.single_clip_loader_options, default="chroma"),
],
outputs=[
ClipInfo.Output()
ClipInfo.Output("clip_info", display_name="clip_info")
]
)
@@ -150,12 +150,12 @@ class Sage_DualCLIPSelector(io.ComfyNode):
description="Selects two CLIP models from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_type", options=mi.dual_clip_loader_options, default="sdxl"),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_type", display_name="clip_type", options=mi.dual_clip_loader_options, default="sdxl"),
],
outputs=[
ClipInfo.Output()
ClipInfo.Output("clip_info", display_name="clip_info")
]
)
@@ -176,12 +176,12 @@ class Sage_TripleCLIPSelector(io.ComfyNode):
description="Selects three CLIP models from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", options=get_model_list("clips")),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", display_name="clip_name_3", options=get_model_list("clips")),
],
outputs=[
ClipInfo.Output()
ClipInfo.Output("clip_info", display_name="clip_info")
]
)
@@ -202,13 +202,13 @@ class Sage_QuadCLIPSelector(io.ComfyNode):
description="Selects four CLIP models from a list.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", options=get_model_list("clips")),
io.Combo.Input("clip_name_4", options=get_model_list("clips")),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", display_name="clip_name_3", options=get_model_list("clips")),
io.Combo.Input("clip_name_4", display_name="clip_name_4", options=get_model_list("clips")),
],
outputs=[
ClipInfo.Output()
ClipInfo.Output("clip_info", display_name="clip_info")
]
)
@@ -230,14 +230,14 @@ class Sage_MultiSelectorSingleClip(io.ComfyNode):
description="Selects checkpoint, UNET, VAE, and single CLIP models from lists.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name", options=get_model_list("clips")),
io.Combo.Input("clip_type", options=mi.single_clip_loader_options, default="chroma"),
io.Combo.Input("vae_name", options=get_model_list("vaes")),
io.Combo.Input("unet_name", display_name="unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", display_name="weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name", display_name="clip_name", options=get_model_list("clips")),
io.Combo.Input("clip_type", display_name="clip_type", options=mi.single_clip_loader_options, default="chroma"),
io.Combo.Input("vae_name", display_name="vae_name", options=get_model_list("vaes")),
],
outputs=[
ModelInfo.Output()
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -265,15 +265,15 @@ class Sage_MultiSelectorDoubleClip(io.ComfyNode):
description="Selects checkpoint, UNET, VAE, and two CLIP models from lists.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_type", options=mi.dual_clip_loader_options, default="sdxl"),
io.Combo.Input("vae_name", options=get_model_list("vaes")),
io.Combo.Input("unet_name", display_name="unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", display_name="weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_type", display_name="clip_type", options=mi.dual_clip_loader_options, default="sdxl"),
io.Combo.Input("vae_name", display_name="vae_name", options=get_model_list("vaes")),
],
outputs=[
ModelInfo.Output()
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -302,15 +302,15 @@ class Sage_MultiSelectorTripleClip(io.ComfyNode):
description="Selects checkpoint, UNET, VAE, and three CLIP models from lists.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", options=get_model_list("clips")),
io.Combo.Input("vae_name", options=get_model_list("vaes")),
io.Combo.Input("unet_name", display_name="unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", display_name="weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", display_name="clip_name_3", options=get_model_list("clips")),
io.Combo.Input("vae_name", display_name="vae_name", options=get_model_list("vaes")),
],
outputs=[
ModelInfo.Output()
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -339,16 +339,16 @@ class Sage_MultiSelectorQuadClip(io.ComfyNode):
description="Selects checkpoint, UNET, VAE, and four CLIP models from lists.",
category="Sage Utils/selector",
inputs=[
io.Combo.Input("unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", options=get_model_list("clips")),
io.Combo.Input("clip_name_4", options=get_model_list("clips")),
io.Combo.Input("vae_name", options=get_model_list("vaes")),
io.Combo.Input("unet_name", display_name="unet_name", options=get_model_list("unets")),
io.Combo.Input("weight_dtype", display_name="weight_dtype", options=mi.weight_dtype_options, default="default"),
io.Combo.Input("clip_name_1", display_name="clip_name_1", options=get_model_list("clips")),
io.Combo.Input("clip_name_2", display_name="clip_name_2", options=get_model_list("clips")),
io.Combo.Input("clip_name_3", display_name="clip_name_3", options=get_model_list("clips")),
io.Combo.Input("clip_name_4", display_name="clip_name_4", options=get_model_list("clips")),
io.Combo.Input("vae_name", display_name="vae_name", options=get_model_list("vaes")),
],
outputs=[
ModelInfo.Output()
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -379,16 +379,16 @@ class Sage_ModelShifts(io.ComfyNode):
description="Get the model shifts and free_u2 settings to apply to the model. This is used by the model loader node.",
category="Sage Utils/model",
inputs=[
io.Combo.Input("shift_type", options=["None", "x1", "x1000"], default="None"),
io.Float.Input("shift", default=3.0, min=0.0, max=100.0, step=0.01),
io.Boolean.Input("freeu_v2", default=False),
io.Float.Input("b1", default=1.3, min=0.0, max=10.0, step=0.01),
io.Float.Input("b2", default=1.4, min=0.0, max=10.0, step=0.01),
io.Float.Input("s1", default=0.9, min=0.0, max=10.0, step=0.01),
io.Float.Input("s2", default=0.2, min=0.0, max=10.0, step=0.01)
io.Combo.Input("shift_type", display_name="shift_type", options=["None", "x1", "x1000"], default="None"),
io.Float.Input("shift", display_name="shift", default=3.0, min=0.0, max=100.0, step=0.01),
io.Boolean.Input("freeu_v2", display_name="freeu_v2", default=False),
io.Float.Input("b1", display_name="b1", default=1.3, min=0.0, max=10.0, step=0.01),
io.Float.Input("b2", display_name="b2", default=1.4, min=0.0, max=10.0, step=0.01),
io.Float.Input("s1", display_name="s1", default=0.9, min=0.0, max=10.0, step=0.01),
io.Float.Input("s2", display_name="s2", default=0.2, min=0.0, max=10.0, step=0.01)
],
outputs=[
ModelShiftInfo.Output("model_shifts")
ModelShiftInfo.Output("model_shifts", display_name="model_shifts")
]
)
@@ -414,11 +414,11 @@ class Sage_ModelShiftOnly(io.ComfyNode):
description="Get the model shifts to apply to the model. This is used by the model loader node.",
category="Sage Utils/model",
inputs=[
io.Combo.Input("shift_type", options=["None", "x1", "x1000"], default="None"),
io.Float.Input("shift", default=3.0, min=0.0, max=100.0, step=0.01)
io.Combo.Input("shift_type", display_name="shift_type", options=["None", "x1", "x1000"], default="None"),
io.Float.Input("shift", display_name="shift", default=3.0, min=0.0, max=100.0, step=0.01)
],
outputs=[
ModelShiftInfo.Output("model_shifts")
ModelShiftInfo.Output("model_shifts", display_name="model_shifts")
]
)
@@ -444,14 +444,14 @@ class Sage_FreeU2(io.ComfyNode):
description="Get the free_u2 settings to apply to the model.",
category="Sage Utils/model",
inputs=[
io.Boolean.Input("freeu_v2", default=False),
io.Float.Input("b1", default=1.3, min=0.0, max=10.0, step=0.01),
io.Float.Input("b2", default=1.4, min=0.0, max=10.0, step=0.01),
io.Float.Input("s1", default=0.9, min=0.0, max=10.0, step=0.01),
io.Float.Input("s2", default=0.2, min=0.0, max=10.0, step=0.01)
io.Boolean.Input("freeu_v2", display_name="freeu_v2", default=False),
io.Float.Input("b1", display_name="b1", default=1.3, min=0.0, max=10.0, step=0.01),
io.Float.Input("b2", display_name="b2", default=1.4, min=0.0, max=10.0, step=0.01),
io.Float.Input("s1", display_name="s1", default=0.9, min=0.0, max=10.0, step=0.01),
io.Float.Input("s2", display_name="s2", default=0.2, min=0.0, max=10.0, step=0.01)
],
outputs=[
ModelShiftInfo.Output("model_shifts")
ModelShiftInfo.Output("model_shifts", display_name="model_shifts")
]
)
@@ -477,13 +477,13 @@ class Sage_TilingInfo(io.ComfyNode):
description="Adds tiling information to the KSampler.",
category="Sage Utils/sampler",
inputs=[
io.Int.Input("tile_size", default=512, min=64, max=4096, step=32),
io.Int.Input("overlap", default=64, min=0, max=4096, step=32),
io.Int.Input("temporal_size", default=64, min=8, max=4096, step=4, tooltip="Only used for video VAEs: Amount of frames to decode at a time."),
io.Int.Input("temporal_overlap", default=8, min=4, max=4096, step=4, tooltip="Only used for video VAEs: Amount of frames to overlap.")
io.Int.Input("tile_size", display_name="tile_size", default=512, min=64, max=4096, step=32),
io.Int.Input("overlap", display_name="overlap", default=64, min=0, max=4096, step=32),
io.Int.Input("temporal_size", display_name="temporal_size", default=64, min=8, max=4096, step=4, tooltip="Only used for video VAEs: Amount of frames to decode at a time."),
io.Int.Input("temporal_overlap", display_name="temporal_overlap", default=8, min=4, max=4096, step=4, tooltip="Only used for video VAEs: Amount of frames to overlap.")
],
outputs=[
TilingInfo.Output("tiling_info")
TilingInfo.Output("tiling_info", display_name="tiling_info")
]
)
@@ -512,12 +512,12 @@ class Sage_UnetClipVaeToModelInfo(io.ComfyNode):
description="Returns a list with the unets, clips, and vae in it to be loaded.",
category="Sage Utils/model",
inputs=[
UnetInfo.Input("unet_info"),
ClipInfo.Input("clip_info"),
VaeInfo.Input("vae_info")
UnetInfo.Input("unet_info", display_name="unet_info"),
ClipInfo.Input("clip_info", display_name="clip_info"),
VaeInfo.Input("vae_info", display_name="vae_info")
],
outputs=[
ModelInfo.Output("model_info")
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -538,11 +538,11 @@ class Sage_LoraStack(io.ComfyNode):
description="Choose a lora with weights, and add it to a lora_stack. Compatible with other node packs that have lora_stacks.",
category="Sage Utils/lora",
inputs=[
io.Boolean.Input("enabled", default=False),
io.Combo.Input("lora_name", options=get_model_list("loras")),
io.Float.Input("model_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
io.Float.Input("clip_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
LoraStack.Input("lora_stack", optional=True)
io.Boolean.Input("enabled", display_name="enabled", default=False),
io.Combo.Input("lora_name", display_name="lora_name", options=get_model_list("loras")),
io.Float.Input("model_weight", display_name="model_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
io.Float.Input("clip_weight", display_name="clip_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True)
],
outputs=[
LoraStack.Output("out_lora_stack", display_name="lora_stack")
@@ -575,10 +575,10 @@ class Sage_QuickLoraStack(io.ComfyNode):
description="A simplified version of the lora stack node, without the clip_weight.",
category="Sage Utils/lora",
inputs=[
io.Boolean.Input("enabled", default=True),
io.Combo.Input("lora_name", options=get_model_list("loras")),
io.Float.Input("model_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
LoraStack.Input("lora_stack", optional=True)
io.Boolean.Input("enabled", display_name="enabled", default=True),
io.Combo.Input("lora_name", display_name="lora_name", options=get_model_list("loras")),
io.Float.Input("model_weight", display_name="model_weight", default=1.0, min=-100.0, max=100.0, step=0.01),
LoraStack.Input("lora_stack", display_name="lora_stack", optional=True)
],
outputs=[
LoraStack.Output("out_lora_stack", display_name="lora_stack")
@@ -622,11 +622,11 @@ class Sage_TripleLoraStack(io.ComfyNode):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", display_name=f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
@@ -670,11 +670,11 @@ class Sage_SixLoraStack(Sage_TripleLoraStack):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", display_name=f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
@@ -701,11 +701,11 @@ class Sage_NineLoraStack(Sage_TripleLoraStack):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(io.Float.Input(f"clip_{i}_weight", display_name=f"clip_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
@@ -733,10 +733,10 @@ class Sage_TripleQuickLoraStack(io.ComfyNode):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
@@ -778,10 +778,10 @@ class Sage_QuickSixLoraStack(Sage_TripleQuickLoraStack):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
@@ -808,10 +808,10 @@ class Sage_QuickNineLoraStack(Sage_TripleQuickLoraStack):
]
)
for i in range(1, cls.NUM_OF_ENTRIES + 1):
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", optional=True))
schema.inputs.append(io.Boolean.Input(f"enabled_{i}", display_name=f"enabled_{i}", default=True))
schema.inputs.append(io.Combo.Input(f"lora_{i}_name", display_name=f"lora_{i}_name", options=lora_list))
schema.inputs.append(io.Float.Input(f"model_{i}_weight", display_name=f"model_{i}_weight", default=1.0, min=-100.0, max=100.0, step=0.01))
schema.inputs.append(LoraStack.Input("lora_stack", display_name="lora_stack", optional=True))
return schema
+79 -79
View File
@@ -40,10 +40,10 @@ class Sage_IntToStr(io.ComfyNode):
description="Converts a number to a string.",
category="Sage Utils/text",
inputs=[
io.Int.Input("num", default=0)
io.Int.Input("num", display_name="num", default=0)
],
outputs=[
io.String.Output("str")
io.String.Output("str", display_name="str")
]
)
@@ -61,10 +61,10 @@ class Sage_FloatToStr(io.ComfyNode):
description="Converts a float to a string.",
category="Sage Utils/text",
inputs=[
io.Float.Input("num", default=0.0)
io.Float.Input("num", display_name="num", default=0.0)
],
outputs=[
io.String.Output("str")
io.String.Output("str", display_name="str")
]
)
@@ -83,10 +83,10 @@ class SageSetWildcardText(io.ComfyNode):
category="Sage Utils/text",
inputs=[
io.String.Input("str_input", display_name="str", force_input=False, dynamic_prompts=True, multiline=True),
io.Int.Input("seed", default=0, min=0, max=2**32-1, step=1),
io.Boolean.Input("clean", default=False),
io.String.Input("prefix", force_input=True, multiline=True, optional=True),
io.String.Input("suffix", force_input=True, multiline=True, optional=True)
io.Int.Input("seed", display_name="seed", default=0, min=0, max=2**32-1, step=1),
io.Boolean.Input("clean", display_name="clean", default=False),
io.String.Input("prefix", display_name="prefix", force_input=True, multiline=True, optional=True),
io.String.Input("suffix", display_name="suffix", force_input=True, multiline=True, optional=True)
],
outputs=[
io.String.Output("str_output", display_name="str")
@@ -134,10 +134,10 @@ class Sage_ViewAnything(io.ComfyNode):
category="Sage Utils/text",
is_output_node=True,
inputs=[
io.AnyType.Input("any")
io.AnyType.Input("any", display_name="any")
],
outputs=[
io.String.Output("str")
io.String.Output("str", display_name="str")
]
)
@@ -165,13 +165,13 @@ class Sage_TextSubstitution(io.ComfyNode):
description="Substitutes the placeholders in the text with the provided strings. The placeholders use the specified delimiter (default $) followed by str_1, str_2, etc. based on the number of connected inputs. The prefix and suffix are added to the final result.",
category="Sage Utils/text",
inputs=[
io.String.Input("text", default="", multiline=True),
io.String.Input("delimiter", default="$"),
io.String.Input("prefix", force_input=True, multiline=True, optional=True),
io.String.Input("suffix", force_input=True, multiline=True, optional=True)
io.String.Input("text", display_name="text", default="", multiline=True),
io.String.Input("delimiter", display_name="delimiter", default="$"),
io.String.Input("prefix", display_name="prefix", force_input=True, multiline=True, optional=True),
io.String.Input("suffix", display_name="suffix", force_input=True, multiline=True, optional=True)
],
outputs=[
io.String.Output("result")
io.String.Output("result", display_name="result")
]
)
@@ -245,10 +245,10 @@ class Sage_ViewNotes(io.ComfyNode):
category="Sage Utils/text",
is_output_node=True,
inputs=[
io.Combo.Input("filename", options=notes_files)
io.Combo.Input("filename", display_name="filename", options=notes_files)
],
outputs=[
io.String.Output("content")
io.String.Output("content", display_name="content")
]
)
@@ -280,12 +280,12 @@ class Sage_SetText(io.ComfyNode):
description="Sets some text.",
category="Sage Utils/text",
inputs = [
io.String.Input("str", force_input = False, dynamic_prompts = False, multiline = True),
io.String.Input("prefix", force_input = True, multiline = True, optional=True),
io.String.Input("suffix", force_input = True, multiline = True, optional=True)
io.String.Input("str", display_name="str", force_input = False, dynamic_prompts = False, multiline = True),
io.String.Input("prefix", display_name="prefix", force_input = True, multiline = True, optional=True),
io.String.Input("suffix", display_name="suffix", force_input = True, multiline = True, optional=True)
],
outputs = [
io.String.Output("str_out")
io.String.Output("str_out", display_name="str")
],
)
@classmethod
@@ -305,10 +305,10 @@ class Sage_SetTextWithInt(io.ComfyNode):
description="Sets some text and adds a number at the end.",
category="Sage Utils/text",
inputs = [
io.String.Input("str", force_input = False, dynamic_prompts = False, multiline = True),
io.String.Input("prefix", force_input = True, multiline = True, optional=True),
io.String.Input("suffix", force_input = True, multiline = True, optional=True),
io.Int.Input("number", force_input = False)
io.String.Input("str", display_name="str", force_input = False, dynamic_prompts = False, multiline = True),
io.String.Input("prefix", display_name="prefix", force_input = True, multiline = True, optional=True),
io.String.Input("suffix", display_name="suffix", force_input = True, multiline = True, optional=True),
io.Int.Input("number", display_name="number", force_input = False)
],
outputs = [
io.String.Output("str_out", display_name="str")
@@ -332,8 +332,8 @@ class Sage_TextSwitch(io.ComfyNode):
description="Passes the text if active is true, otherwise passes an empty string.",
category="Sage Utils/text",
inputs=[
io.String.Input("str", force_input=True, multiline=True),
io.Boolean.Input("active", default=True)
io.String.Input("str", display_name="str", force_input=True, multiline=True),
io.Boolean.Input("active", display_name="active", default=True)
],
outputs=[
io.String.Output("str_out", display_name="str")
@@ -355,7 +355,7 @@ class Sage_CleanText(io.ComfyNode):
description="Cleans up the string given.",
category="Sage Utils/text",
inputs=[
io.String.Input("str", force_input=True, multiline=True)
io.String.Input("str", display_name="str", force_input=True, multiline=True)
],
outputs=[
io.String.Output("cleaned_string", display_name="cleaned string")
@@ -376,11 +376,11 @@ class Sage_PonyPrefix(io.ComfyNode):
description="Generates a prefix for pony-related content.",
category="Sage Utils/text",
inputs=[
io.Boolean.Input("add_score", default=False),
io.Boolean.Input("add_score", display_name="add_score", default=False),
io.Int.Input("score_start", display_name="Score Start", default=9),
io.Int.Input("score_end", display_name="Score End", default=4),
io.Combo.Input("rating", default="none", options=["none", "safe", "questionable", "explicit"]),
io.Combo.Input("source", default="none", options=["none", "pony", "furry", "anime", "cartoon", "3d", "western", "comic", "monster"])
io.Combo.Input("rating", display_name="rating", default="none", options=["none", "safe", "questionable", "explicit"]),
io.Combo.Input("source", display_name="source", default="none", options=["none", "pony", "furry", "anime", "cartoon", "3d", "western", "comic", "monster"])
],
outputs=[
io.String.Output("str_out", display_name="string")
@@ -423,10 +423,10 @@ class Sage_PonyStyle(io.ComfyNode):
category="Sage Utils/text",
inputs=[
io.MultiCombo.Input("style", pony_strings, chip=True, placeholder="Pony Style")
io.MultiCombo.Input("style", display_name="style", options=pony_strings, chip=True, placeholder="Pony Style")
],
outputs=[
io.String.Output("styled_text")
io.String.Output("styled_text", display_name="styled_text")
]
)
@@ -444,13 +444,13 @@ class Sage_SaveText(io.ComfyNode):
description="Saves the text to a file.",
category="Sage Utils/text",
inputs=[
io.String.Input("filename_prefix", default="ComfyUI_Text", tooltip="The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% to include values from nodes."),
io.String.Input("file_extension", default="txt", tooltip="The file extension to use for the saved file."),
io.String.Input("text", force_input=True, multiline=True),
io.Int.Input("batch_size", default=1, tooltip="The number of files to save.")
io.String.Input("filename_prefix", display_name="filename_prefix", default="ComfyUI_Text", tooltip="The prefix for the file to save. This may include formatting information such as %date:yyyy-MM-dd% to include values from nodes."),
io.String.Input("file_extension", display_name="file_extension", default="txt", tooltip="The file extension to use for the saved file."),
io.String.Input("text", display_name="text", force_input=True, multiline=True),
io.Int.Input("batch_size", display_name="batch_size", default=1, tooltip="The number of files to save.")
],
outputs=[
io.String.Output("filepath")
io.String.Output("filepath", display_name="filepath")
]
)
@@ -487,13 +487,13 @@ class Sage_JoinText(io.ComfyNode):
description="Joins two strings with a separator.",
category="Sage Utils/text",
inputs=[
io.String.Input("separator", default=", "),
io.Boolean.Input("add_separator_to_end", default=False, tooltip="Add separator to the end of the joined string."),
io.String.Input("str1", multiline=True),
io.String.Input("str2", multiline=True)
io.String.Input("separator", display_name="separator", default=", "),
io.Boolean.Input("add_separator_to_end", display_name="add_separator_to_end", default=False, tooltip="Add separator to the end of the joined string."),
io.String.Input("str1", display_name="str1", multiline=True),
io.String.Input("str2", display_name="str2", multiline=True)
],
outputs=[
io.String.Output("str")
io.String.Output("str", display_name="str")
]
)
@@ -519,14 +519,14 @@ class Sage_TripleJoinText(io.ComfyNode):
description="Joins three strings with a separator.",
category="Sage Utils/text",
inputs=[
io.String.Input("separator", default=", "),
io.Boolean.Input("add_separator_to_end", default=False, tooltip="Add separator to the end of the joined string."),
io.String.Input("str1", multiline=True),
io.String.Input("str2", multiline=True),
io.String.Input("str3", multiline=True)
io.String.Input("separator", display_name="separator", default=", "),
io.Boolean.Input("add_separator_to_end", display_name="add_separator_to_end", default=False, tooltip="Add separator to the end of the joined string."),
io.String.Input("str1", display_name="str1", multiline=True),
io.String.Input("str2", display_name="str2", multiline=True),
io.String.Input("str3", display_name="str3", multiline=True)
],
outputs=[
io.String.Output("str")
io.String.Output("str", display_name="str")
]
)
@@ -553,11 +553,11 @@ class Sage_TextRandomLine(io.ComfyNode):
description="Returns a random line from the given text.",
category="Sage Utils/text",
inputs=[
io.String.Input("text", multiline=True),
io.Int.Input("seed", default=0)
io.String.Input("text", display_name="text", multiline=True),
io.Int.Input("seed", display_name="seed", default=0)
],
outputs=[
io.String.Output("random_line")
io.String.Output("random_line", display_name="random_line")
]
)
@@ -585,11 +585,11 @@ class Sage_TextSelectLine(io.ComfyNode):
description="Selects a specific line from the given text based on the line number. Line numbers start from 0.",
category="Sage Utils/text",
inputs=[
io.String.Input("text", multiline=True),
io.Int.Input("line_number", default=0, min=0)
io.String.Input("text", display_name="text", multiline=True),
io.Int.Input("line_number", display_name="line_number", default=0, min=0)
],
outputs=[
io.String.Output("selected_line")
io.String.Output("selected_line", display_name="selected_line")
]
)
@@ -617,12 +617,12 @@ class Sage_TextWeight(io.ComfyNode):
description="Applies a weight to a text string.",
category="Sage Utils/text",
inputs=[
io.String.Input("text", multiline=True),
io.Float.Input("weight", default=1.0, min=-10.0, max=10.0, step=0.05),
io.String.Input("separator", default=", ")
io.String.Input("text", display_name="text", multiline=True),
io.Float.Input("weight", display_name="weight", default=1.0, min=-10.0, max=10.0, step=0.05),
io.String.Input("separator", display_name="separator", default=", ")
],
outputs=[
io.String.Output("weighted_text")
io.String.Output("weighted_text", display_name="weighted_text")
]
)
@@ -648,11 +648,11 @@ class Sage_PromptText(io.ComfyNode):
description="Combines a system prompt and a user prompt into a single prompt, with <Prompt Start> between them.",
category="Sage Utils/text/specialized",
inputs=[
io.String.Input("system", force_input=True, multiline=True),
io.String.Input("prompt", force_input=True, multiline=True)
io.String.Input("system", display_name="system", force_input=True, multiline=True),
io.String.Input("prompt", display_name="prompt", force_input=True, multiline=True)
],
outputs=[
io.String.Output("combined_prompt")
io.String.Output("combined_prompt", display_name="combined_prompt")
]
)
@@ -673,10 +673,10 @@ class Sage_SystemPrompt(io.ComfyNode):
description="Picks the system prompt based on the selected option.",
category="Sage Utils/text/specialized",
inputs=[
io.Combo.Input("system", options=list(LUMINA2_SYSTEM_PROMPTS_V2.keys()), default="superior", tooltip=LUMINA2_SYSTEM_PROMPT_TIP)
io.Combo.Input("system", display_name="system", options=list(LUMINA2_SYSTEM_PROMPTS_V2.keys()), default="superior", tooltip=LUMINA2_SYSTEM_PROMPT_TIP)
],
outputs=[
io.String.Output("system_prompt")
io.String.Output("system_prompt", display_name="system_prompt")
]
)
@@ -696,10 +696,10 @@ class Sage_PonyStyleCluster(io.ComfyNode):
description="Creates a style cluster string for pony prompts based on the given style cluster number.",
category="Sage Utils/text/pony",
inputs=[
io.Int.Input("style_cluster", default=1, min=1, max=2048, step=1)
io.Int.Input("style_cluster", display_name="style_cluster", default=1, min=1, max=2048, step=1)
],
outputs=[
io.String.Output("style_cluster_text")
io.String.Output("style_cluster_text", display_name="style_cluster_text")
]
)
@@ -718,10 +718,10 @@ class Sage_PonySource(io.ComfyNode):
description="Creates a source string for pony prompts based on the given source.",
category="Sage Utils/text/pony",
inputs=[
io.Combo.Input("source", options=PONY_SOURCE, default="none")
io.Combo.Input("source", display_name="source", options=PONY_SOURCE, default="none")
],
outputs=[
io.String.Output("source_text")
io.String.Output("source_text", display_name="source_text")
]
)
@@ -743,10 +743,10 @@ class Sage_PonyRatingv7(io.ComfyNode):
description="Creates a rating string for pony prompts based on the given rating. (v7 style)",
category="Sage Utils/text/pony",
inputs=[
io.Combo.Input("rating", options=PONY_V7_RATING, default="none")
io.Combo.Input("rating", display_name="rating", options=PONY_V7_RATING, default="none")
],
outputs=[
io.String.Output("rating_text")
io.String.Output("rating_text", display_name="rating_text")
]
)
@@ -768,10 +768,10 @@ class Sage_PonyRatingv6(io.ComfyNode):
description="Creates a rating string for pony prompts based on the given rating. (v6 style)",
category="Sage Utils/text/pony",
inputs=[
io.Combo.Input("rating", options=PONY_V6_RATING, default="none")
io.Combo.Input("rating", display_name="rating", options=PONY_V6_RATING, default="none")
],
outputs=[
io.String.Output("rating_text")
io.String.Output("rating_text", display_name="rating_text")
]
)
@@ -793,12 +793,12 @@ class Sage_PonyScore(io.ComfyNode):
description="Creates a score string for pony prompts based on the given start and end scores.",
category="Sage Utils/text/pony",
inputs=[
io.Int.Input("score_start", default=9, min=0, max=9, step=1),
io.Int.Input("score_end", default=4, min=0, max=9, step=1),
io.Boolean.Input("up_to", default=False, tooltip="If true, adds '_up' to the score string, except for score_9. (v6 uses up, v7 doesn't)")
io.Int.Input("score_start", display_name="score_start", default=9, min=0, max=9, step=1),
io.Int.Input("score_end", display_name="score_end", default=4, min=0, max=9, step=1),
io.Boolean.Input("up_to", display_name="up_to", default=False, tooltip="If true, adds '_up' to the score string, except for score_9. (v6 uses up, v7 doesn't)")
],
outputs=[
io.String.Output("score_text")
io.String.Output("score_text", display_name="score_text")
]
)
@@ -828,11 +828,11 @@ class Sage_HiDreamE1_Instruction(io.ComfyNode):
description="Generates a prompt for HiDream E1 based on the given instruction and description.",
category="Sage Utils/text",
inputs=[
io.String.Input("instruction", multiline=True),
io.String.Input("description", multiline=True)
io.String.Input("instruction", display_name="instruction", multiline=True),
io.String.Input("description", display_name="description", multiline=True)
],
outputs=[
io.String.Output("prompt")
io.String.Output("prompt", display_name="prompt")
]
)
+10 -10
View File
@@ -40,15 +40,15 @@ class Sage_Load_Dataset_From_Folder(io.ComfyNode):
description="Loads images and paired captions from a folder; applies optional prefix/suffix.",
category="Sage Utils/train",
inputs=[
io.String.Input("dataset_path"),
io.String.Input("prefix", default="", optional=True),
io.String.Input("suffix", default="", optional=True),
io.String.Input("separator", default=" ", optional=True)
io.String.Input("dataset_path", display_name="dataset_path"),
io.String.Input("prefix", display_name="prefix", default="", optional=True),
io.String.Input("suffix", display_name="suffix", default="", optional=True),
io.String.Input("separator", display_name="separator", default=" ", optional=True)
],
outputs=[
io.Image.Output("images"),
io.String.Output("filenames"),
io.String.Output("captions")
io.Image.Output("images", display_name="images"),
io.String.Output("filenames", display_name="filenames"),
io.String.Output("captions", display_name="captions")
]
)
@@ -143,11 +143,11 @@ class Sage_TrainingCaptionsToConditioning(io.ComfyNode):
description="Encodes captions with a CLIP model to produce conditioning vectors for training workflows.",
category="Sage Utils/train",
inputs=[
io.Clip.Input("clip"),
io.String.Input("captions")
io.Clip.Input("clip", display_name="clip"),
io.String.Input("captions", display_name="captions")
],
outputs=[
io.Conditioning.Output("conditioning")
io.Conditioning.Output("conditioning", display_name="conditioning")
]
)
+46 -46
View File
@@ -42,8 +42,8 @@ class Sage_FreeMemory(io.ComfyNode):
description="Unload models, run garbage collection, and empty caches when enabled.",
category="Sage Utils/util",
inputs=[
io.Boolean.Input("free_memory", default=False),
io.AnyType.Input("value")
io.Boolean.Input("free_memory", display_name="free_memory", default=False),
io.AnyType.Input("value", display_name="value")
],
outputs=[
io.AnyType.Output("out_value", display_name="value")
@@ -70,8 +70,8 @@ class Sage_Halt(io.ComfyNode):
description="Return the value when continuing; otherwise halt execution.",
category="Sage Utils/util",
inputs=[
io.Boolean.Input("continue_executing", default=True),
io.AnyType.Input("value", lazy=True, optional=True)
io.Boolean.Input("continue_executing", display_name="continue_executing", default=True),
io.AnyType.Input("value", display_name="value", lazy=True, optional=True)
],
outputs=[
io.AnyType.Output("out_value", display_name="value")
@@ -103,12 +103,12 @@ class Sage_LogicalSwitch(io.ComfyNode):
description="Select between two inputs based on the condition; only the needed branch is evaluated when lazy.",
category="Sage Utils/util",
inputs=[
io.Boolean.Input("condition", default=True),
io.AnyType.Input("true_value", lazy=True, optional=True),
io.AnyType.Input("false_value", lazy=True, optional=True)
io.Boolean.Input("condition", display_name="condition", default=True),
io.AnyType.Input("true_value", display_name="true_value", lazy=True, optional=True),
io.AnyType.Input("false_value", display_name="false_value", lazy=True, optional=True)
],
outputs=[
io.AnyType.Output("result")
io.AnyType.Output("result", display_name="result")
]
)
@@ -158,14 +158,14 @@ class Sage_ModelInfo(io.ComfyNode):
description="PLACEHOLDER: Pull the civitai model info, and return what the base model is, the name with version, the url, the url for the latest version, and a preview image.",
category="Sage Utils/model/info",
inputs=[
ModelInfo.Input("model_info")
ModelInfo.Input("model_info", display_name="model_info")
],
outputs=[
io.String.Output("base_model"),
io.String.Output("name"),
io.String.Output("url"),
io.String.Output("latest_url"),
io.Image.Output("image")
io.String.Output("base_model", display_name="base_model"),
io.String.Output("name", display_name="name"),
io.String.Output("url", display_name="url"),
io.String.Output("latest_url", display_name="latest_url"),
io.Image.Output("image", display_name="image")
]
)
@@ -216,10 +216,10 @@ class Sage_ModelInfoDisplay(io.ComfyNode):
category="Sage Utils/model/info",
is_output_node=True,
inputs=[
ModelInfo.Input("model_info")
ModelInfo.Input("model_info", display_name="model_info")
],
outputs=[
io.String.Output("markdown_display")
io.String.Output("markdown_display", display_name="markdown_display")
]
)
@@ -340,10 +340,10 @@ class Sage_LoraStackInfoDisplay(io.ComfyNode):
category="Sage Utils/model/info",
is_output_node=True,
inputs=[
LoraStack.Input("lora_stack")
LoraStack.Input("lora_stack", display_name="lora_stack")
],
outputs=[
io.String.Output("markdown_display")
io.String.Output("markdown_display", display_name="markdown_display")
]
)
@@ -475,14 +475,14 @@ class Sage_LastLoraInfo(io.ComfyNode):
description="PLACEHOLDER: Pull civitai info for the last lora in the stack and return details.",
category="Sage Utils/model/info",
inputs=
[LoraStack.Input("lora_stack")
[LoraStack.Input("lora_stack", display_name="lora_stack")
],
outputs=[
io.String.Output("base_model"),
io.String.Output("name"),
io.String.Output("url"),
io.String.Output("latest_url"),
io.Image.Output("image")
io.String.Output("base_model", display_name="base_model"),
io.String.Output("name", display_name="name"),
io.String.Output("url", display_name="url"),
io.String.Output("latest_url", display_name="latest_url"),
io.Image.Output("image", display_name="image")
]
)
@@ -533,11 +533,11 @@ class Sage_GetFileHash(io.ComfyNode):
description="Get the hash of a file in the configured model paths.",
category="Sage Utils/util",
inputs=[
io.Combo.Input("base_dir", options=folder_list, default=folder_list[0] if folder_list else ""),
io.String.Input("filename")
io.Combo.Input("base_dir", display_name="base_dir", options=folder_list, default=folder_list[0] if folder_list else ""),
io.String.Input("filename", display_name="filename")
],
outputs=[
io.String.Output("hash")
io.String.Output("hash", display_name="hash")
]
)
@@ -596,13 +596,13 @@ class Sage_CacheMaintenance(io.ComfyNode):
category="Sage Utils/util",
is_output_node=True,
inputs=[
io.Boolean.Input("remove_ghost_entries", default=False)
io.Boolean.Input("remove_ghost_entries", display_name="remove_ghost_entries", default=False)
],
outputs=[
io.String.Output("ghost_entries"),
io.String.Output("dup_hash"),
io.String.Output("dup_model"),
io.String.Output("not_on_civitai")
io.String.Output("ghost_entries", display_name="ghost_entries"),
io.String.Output("dup_hash", display_name="dup_hash"),
io.String.Output("dup_model", display_name="dup_model"),
io.String.Output("not_on_civitai", display_name="not_on_civitai")
]
)
@@ -659,12 +659,12 @@ class Sage_ModelReport(io.ComfyNode):
category="Sage Utils/model/info",
is_output_node=True,
inputs=[
io.Combo.Input("scan_models", options=["none", "loras", "checkpoints", "all"], default="none"),
io.Boolean.Input("force_recheck", default=False)
io.Combo.Input("scan_models", display_name="scan_models", options=["none", "loras", "checkpoints", "all"], default="none"),
io.Boolean.Input("force_recheck", display_name="force_recheck", default=False)
],
outputs=[
io.String.Output("model_list"),
io.String.Output("lora_list")
io.String.Output("model_list", display_name="model_list"),
io.String.Output("lora_list", display_name="lora_list")
]
)
@@ -711,11 +711,11 @@ class Sage_MultiModelPicker(io.ComfyNode):
description="Select one model_info from a list by index.",
category="Sage Utils/model",
inputs=[
io.Int.Input("index", default=1, min=1, max=100, step=1, tooltip="1-based index into provided model list"),
io.AnyType.Input("models")
io.Int.Input("index", display_name="index", default=1, min=1, max=100, step=1, tooltip="1-based index into provided model list"),
io.AnyType.Input("models", display_name="models")
],
outputs=[
ModelInfo.Output("model_info")
ModelInfo.Output("model_info", display_name="model_info")
]
)
@@ -741,10 +741,10 @@ class Sage_CollectKeywordsFromLoraStack(io.ComfyNode):
description="PLACEHOLDER: Collect keywords from all LoRAs in a stack.",
category="Sage Utils/lora",
inputs=[
LoraStack.Input("lora_stack")
LoraStack.Input("lora_stack", display_name="lora_stack")
],
outputs=[
io.String.Output("keywords")
io.String.Output("keywords", display_name="keywords")
]
)
@@ -766,13 +766,13 @@ class Sage_CheckLorasForUpdates(io.ComfyNode):
category="Sage Utils/lora",
is_output_node=True,
inputs=[
LoraStack.Input("lora_stack"),
io.Boolean.Input("force", default=False, tooltip="Force a check even if marked up to date.")
LoraStack.Input("lora_stack", display_name="lora_stack"),
io.Boolean.Input("force", display_name="force", default=False, tooltip="Force a check even if marked up to date.")
],
outputs=[
LoraStack.Output("out_lora_stack"),
io.String.Output("path"),
io.String.Output("latest_url")
LoraStack.Output("out_lora_stack", display_name="lora_stack"),
io.String.Output("path", display_name="path"),
io.String.Output("latest_url", display_name="latest_url")
]
)