@comfyorg/comfyui-frontend-types 1.26.11 → 1.27.1
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 +328 -20
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -599,6 +599,16 @@ declare class ChangeTracker {
|
|
|
599
599
|
private static graphDiff;
|
|
600
600
|
}
|
|
601
601
|
|
|
602
|
+
/**
|
|
603
|
+
* Widget for displaying charts and data visualizations
|
|
604
|
+
* This is a widget that only has a Vue widgets implementation
|
|
605
|
+
*/
|
|
606
|
+
declare class ChartWidget extends BaseWidget<IChartWidget> implements IChartWidget {
|
|
607
|
+
type: "chart";
|
|
608
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
609
|
+
onClick(_options: WidgetEventOptions): void;
|
|
610
|
+
}
|
|
611
|
+
|
|
602
612
|
declare type ClassList = string | string[] | Record<string, boolean>;
|
|
603
613
|
|
|
604
614
|
/**
|
|
@@ -639,6 +649,16 @@ declare interface ColorOption {
|
|
|
639
649
|
groupcolor: string;
|
|
640
650
|
}
|
|
641
651
|
|
|
652
|
+
/**
|
|
653
|
+
* Widget for displaying a color picker
|
|
654
|
+
* This is a widget that only has a Vue widgets implementation
|
|
655
|
+
*/
|
|
656
|
+
declare class ColorWidget extends BaseWidget<IColorWidget> implements IColorWidget {
|
|
657
|
+
type: "color";
|
|
658
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
659
|
+
onClick(_options: WidgetEventOptions): void;
|
|
660
|
+
}
|
|
661
|
+
|
|
642
662
|
declare class ComboWidget extends BaseSteppedWidget<IStringComboWidget | IComboWidget> implements IComboWidget {
|
|
643
663
|
#private;
|
|
644
664
|
type: "combo";
|
|
@@ -998,9 +1018,9 @@ export declare class ComfyApp {
|
|
|
998
1018
|
* @deprecated Use useExecutionStore().executingNodeProgress instead
|
|
999
1019
|
*/
|
|
1000
1020
|
get progress(): {
|
|
1001
|
-
max: number;
|
|
1002
|
-
value: number;
|
|
1003
1021
|
node: string | number;
|
|
1022
|
+
value: number;
|
|
1023
|
+
max: number;
|
|
1004
1024
|
prompt_id: string;
|
|
1005
1025
|
} | null;
|
|
1006
1026
|
/**
|
|
@@ -1820,9 +1840,6 @@ export declare class ComfyApp {
|
|
|
1820
1840
|
}
|
|
1821
1841
|
|
|
1822
1842
|
declare enum EaseFunction {
|
|
1823
|
-
LINEAR = "linear",
|
|
1824
|
-
EASE_IN_QUAD = "easeInQuad",
|
|
1825
|
-
EASE_OUT_QUAD = "easeOutQuad",
|
|
1826
1843
|
EASE_IN_OUT_QUAD = "easeInOutQuad"
|
|
1827
1844
|
}
|
|
1828
1845
|
|
|
@@ -1983,6 +2000,16 @@ export declare class ComfyApp {
|
|
|
1983
2000
|
|
|
1984
2001
|
export { ExtensionsResponse }
|
|
1985
2002
|
|
|
2003
|
+
/**
|
|
2004
|
+
* Widget for handling file uploads
|
|
2005
|
+
* This is a widget that only has a Vue widgets implementation
|
|
2006
|
+
*/
|
|
2007
|
+
declare class FileUploadWidget extends BaseWidget<IFileUploadWidget> implements IFileUploadWidget {
|
|
2008
|
+
type: "fileupload";
|
|
2009
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
2010
|
+
onClick(_options: WidgetEventOptions): void;
|
|
2011
|
+
}
|
|
2012
|
+
|
|
1986
2013
|
declare interface FindFreeSlotOptions {
|
|
1987
2014
|
/** Slots matching these types will be ignored. Default: [] */
|
|
1988
2015
|
typesNotAccepted?: ISlotType[];
|
|
@@ -2066,6 +2093,16 @@ export declare class ComfyApp {
|
|
|
2066
2093
|
reconnected: never;
|
|
2067
2094
|
}
|
|
2068
2095
|
|
|
2096
|
+
/**
|
|
2097
|
+
* Widget for displaying image galleries
|
|
2098
|
+
* This is a widget that only has a Vue widgets implementation
|
|
2099
|
+
*/
|
|
2100
|
+
declare class GalleriaWidget extends BaseWidget<IGalleriaWidget> implements IGalleriaWidget {
|
|
2101
|
+
type: "galleria";
|
|
2102
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
2103
|
+
onClick(_options: WidgetEventOptions): void;
|
|
2104
|
+
}
|
|
2105
|
+
|
|
2069
2106
|
/** Internal; simplifies type definitions. */
|
|
2070
2107
|
declare type GraphOrSubgraph = LGraph | Subgraph;
|
|
2071
2108
|
|
|
@@ -2229,6 +2266,12 @@ export declare class ComfyApp {
|
|
|
2229
2266
|
canvasY: number;
|
|
2230
2267
|
}
|
|
2231
2268
|
|
|
2269
|
+
/** Chart widget for displaying data visualizations */
|
|
2270
|
+
declare interface IChartWidget extends IBaseWidget<object, 'chart'> {
|
|
2271
|
+
type: 'chart';
|
|
2272
|
+
value: object;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2232
2275
|
declare interface ICloseable {
|
|
2233
2276
|
close(): void;
|
|
2234
2277
|
}
|
|
@@ -2241,6 +2284,12 @@ export declare class ComfyApp {
|
|
|
2241
2284
|
getColorOption(): ColorOption | null;
|
|
2242
2285
|
}
|
|
2243
2286
|
|
|
2287
|
+
/** Color picker widget for selecting colors */
|
|
2288
|
+
declare interface IColorWidget extends IBaseWidget<string, 'color'> {
|
|
2289
|
+
type: 'color';
|
|
2290
|
+
value: string;
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2244
2293
|
/** A combo-box widget (dropdown, select, etc) */
|
|
2245
2294
|
declare interface IComboWidget extends IBaseWidget<string | number, 'combo', RequiredProps<IWidgetOptions<ComboWidgetValues>, 'values'>> {
|
|
2246
2295
|
type: 'combo';
|
|
@@ -2378,15 +2427,40 @@ export declare class ComfyApp {
|
|
|
2378
2427
|
lineWidth?: number;
|
|
2379
2428
|
}
|
|
2380
2429
|
|
|
2430
|
+
/** File upload widget for selecting and uploading files */
|
|
2431
|
+
declare interface IFileUploadWidget extends IBaseWidget<string, 'fileupload'> {
|
|
2432
|
+
type: 'fileupload';
|
|
2433
|
+
value: string;
|
|
2434
|
+
label?: string;
|
|
2435
|
+
}
|
|
2436
|
+
|
|
2381
2437
|
declare interface IFoundSlot extends IInputOrOutput {
|
|
2382
2438
|
slot: number;
|
|
2383
2439
|
link_pos: Point;
|
|
2384
2440
|
}
|
|
2385
2441
|
|
|
2442
|
+
/** Gallery widget for displaying multiple images */
|
|
2443
|
+
declare interface IGalleriaWidget extends IBaseWidget<string[], 'galleria'> {
|
|
2444
|
+
type: 'galleria';
|
|
2445
|
+
value: string[];
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2386
2448
|
declare interface IGraphGroupFlags extends Record<string, unknown> {
|
|
2387
2449
|
pinned?: true;
|
|
2388
2450
|
}
|
|
2389
2451
|
|
|
2452
|
+
/** Image comparison widget for comparing two images side by side */
|
|
2453
|
+
declare interface IImageCompareWidget extends IBaseWidget<string[], 'imagecompare'> {
|
|
2454
|
+
type: 'imagecompare';
|
|
2455
|
+
value: string[];
|
|
2456
|
+
}
|
|
2457
|
+
|
|
2458
|
+
/** Image display widget */
|
|
2459
|
+
declare interface IImageWidget extends IBaseWidget<string, 'image'> {
|
|
2460
|
+
type: 'image';
|
|
2461
|
+
value: string;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2390
2464
|
declare interface IInputOrOutput {
|
|
2391
2465
|
input?: INodeInputSlot | null;
|
|
2392
2466
|
output?: INodeOutputSlot | null;
|
|
@@ -2398,12 +2472,34 @@ export declare class ComfyApp {
|
|
|
2398
2472
|
options: IWidgetKnobOptions;
|
|
2399
2473
|
}
|
|
2400
2474
|
|
|
2475
|
+
/**
|
|
2476
|
+
* Widget for comparing two images side by side
|
|
2477
|
+
* This is a widget that only has a Vue widgets implementation
|
|
2478
|
+
*/
|
|
2479
|
+
declare class ImageCompareWidget extends BaseWidget<IImageCompareWidget> implements IImageCompareWidget {
|
|
2480
|
+
type: "imagecompare";
|
|
2481
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
2482
|
+
onClick(_options: WidgetEventOptions): void;
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2485
|
+
/** Markdown widget for displaying formatted text */
|
|
2486
|
+
declare interface IMarkdownWidget extends IBaseWidget<string, 'markdown'> {
|
|
2487
|
+
type: 'markdown';
|
|
2488
|
+
value: string;
|
|
2489
|
+
}
|
|
2490
|
+
|
|
2401
2491
|
declare interface IMouseOverData {
|
|
2402
2492
|
inputId?: number;
|
|
2403
2493
|
outputId?: number;
|
|
2404
2494
|
overWidget?: IBaseWidget;
|
|
2405
2495
|
}
|
|
2406
2496
|
|
|
2497
|
+
/** Multi-select widget for selecting multiple options */
|
|
2498
|
+
declare interface IMultiSelectWidget extends IBaseWidget<string[], 'multiselect'> {
|
|
2499
|
+
type: 'multiselect';
|
|
2500
|
+
value: string[];
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2407
2503
|
declare interface INodeFlags {
|
|
2408
2504
|
skip_repeated_outputs?: boolean;
|
|
2409
2505
|
allow_interaction?: boolean;
|
|
@@ -2563,6 +2659,12 @@ export declare class ComfyApp {
|
|
|
2563
2659
|
unpin(): void;
|
|
2564
2660
|
}
|
|
2565
2661
|
|
|
2662
|
+
/** Select button widget for selecting from a group of buttons */
|
|
2663
|
+
declare interface ISelectButtonWidget extends IBaseWidget<string, 'selectbutton', RequiredProps<IWidgetOptions<string[]>, 'values'>> {
|
|
2664
|
+
type: 'selectbutton';
|
|
2665
|
+
value: string;
|
|
2666
|
+
}
|
|
2667
|
+
|
|
2566
2668
|
declare type ISerialisableNodeInput = Omit<INodeInputSlot, 'boundingRect' | 'widget'> & {
|
|
2567
2669
|
widget?: {
|
|
2568
2670
|
name: string;
|
|
@@ -2695,6 +2797,7 @@ export declare class ComfyApp {
|
|
|
2695
2797
|
|
|
2696
2798
|
declare interface ISubgraphInput extends INodeInputSlot {
|
|
2697
2799
|
_listenerController?: AbortController;
|
|
2800
|
+
_subgraphSlot: SubgraphInput;
|
|
2698
2801
|
}
|
|
2699
2802
|
|
|
2700
2803
|
/**
|
|
@@ -2706,6 +2809,18 @@ export declare class ComfyApp {
|
|
|
2706
2809
|
getIoNodeOnPos?(x: number, y: number): SubgraphInputNode | SubgraphOutputNode | undefined;
|
|
2707
2810
|
}
|
|
2708
2811
|
|
|
2812
|
+
/** Textarea widget for multi-line text input */
|
|
2813
|
+
declare interface ITextareaWidget extends IBaseWidget<string, 'textarea'> {
|
|
2814
|
+
type: 'textarea';
|
|
2815
|
+
value: string;
|
|
2816
|
+
}
|
|
2817
|
+
|
|
2818
|
+
/** Tree select widget for hierarchical selection */
|
|
2819
|
+
declare interface ITreeSelectWidget extends IBaseWidget<string | string[], 'treeselect'> {
|
|
2820
|
+
type: 'treeselect';
|
|
2821
|
+
value: string | string[];
|
|
2822
|
+
}
|
|
2823
|
+
|
|
2709
2824
|
/**
|
|
2710
2825
|
* A widget for a node.
|
|
2711
2826
|
* All types are based on IBaseWidget - additions can be made there or directly on individual types.
|
|
@@ -2714,7 +2829,7 @@ export declare class ComfyApp {
|
|
|
2714
2829
|
* Recommend declaration merging any properties that use IWidget (e.g. {@link LGraphNode.widgets}) with a new type alias.
|
|
2715
2830
|
* @see ICustomWidget
|
|
2716
2831
|
*/
|
|
2717
|
-
declare type IWidget = IBooleanWidget | INumericWidget | IStringWidget | IComboWidget | IStringComboWidget | ICustomWidget | ISliderWidget | IButtonWidget | IKnobWidget;
|
|
2832
|
+
declare type IWidget = IBooleanWidget | INumericWidget | IStringWidget | IComboWidget | IStringComboWidget | ICustomWidget | ISliderWidget | IButtonWidget | IKnobWidget | IFileUploadWidget | IColorWidget | IMarkdownWidget | IImageWidget | ITreeSelectWidget | IMultiSelectWidget | IChartWidget | IGalleriaWidget | IImageCompareWidget | ISelectButtonWidget | ITextareaWidget;
|
|
2718
2833
|
|
|
2719
2834
|
declare interface IWidgetKnobOptions extends IWidgetOptions<number[]> {
|
|
2720
2835
|
min: number;
|
|
@@ -3465,6 +3580,8 @@ export declare class ComfyApp {
|
|
|
3465
3580
|
SELECTED_NODE?: LGraphNode;
|
|
3466
3581
|
/** @deprecated Panels */
|
|
3467
3582
|
NODEPANEL_IS_OPEN?: boolean;
|
|
3583
|
+
/** Link rendering adapter for litegraph-to-canvas integration */
|
|
3584
|
+
linkRenderer: LitegraphLinkAdapter | null;
|
|
3468
3585
|
/** If true, enable drag zoom. Ctrl+Shift+Drag Up/Down: zoom canvas. */
|
|
3469
3586
|
dragZoomEnabled: boolean;
|
|
3470
3587
|
getMenuOptions?(): IContextMenuValue<string>[];
|
|
@@ -3804,6 +3921,11 @@ export declare class ComfyApp {
|
|
|
3804
3921
|
*/
|
|
3805
3922
|
drawSnapGuide(ctx: CanvasRenderingContext2D, item: Positionable, shape?: RenderShape): void;
|
|
3806
3923
|
drawConnections(ctx: CanvasRenderingContext2D): void;
|
|
3924
|
+
/**
|
|
3925
|
+
* Build LinkRenderContext from canvas properties
|
|
3926
|
+
* Helper method for using LitegraphLinkAdapter
|
|
3927
|
+
*/
|
|
3928
|
+
private buildLinkRenderContext;
|
|
3807
3929
|
/**
|
|
3808
3930
|
* draws a link between two points
|
|
3809
3931
|
* @param ctx Canvas 2D rendering context
|
|
@@ -3828,16 +3950,6 @@ export declare class ComfyApp {
|
|
|
3828
3950
|
/** Whether this is a floating link segment */
|
|
3829
3951
|
disabled?: boolean;
|
|
3830
3952
|
}): void;
|
|
3831
|
-
/**
|
|
3832
|
-
* Finds a point along a spline represented by a to b, with spline endpoint directions dictacted by start_dir and end_dir.
|
|
3833
|
-
* @param a Start point
|
|
3834
|
-
* @param b End point
|
|
3835
|
-
* @param t Time: distance between points (e.g 0.25 is 25% along the line)
|
|
3836
|
-
* @param start_dir Spline start direction
|
|
3837
|
-
* @param end_dir Spline end direction
|
|
3838
|
-
* @returns The point at {@link t} distance along the spline a-b.
|
|
3839
|
-
*/
|
|
3840
|
-
computeConnectionPoint(a: ReadOnlyPoint, b: ReadOnlyPoint, t: number, start_dir: LinkDirection, end_dir: LinkDirection): Point;
|
|
3841
3953
|
drawExecutionOrder(ctx: CanvasRenderingContext2D): void;
|
|
3842
3954
|
/**
|
|
3843
3955
|
* draws the widgets stored inside a node
|
|
@@ -4143,6 +4255,8 @@ export declare class ComfyApp {
|
|
|
4143
4255
|
properties_info: INodePropertyInfo[];
|
|
4144
4256
|
flags: INodeFlags;
|
|
4145
4257
|
widgets?: IBaseWidget[];
|
|
4258
|
+
/** Property manager for this node */
|
|
4259
|
+
changeTracker: LGraphNodeProperties;
|
|
4146
4260
|
/**
|
|
4147
4261
|
* The amount of space available for widgets to grow into.
|
|
4148
4262
|
* @see {@link layoutWidgets}
|
|
@@ -4929,6 +5043,29 @@ export declare class ComfyApp {
|
|
|
4929
5043
|
resizeEdgeSize?: number;
|
|
4930
5044
|
}
|
|
4931
5045
|
|
|
5046
|
+
/**
|
|
5047
|
+
* Manages node properties with optional change tracking and instrumentation.
|
|
5048
|
+
*/
|
|
5049
|
+
declare class LGraphNodeProperties {
|
|
5050
|
+
#private;
|
|
5051
|
+
/** The node this property manager belongs to */
|
|
5052
|
+
node: LGraphNode;
|
|
5053
|
+
constructor(node: LGraphNode);
|
|
5054
|
+
/**
|
|
5055
|
+
* Checks if a property is being tracked
|
|
5056
|
+
*/
|
|
5057
|
+
isTracked(path: string): boolean;
|
|
5058
|
+
/**
|
|
5059
|
+
* Gets the list of tracked properties
|
|
5060
|
+
*/
|
|
5061
|
+
getTrackedProperties(): string[];
|
|
5062
|
+
/**
|
|
5063
|
+
* Custom toJSON method for JSON.stringify
|
|
5064
|
+
* Returns undefined to exclude from serialization since we only use defaults
|
|
5065
|
+
*/
|
|
5066
|
+
toJSON(): any;
|
|
5067
|
+
}
|
|
5068
|
+
|
|
4932
5069
|
declare interface LGraphState {
|
|
4933
5070
|
lastGroupId: number;
|
|
4934
5071
|
lastNodeId: number;
|
|
@@ -5149,6 +5286,28 @@ export declare class ComfyApp {
|
|
|
5149
5286
|
removeFloatingLink(link: LLink): void;
|
|
5150
5287
|
}
|
|
5151
5288
|
|
|
5289
|
+
declare interface LinkRenderContext {
|
|
5290
|
+
renderMode: LinkRenderType;
|
|
5291
|
+
connectionWidth: number;
|
|
5292
|
+
renderBorder: boolean;
|
|
5293
|
+
lowQuality: boolean;
|
|
5294
|
+
highQualityRender: boolean;
|
|
5295
|
+
scale: number;
|
|
5296
|
+
linkMarkerShape: LinkMarkerShape;
|
|
5297
|
+
renderConnectionArrows: boolean;
|
|
5298
|
+
highlightedLinks: Set<string | number>;
|
|
5299
|
+
defaultLinkColor: CanvasColour;
|
|
5300
|
+
linkTypeColors: Record<string, CanvasColour>;
|
|
5301
|
+
disabledPattern?: CanvasPattern | null;
|
|
5302
|
+
}
|
|
5303
|
+
|
|
5304
|
+
declare interface LinkRenderOptions {
|
|
5305
|
+
color?: CanvasColour;
|
|
5306
|
+
flow?: boolean;
|
|
5307
|
+
skipBorder?: boolean;
|
|
5308
|
+
disabled?: boolean;
|
|
5309
|
+
}
|
|
5310
|
+
|
|
5152
5311
|
/** The path calculation that links follow */
|
|
5153
5312
|
declare enum LinkRenderType {
|
|
5154
5313
|
HIDDEN_LINK = -1,
|
|
@@ -5228,6 +5387,22 @@ export declare class ComfyApp {
|
|
|
5228
5387
|
WIDGET_TEXT_COLOR: string;
|
|
5229
5388
|
WIDGET_SECONDARY_TEXT_COLOR: string;
|
|
5230
5389
|
WIDGET_DISABLED_TEXT_COLOR: string;
|
|
5390
|
+
/**
|
|
5391
|
+
* Vue node dimensions configuration for the contract between LiteGraph and Vue components.
|
|
5392
|
+
* These values ensure both systems can independently calculate node, slot, and widget positions
|
|
5393
|
+
* to place them in identical locations.
|
|
5394
|
+
*/
|
|
5395
|
+
COMFY_VUE_NODE_DIMENSIONS: {
|
|
5396
|
+
readonly spacing: {
|
|
5397
|
+
readonly BETWEEN_SLOTS_AND_BODY: 8;
|
|
5398
|
+
readonly BETWEEN_WIDGETS: 8;
|
|
5399
|
+
};
|
|
5400
|
+
readonly components: {
|
|
5401
|
+
readonly HEADER_HEIGHT: 34;
|
|
5402
|
+
readonly SLOT_HEIGHT: 24;
|
|
5403
|
+
readonly STANDARD_WIDGET_HEIGHT: 30;
|
|
5404
|
+
};
|
|
5405
|
+
};
|
|
5231
5406
|
LINK_COLOR: string;
|
|
5232
5407
|
EVENT_LINK_COLOR: string;
|
|
5233
5408
|
CONNECTING_LINK_COLOR: string;
|
|
@@ -5438,6 +5613,17 @@ export declare class ComfyApp {
|
|
|
5438
5613
|
* @default true
|
|
5439
5614
|
*/
|
|
5440
5615
|
saveViewportWithGraph: boolean;
|
|
5616
|
+
/**
|
|
5617
|
+
* Enable Vue nodes mode for rendering and positioning.
|
|
5618
|
+
* When true:
|
|
5619
|
+
* - Nodes will calculate slot positions using Vue component dimensions
|
|
5620
|
+
* - LiteGraph will skip rendering node bodies entirely
|
|
5621
|
+
* - Vue components will handle all node rendering
|
|
5622
|
+
* - LiteGraph continues to render connections, links, and graph background
|
|
5623
|
+
* This should be set by the frontend when the Vue nodes feature is enabled.
|
|
5624
|
+
* @default false
|
|
5625
|
+
*/
|
|
5626
|
+
vueNodesMode: boolean;
|
|
5441
5627
|
LGraph: typeof LGraph;
|
|
5442
5628
|
LLink: typeof LLink;
|
|
5443
5629
|
LGraphNode: typeof LGraphNode;
|
|
@@ -5530,6 +5716,72 @@ export declare class ComfyApp {
|
|
|
5530
5716
|
extendClass(target: any, origin: any): void;
|
|
5531
5717
|
}
|
|
5532
5718
|
|
|
5719
|
+
declare class LitegraphLinkAdapter {
|
|
5720
|
+
private graph;
|
|
5721
|
+
private pathRenderer;
|
|
5722
|
+
enableLayoutStoreWrites: boolean;
|
|
5723
|
+
constructor(graph: LGraph);
|
|
5724
|
+
/**
|
|
5725
|
+
* Render a single link with all necessary data properly fetched
|
|
5726
|
+
* Populates link.path for hit detection
|
|
5727
|
+
*/
|
|
5728
|
+
renderLink(ctx: CanvasRenderingContext2D, link: LLink, context: LinkRenderContext, options?: LinkRenderOptions): void;
|
|
5729
|
+
/**
|
|
5730
|
+
* Convert litegraph link data to pure render format
|
|
5731
|
+
*/
|
|
5732
|
+
private convertToLinkRenderData;
|
|
5733
|
+
/**
|
|
5734
|
+
* Convert LinkDirection enum to Direction string
|
|
5735
|
+
*/
|
|
5736
|
+
private convertDirection;
|
|
5737
|
+
/**
|
|
5738
|
+
* Convert LinkRenderContext to PathRenderContext
|
|
5739
|
+
*/
|
|
5740
|
+
private convertToPathRenderContext;
|
|
5741
|
+
/**
|
|
5742
|
+
* Convert LinkRenderType to RenderMode
|
|
5743
|
+
*/
|
|
5744
|
+
private convertRenderMode;
|
|
5745
|
+
/**
|
|
5746
|
+
* Convert LinkMarkerShape to ArrowShape
|
|
5747
|
+
*/
|
|
5748
|
+
private convertArrowShape;
|
|
5749
|
+
/**
|
|
5750
|
+
* Convert color map to ensure all values are strings
|
|
5751
|
+
*/
|
|
5752
|
+
private convertColorMap;
|
|
5753
|
+
/**
|
|
5754
|
+
* Apply spline offset to a point, mimicking original #addSplineOffset behavior
|
|
5755
|
+
* Critically: does nothing for CENTER/NONE directions (no case for them)
|
|
5756
|
+
*/
|
|
5757
|
+
private applySplineOffset;
|
|
5758
|
+
/**
|
|
5759
|
+
* Direct rendering method compatible with LGraphCanvas
|
|
5760
|
+
* Converts data and delegates to pure renderer
|
|
5761
|
+
*/
|
|
5762
|
+
renderLinkDirect(ctx: CanvasRenderingContext2D, a: ReadOnlyPoint, b: ReadOnlyPoint, link: LLink | null, skip_border: boolean, flow: number | boolean | null, color: CanvasColour | null, start_dir: LinkDirection, end_dir: LinkDirection, context: LinkRenderContext, extras?: {
|
|
5763
|
+
reroute?: Reroute;
|
|
5764
|
+
startControl?: ReadOnlyPoint;
|
|
5765
|
+
endControl?: ReadOnlyPoint;
|
|
5766
|
+
num_sublines?: number;
|
|
5767
|
+
disabled?: boolean;
|
|
5768
|
+
}): void;
|
|
5769
|
+
/**
|
|
5770
|
+
* Render a link being dragged from a slot to mouse position
|
|
5771
|
+
* Used during link creation/reconnection
|
|
5772
|
+
*/
|
|
5773
|
+
renderDraggingLink(ctx: CanvasRenderingContext2D, fromNode: LGraphNode | null, fromSlot: INodeOutputSlot | INodeInputSlot, fromSlotIndex: number, toPosition: ReadOnlyPoint, context: LinkRenderContext, options?: {
|
|
5774
|
+
fromInput?: boolean;
|
|
5775
|
+
color?: CanvasColour;
|
|
5776
|
+
disabled?: boolean;
|
|
5777
|
+
}): void;
|
|
5778
|
+
/**
|
|
5779
|
+
* Calculate bounding box for a link
|
|
5780
|
+
* Includes padding for line width and control points
|
|
5781
|
+
*/
|
|
5782
|
+
private calculateLinkBounds;
|
|
5783
|
+
}
|
|
5784
|
+
|
|
5533
5785
|
declare class LLink implements LinkSegment, Serialisable<SerialisableLLink> {
|
|
5534
5786
|
#private;
|
|
5535
5787
|
static _drawDebug: boolean;
|
|
@@ -5692,6 +5944,16 @@ export declare class ComfyApp {
|
|
|
5692
5944
|
|
|
5693
5945
|
export { LogsRawResponse }
|
|
5694
5946
|
|
|
5947
|
+
/**
|
|
5948
|
+
* Widget for displaying markdown formatted text
|
|
5949
|
+
* This is a widget that only has a Vue widgets implementation
|
|
5950
|
+
*/
|
|
5951
|
+
declare class MarkdownWidget extends BaseWidget<IMarkdownWidget> implements IMarkdownWidget {
|
|
5952
|
+
type: "markdown";
|
|
5953
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
5954
|
+
onClick(_options: WidgetEventOptions): void;
|
|
5955
|
+
}
|
|
5956
|
+
|
|
5695
5957
|
declare type MenuCommandGroup = {
|
|
5696
5958
|
/**
|
|
5697
5959
|
* The path to the menu group.
|
|
@@ -5807,6 +6069,16 @@ export declare class ComfyApp {
|
|
|
5807
6069
|
disconnect(): boolean;
|
|
5808
6070
|
}
|
|
5809
6071
|
|
|
6072
|
+
/**
|
|
6073
|
+
* Widget for selecting multiple options
|
|
6074
|
+
* This is a widget that only has a Vue widgets implementation
|
|
6075
|
+
*/
|
|
6076
|
+
declare class MultiSelectWidget extends BaseWidget<IMultiSelectWidget> implements IMultiSelectWidget {
|
|
6077
|
+
type: "multiselect";
|
|
6078
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
6079
|
+
onClick(_options: WidgetEventOptions): void;
|
|
6080
|
+
}
|
|
6081
|
+
|
|
5810
6082
|
/** {@link Omit} all properties that evaluate to `never`. */
|
|
5811
6083
|
declare type NeverNever<T> = {
|
|
5812
6084
|
[K in keyof T as T[K] extends never ? never : K]: T[K];
|
|
@@ -6463,6 +6735,16 @@ export declare class ComfyApp {
|
|
|
6463
6735
|
subgraphInput: SubgraphIO;
|
|
6464
6736
|
}
|
|
6465
6737
|
|
|
6738
|
+
/**
|
|
6739
|
+
* Widget for selecting from a group of buttons
|
|
6740
|
+
* This is a widget that only has a Vue widgets implementation
|
|
6741
|
+
*/
|
|
6742
|
+
declare class SelectButtonWidget extends BaseWidget<ISelectButtonWidget> implements ISelectButtonWidget {
|
|
6743
|
+
type: "selectbutton";
|
|
6744
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
6745
|
+
onClick(_options: WidgetEventOptions): void;
|
|
6746
|
+
}
|
|
6747
|
+
|
|
6466
6748
|
/**
|
|
6467
6749
|
* An object that implements custom pre-serialization logic via {@link Serialisable.asSerialisable}.
|
|
6468
6750
|
*/
|
|
@@ -6598,10 +6880,6 @@ export declare class ComfyApp {
|
|
|
6598
6880
|
|
|
6599
6881
|
/** @see LinkDirection */
|
|
6600
6882
|
declare enum SlotDirection {
|
|
6601
|
-
Up = 1,
|
|
6602
|
-
Right = 4,
|
|
6603
|
-
Down = 2,
|
|
6604
|
-
Left = 3
|
|
6605
6883
|
}
|
|
6606
6884
|
|
|
6607
6885
|
/** @see RenderShape */
|
|
@@ -7044,6 +7322,16 @@ export declare class ComfyApp {
|
|
|
7044
7322
|
|
|
7045
7323
|
export { TerminalSize }
|
|
7046
7324
|
|
|
7325
|
+
/**
|
|
7326
|
+
* Widget for multi-line text input
|
|
7327
|
+
* This is a widget that only has a Vue widgets implementation
|
|
7328
|
+
*/
|
|
7329
|
+
declare class TextareaWidget extends BaseWidget<ITextareaWidget> implements ITextareaWidget {
|
|
7330
|
+
type: "textarea";
|
|
7331
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
7332
|
+
onClick(_options: WidgetEventOptions): void;
|
|
7333
|
+
}
|
|
7334
|
+
|
|
7047
7335
|
declare class TextWidget extends BaseWidget<IStringWidget> implements IStringWidget {
|
|
7048
7336
|
constructor(widget: IStringWidget, node: LGraphNode);
|
|
7049
7337
|
/**
|
|
@@ -7209,6 +7497,16 @@ export declare class ComfyApp {
|
|
|
7209
7497
|
connectToRerouteInput(): void;
|
|
7210
7498
|
}
|
|
7211
7499
|
|
|
7500
|
+
/**
|
|
7501
|
+
* Widget for hierarchical tree selection
|
|
7502
|
+
* This is a widget that only has a Vue widgets implementation
|
|
7503
|
+
*/
|
|
7504
|
+
declare class TreeSelectWidget extends BaseWidget<ITreeSelectWidget> implements ITreeSelectWidget {
|
|
7505
|
+
type: "treeselect";
|
|
7506
|
+
drawWidget(ctx: CanvasRenderingContext2D, options: DrawWidgetOptions): void;
|
|
7507
|
+
onClick(_options: WidgetEventOptions): void;
|
|
7508
|
+
}
|
|
7509
|
+
|
|
7212
7510
|
/**
|
|
7213
7511
|
* Valid widget types. TS cannot provide easily extensible type safety for this at present.
|
|
7214
7512
|
* Override linkedWidgets[]
|
|
@@ -7341,6 +7639,16 @@ export declare class ComfyApp {
|
|
|
7341
7639
|
string: TextWidget;
|
|
7342
7640
|
text: TextWidget;
|
|
7343
7641
|
custom: LegacyWidget;
|
|
7642
|
+
fileupload: FileUploadWidget;
|
|
7643
|
+
color: ColorWidget;
|
|
7644
|
+
markdown: MarkdownWidget;
|
|
7645
|
+
treeselect: TreeSelectWidget;
|
|
7646
|
+
multiselect: MultiSelectWidget;
|
|
7647
|
+
chart: ChartWidget;
|
|
7648
|
+
galleria: GalleriaWidget;
|
|
7649
|
+
imagecompare: ImageCompareWidget;
|
|
7650
|
+
selectbutton: SelectButtonWidget;
|
|
7651
|
+
textarea: TextareaWidget;
|
|
7344
7652
|
[key: string]: BaseWidget;
|
|
7345
7653
|
};
|
|
7346
7654
|
|