| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
| import { app } from "../../scripts/app.js";
|
| import { api } from "../../scripts/api.js";
|
|
|
| class WorkflowMetadataExtension {
|
| constructor() {
|
| this.name = "Comfy.CustomNodesManager.WorkflowMetadata";
|
| this.installedNodes = {};
|
| this.comfyCoreVersion = null;
|
| }
|
|
|
| |
| |
| |
| |
| |
| |
|
|
| async getInstalledNodes() {
|
| const res = await api.fetchApi("/customnode/installed");
|
| return await res.json();
|
| }
|
|
|
| async init() {
|
| this.installedNodes = await this.getInstalledNodes();
|
| this.comfyCoreVersion = (await api.getSystemStats()).system.comfyui_version;
|
| }
|
|
|
| |
| |
| |
|
|
| nodeCreated(node) {
|
| try {
|
|
|
| if (!node?.constructor?.nodeData?.python_module) return;
|
|
|
| const nodeProperties = (node.properties ??= {});
|
| const modules = node.constructor.nodeData.python_module.split(".");
|
| const moduleType = modules[0];
|
|
|
| if (moduleType === "custom_nodes") {
|
| const nodePackageName = modules[1];
|
| const { cnr_id, aux_id, ver } =
|
| this.installedNodes[nodePackageName] ??
|
| this.installedNodes[nodePackageName.toLowerCase()] ??
|
| {};
|
|
|
| if (cnr_id === "comfy-core") return;
|
| if (cnr_id) nodeProperties.cnr_id = cnr_id;
|
| else nodeProperties.aux_id = aux_id;
|
| if (ver) nodeProperties.ver = ver.trim();
|
| } else if (["nodes", "comfy_extras", "comfy_api_nodes"].includes(moduleType)) {
|
| nodeProperties.cnr_id = "comfy-core";
|
| nodeProperties.ver = this.comfyCoreVersion;
|
| }
|
| } catch (e) {
|
| console.error(e);
|
| }
|
| }
|
| }
|
|
|
| app.registerExtension(new WorkflowMetadataExtension());
|
|
|