From fd2f5b67e4f2a559bc5c17357a8e8fb538b7c8bb Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 10:41:16 -0800 Subject: [PATCH 01/16] Update to latest manager. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d3edfa84..50b29684 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "config": { "frontendVersion": "1.5.0", "comfyVersion": "0.3.2", - "managerCommit": "ada683c6bafcb983c8366e4310b7f95f66bd6362", + "managerCommit": "de1a030a79b02b1ed01420397fe28283893c7717", "uvVersion": "0.5.4" }, "scripts": { From 4fba91bb49838736a671f88e6c26e4b4ad23b9ac Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 15:20:26 -0800 Subject: [PATCH 02/16] Install missing custom nodes using cm-cli. --- package.json | 2 +- src/main-process/comfyDesktopApp.ts | 3 ++ src/services/backup.ts | 79 +++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 src/services/backup.ts diff --git a/package.json b/package.json index 50b29684..e3b6d552 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "config": { "frontendVersion": "1.5.0", "comfyVersion": "0.3.2", - "managerCommit": "de1a030a79b02b1ed01420397fe28283893c7717", + "managerCommit": "977d2f8e1db14a5ea73bdfc9a24ec7e1aca90bfb", "uvVersion": "0.5.4" }, "scripts": { diff --git a/src/main-process/comfyDesktopApp.ts b/src/main-process/comfyDesktopApp.ts index 5d7e578d..767dfffe 100644 --- a/src/main-process/comfyDesktopApp.ts +++ b/src/main-process/comfyDesktopApp.ts @@ -16,6 +16,7 @@ import { DownloadManager } from '../models/DownloadManager'; import { VirtualEnvironment } from '../virtualEnvironment'; import { InstallWizard } from '../install/installWizard'; import { Terminal } from '../terminal'; +import { restoreCustomNodes } from '../services/backup'; export class ComfyDesktopApp { public comfyServer: ComfyServer | null = null; @@ -181,6 +182,8 @@ export class ComfyDesktopApp { }, }); + await restoreCustomNodes(virtualEnvironment); + this.appWindow.sendServerStartProgress(ProgressStatus.STARTING_SERVER); this.comfyServer = new ComfyServer(this.basePath, serverArgs, virtualEnvironment, this.appWindow); await this.comfyServer.start(); diff --git a/src/services/backup.ts b/src/services/backup.ts new file mode 100644 index 00000000..489a562c --- /dev/null +++ b/src/services/backup.ts @@ -0,0 +1,79 @@ +import * as path from 'path'; +import * as fs from 'fs'; +import * as glob from 'glob'; +import { app } from 'electron'; +import { VirtualEnvironment } from '../virtualEnvironment'; +import { getAppResourcesPath } from '../install/resourcePaths'; + +function parseLogFile(logPath: string): Set { + const customNodes = new Set(); + const pattern = /custom_nodes[/\\]([^/\\\s]+)(?:\.py)?/g; + + const content = fs.readFileSync(logPath, 'utf-8'); + let match; + + while ((match = pattern.exec(content)) !== null) { + const nodeName = match[1]; + // Exclude specific nodes + if (nodeName !== 'ComfyUI-Manager' && nodeName !== 'websocket_image_save.py') { + customNodes.add(nodeName); + } + } + + return customNodes; +} + +function getSortedLogFiles(): string[] { + try { + const logsDir = app.getPath('logs'); + const logFiles = glob.sync(path.join(logsDir, 'comfyui*.log')); + + // Sort files by modification time, newest first + return logFiles.sort((a, b) => { + return fs.statSync(b).mtime.getTime() - fs.statSync(a).mtime.getTime(); + }); + } catch (error) { + console.error('Failed to get logs directory:', error); + return []; + } +} + +async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEnvironment): Promise { + const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); + console.log('Restoring custom nodes:', nodes); + const cmd = [ + cmCliPath, + 'install', + nodes.join(' '), + '--install-path', + path.join(virtualEnvironment.venvRootPath, 'custom_nodes'), + ]; + const { exitCode } = await virtualEnvironment.runPythonCommandAsync(cmd, { + onStdout: (data) => { + console.log(data.toString()); + }, + onStderr: (data) => { + console.error(data.toString()); + }, + }); + if (exitCode !== 0) { + console.error(`Failed to install custom nodes: ${exitCode}`); + } +} + +export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment): Promise { + const logFiles = getSortedLogFiles(); + if (logFiles.length === 0) { + console.log('No log files found'); + return; + } + + const customNodes = new Set(); + for (const logFile of logFiles) { + const nodes = parseLogFile(logFile); + nodes.forEach((node) => customNodes.add(node)); + } + + console.log('Found custom nodes:', customNodes); + await installCustomNodes(Array.from(customNodes), virtualEnvironment); +} From ff0624124d5ebd37f26ca130b560d621c803a875 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 15:30:02 -0800 Subject: [PATCH 03/16] Use our edits of ComfyUI-Manager. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e3b6d552..0aac394a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "config": { "frontendVersion": "1.5.0", "comfyVersion": "0.3.2", - "managerCommit": "977d2f8e1db14a5ea73bdfc9a24ec7e1aca90bfb", + "managerCommit": "cfade11352ce7f93e14773da104ce74ceaae1aa1", "uvVersion": "0.5.4" }, "scripts": { From 471996acd75864cd33596557a9943c46beeb2b49 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 15:32:17 -0800 Subject: [PATCH 04/16] Don't install if no custom nodes. --- src/services/backup.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/backup.ts b/src/services/backup.ts index 489a562c..186790b1 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -39,6 +39,10 @@ function getSortedLogFiles(): string[] { } async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEnvironment): Promise { + if (nodes.length === 0) { + console.log('No custom nodes to restore'); + return; + } const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); console.log('Restoring custom nodes:', nodes); const cmd = [ From fde6659ed2e00aa7baf2c9e5ca3996cc480b595f Mon Sep 17 00:00:00 2001 From: robinjhuang Date: Thu, 28 Nov 2024 15:38:08 -0800 Subject: [PATCH 05/16] Add log. --- src/services/backup.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/backup.ts b/src/services/backup.ts index 186790b1..7abc31fa 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -6,6 +6,7 @@ import { VirtualEnvironment } from '../virtualEnvironment'; import { getAppResourcesPath } from '../install/resourcePaths'; function parseLogFile(logPath: string): Set { + console.log('Parsing log file:', logPath); const customNodes = new Set(); const pattern = /custom_nodes[/\\]([^/\\\s]+)(?:\.py)?/g; From 1f35affdc8f398c710e6be16995b9cddec99c3c5 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 16:05:40 -0800 Subject: [PATCH 06/16] Staging app. --- package.json | 2 +- src/services/backup.ts | 2 +- todesktop.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 0aac394a..d0bc631a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "config": { "frontendVersion": "1.5.0", "comfyVersion": "0.3.2", - "managerCommit": "cfade11352ce7f93e14773da104ce74ceaae1aa1", + "managerCommit": "41dc4076265bf41a7cc001bbc2086b282f003bae", "uvVersion": "0.5.4" }, "scripts": { diff --git a/src/services/backup.ts b/src/services/backup.ts index 7abc31fa..f0959b03 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -45,7 +45,7 @@ async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEn return; } const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); - console.log('Restoring custom nodes:', nodes); + const cmd = [ cmCliPath, 'install', diff --git a/todesktop.json b/todesktop.json index b1e80a80..6bf65ba3 100644 --- a/todesktop.json +++ b/todesktop.json @@ -1,5 +1,5 @@ { - "id": "241012ess7yxs0e", + "id": "241125q2i8rhv", "icon": "./assets/UI/Comfy_Logo_x128.png", "appBuilderLibVersion": "25.1.8", "schemaVersion": 1, From f83ca116a0fdfc8ff61603c4f61e2277260f03b8 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Thu, 28 Nov 2024 16:07:33 -0800 Subject: [PATCH 07/16] 0.3.21 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d0bc631a..8da2efe9 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "ComfyUI", "repository": "github:comfy-org/electron", "copyright": "Copyright © 2024 Comfy Org", - "version": "0.3.20", + "version": "0.3.21", "homepage": "https://comfy.org", "description": "The best modular GUI to run AI diffusion models.", "main": ".vite/build/main.js", From 023f358323830d23cb2d8bb8b679ab93bff4a65c Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 11:18:06 -0800 Subject: [PATCH 08/16] File matching improved. --- src/services/backup.ts | 64 +++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/src/services/backup.ts b/src/services/backup.ts index f0959b03..0bdffa9d 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -4,20 +4,29 @@ import * as glob from 'glob'; import { app } from 'electron'; import { VirtualEnvironment } from '../virtualEnvironment'; import { getAppResourcesPath } from '../install/resourcePaths'; +import log from 'electron-log/main'; function parseLogFile(logPath: string): Set { console.log('Parsing log file:', logPath); const customNodes = new Set(); - const pattern = /custom_nodes[/\\]([^/\\\s]+)(?:\.py)?/g; - const content = fs.readFileSync(logPath, 'utf-8'); - let match; - while ((match = pattern.exec(content)) !== null) { - const nodeName = match[1]; - // Exclude specific nodes - if (nodeName !== 'ComfyUI-Manager' && nodeName !== 'websocket_image_save.py') { - customNodes.add(nodeName); + const lines = content.split('\n'); + for (let i = 0; i < lines.length; i++) { + const line = lines[i].trim(); + // Match the exact format from Python's "{:6.1f} seconds" + const timeMatch = line.match(/\s*\d+\.\d+\s+seconds/); + if (timeMatch) { + log.info(line); + // Second pattern: extract custom node name from path + const customNodeMatch = line.match(/custom_nodes[/\\]([^/\\]+)/); + if (customNodeMatch) { + log.info('Node match found:', customNodeMatch[1]); + const nodeName = customNodeMatch[1]; + if (nodeName !== 'ComfyUI-Manager' && nodeName !== 'websocket_image_save.py') { + customNodes.add(nodeName); + } + } } } @@ -46,23 +55,26 @@ async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEn } const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); - const cmd = [ - cmCliPath, - 'install', - nodes.join(' '), - '--install-path', - path.join(virtualEnvironment.venvRootPath, 'custom_nodes'), - ]; - const { exitCode } = await virtualEnvironment.runPythonCommandAsync(cmd, { - onStdout: (data) => { - console.log(data.toString()); - }, - onStderr: (data) => { - console.error(data.toString()); - }, - }); - if (exitCode !== 0) { - console.error(`Failed to install custom nodes: ${exitCode}`); + for (const node of nodes) { + const cmd = [ + cmCliPath, + 'install', + node, + '--install-path', + path.join(virtualEnvironment.venvRootPath, 'custom_nodes'), + ]; + const { exitCode } = await virtualEnvironment.runPythonCommandAsync(cmd, { + onStdout: (data) => { + console.log(data.toString()); + }, + onStderr: (data) => { + console.error(data.toString()); + }, + }); + if (exitCode !== 0) { + console.error(`Failed to install custom nodes: ${exitCode}`); + } + log.info(`Successfully installed custom node: ${node}`); } } @@ -82,3 +94,5 @@ export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment) console.log('Found custom nodes:', customNodes); await installCustomNodes(Array.from(customNodes), virtualEnvironment); } + +console.log(parseLogFile('/Users/junhanhuang/Library/Logs/ComfyUI/comfyui.log')); From 0fd1924494a2d1bf694cbe70a2e92f91e577777e Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 11:22:48 -0800 Subject: [PATCH 09/16] Remove log. --- src/services/backup.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/services/backup.ts b/src/services/backup.ts index 0bdffa9d..3d48a9c2 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -94,5 +94,3 @@ export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment) console.log('Found custom nodes:', customNodes); await installCustomNodes(Array.from(customNodes), virtualEnvironment); } - -console.log(parseLogFile('/Users/junhanhuang/Library/Logs/ComfyUI/comfyui.log')); From 5c40990e6101b94bcc8f1223ed75dc0b834564af Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 11:41:32 -0800 Subject: [PATCH 10/16] Send progress update. --- src/main.ts | 2 +- src/services/backup.ts | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main.ts b/src/main.ts index 61e7c8a9..fc5d8cea 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import { IPC_CHANNELS, DEFAULT_SERVER_ARGS, ProgressStatus, SENTRY_URL_ENDPOINT } from './constants'; +import { IPC_CHANNELS, DEFAULT_SERVER_ARGS, ProgressStatus } from './constants'; import { app, dialog, ipcMain } from 'electron'; import log from 'electron-log/main'; import { findAvailablePort } from './utils'; diff --git a/src/services/backup.ts b/src/services/backup.ts index 3d48a9c2..9eeaed91 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -5,6 +5,8 @@ import { app } from 'electron'; import { VirtualEnvironment } from '../virtualEnvironment'; import { getAppResourcesPath } from '../install/resourcePaths'; import log from 'electron-log/main'; +import { AppWindow } from '../main-process/appWindow'; +import { IPC_CHANNELS } from '../constants'; function parseLogFile(logPath: string): Set { console.log('Parsing log file:', logPath); @@ -48,7 +50,11 @@ function getSortedLogFiles(): string[] { } } -async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEnvironment): Promise { +async function installCustomNodes( + nodes: string[], + virtualEnvironment: VirtualEnvironment, + appWindow: AppWindow +): Promise { if (nodes.length === 0) { console.log('No custom nodes to restore'); return; @@ -56,6 +62,7 @@ async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEn const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); for (const node of nodes) { + appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Installing custom node: ${node}`); const cmd = [ cmCliPath, 'install', @@ -78,7 +85,7 @@ async function installCustomNodes(nodes: string[], virtualEnvironment: VirtualEn } } -export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment): Promise { +export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment, appWindow: AppWindow): Promise { const logFiles = getSortedLogFiles(); if (logFiles.length === 0) { console.log('No log files found'); @@ -92,5 +99,5 @@ export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment) } console.log('Found custom nodes:', customNodes); - await installCustomNodes(Array.from(customNodes), virtualEnvironment); + await installCustomNodes(Array.from(customNodes), virtualEnvironment, appWindow); } From 7be3640ba773be2ef6eace4665c43309e731bfe7 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 11:56:55 -0800 Subject: [PATCH 11/16] Only log once. --- src/main-process/comfyDesktopApp.ts | 14 +++++++++++--- src/services/backup.ts | 3 +-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main-process/comfyDesktopApp.ts b/src/main-process/comfyDesktopApp.ts index 767dfffe..9e93f5d6 100644 --- a/src/main-process/comfyDesktopApp.ts +++ b/src/main-process/comfyDesktopApp.ts @@ -17,7 +17,7 @@ import { VirtualEnvironment } from '../virtualEnvironment'; import { InstallWizard } from '../install/installWizard'; import { Terminal } from '../terminal'; import { restoreCustomNodes } from '../services/backup'; - +import Store from 'electron-store'; export class ComfyDesktopApp { public comfyServer: ComfyServer | null = null; private terminal: Terminal | null = null; // Only created after server starts. @@ -181,8 +181,16 @@ export class ComfyDesktopApp { this.appWindow.send(IPC_CHANNELS.LOG_MESSAGE, data); }, }); - - await restoreCustomNodes(virtualEnvironment); + const store = new Store(); + if (!store.get('Comfy-Desktop.RestoredCustomNodes', false)) { + try { + await restoreCustomNodes(virtualEnvironment, this.appWindow); + store.set('Comfy-Desktop.RestoredCustomNodes', true); + } catch (error) { + log.error('Failed to restore custom nodes:', error); + store.set('Comfy-Desktop.RestoredCustomNodes', false); + } + } this.appWindow.sendServerStartProgress(ProgressStatus.STARTING_SERVER); this.comfyServer = new ComfyServer(this.basePath, serverArgs, virtualEnvironment, this.appWindow); diff --git a/src/services/backup.ts b/src/services/backup.ts index 9eeaed91..cac157b0 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -88,7 +88,6 @@ async function installCustomNodes( export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment, appWindow: AppWindow): Promise { const logFiles = getSortedLogFiles(); if (logFiles.length === 0) { - console.log('No log files found'); return; } @@ -98,6 +97,6 @@ export async function restoreCustomNodes(virtualEnvironment: VirtualEnvironment, nodes.forEach((node) => customNodes.add(node)); } - console.log('Found custom nodes:', customNodes); + log.info('Found custom nodes:', customNodes); await installCustomNodes(Array.from(customNodes), virtualEnvironment, appWindow); } From c0f83bc5dfa1f82cb6e2bffeacbc35d3f74abd56 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 14:47:42 -0800 Subject: [PATCH 12/16] Improve logs. --- src/services/backup.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/backup.ts b/src/services/backup.ts index cac157b0..f67b2adf 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -56,13 +56,12 @@ async function installCustomNodes( appWindow: AppWindow ): Promise { if (nodes.length === 0) { - console.log('No custom nodes to restore'); return; } const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); for (const node of nodes) { - appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Installing custom node: ${node}`); + appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Installing custom node: ${node}\n`); const cmd = [ cmCliPath, 'install', From 19885b73e0b3eb963ed538aeb42ca89147a073d0 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 14:54:41 -0800 Subject: [PATCH 13/16] Improve logs. --- src/services/backup.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/backup.ts b/src/services/backup.ts index f67b2adf..2b693380 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -71,14 +71,14 @@ async function installCustomNodes( ]; const { exitCode } = await virtualEnvironment.runPythonCommandAsync(cmd, { onStdout: (data) => { - console.log(data.toString()); + log.info(data.toString()); }, onStderr: (data) => { - console.error(data.toString()); + log.error(data.toString()); }, }); if (exitCode !== 0) { - console.error(`Failed to install custom nodes: ${exitCode}`); + log.error(`Failed to install custom nodes: ${exitCode}`); } log.info(`Successfully installed custom node: ${node}`); } From d5a053545512db51e1eec713081a9b0b15d5226b Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 16:19:27 -0800 Subject: [PATCH 14/16] Install with no deps. --- package.json | 2 +- src/services/backup.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8da2efe9..1de03feb 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "config": { "frontendVersion": "1.5.0", "comfyVersion": "0.3.2", - "managerCommit": "41dc4076265bf41a7cc001bbc2086b282f003bae", + "managerCommit": "ad5fae39acfbd73a7c00a8713f64ad61fcb4000f", "uvVersion": "0.5.4" }, "scripts": { diff --git a/src/services/backup.ts b/src/services/backup.ts index 2b693380..f2b06f2c 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -59,15 +59,17 @@ async function installCustomNodes( return; } const cmCliPath = path.join(getAppResourcesPath(), 'ComfyUI', 'custom_nodes', 'ComfyUI-Manager', 'cm-cli.py'); - - for (const node of nodes) { - appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Installing custom node: ${node}\n`); + appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Reinstalling ${nodes.length} custom nodes...\n`); + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + appWindow.send(IPC_CHANNELS.LOG_MESSAGE, `Installing custom node (${i + 1}/${nodes.length}): ${node}\n`); const cmd = [ cmCliPath, 'install', node, '--install-path', path.join(virtualEnvironment.venvRootPath, 'custom_nodes'), + '--no-deps', ]; const { exitCode } = await virtualEnvironment.runPythonCommandAsync(cmd, { onStdout: (data) => { From 46b3c8b4513b61044c05f20de03ea8d4874d0575 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Fri, 29 Nov 2024 16:20:02 -0800 Subject: [PATCH 15/16] Back to regular app id. --- todesktop.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todesktop.json b/todesktop.json index 6bf65ba3..b1e80a80 100644 --- a/todesktop.json +++ b/todesktop.json @@ -1,5 +1,5 @@ { - "id": "241125q2i8rhv", + "id": "241012ess7yxs0e", "icon": "./assets/UI/Comfy_Logo_x128.png", "appBuilderLibVersion": "25.1.8", "schemaVersion": 1, From 5eaa7adf43e5e5fb0bb1174853c663da2c3ed252 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Sat, 30 Nov 2024 12:20:26 -0800 Subject: [PATCH 16/16] Back to staging app. --- todesktop.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todesktop.json b/todesktop.json index b1e80a80..6bf65ba3 100644 --- a/todesktop.json +++ b/todesktop.json @@ -1,5 +1,5 @@ { - "id": "241012ess7yxs0e", + "id": "241125q2i8rhv", "icon": "./assets/UI/Comfy_Logo_x128.png", "appBuilderLibVersion": "25.1.8", "schemaVersion": 1,