switch to nodeCreated

This commit is contained in:
bymyself 2025-02-21 06:50:38 -07:00
parent 929d0f5bdf
commit 3242443c1e

View File

@ -47,46 +47,36 @@ class WorkflowMetadataExtension {
this.comfyCoreVersion = (await api.getSystemStats()).system.comfyui_version; this.comfyCoreVersion = (await api.getSystemStats()).system.comfyui_version;
} }
setup() { /**
const extension = this; * Called when any node is created
const originalSerialize = LGraph.prototype.serialize; * @param {LGraphNode} node The newly created node
*/
nodeCreated(node) {
try {
// nodeData doesn't exist if node is missing or node is frontend only node
if (!node?.constructor?.nodeData?.python_module) return;
LGraph.prototype.serialize = function () { const nodeProperties = (node.properties ??= {});
const workflow = originalSerialize.apply(this, arguments); const modules = node.constructor.nodeData.python_module.split(".");
const graph = this; const moduleType = modules[0];
try { if (moduleType === "custom_nodes") {
// Add version metadata to each node in the workflow const nodePackageName = modules[1];
for (const node of workflow.nodes) { const { cnr_id, ver } =
const graphNode = graph.getNodeById(node.id); this.installedNodes[nodePackageName] ??
if (!graphNode?.constructor?.nodeData?.python_module) continue; this.installedNodes[nodePackageName.toLowerCase()] ??
{};
const nodeProperties = (node.properties ??= {}); if (cnr_id === "comfy-core") return; // don't allow hijacking comfy-core name
const modules = if (cnr_id) nodeProperties.cnr_id = cnr_id;
graphNode.constructor.nodeData.python_module.split("."); if (ver) nodeProperties.ver = ver;
const moduleType = modules[0]; } else if (["nodes", "comfy_extras"].includes(moduleType)) {
nodeProperties.cnr_id = "comfy-core";
if (moduleType === "custom_nodes") { nodeProperties.ver = this.comfyCoreVersion;
const nodePackageName = modules[1];
const { cnr_id, ver } =
extension.installedNodes[nodePackageName] ??
extension.installedNodes[nodePackageName.toLowerCase()] ??
{};
if (cnr_id === "comfy-core") continue; // reserved name
if (cnr_id) nodeProperties.cnr_id = cnr_id;
if (ver) nodeProperties.ver = ver;
} else if (["nodes", "comfy_extras"].includes(moduleType)) {
nodeProperties.cnr_id = "comfy-core";
nodeProperties.ver = extension.comfyCoreVersion;
}
}
} catch (e) {
console.error(e);
} }
} catch (e) {
return workflow; console.error(e);
}; }
} }
} }