@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.
- package/index.d.ts +478 -154
- 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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
265
|
-
|
|
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,
|
|
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
|
|
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
|
|
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} [
|
|
989
|
+
* @param {string | null} [runningJobId] Optional Running Job ID to interrupt
|
|
983
990
|
*/
|
|
984
|
-
interrupt(
|
|
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
|
|
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
|
|
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
|
|
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]:
|
|
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" | "
|
|
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<
|
|
2218
|
+
get settingsLookup(): Record<string, SettingParams<unknown>>;
|
|
2194
2219
|
/**
|
|
2195
2220
|
* @deprecated Use `settingStore.settingsById` instead.
|
|
2196
2221
|
*/
|
|
2197
|
-
get settingsParamLookup(): Record<string, SettingParams<
|
|
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
|
|
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
|
|
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
|
|
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> |
|
|
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
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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", "
|
|
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" | "
|
|
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" | "
|
|
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
|
|