@comfyorg/comfyui-frontend-types 1.39.16 → 1.41.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +478 -154
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -2,9 +2,13 @@ import { ComfyApiWorkflow } from '../platform/workflow/validation/schemas/workfl
2
2
  import { ComfyWorkflowJSON } from '../platform/workflow/validation/schemas/workflowSchema';
3
3
  import { ComfyWorkflowJSON as ComfyWorkflowJSON_2 } from '../../validation/schemas/workflowSchema';
4
4
  import { Component } from 'vue';
5
+ import { DOMWidget } from '../scripts/domWidget';
6
+ import { DOMWidgetOptions } from '../scripts/domWidget';
5
7
  import { IFuseOptions } from 'fuse.js';
8
+ import { ModelFile as ModelFile_2 } from '../../validation/schemas/workflowSchema';
6
9
  import { NodeId as NodeId_2 } from '../platform/workflow/validation/schemas/workflowSchema';
7
10
  import { objectOutputType } from 'zod';
11
+ import { Ref } from 'vue';
8
12
  import { ShallowRef } from 'vue';
9
13
  import { useDialogService } from '../services/dialogService';
10
14
  import { z } from 'zod';
@@ -23,6 +27,7 @@ declare interface AboutPageBadge {
23
27
  label: string;
24
28
  url: string;
25
29
  icon: string;
30
+ severity?: 'danger' | 'warn';
26
31
  }
27
32
 
28
33
  declare interface ActionBarButton {
@@ -79,12 +84,14 @@ declare type AsCustomEvents<T> = {
79
84
 
80
85
  declare type AssetDownloadWsMessage = z.infer<typeof zAssetDownloadWsMessage>;
81
86
 
87
+ declare type AssetExportWsMessage = z.infer<typeof zAssetExportWsMessage>;
88
+
82
89
  declare class AssetWidget extends BaseWidget<IAssetWidget> implements IAssetWidget {
83
90
  constructor(widget: IAssetWidget, node: LGraphNode);
84
91
  set value(value: IAssetWidget['value']);
85
92
  get value(): IAssetWidget['value'];
86
93
  get _displayValue(): string;
87
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
94
+ drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
88
95
  onClick(): void;
89
96
  }
90
97
 
@@ -107,19 +114,20 @@ declare interface BackendApiCalls {
107
114
  logs: LogsWsMessage;
108
115
  /** Binary preview/progress data */
109
116
  b_preview: Blob;
110
- /** Binary preview with metadata (node_id, prompt_id) */
117
+ /** Binary preview with metadata (node_id, job_id) */
111
118
  b_preview_with_metadata: {
112
119
  blob: Blob;
113
120
  nodeId: string;
114
121
  parentNodeId: string;
115
122
  displayNodeId: string;
116
123
  realNodeId: string;
117
- promptId: string;
124
+ jobId: string;
118
125
  };
119
126
  progress_text: ProgressTextWsMessage;
120
127
  progress_state: ProgressStateWsMessage;
121
128
  feature_flags: FeatureFlagsWsMessage;
122
129
  asset_download: AssetDownloadWsMessage;
130
+ asset_export: AssetExportWsMessage;
123
131
  }
124
132
 
125
133
  declare enum BadgePosition {
@@ -134,21 +142,6 @@ declare interface BaseBottomPanelExtension {
134
142
  targetPanel?: 'terminal' | 'shortcuts';
135
143
  }
136
144
 
137
- declare interface BaseDOMWidget<V extends object | string = object | string> extends IBaseWidget<V, string, DOMWidgetOptions<V>> {
138
- type: string;
139
- options: DOMWidgetOptions<V>;
140
- value: V;
141
- callback?: (value: V) => void;
142
- /** The unique ID of the widget. */
143
- readonly id: string;
144
- /** The node that the widget belongs to. */
145
- readonly node: LGraphNode;
146
- /** Whether the widget is visible. */
147
- isVisible(): boolean;
148
- /** The margin of the widget. */
149
- margin: number;
150
- }
151
-
152
145
  declare interface BaseExportedGraph {
153
146
  /** Unique graph ID. Automatically generated if not provided. */
154
147
  id: UUID;
@@ -227,7 +220,7 @@ declare abstract class BaseSteppedWidget<TWidget extends IBaseWidget = IBaseWidg
227
220
  drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
228
221
  }
229
222
 
230
- declare abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget> implements IBaseWidget {
223
+ declare abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget> implements IBaseWidget, NodeBindable {
231
224
  /** From node edge to widget edge */
232
225
  static margin: number;
233
226
  /** From widget edge to tip of arrow button */
@@ -252,29 +245,36 @@ declare abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget> imp
252
245
  linkedWidgets?: IBaseWidget[];
253
246
  name: string;
254
247
  options: TWidget['options'];
255
- label?: string;
256
248
  type: TWidget['type'];
257
249
  y: number;
258
250
  last_y?: number;
259
251
  width?: number;
260
- disabled?: boolean;
261
252
  computedDisabled?: boolean;
253
+ tooltip?: string;
254
+ private _state;
255
+ get label(): string | undefined;
256
+ set label(value: string | undefined);
262
257
  hidden?: boolean;
263
258
  advanced?: boolean;
264
- promoted?: boolean;
265
- tooltip?: string;
259
+ get disabled(): boolean | undefined;
260
+ set disabled(value: boolean | undefined);
266
261
  element?: HTMLElement;
267
262
  callback?(value: TWidget['value'], canvas?: LGraphCanvas, node?: LGraphNode, pos?: Point, e?: CanvasPointerEvent): void;
268
263
  mouse?(event: CanvasPointerEvent, pointerOffset: Point, node: LGraphNode): boolean;
269
264
  computeSize?(width?: number): Size;
270
265
  onPointerDown?(pointer: CanvasPointer, node: LGraphNode, canvas: LGraphCanvas): boolean;
271
- private _value?;
272
266
  get value(): TWidget['value'];
273
267
  set value(value: TWidget['value']);
268
+ /**
269
+ * Associates this widget with a node ID and registers it in the WidgetValueStore.
270
+ * Once set, value reads/writes will be delegated to the store.
271
+ */
272
+ setNodeId(nodeId: NodeId): void;
274
273
  constructor(widget: TWidget & {
275
274
  node: LGraphNode;
276
275
  });
277
276
  constructor(widget: TWidget, node: LGraphNode);
277
+ getOutlineColor(suppressPromotedOutline?: boolean): string;
278
278
  get outline_color(): string;
279
279
  get background_color(): string;
280
280
  get height(): number;
@@ -299,14 +299,14 @@ declare abstract class BaseWidget<TWidget extends IBaseWidget = IBaseWidget> imp
299
299
  * @param options The options for drawing the widget
300
300
  * @remarks Leaves {@link ctx} dirty.
301
301
  */
302
- protected drawWidgetShape(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
302
+ protected drawWidgetShape(ctx: CanvasRenderingContext2D, { width, showText, suppressPromotedOutline }: DrawWidgetOptions): void;
303
303
  /**
304
304
  * Draws a placeholder for widgets that only have a Vue implementation.
305
305
  * @param ctx The canvas context
306
306
  * @param options The options for drawing the widget
307
307
  * @param label The label to display (e.g., "ImageCrop", "BoundingBox")
308
308
  */
309
- protected drawVueOnlyWarning(ctx: CanvasRenderingContext2D, { width }: DrawWidgetOptions, label: string): void;
309
+ protected drawVueOnlyWarning(ctx: CanvasRenderingContext2D, { width, suppressPromotedOutline }: DrawWidgetOptions, label: string): void;
310
310
  /**
311
311
  * A shared routine for drawing a label and value as text, truncated
312
312
  * if they exceed the available width.
@@ -343,7 +343,7 @@ declare type BasicReadonlyNetwork = Pick<ReadonlyLinkNetwork, 'getNodeById' | 'l
343
343
 
344
344
  declare class BooleanWidget extends BaseWidget<IBooleanWidget> implements IBooleanWidget {
345
345
  type: "toggle";
346
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
346
+ drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
347
347
  drawLabel(ctx: CanvasRenderingContext2D, x: number): void;
348
348
  drawValue(ctx: CanvasRenderingContext2D, x: number): void;
349
349
  onClick(options: WidgetEventOptions): void;
@@ -377,7 +377,7 @@ declare class ButtonWidget extends BaseWidget<IButtonWidget> implements IButtonW
377
377
  * @param ctx The canvas context
378
378
  * @param options The options for drawing the widget
379
379
  */
380
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
380
+ drawWidget(ctx: CanvasRenderingContext2D, { width, showText, suppressPromotedOutline }: DrawWidgetOptions): void;
381
381
  drawLabel(ctx: CanvasRenderingContext2D, x: number): void;
382
382
  onClick({ e, node, canvas }: WidgetEventOptions): void;
383
383
  }
@@ -743,6 +743,11 @@ declare interface ColorOption {
743
743
  groupcolor: string;
744
744
  }
745
745
 
746
+ declare interface ColorStop {
747
+ readonly offset: number;
748
+ readonly color: readonly [r: number, g: number, b: number];
749
+ }
750
+
746
751
  /**
747
752
  * Widget for displaying a color picker using native HTML color input
748
753
  */
@@ -812,7 +817,7 @@ export declare class ComfyApi extends EventTarget {
812
817
  /**
813
818
  * Feature flags received from the backend server.
814
819
  */
815
- serverFeatureFlags: Record<string, unknown>;
820
+ serverFeatureFlags: Ref<Record<string, unknown>, Record<string, unknown>>;
816
821
  /**
817
822
  * The auth token for the comfy org account if the user is logged in.
818
823
  * This is only used for {@link queuePrompt} now. It is not directly
@@ -847,6 +852,8 @@ export declare class ComfyApi extends EventTarget {
847
852
  */
848
853
  private waitForAuthInitialization;
849
854
  fetchApi(route: string, options?: RequestInit): Promise<Response>;
855
+ addCustomEventListener(type: string, callback: ((event: CustomEvent<unknown>) => void) | null, options?: AddEventListenerOptions | boolean): void;
856
+ removeCustomEventListener(type: string, callback: ((event: CustomEvent<unknown>) => void) | null, options?: EventListenerOptions | boolean): void;
850
857
  /**
851
858
  * Dispatches a custom event.
852
859
  * Provides type safety for the contravariance issue with EventTarget (last checked TS 5.6).
@@ -950,7 +957,7 @@ export declare class ComfyApi extends EventTarget {
950
957
  }): Promise<JobListItem[]>;
951
958
  /**
952
959
  * Gets detailed job info including outputs and workflow
953
- * @param jobId The job/prompt ID
960
+ * @param jobId The job ID
954
961
  * @returns Full job details or undefined if not found
955
962
  */
956
963
  getJobDetail(jobId: string): Promise<JobDetail | undefined>;
@@ -977,11 +984,11 @@ export declare class ComfyApi extends EventTarget {
977
984
  */
978
985
  clearItems(type: string): Promise<void>;
979
986
  /**
980
- * Interrupts the execution of the running prompt. If runningPromptId is provided,
987
+ * Interrupts the execution of the running job. If runningJobId is provided,
981
988
  * it is included in the payload as a helpful hint to the backend.
982
- * @param {string | null} [runningPromptId] Optional Running Prompt ID to interrupt
989
+ * @param {string | null} [runningJobId] Optional Running Job ID to interrupt
983
990
  */
984
- interrupt(runningPromptId: string | null): Promise<void>;
991
+ interrupt(runningJobId: string | null): Promise<void>;
985
992
  /**
986
993
  * Gets user configuration data and where data should be stored
987
994
  */
@@ -1083,6 +1090,7 @@ export declare class ComfyApp {
1083
1090
  * List of entries to queue
1084
1091
  */
1085
1092
  private queueItems;
1093
+ private nextQueueRequestId;
1086
1094
  /**
1087
1095
  * If the queue is currently being processed
1088
1096
  */
@@ -1123,12 +1131,12 @@ export declare class ComfyApp {
1123
1131
  private positionConversion?;
1124
1132
  /**
1125
1133
  * The node errors from the previous execution.
1126
- * @deprecated Use useExecutionStore().lastNodeErrors instead
1134
+ * @deprecated Use app.extensionManager.lastNodeErrors instead
1127
1135
  */
1128
1136
  get lastNodeErrors(): Record<NodeId_2, NodeError> | null;
1129
1137
  /**
1130
1138
  * The error from the previous execution.
1131
- * @deprecated Use useExecutionStore().lastExecutionError instead
1139
+ * @deprecated Use app.extensionManager.lastExecutionError instead
1132
1140
  */
1133
1141
  get lastExecutionError(): ExecutionErrorWsMessage | null;
1134
1142
  /**
@@ -1313,12 +1321,12 @@ export declare class ComfyApp {
1313
1321
  }[];
1314
1322
  }): void;
1315
1323
  private showMissingNodesError;
1316
- private showMissingModelsError;
1317
1324
  loadGraphData(graphData?: ComfyWorkflowJSON, clean?: boolean, restore_view?: boolean, workflow?: string | null | ComfyWorkflow, options?: {
1318
1325
  showMissingNodesDialog?: boolean;
1319
1326
  showMissingModelsDialog?: boolean;
1320
1327
  checkForRerouteMigration?: boolean;
1321
1328
  openSource?: WorkflowOpenSource;
1329
+ deferWarnings?: boolean;
1322
1330
  }): Promise<void>;
1323
1331
  graphToPrompt(graph?: LGraph): Promise<{
1324
1332
  workflow: ComfyWorkflowJSON;
@@ -1330,7 +1338,22 @@ export declare class ComfyApp {
1330
1338
  * Loads workflow data from the specified file
1331
1339
  * @param {File} file
1332
1340
  */
1333
- handleFile(file: File, openSource?: WorkflowOpenSource): Promise<void>;
1341
+ handleFile(file: File, openSource?: WorkflowOpenSource, options?: {
1342
+ deferWarnings?: boolean;
1343
+ }): Promise<void>;
1344
+ /**
1345
+ * Loads multiple files, connects to a batch node, and selects them
1346
+ * @param {FileList} fileList
1347
+ */
1348
+ handleFileList(fileList: File[]): Promise<void>;
1349
+ handleAudioFileList(fileList: File[]): Promise<void>;
1350
+ /**
1351
+ * Positions batched nodes in drag and drop
1352
+ * @param nodes
1353
+ * @param batchNode
1354
+ */
1355
+ positionNodes(nodes: LGraphNode[]): void;
1356
+ positionBatchNodes(nodes: LGraphNode[], batchNode: LGraphNode): void;
1334
1357
  isApiJson(data: unknown): data is ComfyApiWorkflow;
1335
1358
  loadApiJson(apiData: ComfyApiWorkflow, fileName: string): void;
1336
1359
  /**
@@ -1584,7 +1607,7 @@ export declare class ComfyApp {
1584
1607
  * This is an experimental API and may be changed or removed in the future.
1585
1608
  */
1586
1609
  onAuthUserLogout?(): Promise<void> | void;
1587
- [key: string]: any;
1610
+ [key: string]: unknown;
1588
1611
  }
1589
1612
 
1590
1613
  declare class ComfyList {
@@ -2042,6 +2065,7 @@ export declare class ComfyApp {
2042
2065
  'Comfy.Group.DoubleClickTitleToEdit'?: boolean | undefined;
2043
2066
  'Comfy.GroupSelectedNodes.Padding'?: number | undefined;
2044
2067
  'Comfy.Locale'?: string | undefined;
2068
+ 'Comfy.NodeLibrary.NewDesign'?: boolean | undefined;
2045
2069
  'Comfy.NodeLibrary.Bookmarks'?: string[] | undefined;
2046
2070
  'Comfy.NodeLibrary.Bookmarks.V2'?: string[] | undefined;
2047
2071
  'Comfy.NodeLibrary.BookmarksCustomization'?: Record<string, {
@@ -2053,7 +2077,7 @@ export declare class ComfyApp {
2053
2077
  'Comfy.ModelLibrary.AutoLoadAll'?: boolean | undefined;
2054
2078
  'Comfy.ModelLibrary.NameFormat'?: "title" | "filename" | undefined;
2055
2079
  'Comfy.NodeSearchBoxImpl.NodePreview'?: boolean | undefined;
2056
- 'Comfy.NodeSearchBoxImpl'?: "default" | "simple" | undefined;
2080
+ 'Comfy.NodeSearchBoxImpl'?: "default" | "v1 (legacy)" | "litegraph (legacy)" | undefined;
2057
2081
  'Comfy.NodeSearchBoxImpl.ShowCategory'?: boolean | undefined;
2058
2082
  'Comfy.NodeSearchBoxImpl.ShowIdName'?: boolean | undefined;
2059
2083
  'Comfy.NodeSearchBoxImpl.ShowNodeFrequency'?: boolean | undefined;
@@ -2181,6 +2205,7 @@ export declare class ComfyApp {
2181
2205
  'LiteGraph.Pointer.TrackpadGestures'?: boolean | undefined;
2182
2206
  'Comfy.VersionCompatibility.DisableWarnings'?: boolean | undefined;
2183
2207
  'Comfy.RightSidePanel.IsOpen'?: boolean | undefined;
2208
+ 'Comfy.RightSidePanel.ShowErrorsTab'?: boolean | undefined;
2184
2209
  'Comfy.Node.AlwaysShowAdvancedWidgets'?: boolean | undefined;
2185
2210
  'Comfy.Canvas.BackgroundImage'?: string | undefined;
2186
2211
  'test.setting'?: any;
@@ -2190,11 +2215,11 @@ export declare class ComfyApp {
2190
2215
  /**
2191
2216
  * @deprecated Use `settingStore.settingsById` instead.
2192
2217
  */
2193
- get settingsLookup(): Record<string, SettingParams<any>>;
2218
+ get settingsLookup(): Record<string, SettingParams<unknown>>;
2194
2219
  /**
2195
2220
  * @deprecated Use `settingStore.settingsById` instead.
2196
2221
  */
2197
- get settingsParamLookup(): Record<string, SettingParams<any>>;
2222
+ get settingsParamLookup(): Record<string, SettingParams<unknown>>;
2198
2223
  /**
2199
2224
  * @deprecated Use `settingStore.get` instead.
2200
2225
  */
@@ -2272,6 +2297,10 @@ export declare class ComfyApp {
2272
2297
  * Whether the workflow has been modified comparing to the initial state.
2273
2298
  */
2274
2299
  _isModified: boolean;
2300
+ /**
2301
+ * Warnings deferred from load time, shown when the workflow is first focused.
2302
+ */
2303
+ pendingWarnings: PendingWarnings | null;
2275
2304
  /**
2276
2305
  * @param options The path, modified, and size of the workflow.
2277
2306
  * Note: path is the full path, including the 'workflows/' prefix.
@@ -2466,6 +2495,14 @@ export declare class ComfyApp {
2466
2495
  getCloserPoint(pos: Point, max_dist: number): number;
2467
2496
  }
2468
2497
 
2498
+ declare type CurvePoint = [x: number, y: number];
2499
+
2500
+ declare class CurveWidget extends BaseWidget<ICurveWidget> implements ICurveWidget {
2501
+ type: "curve";
2502
+ drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
2503
+ onClick(_options: WidgetEventOptions): void;
2504
+ }
2505
+
2469
2506
  declare type CustomBottomPanelExtension = BaseBottomPanelExtension & CustomExtension;
2470
2507
 
2471
2508
  /**
@@ -2560,43 +2597,9 @@ export declare class ComfyApp {
2560
2597
  */
2561
2598
  declare function distance(a: Readonly<Point>, b: Readonly<Point>): number;
2562
2599
 
2563
- /**
2564
- * A DOM widget that wraps a custom HTML element as a litegraph widget.
2565
- */
2566
- export declare interface DOMWidget<T extends HTMLElement, V extends object | string> extends BaseDOMWidget<V> {
2567
- element: T;
2568
- /**
2569
- * @deprecated Legacy property used by some extensions for customtext
2570
- * (textarea) widgets. Use {@link element} instead as it provides the same
2571
- * functionality and works for all DOMWidget types.
2572
- */
2573
- inputEl?: T;
2574
- }
2600
+ export { DOMWidget }
2575
2601
 
2576
- export declare interface DOMWidgetOptions<V extends object | string> extends IWidgetOptions {
2577
- /**
2578
- * Whether to render a placeholder rectangle when zoomed out.
2579
- */
2580
- hideOnZoom?: boolean;
2581
- selectOn?: string[];
2582
- onHide?: (widget: BaseDOMWidget<V>) => void;
2583
- getValue?: () => V;
2584
- setValue?: (value: V) => void;
2585
- getMinHeight?: () => number;
2586
- getMaxHeight?: () => number;
2587
- getHeight?: () => string | number;
2588
- onDraw?: (widget: BaseDOMWidget<V>) => void;
2589
- margin?: number;
2590
- /**
2591
- * @deprecated Use `afterResize` instead. This callback is a legacy API
2592
- * that fires before resize happens, but it is no longer supported. Now it
2593
- * fires after resize happens.
2594
- * The resize logic has been upstreamed to litegraph in
2595
- * https://github.com/Comfy-Org/ComfyUI_frontend/pull/2557
2596
- */
2597
- beforeResize?: (this: BaseDOMWidget<V>, node: LGraphNode) => void;
2598
- afterResize?: (this: BaseDOMWidget<V>, node: LGraphNode) => void;
2599
- }
2602
+ export { DOMWidgetOptions }
2600
2603
 
2601
2604
  declare class DragAndScale {
2602
2605
  /**
@@ -2696,6 +2699,8 @@ export declare class ComfyApp {
2696
2699
  width: number;
2697
2700
  /** Synonym for "low quality". */
2698
2701
  showText?: boolean;
2702
+ /** When true, suppresses the promoted outline color (e.g. for projected copies on SubgraphNode). */
2703
+ suppressPromotedOutline?: boolean;
2699
2704
  }
2700
2705
 
2701
2706
  declare interface DrawWidgetsOptions {
@@ -2846,6 +2851,10 @@ export declare class ComfyApp {
2846
2851
  declare interface ExportedSubgraph extends SerialisableGraph {
2847
2852
  /** The display name of the subgraph. */
2848
2853
  name: string;
2854
+ /** Optional category for organizing subgraph blueprints in the node library. */
2855
+ category?: string;
2856
+ /** Optional description shown as tooltip when hovering over the subgraph node. */
2857
+ description?: string;
2849
2858
  inputNode: ExportedSubgraphIONode;
2850
2859
  outputNode: ExportedSubgraphIONode;
2851
2860
  /** Ordered list of inputs to the subgraph itself. Similar to a reroute, with the input side in the graph, and the output side in the subgraph. */
@@ -2892,6 +2901,8 @@ export declare class ComfyApp {
2892
2901
  get: <T = unknown>(id: string) => T | undefined;
2893
2902
  set: <T = unknown>(id: string, value: T) => void;
2894
2903
  };
2904
+ lastNodeErrors: Record<NodeId_2, NodeError> | null;
2905
+ lastExecutionError: ExecutionErrorWsMessage | null;
2895
2906
  }
2896
2907
 
2897
2908
  export declare type ExtensionsResponse = z.infer<typeof zExtensionsResponse>;
@@ -2982,9 +2993,15 @@ export declare class ComfyApp {
2982
2993
  /** Dictionary of Frontend-generated API calls */
2983
2994
  declare interface FrontendApiCalls {
2984
2995
  graphChanged: ComfyWorkflowJSON;
2996
+ promptQueueing: {
2997
+ requestId: number;
2998
+ batchCount: number;
2999
+ number?: number;
3000
+ };
2985
3001
  promptQueued: {
2986
3002
  number: number;
2987
3003
  batchCount: number;
3004
+ requestId?: number;
2988
3005
  };
2989
3006
  graphCleared: never;
2990
3007
  reconnecting: never;
@@ -3007,10 +3024,20 @@ export declare class ComfyApp {
3007
3024
  node_pack: string;
3008
3025
  category?: string;
3009
3026
  search_aliases?: string[];
3027
+ requiresCustomNodes?: string[];
3028
+ includeOnDistributions?: TemplateIncludeOnDistributionEnum[];
3010
3029
  };
3011
3030
  data: string | Promise<string>;
3031
+ essentials_category?: string;
3012
3032
  };
3013
3033
 
3034
+ declare class GradientSliderWidget extends BaseWidget<IGradientSliderWidget> implements IGradientSliderWidget {
3035
+ type: "gradientslider";
3036
+ drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
3037
+ onClick(options: WidgetEventOptions): void;
3038
+ onDrag(options: WidgetEventOptions): false | undefined;
3039
+ }
3040
+
3014
3041
  /** Options for {@link LGraph.add} method. */
3015
3042
  declare interface GraphAddOptions {
3016
3043
  /** If true, skip recomputing execution order after adding the node. */
@@ -3089,7 +3116,7 @@ export declare class ComfyApp {
3089
3116
  * @template TOptions The options for this widget.
3090
3117
  * @see IWidget
3091
3118
  */
3092
- declare interface IBaseWidget<TValue = boolean | number | string | object | undefined, TType extends string = string, TOptions extends IWidgetOptions<unknown> = IWidgetOptions<unknown>> {
3119
+ declare interface IBaseWidget<TValue = boolean | number | string | object | undefined, TType extends string = string, TOptions extends IWidgetOptions = IWidgetOptions> {
3093
3120
  [symbol: symbol]: boolean;
3094
3121
  linkedWidgets?: IBaseWidget[];
3095
3122
  name: string;
@@ -3100,8 +3127,15 @@ export declare class ComfyApp {
3100
3127
  value?: TValue;
3101
3128
  vueTrack?: () => void;
3102
3129
  /**
3103
- * Whether the widget value should be serialized on node serialization.
3130
+ * Whether the widget value is persisted in the workflow JSON
3131
+ * (`widgets_values`). Checked by {@link LGraphNode.serialize} and
3132
+ * {@link LGraphNode.configure}.
3133
+ *
3134
+ * This is distinct from {@link IWidgetOptions.serialize}, which controls
3135
+ * whether the value is included in the API prompt sent for execution.
3136
+ *
3104
3137
  * @default true
3138
+ * @see IWidgetOptions.serialize — API prompt inclusion
3105
3139
  */
3106
3140
  serialize?: boolean;
3107
3141
  /**
@@ -3136,13 +3170,6 @@ export declare class ComfyApp {
3136
3170
  computedDisabled?: boolean;
3137
3171
  hidden?: boolean;
3138
3172
  advanced?: boolean;
3139
- /**
3140
- * This property is automatically computed on graph change
3141
- * and should not be changed.
3142
- * Promoted widgets have a colored border
3143
- * @see /core/graph/subgraph/proxyWidget.registerProxyWidgets
3144
- */
3145
- promoted?: boolean;
3146
3173
  tooltip?: string;
3147
3174
  callback?(value: unknown, canvas?: LGraphCanvas, node?: LGraphNode, pos?: Point, e?: CanvasPointerEvent): void;
3148
3175
  /**
@@ -3340,6 +3367,11 @@ export declare class ComfyApp {
3340
3367
  height?: number | string;
3341
3368
  }
3342
3369
 
3370
+ declare interface ICurveWidget extends IBaseWidget<CurvePoint[], 'curve'> {
3371
+ type: 'curve';
3372
+ value: CurvePoint[];
3373
+ }
3374
+
3343
3375
  /**
3344
3376
  * Has strongly-typed overrides of {@link EventTarget.addEventListener} and {@link EventTarget.removeEventListener}.
3345
3377
  */
@@ -3415,6 +3447,11 @@ export declare class ComfyApp {
3415
3447
  value: string[];
3416
3448
  }
3417
3449
 
3450
+ declare interface IGradientSliderWidget extends IBaseWidget<number, 'gradientslider', IWidgetGradientSliderOptions> {
3451
+ type: 'gradientslider';
3452
+ value: number;
3453
+ }
3454
+
3418
3455
  declare interface IGraphGroupFlags extends Record<string, unknown> {
3419
3456
  pinned?: true;
3420
3457
  }
@@ -3835,12 +3872,19 @@ export declare class ComfyApp {
3835
3872
  * Recommend declaration merging any properties that use IWidget (e.g. {@link LGraphNode.widgets}) with a new type alias.
3836
3873
  * @see ICustomWidget
3837
3874
  */
3838
- declare type IWidget = IBooleanWidget | INumericWidget | IStringWidget | IComboWidget | IStringComboWidget | ICustomWidget | ISliderWidget | IButtonWidget | IKnobWidget | IFileUploadWidget | IColorWidget | IMarkdownWidget | IImageWidget | ITreeSelectWidget | IMultiSelectWidget | IChartWidget | IGalleriaWidget | IImageCompareWidget | ISelectButtonWidget | ITextareaWidget | IAssetWidget | IImageCropWidget | IBoundingBoxWidget;
3875
+ declare type IWidget = IBooleanWidget | INumericWidget | IStringWidget | IComboWidget | IStringComboWidget | ICustomWidget | ISliderWidget | IGradientSliderWidget | IButtonWidget | IKnobWidget | IFileUploadWidget | IColorWidget | IMarkdownWidget | IImageWidget | ITreeSelectWidget | IMultiSelectWidget | IChartWidget | IGalleriaWidget | IImageCompareWidget | ISelectButtonWidget | ITextareaWidget | IAssetWidget | IImageCropWidget | IBoundingBoxWidget | ICurveWidget;
3839
3876
 
3840
3877
  declare interface IWidgetAssetOptions extends IWidgetOptions {
3841
3878
  openModal: (widget: IBaseWidget) => void;
3842
3879
  }
3843
3880
 
3881
+ declare interface IWidgetGradientSliderOptions extends IWidgetOptions<number[]> {
3882
+ min: number;
3883
+ max: number;
3884
+ step2: number;
3885
+ gradient_stops?: ColorStop[];
3886
+ }
3887
+
3844
3888
  declare interface IWidgetKnobOptions extends IWidgetOptions<number[]> {
3845
3889
  min: number;
3846
3890
  max: number;
@@ -3861,7 +3905,7 @@ export declare class ComfyApp {
3861
3905
  type?: string;
3862
3906
  }
3863
3907
 
3864
- declare interface IWidgetOptions<TValues = unknown[]> {
3908
+ declare interface IWidgetOptions<TValues = unknown> {
3865
3909
  on?: string;
3866
3910
  off?: string;
3867
3911
  max?: number;
@@ -3886,6 +3930,18 @@ export declare class ComfyApp {
3886
3930
  canvasOnly?: boolean;
3887
3931
  /** Used as a temporary override for determining the asset type in vue mode*/
3888
3932
  nodeType?: string;
3933
+ /**
3934
+ * Whether the widget value should be included in the API prompt sent to
3935
+ * the backend for execution. Checked by {@link executionUtil} when
3936
+ * building the prompt payload.
3937
+ *
3938
+ * This is distinct from {@link IBaseWidget.serialize}, which controls
3939
+ * whether the value is persisted in the workflow JSON file.
3940
+ *
3941
+ * @default true
3942
+ * @see IBaseWidget.serialize — workflow persistence
3943
+ */
3944
+ serialize?: boolean;
3889
3945
  values?: TValues;
3890
3946
  /** Optional function to format values for display (e.g., hash → human-readable name) */
3891
3947
  getOptionLabel?: (value?: string | null) => string;
@@ -3934,7 +3990,7 @@ export declare class ComfyApp {
3934
3990
  maxWidth?: number;
3935
3991
  };
3936
3992
  get height(): number;
3937
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
3993
+ drawWidget(ctx: CanvasRenderingContext2D, { width, showText, suppressPromotedOutline }: DrawWidgetOptions): void;
3938
3994
  onClick(): void;
3939
3995
  current_drag_offset: number;
3940
3996
  onDrag(options: WidgetEventOptions): void;
@@ -3973,7 +4029,6 @@ export declare class ComfyApp {
3973
4029
  static serialisedSchemaVersion: 1;
3974
4030
  static STATUS_STOPPED: number;
3975
4031
  static STATUS_RUNNING: number;
3976
- static deduplicateSubgraphIds: boolean;
3977
4032
  /** List of LGraph properties that are manually handled by {@link LGraph.configure}. */
3978
4033
  static readonly ConfigureProperties: Set<string>;
3979
4034
  id: UUID;
@@ -4158,7 +4213,7 @@ export declare class ComfyApp {
4158
4213
  * @param skipComputeOrder If true, skip recomputing execution order
4159
4214
  * @deprecated Use options object instead
4160
4215
  */
4161
- add(node: LGraphNode | LGraphGroup, skipComputeOrder?: boolean): LGraphNode | null | undefined;
4216
+ add(node: LGraphNode | LGraphGroup | null, skipComputeOrder?: boolean): LGraphNode | null | undefined;
4162
4217
  /**
4163
4218
  * Removes a node from the graph
4164
4219
  * @param node the instance of the node
@@ -5197,7 +5252,7 @@ export declare class ComfyApp {
5197
5252
  showShowNodePanel(node: LGraphNode): void;
5198
5253
  checkPanels(): void;
5199
5254
  getCanvasMenuOptions(): (IContextMenuValue | null)[];
5200
- getNodeMenuOptions(node: LGraphNode): (IContextMenuValue<INodeSlotContextItem, unknown, unknown> | IContextMenuValue<string, unknown, unknown> | IContextMenuValue<string | null, unknown, unknown> | IContextMenuValue<"round" | "default" | "box" | "card", unknown, unknown> | IContextMenuValue<unknown, LGraphNode, unknown> | null)[];
5255
+ getNodeMenuOptions(node: LGraphNode): (IContextMenuValue<INodeSlotContextItem, unknown, unknown> | IContextMenuValue<string, unknown, unknown> | IContextMenuValue<string | null, unknown, unknown> | IContextMenuValue<unknown, LGraphNode, unknown> | IContextMenuValue<"round" | "default" | "box" | "card", unknown, unknown> | null)[];
5201
5256
  /** @deprecated */
5202
5257
  getGroupMenuOptions(group: LGraphGroup): (IContextMenuValue<string, unknown, unknown> | IContextMenuValue<string | null, unknown, unknown> | null)[];
5203
5258
  processContextMenu(node: LGraphNode | undefined, event: CanvasPointerEvent): void;
@@ -5219,10 +5274,6 @@ export declare class ComfyApp {
5219
5274
  * Apply batched node position updates
5220
5275
  */
5221
5276
  private applyNodePositionUpdates;
5222
- /**
5223
- * Initialize layout mutations with Canvas source
5224
- */
5225
- private initLayoutMutations;
5226
5277
  /**
5227
5278
  * Collect all nodes that are children of groups in the selection
5228
5279
  */
@@ -5649,6 +5700,10 @@ export declare class ComfyApp {
5649
5700
  get pos(): Point;
5650
5701
  /** Node position does not necessarily correlate to the top-left corner. */
5651
5702
  set pos(value: Point);
5703
+ /**
5704
+ * Set the node position to an absolute location.
5705
+ */
5706
+ setPos(x: number, y: number): void;
5652
5707
  get size(): Size;
5653
5708
  set size(value: Size);
5654
5709
  /**
@@ -6309,6 +6364,15 @@ export declare class ComfyApp {
6309
6364
  * Returns `true` if the widget is visible, otherwise `false`.
6310
6365
  */
6311
6366
  isWidgetVisible(widget: IBaseWidget): boolean;
6367
+ /**
6368
+ * Returns all widgets that should participate in layout calculations.
6369
+ * Filters out hidden widgets only (not collapsed/advanced).
6370
+ */
6371
+ getLayoutWidgets(): IBaseWidget[];
6372
+ /**
6373
+ * Returns `true` if the node has any advanced widgets.
6374
+ */
6375
+ hasAdvancedWidgets(): boolean;
6312
6376
  updateComputedDisabled(): void;
6313
6377
  drawWidgets(ctx: CanvasRenderingContext2D, { lowQuality, editorAlpha }: DrawWidgetsOptions): void;
6314
6378
  /**
@@ -6474,7 +6538,9 @@ export declare class ComfyApp {
6474
6538
  get isConnecting(): boolean;
6475
6539
  get draggingExistingLinks(): boolean;
6476
6540
  /** Drag an existing link to a different input. */
6477
- moveInputLink(network: LinkNetwork, input: INodeInputSlot): void;
6541
+ moveInputLink(network: LinkNetwork, input: INodeInputSlot, opts?: {
6542
+ startPoint?: Point;
6543
+ }): void;
6478
6544
  /** Drag all links from an output to a new output. */
6479
6545
  moveOutputLink(network: LinkNetwork, output: INodeOutputSlot): void;
6480
6546
  /**
@@ -7352,7 +7418,9 @@ export declare class ComfyApp {
7352
7418
  readonly fromPos: Point;
7353
7419
  readonly fromDirection: LinkDirection;
7354
7420
  readonly fromSlotIndex: number;
7355
- constructor(network: LinkNetwork, link: LLink, fromReroute?: Reroute, dragDirection?: LinkDirection);
7421
+ disconnectOnDrop: boolean;
7422
+ readonly disconnectOrigin: Point;
7423
+ constructor(network: LinkNetwork, link: LLink, fromReroute?: Reroute, dragDirection?: LinkDirection, startPoint?: Point);
7356
7424
  canConnectToInput(inputNode: NodeLike, input: INodeInputSlot | SubgraphIO): boolean;
7357
7425
  canConnectToOutput(): false;
7358
7426
  canConnectToReroute(reroute: Reroute): boolean;
@@ -7367,6 +7435,7 @@ export declare class ComfyApp {
7367
7435
  }, events: CustomEventTarget<LinkConnectorEventMap>, originalReroutes: Reroute[]): void;
7368
7436
  connectToRerouteOutput(): never;
7369
7437
  disconnect(): boolean;
7438
+ drawConnectionCircle(ctx: CanvasRenderingContext2D, to: Readonly<Point>): void;
7370
7439
  }
7371
7440
 
7372
7441
  /**
@@ -7466,6 +7535,10 @@ export declare class ComfyApp {
7466
7535
  };
7467
7536
  }
7468
7537
 
7538
+ declare interface NodeBindable {
7539
+ setNodeId(nodeId: NodeId): void;
7540
+ }
7541
+
7469
7542
  export declare type NodeError = z.infer<typeof zNodeError>;
7470
7543
 
7471
7544
  /**
@@ -7638,7 +7711,7 @@ export declare class ComfyApp {
7638
7711
  callback?: PanelWidgetCallback;
7639
7712
  }
7640
7713
 
7641
- declare type ParamsArray<T extends Record<any, any>, K extends MethodNames<T>> = Parameters<T[K]>[1] extends undefined ? Parameters<T[K]> | Parameters<T[K]>[0] : Parameters<T[K]>;
7714
+ declare type ParamsArray<T, K extends MethodNames<T>> = Parameters<Extract<T[K], (...args: never[]) => unknown>>[1] extends undefined ? Parameters<Extract<T[K], (...args: never[]) => unknown>> | Parameters<Extract<T[K], (...args: never[]) => unknown>>[0] : Parameters<Extract<T[K], (...args: never[]) => unknown>>;
7642
7715
 
7643
7716
  /** An object containing a set of child objects */
7644
7717
  declare interface Parent<TChild> {
@@ -7663,6 +7736,14 @@ export declare class ComfyApp {
7663
7736
  localNodeId: NodeId_2;
7664
7737
  } | null;
7665
7738
 
7739
+ declare interface PendingWarnings {
7740
+ missingNodeTypes?: MissingNodeType[];
7741
+ missingModels?: {
7742
+ missingModels: ModelFile_2[];
7743
+ paths: Record<string, string[]>;
7744
+ };
7745
+ }
7746
+
7666
7747
  /**
7667
7748
  * General-purpose, TypeScript utility types.
7668
7749
  */
@@ -8322,11 +8403,11 @@ export declare class ComfyApp {
8322
8403
  value?: string | number;
8323
8404
  }
8324
8405
 
8325
- declare interface SettingParams<TValue = any> extends FormItem {
8406
+ declare interface SettingParams<TValue = unknown> extends FormItem {
8326
8407
  id: keyof Settings;
8327
8408
  defaultValue: TValue | (() => TValue);
8328
8409
  defaultsByInstallVersion?: Record<`${number}.${number}.${number}`, TValue>;
8329
- onChange?: (newValue: TValue, oldValue?: TValue) => void;
8410
+ onChange?(newValue: TValue, oldValue?: TValue): void;
8330
8411
  category?: string[];
8331
8412
  experimental?: boolean;
8332
8413
  deprecated?: boolean;
@@ -8355,7 +8436,7 @@ export declare class ComfyApp {
8355
8436
  * @param ctx The canvas context
8356
8437
  * @param options The options for drawing the widget
8357
8438
  */
8358
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
8439
+ drawWidget(ctx: CanvasRenderingContext2D, { width, showText, suppressPromotedOutline }: DrawWidgetOptions): void;
8359
8440
  /**
8360
8441
  * Handles click events for the slider widget
8361
8442
  */
@@ -8419,6 +8500,8 @@ export declare class ComfyApp {
8419
8500
  static MAX_NESTED_SUBGRAPHS: number;
8420
8501
  /** The display name of the subgraph. */
8421
8502
  name: string;
8503
+ /** Optional description shown as tooltip when hovering over the subgraph node. */
8504
+ description?: string;
8422
8505
  readonly inputNode: SubgraphInputNode;
8423
8506
  readonly outputNode: SubgraphOutputNode;
8424
8507
  /** Ordered list of inputs to the subgraph itself. Similar to a reroute, with the input side in the graph, and the output side in the subgraph. */
@@ -8557,6 +8640,7 @@ export declare class ComfyApp {
8557
8640
  'input-connected': {
8558
8641
  input: INodeInputSlot;
8559
8642
  widget: IBaseWidget;
8643
+ node: LGraphNode;
8560
8644
  };
8561
8645
  'input-disconnected': {
8562
8646
  input: SubgraphInput;
@@ -8703,7 +8787,10 @@ export declare class ComfyApp {
8703
8787
  get rootGraph(): LGraph;
8704
8788
  get displayType(): string;
8705
8789
  isSubgraphNode(): this is SubgraphNode;
8790
+ private _promotedViewManager;
8706
8791
  widgets: IBaseWidget[];
8792
+ private _getPromotedViews;
8793
+ private _resolveLegacyEntry;
8707
8794
  /** Manages lifecycle of all subgraph event listeners */
8708
8795
  private _eventAbortController;
8709
8796
  constructor(
@@ -8740,6 +8827,9 @@ export declare class ComfyApp {
8740
8827
  */
8741
8828
  resolveSubgraphOutputLink(slot: number): ResolvedConnection | undefined;
8742
8829
  /* Excluded from this release type: getInnerNodes */
8830
+ /** Clear the DOM position override for a promoted view's interior widget. */
8831
+ private _clearDomOverrideForView;
8832
+ removeWidget(widget: IBaseWidget): void;
8743
8833
  removeWidgetByName(name: string): void;
8744
8834
  ensureWidgetRemoved(widget: IBaseWidget): void;
8745
8835
  onRemoved(): void;
@@ -8930,7 +9020,7 @@ export declare class ComfyApp {
8930
9020
  * @param ctx The canvas context
8931
9021
  * @param options The options for drawing the widget
8932
9022
  */
8933
- drawWidget(ctx: CanvasRenderingContext2D, { width, showText }: DrawWidgetOptions): void;
9023
+ drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
8934
9024
  onClick({ e, node, canvas }: WidgetEventOptions): void;
8935
9025
  }
8936
9026
 
@@ -9245,6 +9335,7 @@ export declare class ComfyApp {
9245
9335
  button: ButtonWidget;
9246
9336
  toggle: BooleanWidget;
9247
9337
  slider: SliderWidget;
9338
+ gradientslider: GradientSliderWidget;
9248
9339
  knob: KnobWidget;
9249
9340
  combo: ComboWidget;
9250
9341
  number: NumberWidget;
@@ -9264,6 +9355,7 @@ export declare class ComfyApp {
9264
9355
  asset: AssetWidget;
9265
9356
  imagecrop: ImageCropWidget;
9266
9357
  boundingbox: BoundingBoxWidget;
9358
+ curve: CurveWidget;
9267
9359
  [key: string]: BaseWidget;
9268
9360
  };
9269
9361
 
@@ -9311,22 +9403,57 @@ export declare class ComfyApp {
9311
9403
  status: "running" | "completed" | "failed" | "created";
9312
9404
  progress: number;
9313
9405
  task_id: string;
9406
+ bytes_downloaded: number;
9314
9407
  asset_name: string;
9315
9408
  bytes_total: number;
9316
- bytes_downloaded: number;
9317
9409
  error?: string | undefined;
9318
9410
  asset_id?: string | undefined;
9319
9411
  }, {
9320
9412
  status: "running" | "completed" | "failed" | "created";
9321
9413
  progress: number;
9322
9414
  task_id: string;
9415
+ bytes_downloaded: number;
9323
9416
  asset_name: string;
9324
9417
  bytes_total: number;
9325
- bytes_downloaded: number;
9326
9418
  error?: string | undefined;
9327
9419
  asset_id?: string | undefined;
9328
9420
  }>;
9329
9421
 
9422
+ declare const zAssetExportWsMessage: z.ZodObject<{
9423
+ task_id: z.ZodString;
9424
+ export_name: z.ZodOptional<z.ZodString>;
9425
+ assets_total: z.ZodNumber;
9426
+ assets_attempted: z.ZodNumber;
9427
+ assets_failed: z.ZodNumber;
9428
+ bytes_total: z.ZodNumber;
9429
+ bytes_processed: z.ZodNumber;
9430
+ progress: z.ZodNumber;
9431
+ status: z.ZodEnum<["created", "running", "completed", "failed"]>;
9432
+ error: z.ZodOptional<z.ZodString>;
9433
+ }, "strip", z.ZodTypeAny, {
9434
+ status: "running" | "completed" | "failed" | "created";
9435
+ progress: number;
9436
+ task_id: string;
9437
+ bytes_total: number;
9438
+ assets_total: number;
9439
+ assets_attempted: number;
9440
+ assets_failed: number;
9441
+ bytes_processed: number;
9442
+ error?: string | undefined;
9443
+ export_name?: string | undefined;
9444
+ }, {
9445
+ status: "running" | "completed" | "failed" | "created";
9446
+ progress: number;
9447
+ task_id: string;
9448
+ bytes_total: number;
9449
+ assets_total: number;
9450
+ assets_attempted: number;
9451
+ assets_failed: number;
9452
+ bytes_processed: number;
9453
+ error?: string | undefined;
9454
+ export_name?: string | undefined;
9455
+ }>;
9456
+
9330
9457
  declare const zComfyNodeDef: z.ZodObject<{
9331
9458
  input: z.ZodOptional<z.ZodObject<{
9332
9459
  required: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodTuple<[z.ZodLiteral<"INT">, z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
@@ -9348,7 +9475,7 @@ export declare class ComfyApp {
9348
9475
  step: z.ZodOptional<z.ZodNumber>;
9349
9476
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9350
9477
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9351
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9478
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9352
9479
  }>, {
9353
9480
  /**
9354
9481
  * If true, a linked widget will be added to the node to select the mode
@@ -9374,7 +9501,7 @@ export declare class ComfyApp {
9374
9501
  step: z.ZodOptional<z.ZodNumber>;
9375
9502
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9376
9503
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9377
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9504
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9378
9505
  }>, {
9379
9506
  /**
9380
9507
  * If true, a linked widget will be added to the node to select the mode
@@ -9400,7 +9527,7 @@ export declare class ComfyApp {
9400
9527
  step: z.ZodOptional<z.ZodNumber>;
9401
9528
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9402
9529
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9403
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9530
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9404
9531
  }>, {
9405
9532
  /**
9406
9533
  * If true, a linked widget will be added to the node to select the mode
@@ -9426,9 +9553,19 @@ export declare class ComfyApp {
9426
9553
  step: z.ZodOptional<z.ZodNumber>;
9427
9554
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9428
9555
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9429
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9556
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9430
9557
  }>, {
9431
9558
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
9559
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
9560
+ offset: z.ZodNumber;
9561
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
9562
+ }, "strip", z.ZodTypeAny, {
9563
+ color: [number, number, number];
9564
+ offset: number;
9565
+ }, {
9566
+ color: [number, number, number];
9567
+ offset: number;
9568
+ }>, "many">>;
9432
9569
  }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
9433
9570
  default: z.ZodOptional<z.ZodAny>;
9434
9571
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -9448,9 +9585,19 @@ export declare class ComfyApp {
9448
9585
  step: z.ZodOptional<z.ZodNumber>;
9449
9586
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9450
9587
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9451
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9588
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9452
9589
  }>, {
9453
9590
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
9591
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
9592
+ offset: z.ZodNumber;
9593
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
9594
+ }, "strip", z.ZodTypeAny, {
9595
+ color: [number, number, number];
9596
+ offset: number;
9597
+ }, {
9598
+ color: [number, number, number];
9599
+ offset: number;
9600
+ }>, "many">>;
9454
9601
  }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
9455
9602
  default: z.ZodOptional<z.ZodAny>;
9456
9603
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -9470,9 +9617,19 @@ export declare class ComfyApp {
9470
9617
  step: z.ZodOptional<z.ZodNumber>;
9471
9618
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
9472
9619
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
9473
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
9620
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
9474
9621
  }>, {
9475
9622
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
9623
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
9624
+ offset: z.ZodNumber;
9625
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
9626
+ }, "strip", z.ZodTypeAny, {
9627
+ color: [number, number, number];
9628
+ offset: number;
9629
+ }, {
9630
+ color: [number, number, number];
9631
+ offset: number;
9632
+ }>, "many">>;
9476
9633
  }>, z.ZodTypeAny, "passthrough">>>], null>, z.ZodTuple<[z.ZodLiteral<"BOOLEAN">, z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
9477
9634
  default: z.ZodOptional<z.ZodAny>;
9478
9635
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -10018,7 +10175,7 @@ export declare class ComfyApp {
10018
10175
  step: z.ZodOptional<z.ZodNumber>;
10019
10176
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10020
10177
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10021
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10178
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10022
10179
  }>, {
10023
10180
  /**
10024
10181
  * If true, a linked widget will be added to the node to select the mode
@@ -10044,7 +10201,7 @@ export declare class ComfyApp {
10044
10201
  step: z.ZodOptional<z.ZodNumber>;
10045
10202
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10046
10203
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10047
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10204
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10048
10205
  }>, {
10049
10206
  /**
10050
10207
  * If true, a linked widget will be added to the node to select the mode
@@ -10070,7 +10227,7 @@ export declare class ComfyApp {
10070
10227
  step: z.ZodOptional<z.ZodNumber>;
10071
10228
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10072
10229
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10073
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10230
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10074
10231
  }>, {
10075
10232
  /**
10076
10233
  * If true, a linked widget will be added to the node to select the mode
@@ -10096,9 +10253,19 @@ export declare class ComfyApp {
10096
10253
  step: z.ZodOptional<z.ZodNumber>;
10097
10254
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10098
10255
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10099
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10256
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10100
10257
  }>, {
10101
10258
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
10259
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
10260
+ offset: z.ZodNumber;
10261
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
10262
+ }, "strip", z.ZodTypeAny, {
10263
+ color: [number, number, number];
10264
+ offset: number;
10265
+ }, {
10266
+ color: [number, number, number];
10267
+ offset: number;
10268
+ }>, "many">>;
10102
10269
  }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
10103
10270
  default: z.ZodOptional<z.ZodAny>;
10104
10271
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -10118,9 +10285,19 @@ export declare class ComfyApp {
10118
10285
  step: z.ZodOptional<z.ZodNumber>;
10119
10286
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10120
10287
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10121
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10288
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10122
10289
  }>, {
10123
10290
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
10291
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
10292
+ offset: z.ZodNumber;
10293
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
10294
+ }, "strip", z.ZodTypeAny, {
10295
+ color: [number, number, number];
10296
+ offset: number;
10297
+ }, {
10298
+ color: [number, number, number];
10299
+ offset: number;
10300
+ }>, "many">>;
10124
10301
  }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
10125
10302
  default: z.ZodOptional<z.ZodAny>;
10126
10303
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -10140,9 +10317,19 @@ export declare class ComfyApp {
10140
10317
  step: z.ZodOptional<z.ZodNumber>;
10141
10318
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10142
10319
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10143
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10320
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10144
10321
  }>, {
10145
10322
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
10323
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
10324
+ offset: z.ZodNumber;
10325
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
10326
+ }, "strip", z.ZodTypeAny, {
10327
+ color: [number, number, number];
10328
+ offset: number;
10329
+ }, {
10330
+ color: [number, number, number];
10331
+ offset: number;
10332
+ }>, "many">>;
10146
10333
  }>, z.ZodTypeAny, "passthrough">>>], null>, z.ZodTuple<[z.ZodLiteral<"BOOLEAN">, z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
10147
10334
  default: z.ZodOptional<z.ZodAny>;
10148
10335
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -10691,7 +10878,7 @@ export declare class ComfyApp {
10691
10878
  step: z.ZodOptional<z.ZodNumber>;
10692
10879
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10693
10880
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10694
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10881
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10695
10882
  }>, {
10696
10883
  /**
10697
10884
  * If true, a linked widget will be added to the node to select the mode
@@ -10717,9 +10904,19 @@ export declare class ComfyApp {
10717
10904
  step: z.ZodOptional<z.ZodNumber>;
10718
10905
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10719
10906
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10720
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
10907
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10721
10908
  }>, {
10722
10909
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
10910
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
10911
+ offset: z.ZodNumber;
10912
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
10913
+ }, "strip", z.ZodTypeAny, {
10914
+ color: [number, number, number];
10915
+ offset: number;
10916
+ }, {
10917
+ color: [number, number, number];
10918
+ offset: number;
10919
+ }>, "many">>;
10723
10920
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectOutputType<z.objectUtil.extendShape<{
10724
10921
  default: z.ZodOptional<z.ZodAny>;
10725
10922
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -10915,7 +11112,7 @@ export declare class ComfyApp {
10915
11112
  step: z.ZodOptional<z.ZodNumber>;
10916
11113
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10917
11114
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10918
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11115
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10919
11116
  }>, {
10920
11117
  /**
10921
11118
  * If true, a linked widget will be added to the node to select the mode
@@ -10941,9 +11138,19 @@ export declare class ComfyApp {
10941
11138
  step: z.ZodOptional<z.ZodNumber>;
10942
11139
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
10943
11140
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
10944
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11141
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
10945
11142
  }>, {
10946
11143
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
11144
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
11145
+ offset: z.ZodNumber;
11146
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
11147
+ }, "strip", z.ZodTypeAny, {
11148
+ color: [number, number, number];
11149
+ offset: number;
11150
+ }, {
11151
+ color: [number, number, number];
11152
+ offset: number;
11153
+ }>, "many">>;
10947
11154
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectOutputType<z.objectUtil.extendShape<{
10948
11155
  default: z.ZodOptional<z.ZodAny>;
10949
11156
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -11141,7 +11348,7 @@ export declare class ComfyApp {
11141
11348
  step: z.ZodOptional<z.ZodNumber>;
11142
11349
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11143
11350
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11144
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11351
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11145
11352
  }>, {
11146
11353
  /**
11147
11354
  * If true, a linked widget will be added to the node to select the mode
@@ -11167,9 +11374,19 @@ export declare class ComfyApp {
11167
11374
  step: z.ZodOptional<z.ZodNumber>;
11168
11375
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11169
11376
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11170
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11377
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11171
11378
  }>, {
11172
11379
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
11380
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
11381
+ offset: z.ZodNumber;
11382
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
11383
+ }, "strip", z.ZodTypeAny, {
11384
+ color: [number, number, number];
11385
+ offset: number;
11386
+ }, {
11387
+ color: [number, number, number];
11388
+ offset: number;
11389
+ }>, "many">>;
11173
11390
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectInputType<z.objectUtil.extendShape<{
11174
11391
  default: z.ZodOptional<z.ZodAny>;
11175
11392
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -11365,7 +11582,7 @@ export declare class ComfyApp {
11365
11582
  step: z.ZodOptional<z.ZodNumber>;
11366
11583
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11367
11584
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11368
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11585
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11369
11586
  }>, {
11370
11587
  /**
11371
11588
  * If true, a linked widget will be added to the node to select the mode
@@ -11391,9 +11608,19 @@ export declare class ComfyApp {
11391
11608
  step: z.ZodOptional<z.ZodNumber>;
11392
11609
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11393
11610
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11394
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11611
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11395
11612
  }>, {
11396
11613
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
11614
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
11615
+ offset: z.ZodNumber;
11616
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
11617
+ }, "strip", z.ZodTypeAny, {
11618
+ color: [number, number, number];
11619
+ offset: number;
11620
+ }, {
11621
+ color: [number, number, number];
11622
+ offset: number;
11623
+ }>, "many">>;
11397
11624
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectInputType<z.objectUtil.extendShape<{
11398
11625
  default: z.ZodOptional<z.ZodAny>;
11399
11626
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -11581,6 +11808,7 @@ export declare class ComfyApp {
11581
11808
  description: z.ZodString;
11582
11809
  help: z.ZodOptional<z.ZodString>;
11583
11810
  category: z.ZodString;
11811
+ main_category: z.ZodOptional<z.ZodString>;
11584
11812
  output_node: z.ZodBoolean;
11585
11813
  python_module: z.ZodString;
11586
11814
  deprecated: z.ZodOptional<z.ZodBoolean>;
@@ -11669,10 +11897,14 @@ export declare class ComfyApp {
11669
11897
  input_groups?: string[] | undefined;
11670
11898
  } | undefined;
11671
11899
  }>>;
11900
+ /** Category for the Essentials tab. If set, the node appears in Essentials. */
11901
+ essentials_category: z.ZodOptional<z.ZodString>;
11902
+ /** Whether the blueprint is a global/installed blueprint (not user-created). */
11903
+ isGlobal: z.ZodOptional<z.ZodBoolean>;
11672
11904
  }, "strip", z.ZodTypeAny, {
11673
11905
  name: string;
11674
- category: string;
11675
11906
  description: string;
11907
+ category: string;
11676
11908
  display_name: string;
11677
11909
  output_node: boolean;
11678
11910
  python_module: string;
@@ -11697,7 +11929,7 @@ export declare class ComfyApp {
11697
11929
  step: z.ZodOptional<z.ZodNumber>;
11698
11930
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11699
11931
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11700
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11932
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11701
11933
  }>, {
11702
11934
  /**
11703
11935
  * If true, a linked widget will be added to the node to select the mode
@@ -11723,9 +11955,19 @@ export declare class ComfyApp {
11723
11955
  step: z.ZodOptional<z.ZodNumber>;
11724
11956
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11725
11957
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11726
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
11958
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11727
11959
  }>, {
11728
11960
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
11961
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
11962
+ offset: z.ZodNumber;
11963
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
11964
+ }, "strip", z.ZodTypeAny, {
11965
+ color: [number, number, number];
11966
+ offset: number;
11967
+ }, {
11968
+ color: [number, number, number];
11969
+ offset: number;
11970
+ }>, "many">>;
11729
11971
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectOutputType<z.objectUtil.extendShape<{
11730
11972
  default: z.ZodOptional<z.ZodAny>;
11731
11973
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -11921,7 +12163,7 @@ export declare class ComfyApp {
11921
12163
  step: z.ZodOptional<z.ZodNumber>;
11922
12164
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11923
12165
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11924
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12166
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11925
12167
  }>, {
11926
12168
  /**
11927
12169
  * If true, a linked widget will be added to the node to select the mode
@@ -11947,9 +12189,19 @@ export declare class ComfyApp {
11947
12189
  step: z.ZodOptional<z.ZodNumber>;
11948
12190
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
11949
12191
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
11950
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12192
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
11951
12193
  }>, {
11952
12194
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
12195
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
12196
+ offset: z.ZodNumber;
12197
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12198
+ }, "strip", z.ZodTypeAny, {
12199
+ color: [number, number, number];
12200
+ offset: number;
12201
+ }, {
12202
+ color: [number, number, number];
12203
+ offset: number;
12204
+ }>, "many">>;
11953
12205
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectOutputType<z.objectUtil.extendShape<{
11954
12206
  default: z.ZodOptional<z.ZodAny>;
11955
12207
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -12131,12 +12383,13 @@ export declare class ComfyApp {
12131
12383
  deprecated?: boolean | undefined;
12132
12384
  help?: string | undefined;
12133
12385
  experimental?: boolean | undefined;
12386
+ dev_only?: boolean | undefined;
12387
+ api_node?: boolean | undefined;
12134
12388
  output_is_list?: boolean[] | undefined;
12135
12389
  output_name?: string[] | undefined;
12136
12390
  output_tooltips?: string[] | undefined;
12137
12391
  output_matchtypes?: (string | undefined)[] | undefined;
12138
- dev_only?: boolean | undefined;
12139
- api_node?: boolean | undefined;
12392
+ main_category?: string | undefined;
12140
12393
  input_order?: Record<string, string[]> | undefined;
12141
12394
  search_aliases?: string[] | undefined;
12142
12395
  price_badge?: {
@@ -12151,10 +12404,12 @@ export declare class ComfyApp {
12151
12404
  };
12152
12405
  expr: string;
12153
12406
  } | undefined;
12407
+ essentials_category?: string | undefined;
12408
+ isGlobal?: boolean | undefined;
12154
12409
  }, {
12155
12410
  name: string;
12156
- category: string;
12157
12411
  description: string;
12412
+ category: string;
12158
12413
  display_name: string;
12159
12414
  output_node: boolean;
12160
12415
  python_module: string;
@@ -12179,7 +12434,7 @@ export declare class ComfyApp {
12179
12434
  step: z.ZodOptional<z.ZodNumber>;
12180
12435
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
12181
12436
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
12182
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12437
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
12183
12438
  }>, {
12184
12439
  /**
12185
12440
  * If true, a linked widget will be added to the node to select the mode
@@ -12205,9 +12460,19 @@ export declare class ComfyApp {
12205
12460
  step: z.ZodOptional<z.ZodNumber>;
12206
12461
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
12207
12462
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
12208
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12463
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
12209
12464
  }>, {
12210
12465
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
12466
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
12467
+ offset: z.ZodNumber;
12468
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12469
+ }, "strip", z.ZodTypeAny, {
12470
+ color: [number, number, number];
12471
+ offset: number;
12472
+ }, {
12473
+ color: [number, number, number];
12474
+ offset: number;
12475
+ }>, "many">>;
12211
12476
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectInputType<z.objectUtil.extendShape<{
12212
12477
  default: z.ZodOptional<z.ZodAny>;
12213
12478
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -12403,7 +12668,7 @@ export declare class ComfyApp {
12403
12668
  step: z.ZodOptional<z.ZodNumber>;
12404
12669
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
12405
12670
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
12406
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12671
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
12407
12672
  }>, {
12408
12673
  /**
12409
12674
  * If true, a linked widget will be added to the node to select the mode
@@ -12429,9 +12694,19 @@ export declare class ComfyApp {
12429
12694
  step: z.ZodOptional<z.ZodNumber>;
12430
12695
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
12431
12696
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
12432
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
12697
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
12433
12698
  }>, {
12434
12699
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
12700
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
12701
+ offset: z.ZodNumber;
12702
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
12703
+ }, "strip", z.ZodTypeAny, {
12704
+ color: [number, number, number];
12705
+ offset: number;
12706
+ }, {
12707
+ color: [number, number, number];
12708
+ offset: number;
12709
+ }>, "many">>;
12435
12710
  }>, z.ZodTypeAny, "passthrough"> | undefined] | ["BOOLEAN", z.objectInputType<z.objectUtil.extendShape<{
12436
12711
  default: z.ZodOptional<z.ZodAny>;
12437
12712
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -12613,12 +12888,13 @@ export declare class ComfyApp {
12613
12888
  deprecated?: boolean | undefined;
12614
12889
  help?: string | undefined;
12615
12890
  experimental?: boolean | undefined;
12891
+ dev_only?: boolean | undefined;
12892
+ api_node?: boolean | undefined;
12616
12893
  output_is_list?: boolean[] | undefined;
12617
12894
  output_name?: string[] | undefined;
12618
12895
  output_tooltips?: string[] | undefined;
12619
12896
  output_matchtypes?: (string | undefined)[] | undefined;
12620
- dev_only?: boolean | undefined;
12621
- api_node?: boolean | undefined;
12897
+ main_category?: string | undefined;
12622
12898
  input_order?: Record<string, string[]> | undefined;
12623
12899
  search_aliases?: string[] | undefined;
12624
12900
  price_badge?: {
@@ -12633,6 +12909,8 @@ export declare class ComfyApp {
12633
12909
  input_groups?: string[] | undefined;
12634
12910
  } | undefined;
12635
12911
  } | undefined;
12912
+ essentials_category?: string | undefined;
12913
+ isGlobal?: boolean | undefined;
12636
12914
  }>;
12637
12915
 
12638
12916
  declare const zCustomNodesI18n: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -12895,8 +13173,8 @@ export declare class ComfyApp {
12895
13173
  current_outputs: z.ZodAny;
12896
13174
  }>, "strip", z.ZodTypeAny, {
12897
13175
  prompt_id: string;
12898
- node_id: string | number;
12899
13176
  timestamp: number;
13177
+ node_id: string | number;
12900
13178
  node_type: string;
12901
13179
  executed: (string | number)[];
12902
13180
  exception_message: string;
@@ -12906,8 +13184,8 @@ export declare class ComfyApp {
12906
13184
  current_outputs?: any;
12907
13185
  }, {
12908
13186
  prompt_id: string;
12909
- node_id: string | number;
12910
13187
  timestamp: number;
13188
+ node_id: string | number;
12911
13189
  node_type: string;
12912
13190
  executed: (string | number)[];
12913
13191
  exception_message: string;
@@ -12926,14 +13204,14 @@ export declare class ComfyApp {
12926
13204
  executed: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
12927
13205
  }>, "strip", z.ZodTypeAny, {
12928
13206
  prompt_id: string;
12929
- node_id: string | number;
12930
13207
  timestamp: number;
13208
+ node_id: string | number;
12931
13209
  node_type: string;
12932
13210
  executed: (string | number)[];
12933
13211
  }, {
12934
13212
  prompt_id: string;
12935
- node_id: string | number;
12936
13213
  timestamp: number;
13214
+ node_id: string | number;
12937
13215
  node_type: string;
12938
13216
  executed: (string | number)[];
12939
13217
  }>;
@@ -12983,7 +13261,7 @@ export declare class ComfyApp {
12983
13261
  step: z.ZodOptional<z.ZodNumber>;
12984
13262
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
12985
13263
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
12986
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13264
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
12987
13265
  }>, {
12988
13266
  /**
12989
13267
  * If true, a linked widget will be added to the node to select the mode
@@ -13009,7 +13287,7 @@ export declare class ComfyApp {
13009
13287
  step: z.ZodOptional<z.ZodNumber>;
13010
13288
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
13011
13289
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
13012
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13290
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
13013
13291
  }>, {
13014
13292
  /**
13015
13293
  * If true, a linked widget will be added to the node to select the mode
@@ -13035,7 +13313,7 @@ export declare class ComfyApp {
13035
13313
  step: z.ZodOptional<z.ZodNumber>;
13036
13314
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
13037
13315
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
13038
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13316
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
13039
13317
  }>, {
13040
13318
  /**
13041
13319
  * If true, a linked widget will be added to the node to select the mode
@@ -13061,9 +13339,19 @@ export declare class ComfyApp {
13061
13339
  step: z.ZodOptional<z.ZodNumber>;
13062
13340
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
13063
13341
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
13064
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13342
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
13065
13343
  }>, {
13066
13344
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
13345
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
13346
+ offset: z.ZodNumber;
13347
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13348
+ }, "strip", z.ZodTypeAny, {
13349
+ color: [number, number, number];
13350
+ offset: number;
13351
+ }, {
13352
+ color: [number, number, number];
13353
+ offset: number;
13354
+ }>, "many">>;
13067
13355
  }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
13068
13356
  default: z.ZodOptional<z.ZodAny>;
13069
13357
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -13083,9 +13371,19 @@ export declare class ComfyApp {
13083
13371
  step: z.ZodOptional<z.ZodNumber>;
13084
13372
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
13085
13373
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
13086
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13374
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
13087
13375
  }>, {
13088
13376
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
13377
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
13378
+ offset: z.ZodNumber;
13379
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13380
+ }, "strip", z.ZodTypeAny, {
13381
+ color: [number, number, number];
13382
+ offset: number;
13383
+ }, {
13384
+ color: [number, number, number];
13385
+ offset: number;
13386
+ }>, "many">>;
13089
13387
  }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<z.objectUtil.extendShape<{
13090
13388
  default: z.ZodOptional<z.ZodAny>;
13091
13389
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -13105,9 +13403,19 @@ export declare class ComfyApp {
13105
13403
  step: z.ZodOptional<z.ZodNumber>;
13106
13404
  /** Note: Many node authors are using INT/FLOAT to pass list of INT/FLOAT. */
13107
13405
  default: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
13108
- display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob"]>>;
13406
+ display: z.ZodOptional<z.ZodEnum<["slider", "number", "knob", "gradientslider"]>>;
13109
13407
  }>, {
13110
13408
  round: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<false>]>>;
13409
+ gradient_stops: z.ZodOptional<z.ZodArray<z.ZodObject<{
13410
+ offset: z.ZodNumber;
13411
+ color: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
13412
+ }, "strip", z.ZodTypeAny, {
13413
+ color: [number, number, number];
13414
+ offset: number;
13415
+ }, {
13416
+ color: [number, number, number];
13417
+ offset: number;
13418
+ }>, "many">>;
13111
13419
  }>, z.ZodTypeAny, "passthrough">>>], null>, z.ZodTuple<[z.ZodLiteral<"BOOLEAN">, z.ZodOptional<z.ZodObject<z.objectUtil.extendShape<{
13112
13420
  default: z.ZodOptional<z.ZodAny>;
13113
13421
  defaultInput: z.ZodOptional<z.ZodBoolean>;
@@ -14617,10 +14925,10 @@ export declare class ComfyApp {
14617
14925
  input_name: z.ZodOptional<z.ZodString>;
14618
14926
  }, z.ZodTypeAny, "passthrough"> | undefined;
14619
14927
  };
14928
+ prompt_id?: string | undefined;
14620
14929
  exec_info?: {
14621
14930
  queue_remaining?: number | undefined;
14622
14931
  } | undefined;
14623
- prompt_id?: string | undefined;
14624
14932
  node_errors?: Record<string | number, {
14625
14933
  class_type: string;
14626
14934
  errors: {
@@ -14642,10 +14950,10 @@ export declare class ComfyApp {
14642
14950
  input_name: z.ZodOptional<z.ZodString>;
14643
14951
  }, z.ZodTypeAny, "passthrough"> | undefined;
14644
14952
  };
14953
+ prompt_id?: string | undefined;
14645
14954
  exec_info?: {
14646
14955
  queue_remaining?: number | undefined;
14647
14956
  } | undefined;
14648
- prompt_id?: string | undefined;
14649
14957
  node_errors?: Record<string | number, {
14650
14958
  class_type: string;
14651
14959
  errors: {
@@ -16023,6 +16331,7 @@ export declare class ComfyApp {
16023
16331
  'Comfy.Group.DoubleClickTitleToEdit': z.ZodBoolean;
16024
16332
  'Comfy.GroupSelectedNodes.Padding': z.ZodNumber;
16025
16333
  'Comfy.Locale': z.ZodString;
16334
+ 'Comfy.NodeLibrary.NewDesign': z.ZodBoolean;
16026
16335
  'Comfy.NodeLibrary.Bookmarks': z.ZodArray<z.ZodString, "many">;
16027
16336
  'Comfy.NodeLibrary.Bookmarks.V2': z.ZodArray<z.ZodString, "many">;
16028
16337
  'Comfy.NodeLibrary.BookmarksCustomization': z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -16040,7 +16349,7 @@ export declare class ComfyApp {
16040
16349
  'Comfy.ModelLibrary.AutoLoadAll': z.ZodBoolean;
16041
16350
  'Comfy.ModelLibrary.NameFormat': z.ZodEnum<["filename", "title"]>;
16042
16351
  'Comfy.NodeSearchBoxImpl.NodePreview': z.ZodBoolean;
16043
- 'Comfy.NodeSearchBoxImpl': z.ZodEnum<["default", "simple"]>;
16352
+ 'Comfy.NodeSearchBoxImpl': z.ZodEnum<["default", "v1 (legacy)", "litegraph (legacy)"]>;
16044
16353
  'Comfy.NodeSearchBoxImpl.ShowCategory': z.ZodBoolean;
16045
16354
  'Comfy.NodeSearchBoxImpl.ShowIdName': z.ZodBoolean;
16046
16355
  'Comfy.NodeSearchBoxImpl.ShowNodeFrequency': z.ZodBoolean;
@@ -16239,6 +16548,7 @@ export declare class ComfyApp {
16239
16548
  'LiteGraph.Pointer.TrackpadGestures': z.ZodBoolean;
16240
16549
  'Comfy.VersionCompatibility.DisableWarnings': z.ZodBoolean;
16241
16550
  'Comfy.RightSidePanel.IsOpen': z.ZodBoolean;
16551
+ 'Comfy.RightSidePanel.ShowErrorsTab': z.ZodBoolean;
16242
16552
  'Comfy.Node.AlwaysShowAdvancedWidgets': z.ZodBoolean;
16243
16553
  }, "strip", z.ZodTypeAny, {
16244
16554
  'Comfy.ColorPalette': string;
@@ -16643,6 +16953,7 @@ export declare class ComfyApp {
16643
16953
  'Comfy.Group.DoubleClickTitleToEdit': boolean;
16644
16954
  'Comfy.GroupSelectedNodes.Padding': number;
16645
16955
  'Comfy.Locale': string;
16956
+ 'Comfy.NodeLibrary.NewDesign': boolean;
16646
16957
  'Comfy.NodeLibrary.Bookmarks': string[];
16647
16958
  'Comfy.NodeLibrary.Bookmarks.V2': string[];
16648
16959
  'Comfy.NodeLibrary.BookmarksCustomization': Record<string, {
@@ -16654,7 +16965,7 @@ export declare class ComfyApp {
16654
16965
  'Comfy.ModelLibrary.AutoLoadAll': boolean;
16655
16966
  'Comfy.ModelLibrary.NameFormat': "title" | "filename";
16656
16967
  'Comfy.NodeSearchBoxImpl.NodePreview': boolean;
16657
- 'Comfy.NodeSearchBoxImpl': "default" | "simple";
16968
+ 'Comfy.NodeSearchBoxImpl': "default" | "v1 (legacy)" | "litegraph (legacy)";
16658
16969
  'Comfy.NodeSearchBoxImpl.ShowCategory': boolean;
16659
16970
  'Comfy.NodeSearchBoxImpl.ShowIdName': boolean;
16660
16971
  'Comfy.NodeSearchBoxImpl.ShowNodeFrequency': boolean;
@@ -16782,6 +17093,7 @@ export declare class ComfyApp {
16782
17093
  'LiteGraph.Pointer.TrackpadGestures': boolean;
16783
17094
  'Comfy.VersionCompatibility.DisableWarnings': boolean;
16784
17095
  'Comfy.RightSidePanel.IsOpen': boolean;
17096
+ 'Comfy.RightSidePanel.ShowErrorsTab': boolean;
16785
17097
  'Comfy.Node.AlwaysShowAdvancedWidgets': boolean;
16786
17098
  'Comfy.Canvas.BackgroundImage'?: string | undefined;
16787
17099
  'test.setting'?: any;
@@ -17190,6 +17502,7 @@ export declare class ComfyApp {
17190
17502
  'Comfy.Group.DoubleClickTitleToEdit': boolean;
17191
17503
  'Comfy.GroupSelectedNodes.Padding': number;
17192
17504
  'Comfy.Locale': string;
17505
+ 'Comfy.NodeLibrary.NewDesign': boolean;
17193
17506
  'Comfy.NodeLibrary.Bookmarks': string[];
17194
17507
  'Comfy.NodeLibrary.Bookmarks.V2': string[];
17195
17508
  'Comfy.NodeLibrary.BookmarksCustomization': Record<string, {
@@ -17201,7 +17514,7 @@ export declare class ComfyApp {
17201
17514
  'Comfy.ModelLibrary.AutoLoadAll': boolean;
17202
17515
  'Comfy.ModelLibrary.NameFormat': "title" | "filename";
17203
17516
  'Comfy.NodeSearchBoxImpl.NodePreview': boolean;
17204
- 'Comfy.NodeSearchBoxImpl': "default" | "simple";
17517
+ 'Comfy.NodeSearchBoxImpl': "default" | "v1 (legacy)" | "litegraph (legacy)";
17205
17518
  'Comfy.NodeSearchBoxImpl.ShowCategory': boolean;
17206
17519
  'Comfy.NodeSearchBoxImpl.ShowIdName': boolean;
17207
17520
  'Comfy.NodeSearchBoxImpl.ShowNodeFrequency': boolean;
@@ -17329,6 +17642,7 @@ export declare class ComfyApp {
17329
17642
  'LiteGraph.Pointer.TrackpadGestures': boolean;
17330
17643
  'Comfy.VersionCompatibility.DisableWarnings': boolean;
17331
17644
  'Comfy.RightSidePanel.IsOpen': boolean;
17645
+ 'Comfy.RightSidePanel.ShowErrorsTab': boolean;
17332
17646
  'Comfy.Node.AlwaysShowAdvancedWidgets': boolean;
17333
17647
  'Comfy.Canvas.BackgroundImage'?: string | undefined;
17334
17648
  'test.setting'?: any;
@@ -17403,6 +17717,8 @@ export declare class ComfyApp {
17403
17717
  cloud_version: z.ZodOptional<z.ZodString>;
17404
17718
  comfyui_frontend_version: z.ZodOptional<z.ZodString>;
17405
17719
  workflow_templates_version: z.ZodOptional<z.ZodString>;
17720
+ installed_templates_version: z.ZodOptional<z.ZodString>;
17721
+ required_templates_version: z.ZodOptional<z.ZodString>;
17406
17722
  }, "strip", z.ZodTypeAny, {
17407
17723
  comfyui_version: string;
17408
17724
  os: string;
@@ -17416,6 +17732,8 @@ export declare class ComfyApp {
17416
17732
  cloud_version?: string | undefined;
17417
17733
  comfyui_frontend_version?: string | undefined;
17418
17734
  workflow_templates_version?: string | undefined;
17735
+ installed_templates_version?: string | undefined;
17736
+ required_templates_version?: string | undefined;
17419
17737
  }, {
17420
17738
  comfyui_version: string;
17421
17739
  os: string;
@@ -17429,6 +17747,8 @@ export declare class ComfyApp {
17429
17747
  cloud_version?: string | undefined;
17430
17748
  comfyui_frontend_version?: string | undefined;
17431
17749
  workflow_templates_version?: string | undefined;
17750
+ installed_templates_version?: string | undefined;
17751
+ required_templates_version?: string | undefined;
17432
17752
  }>;
17433
17753
  devices: z.ZodArray<z.ZodObject<{
17434
17754
  name: z.ZodString;
@@ -17478,6 +17798,8 @@ export declare class ComfyApp {
17478
17798
  cloud_version?: string | undefined;
17479
17799
  comfyui_frontend_version?: string | undefined;
17480
17800
  workflow_templates_version?: string | undefined;
17801
+ installed_templates_version?: string | undefined;
17802
+ required_templates_version?: string | undefined;
17481
17803
  };
17482
17804
  }, {
17483
17805
  devices: {
@@ -17502,6 +17824,8 @@ export declare class ComfyApp {
17502
17824
  cloud_version?: string | undefined;
17503
17825
  comfyui_frontend_version?: string | undefined;
17504
17826
  workflow_templates_version?: string | undefined;
17827
+ installed_templates_version?: string | undefined;
17828
+ required_templates_version?: string | undefined;
17505
17829
  };
17506
17830
  }>;
17507
17831