|
|
@ -553,42 +553,6 @@ function withDefaultCustomTitle(type: NodeType, data: WorkflowNodeData, nodes: W |
|
|
} as WorkflowNodeData; |
|
|
} as WorkflowNodeData; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function logSmartImage7Snapshot(label: string, node: WorkflowNode | undefined | null, extra?: Record<string, unknown>) { |
|
|
|
|
|
if (!node || node.id !== "smartImage-7") return; |
|
|
|
|
|
const data = node.data as { |
|
|
|
|
|
inputPrompt?: unknown; |
|
|
|
|
|
selectedModel?: SelectedModel; |
|
|
|
|
|
outputImage?: unknown; |
|
|
|
|
|
inputImages?: unknown; |
|
|
|
|
|
referenceSubjectList?: unknown; |
|
|
|
|
|
parameters?: unknown; |
|
|
|
|
|
status?: unknown; |
|
|
|
|
|
}; |
|
|
|
|
|
console.debug("[composer-debug] smartImage-7 data trace", { |
|
|
|
|
|
label, |
|
|
|
|
|
id: node.id, |
|
|
|
|
|
type: node.type, |
|
|
|
|
|
selected: node.selected, |
|
|
|
|
|
inputPrompt: data.inputPrompt, |
|
|
|
|
|
selectedModel: data.selectedModel |
|
|
|
|
|
? { |
|
|
|
|
|
provider: data.selectedModel.provider, |
|
|
|
|
|
modelId: data.selectedModel.modelId, |
|
|
|
|
|
displayName: data.selectedModel.displayName, |
|
|
|
|
|
type: data.selectedModel.type, |
|
|
|
|
|
subType: data.selectedModel.subType, |
|
|
|
|
|
capabilities: data.selectedModel.capabilities, |
|
|
|
|
|
} |
|
|
|
|
|
: undefined, |
|
|
|
|
|
hasOutputImage: Boolean(data.outputImage), |
|
|
|
|
|
inputImages: data.inputImages, |
|
|
|
|
|
referenceSubjectList: data.referenceSubjectList, |
|
|
|
|
|
parameters: data.parameters, |
|
|
|
|
|
status: data.status, |
|
|
|
|
|
...extra, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function canConnectToDerivedMediaTarget(connection: Connection, nodes: WorkflowNode[]): boolean { |
|
|
function canConnectToDerivedMediaTarget(connection: Connection, nodes: WorkflowNode[]): boolean { |
|
|
const targetNode = connection.target |
|
|
const targetNode = connection.target |
|
|
? nodes.find((node) => node.id === connection.target) |
|
|
? nodes.find((node) => node.id === connection.target) |
|
|
@ -1582,12 +1546,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
convertNodeType: (nodeId: string, type: NodeType, initialData?: Partial<WorkflowNodeData>) => { |
|
|
convertNodeType: (nodeId: string, type: NodeType, initialData?: Partial<WorkflowNodeData>) => { |
|
|
const sourceNode = get().nodes.find((node) => node.id === nodeId); |
|
|
const sourceNode = get().nodes.find((node) => node.id === nodeId); |
|
|
if (!sourceNode) return; |
|
|
if (!sourceNode) return; |
|
|
if (nodeId === "smartImage-7") { |
|
|
|
|
|
logSmartImage7Snapshot("convertNodeType:before", sourceNode, { |
|
|
|
|
|
nextType: type, |
|
|
|
|
|
initialData, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const { width, height } = defaultNodeDimensions[type]; |
|
|
const { width, height } = defaultNodeDimensions[type]; |
|
|
const sourceData = sourceNode.data as { |
|
|
const sourceData = sourceNode.data as { |
|
|
@ -1624,12 +1582,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
) as WorkflowNode[], |
|
|
) as WorkflowNode[], |
|
|
hasUnsavedChanges: true, |
|
|
hasUnsavedChanges: true, |
|
|
})); |
|
|
})); |
|
|
if (nodeId === "smartImage-7") { |
|
|
|
|
|
logSmartImage7Snapshot("convertNodeType:after", get().nodes.find((node) => node.id === nodeId), { |
|
|
|
|
|
nextType: type, |
|
|
|
|
|
initialData, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
get().incrementManualChangeCount(); |
|
|
get().incrementManualChangeCount(); |
|
|
}, |
|
|
}, |
|
|
@ -1638,12 +1590,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
const node = get().nodes.find((n) => n.id === nodeId); |
|
|
const node = get().nodes.find((n) => n.id === nodeId); |
|
|
if (!node) return; |
|
|
if (!node) return; |
|
|
const managedData = buildStoreManagedGenerationData(node, data, get); |
|
|
const managedData = buildStoreManagedGenerationData(node, data, get); |
|
|
if (nodeId === "smartImage-7") { |
|
|
|
|
|
logSmartImage7Snapshot("updateNodeData:before", node, { |
|
|
|
|
|
patch: data, |
|
|
|
|
|
managedPatch: managedData, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const hasDataChange = Object.entries(managedData).some( |
|
|
const hasDataChange = Object.entries(managedData).some( |
|
|
([key, value]) => !Object.is((node.data as Record<string, unknown>)[key], value) |
|
|
([key, value]) => !Object.is((node.data as Record<string, unknown>)[key], value) |
|
|
@ -1655,12 +1601,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
const resizedNode = applyWorkflowNodeStyleSize(node, canvasSize); |
|
|
const resizedNode = applyWorkflowNodeStyleSize(node, canvasSize); |
|
|
const hasSizeChange = resizedNode !== node; |
|
|
const hasSizeChange = resizedNode !== node; |
|
|
if (!hasDataChange && !hasSizeChange) { |
|
|
if (!hasDataChange && !hasSizeChange) { |
|
|
if (nodeId === "smartImage-7") { |
|
|
|
|
|
logSmartImage7Snapshot("updateNodeData:no-change", node, { |
|
|
|
|
|
patch: data, |
|
|
|
|
|
managedPatch: managedData, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
const selectedModelChanged = Object.prototype.hasOwnProperty.call(managedData, "selectedModel"); |
|
|
const selectedModelChanged = Object.prototype.hasOwnProperty.call(managedData, "selectedModel"); |
|
|
@ -1694,12 +1634,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
) as WorkflowNode[], |
|
|
) as WorkflowNode[], |
|
|
hasUnsavedChanges: true, |
|
|
hasUnsavedChanges: true, |
|
|
})); |
|
|
})); |
|
|
if (nodeId === "smartImage-7") { |
|
|
|
|
|
logSmartImage7Snapshot("updateNodeData:after", get().nodes.find((node) => node.id === nodeId), { |
|
|
|
|
|
patch: data, |
|
|
|
|
|
managedPatch: managedData, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
if (selectedModelChanged) { |
|
|
if (selectedModelChanged) { |
|
|
const unsupportedEdgeIds = getUnsupportedReferenceEdgeIds(nodeId, get); |
|
|
const unsupportedEdgeIds = getUnsupportedReferenceEdgeIds(nodeId, get); |
|
|
if (unsupportedEdgeIds.length > 0) { |
|
|
if (unsupportedEdgeIds.length > 0) { |
|
|
@ -3412,11 +3346,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
loadWorkflow: async (workflow: WorkflowFile, workflowPath?: string, options?: { preserveSnapshot?: boolean }) => { |
|
|
loadWorkflow: async (workflow: WorkflowFile, workflowPath?: string, options?: { preserveSnapshot?: boolean }) => { |
|
|
logSmartImage7Snapshot( |
|
|
|
|
|
"loadWorkflow:start", |
|
|
|
|
|
(workflow.nodes as WorkflowNode[]).find((node) => node.id === "smartImage-7") |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Update nodeIdCounter to avoid ID collisions
|
|
|
// Update nodeIdCounter to avoid ID collisions
|
|
|
const maxNodeId = workflow.nodes.reduce((max, node) => { |
|
|
const maxNodeId = workflow.nodes.reduce((max, node) => { |
|
|
const match = node.id.match(/-(\d+)$/); |
|
|
const match = node.id.match(/-(\d+)$/); |
|
|
@ -3453,10 +3382,6 @@ const workflowStoreImpl: StateCreator<WorkflowStore> = (set, get) => ({ |
|
|
} |
|
|
} |
|
|
return node; |
|
|
return node; |
|
|
}) as WorkflowNode[]; |
|
|
}) as WorkflowNode[]; |
|
|
logSmartImage7Snapshot( |
|
|
|
|
|
"loadWorkflow:after-model-normalize", |
|
|
|
|
|
(workflow.nodes as WorkflowNode[]).find((node) => node.id === "smartImage-7") |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
workflow.edges = workflow.edges.map((edge) => normalizeWorkflowEdgeHandles(edge)); |
|
|
workflow.edges = workflow.edges.map((edge) => normalizeWorkflowEdgeHandles(edge)); |
|
|
|
|
|
|
|
|
|