diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index 8438ac89e..c4c84d341 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -105,6 +105,14 @@ watchEffect(() => { }) }) +watchEffect(() => { + const linkRenderMode = settingStore.get('Comfy.LinkRenderMode') + if (canvasStore.canvas) { + canvasStore.canvas.links_render_mode = linkRenderMode + canvasStore.canvas.setDirty(/* fg */ false, /* bg */ true) + } +}) + watchEffect(() => { if (!canvasStore.canvas) return diff --git a/src/extensions/core/index.ts b/src/extensions/core/index.ts index fe0f33178..3365531af 100644 --- a/src/extensions/core/index.ts +++ b/src/extensions/core/index.ts @@ -8,7 +8,6 @@ import './groupNodeManage' import './groupOptions' import './invertMenuScrolling' import './keybinds' -import './linkRenderMode' import './maskeditor' import './nodeTemplates' import './noteNode' diff --git a/src/extensions/core/linkRenderMode.ts b/src/extensions/core/linkRenderMode.ts deleted file mode 100644 index e8e58acaa..000000000 --- a/src/extensions/core/linkRenderMode.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { app, ComfyApp } from '../../scripts/app' -import { LiteGraph } from '@comfyorg/litegraph' -const id = 'Comfy.LinkRenderMode' -const ext = { - name: id, - async setup(app: ComfyApp) { - app.ui.settings.addSetting({ - id, - category: ['Comfy', 'Graph', 'LinkRenderMode'], - name: 'Link Render Mode', - defaultValue: 2, - type: 'combo', - options: [ - { value: LiteGraph.STRAIGHT_LINK.toString(), text: 'Straight' }, - { value: LiteGraph.LINEAR_LINK.toString(), text: 'Linear' }, - { value: LiteGraph.SPLINE_LINK.toString(), text: 'Spline' }, - { value: LiteGraph.HIDDEN_LINK.toString(), text: 'Hidden' } - ], - onChange(value: number) { - app.canvas.links_render_mode = +value - app.canvas.setDirty(/* fg */ false, /* bg */ true) - } - }) - } -} - -app.registerExtension(ext) diff --git a/src/stores/coreSettings.ts b/src/stores/coreSettings.ts index b4623cd78..8e1458ba9 100644 --- a/src/stores/coreSettings.ts +++ b/src/stores/coreSettings.ts @@ -5,6 +5,7 @@ import { LinkReleaseTriggerMode } from '@/types/searchBoxTypes' import type { SettingParams } from '@/types/settingTypes' +import { LiteGraph } from '@comfyorg/litegraph' export const CORE_SETTINGS: SettingParams[] = [ { @@ -444,5 +445,18 @@ export const CORE_SETTINGS: SettingParams[] = [ 'Recommended for node developers. This will validate all node definitions on startup.', defaultValue: false, versionAdded: '1.3.14' + }, + { + id: 'Comfy.LinkRenderMode', + category: ['Comfy', 'Graph', 'LinkRenderMode'], + name: 'Link Render Mode', + defaultValue: 2, + type: 'combo', + options: [ + { value: LiteGraph.STRAIGHT_LINK, text: 'Straight' }, + { value: LiteGraph.LINEAR_LINK, text: 'Linear' }, + { value: LiteGraph.SPLINE_LINK, text: 'Spline' }, + { value: LiteGraph.HIDDEN_LINK, text: 'Hidden' } + ] } ] diff --git a/src/types/apiTypes.ts b/src/types/apiTypes.ts index 82edba787..f2c75b46d 100644 --- a/src/types/apiTypes.ts +++ b/src/types/apiTypes.ts @@ -511,7 +511,8 @@ const zSettings = z.record(z.any()).and( 'Comfy.Keybinding.UnsetBindings': z.array(zKeybinding), 'Comfy.Keybinding.NewBindings': z.array(zKeybinding), 'Comfy.Extension.Disabled': z.array(z.string()), - 'Comfy.Settings.ExtensionPanel': z.boolean() + 'Comfy.Settings.ExtensionPanel': z.boolean(), + 'Comfy.LinkRenderMode': z.number() }) .optional() ) diff --git a/src/types/settingTypes.ts b/src/types/settingTypes.ts index e242b78bb..879da016f 100644 --- a/src/types/settingTypes.ts +++ b/src/types/settingTypes.ts @@ -19,7 +19,7 @@ export type SettingCustomRenderer = ( export interface SettingOption { text: string - value?: string + value?: any } export interface Setting {