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.