mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-01-31 13:29:55 +00:00
Co-authored-by: Anastasiy Safari <anastasiuspernat@gmail.com> Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 94 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 91 KiB |
@@ -404,15 +404,35 @@ export class GroupNodeConfig {
|
||||
inputName
|
||||
let key = name
|
||||
let prefix = ''
|
||||
|
||||
// Ensure seenInputs is initialized before checking
|
||||
seenInputs[key] = (seenInputs[key] ?? 0) + 1
|
||||
|
||||
// Special handling for primitive to include the title if it is set rather than just "value"
|
||||
if ((node.type === 'PrimitiveNode' && node.title) || name in seenInputs) {
|
||||
if ((node.type === 'PrimitiveNode' && node.title) || seenInputs[name] > 1) {
|
||||
prefix = `${node.title ?? node.type} `
|
||||
key = name = `${prefix}${inputName}`
|
||||
if (name in seenInputs) {
|
||||
name = `${prefix}${seenInputs[name]} ${inputName}`
|
||||
|
||||
// Ensure seenInputs is initialized before checking it
|
||||
seenInputs[name] = seenInputs[name] ?? 0
|
||||
|
||||
let finalName
|
||||
if (seenInputs[name] > 0) {
|
||||
// If a duplicate is found, append an incremental number
|
||||
prefix = `${node.title ?? node.type} `
|
||||
finalName = `${prefix} ${seenInputs[name] + 1} ${inputName}`
|
||||
} else {
|
||||
// Use the original name if it's the first time
|
||||
prefix = `${node.title ?? node.type} `
|
||||
finalName = `${prefix}${inputName}`
|
||||
}
|
||||
|
||||
// Store the incremented count for tracking duplicates
|
||||
seenInputs[name]++
|
||||
|
||||
// Ensure the name is added to the definition list correctly
|
||||
this.nodeDef.input.required[finalName] = config
|
||||
}
|
||||
seenInputs[key] = (seenInputs[key] ?? 1) + 1
|
||||
|
||||
if (inputName === 'seed' || inputName === 'noise_seed') {
|
||||
if (!extra) extra = {}
|
||||
@@ -640,24 +660,32 @@ export class GroupNodeConfig {
|
||||
this.nodeDef.output.push(def.output[outputId])
|
||||
this.nodeDef.output_is_list.push(def.output_is_list[outputId])
|
||||
|
||||
let label = customConfig?.name
|
||||
// Try to get a custom name from the configuration if it exists
|
||||
let label =
|
||||
customConfig?.name ??
|
||||
// If no custom name, check if the definition provides an output name
|
||||
def.output_name?.[outputId] ??
|
||||
// If neither exist, fallback to the raw output type (e.g., "FLOAT", "INT")
|
||||
def.output[outputId]
|
||||
|
||||
// Check if label is missing and fallback
|
||||
if (!label) {
|
||||
label = def.output_name?.[outputId] ?? def.output[outputId]
|
||||
const output = node.outputs.find((o) => o.name === label)
|
||||
if (output?.label) {
|
||||
label = output.label
|
||||
}
|
||||
const output = node.outputs.find((o) => o.name)
|
||||
label = output?.label ?? 'UnnamedOutput'
|
||||
}
|
||||
|
||||
let name = label
|
||||
if (name in seenOutputs) {
|
||||
const prefix = `${node.title ?? node.type} `
|
||||
name = `${prefix}${label}`
|
||||
if (name in seenOutputs) {
|
||||
name = `${prefix}${node.index} ${label}`
|
||||
}
|
||||
|
||||
// Always prefix with node title or type
|
||||
const prefix = `${node.title ?? node.type} `
|
||||
name = `${prefix}${label}`
|
||||
|
||||
// Apply the same duplicate tracking logic as inputs
|
||||
if (seenOutputs[name]) {
|
||||
name = `${prefix} ${seenOutputs[name] + 1} ${label}`
|
||||
}
|
||||
seenOutputs[name] = 1
|
||||
|
||||
seenOutputs[name] = (seenOutputs[name] ?? 0) + 1
|
||||
|
||||
this.nodeDef.output_name.push(name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user