fix(api-nodes): disambiguate deprecated partner-node display names
Five deprecated partner V1 nodes shared an exact display_name with their live V2 replacements, so the node picker (and any object_info consumer) showed two identically-named nodes and users/agents routinely landed on the deprecated one. The headline case: OpenAIGPTImage1 (deprecated) and OpenAIGPTImageNodeV2 (live) were both "OpenAI GPT Image 2", and the deprecated node listed gpt-image-1 first in its model combo, nudging picks onto an older, costlier-for-worse-output model even though it already defaults to gpt-image-2. For each of the five deprecated twins: - append " (legacy)" to display_name so it no longer collides with the live node - add a one-sentence description note: the class name is historical, kept only for existing-workflow compatibility, supports the current models, and names the live V2 class to prefer for new workflows - reorder the model combo so the current model leads where it was stale-first (OpenAIGPTImage1: gpt-image-2 now leads; GeminiNode: the gemini-3.1 generation now leads). Grok, Nano Banana 2, and ByteDance Seedream already led with the current model, so their combos are unchanged. Class names (node_id / class_type) are untouched, so existing workflows referencing these nodes still load and run. Only display_name, description, and combo order change; no object_info schema change. The six ControlNet display_name collisions noted in the same analysis live in core nodes, not comfy_api_nodes, and are left for a follow-up.
This commit is contained in:
parent
b08e6cf35f
commit
9489bd23f6
|
|
@ -545,9 +545,14 @@ class ByteDanceSeedreamNode(IO.ComfyNode):
|
|||
def define_schema(cls):
|
||||
return IO.Schema(
|
||||
node_id="ByteDanceSeedreamNode",
|
||||
display_name="ByteDance Seedream 4.5 & 5.0",
|
||||
display_name="ByteDance Seedream 4.5 & 5.0 (legacy)",
|
||||
category="partner/image/ByteDance",
|
||||
description="Unified text-to-image generation and precise single-sentence editing at up to 4K resolution.",
|
||||
description=(
|
||||
"Unified text-to-image generation and precise single-sentence editing at up to 4K resolution. "
|
||||
"This class name is historical and is kept only for compatibility with existing workflows; "
|
||||
"it supports the current models, "
|
||||
"so prefer the ByteDanceSeedreamNodeV2 ('ByteDance Seedream 4.5 & 5.0') node for new workflows."
|
||||
),
|
||||
inputs=[
|
||||
IO.Combo.Input(
|
||||
"model",
|
||||
|
|
|
|||
|
|
@ -459,11 +459,14 @@ class GeminiNode(IO.ComfyNode):
|
|||
def define_schema(cls):
|
||||
return IO.Schema(
|
||||
node_id="GeminiNode",
|
||||
display_name="Google Gemini",
|
||||
display_name="Google Gemini (legacy)",
|
||||
category="partner/text/Gemini",
|
||||
description="Generate text responses with Google's Gemini AI model. "
|
||||
"You can provide multiple types of inputs (text, images, audio, video) "
|
||||
"as context for generating more relevant and meaningful responses.",
|
||||
"as context for generating more relevant and meaningful responses. "
|
||||
"This class name is historical and is kept only for compatibility with existing workflows; "
|
||||
"it supports the current Gemini models, "
|
||||
"so prefer the GeminiNodeV2 ('Google Gemini') node for new workflows.",
|
||||
inputs=[
|
||||
IO.String.Input(
|
||||
"prompt",
|
||||
|
|
@ -475,11 +478,11 @@ class GeminiNode(IO.ComfyNode):
|
|||
IO.Combo.Input(
|
||||
"model",
|
||||
options=[
|
||||
"gemini-3-1-pro",
|
||||
"gemini-3-1-flash-lite",
|
||||
"gemini-2.5-pro",
|
||||
"gemini-2.5-flash",
|
||||
"gemini-3-pro-preview",
|
||||
"gemini-3-1-pro",
|
||||
"gemini-3-1-flash-lite",
|
||||
],
|
||||
default="gemini-3-1-pro",
|
||||
tooltip="The Gemini model to use for generating responses.",
|
||||
|
|
@ -1193,9 +1196,14 @@ class GeminiNanoBanana2(IO.ComfyNode):
|
|||
def define_schema(cls):
|
||||
return IO.Schema(
|
||||
node_id="GeminiNanoBanana2",
|
||||
display_name="Nano Banana 2",
|
||||
display_name="Nano Banana 2 (legacy)",
|
||||
category="partner/image/Gemini",
|
||||
description="Generate or edit images synchronously via Google Vertex API.",
|
||||
description=(
|
||||
"Generate or edit images synchronously via Google Vertex API. "
|
||||
"This class name is historical and is kept only for compatibility with existing workflows; "
|
||||
"it supports the current models, "
|
||||
"so prefer the GeminiNanoBanana2V2 ('Nano Banana 2') node for new workflows."
|
||||
),
|
||||
inputs=[
|
||||
IO.String.Input(
|
||||
"prompt",
|
||||
|
|
|
|||
|
|
@ -227,9 +227,14 @@ class GrokImageEditNode(IO.ComfyNode):
|
|||
def define_schema(cls):
|
||||
return IO.Schema(
|
||||
node_id="GrokImageEditNode",
|
||||
display_name="Grok Image Edit",
|
||||
display_name="Grok Image Edit (legacy)",
|
||||
category="partner/image/Grok",
|
||||
description="Modify an existing image based on a text prompt",
|
||||
description=(
|
||||
"Modify an existing image based on a text prompt. "
|
||||
"This class name is historical and is kept only for compatibility with existing workflows; "
|
||||
"it supports the current models, "
|
||||
"so prefer the GrokImageEditNodeV2 ('Grok Image Edit') node for new workflows."
|
||||
),
|
||||
inputs=[
|
||||
IO.Combo.Input(
|
||||
"model",
|
||||
|
|
|
|||
|
|
@ -383,9 +383,14 @@ class OpenAIGPTImage1(IO.ComfyNode):
|
|||
def define_schema(cls):
|
||||
return IO.Schema(
|
||||
node_id="OpenAIGPTImage1",
|
||||
display_name="OpenAI GPT Image 2",
|
||||
display_name="OpenAI GPT Image 2 (legacy)",
|
||||
category="partner/image/OpenAI",
|
||||
description="Generates images synchronously via OpenAI's GPT Image endpoint.",
|
||||
description=(
|
||||
"Generates images synchronously via OpenAI's GPT Image endpoint. "
|
||||
"This class name is historical and is kept only for compatibility with existing workflows; "
|
||||
"the node is not limited to GPT Image 1 and defaults to the current gpt-image-2 model, "
|
||||
"so prefer the OpenAIGPTImageNodeV2 ('OpenAI GPT Image 2') node for new workflows."
|
||||
),
|
||||
is_deprecated=True,
|
||||
inputs=[
|
||||
IO.String.Input(
|
||||
|
|
@ -459,7 +464,7 @@ class OpenAIGPTImage1(IO.ComfyNode):
|
|||
),
|
||||
IO.Combo.Input(
|
||||
"model",
|
||||
options=["gpt-image-1", "gpt-image-1.5", "gpt-image-2"],
|
||||
options=["gpt-image-2", "gpt-image-1.5", "gpt-image-1"],
|
||||
default="gpt-image-2",
|
||||
optional=True,
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue