@mindstudio-ai/local-model-tunnel 0.1.8 → 0.2.0
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/dist/api.d.ts +16 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -1
- package/dist/providers/comfyui.d.ts +29 -0
- package/dist/providers/comfyui.d.ts.map +1 -0
- package/dist/providers/comfyui.js +359 -0
- package/dist/providers/comfyui.js.map +1 -0
- package/dist/providers/index.d.ts +10 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +19 -3
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/types.d.ts +53 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +6 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/quickstart/QuickstartScreen.d.ts.map +1 -1
- package/dist/quickstart/QuickstartScreen.js +217 -40
- package/dist/quickstart/QuickstartScreen.js.map +1 -1
- package/dist/quickstart/detect.d.ts.map +1 -1
- package/dist/quickstart/detect.js +47 -3
- package/dist/quickstart/detect.js.map +1 -1
- package/dist/quickstart/index.d.ts.map +1 -1
- package/dist/quickstart/index.js +107 -2
- package/dist/quickstart/index.js.map +1 -1
- package/dist/quickstart/installers.d.ts +37 -1
- package/dist/quickstart/installers.d.ts.map +1 -1
- package/dist/quickstart/installers.js +494 -1
- package/dist/quickstart/installers.js.map +1 -1
- package/dist/runner.d.ts +1 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +43 -3
- package/dist/runner.js.map +1 -1
- package/dist/tui/TunnelRunner.d.ts +1 -0
- package/dist/tui/TunnelRunner.d.ts.map +1 -1
- package/dist/tui/TunnelRunner.js +42 -1
- package/dist/tui/TunnelRunner.js.map +1 -1
- package/dist/tui/events.d.ts +1 -0
- package/dist/tui/events.d.ts.map +1 -1
- package/dist/tui/events.js.map +1 -1
- package/dist/workflows/index.d.ts +47 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +95 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/ltx-video.d.ts +45 -0
- package/dist/workflows/ltx-video.d.ts.map +1 -0
- package/dist/workflows/ltx-video.js +114 -0
- package/dist/workflows/ltx-video.js.map +1 -0
- package/dist/workflows/wan2.1.d.ts +44 -0
- package/dist/workflows/wan2.1.d.ts.map +1 -0
- package/dist/workflows/wan2.1.js +119 -0
- package/dist/workflows/wan2.1.js.map +1 -0
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -45,10 +45,25 @@ export interface ImageResult {
|
|
|
45
45
|
/** Seed used for generation */
|
|
46
46
|
seed?: number;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Result for video generation
|
|
50
|
+
*/
|
|
51
|
+
export interface VideoResult {
|
|
52
|
+
/** Base64-encoded video data */
|
|
53
|
+
videoBase64: string;
|
|
54
|
+
/** MIME type (e.g., "video/webp", "video/mp4") */
|
|
55
|
+
mimeType: string;
|
|
56
|
+
/** Duration in seconds */
|
|
57
|
+
duration?: number;
|
|
58
|
+
/** Frames per second */
|
|
59
|
+
fps?: number;
|
|
60
|
+
/** Seed used for generation */
|
|
61
|
+
seed?: number;
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
64
|
* Combined result type
|
|
50
65
|
*/
|
|
51
|
-
export type RequestResult = TextResult | ImageResult;
|
|
66
|
+
export type RequestResult = TextResult | ImageResult | VideoResult;
|
|
52
67
|
export declare function submitResult(requestId: string, success: boolean, result?: RequestResult, error?: string): Promise<void>;
|
|
53
68
|
export declare function verifyApiKey(): Promise<boolean>;
|
|
54
69
|
export type ModelTypeMindStudio = "llm_chat" | "image_generation" | "video_generation";
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAClE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsBnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IAClE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAsBnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAEnE,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAarD;AAED,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB;AAED,wBAAsB,kBAAkB,CACtC,kBAAkB,EAAE,MAAM,GAAG,oBAAoB,EACjD,QAAQ,GAAE,MAAiB,EAC3B,SAAS,GAAE,mBAAgC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB7D;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAmBD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3D,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAoBD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYzD"}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiBvD,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,aAAa,EAAE,UAAU,MAAM,EAAE;QACjC,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAgB;IAEhB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,gCAAgC,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAC3E;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,UAAU,EAAE;KACtB,CACF,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAC;IACvE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,OAAe;IAEf,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,6BAA6B,SAAS,WAAW,EAC3D;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,UAAU,EAAE;QACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;KAClC,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAAiB,EACjB,IAAY,EACZ,UAAkB,EAClB,OAAgB;IAEhB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,6BAA6B,SAAS,WAAW,EAC3D;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,UAAU,EAAE;QACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,YAAY;YAClB,IAAI;YACJ,UAAU;YACV,OAAO;SACR,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,sCAAsC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export declare function getStableDiffusionBaseUrl(): string;
|
|
|
14
14
|
export declare function setStableDiffusionBaseUrl(url: string): void;
|
|
15
15
|
export declare function getStableDiffusionInstallPath(): string | undefined;
|
|
16
16
|
export declare function setStableDiffusionInstallPath(path: string): void;
|
|
17
|
+
export declare function getComfyUIBaseUrl(): string;
|
|
18
|
+
export declare function setComfyUIBaseUrl(url: string): void;
|
|
19
|
+
export declare function getComfyUIInstallPath(): string | undefined;
|
|
20
|
+
export declare function setComfyUIInstallPath(path: string): void;
|
|
17
21
|
export declare function getConfigPath(): string;
|
|
18
22
|
export declare function getEnvironmentInfo(): {
|
|
19
23
|
current: Environment;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAyC3C,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAErD;AAcD,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAGD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAGD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD;AAGD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAGD,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3D;AAGD,wBAAgB,6BAA6B,IAAI,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhE;AAGD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEnD;AAGD,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,kBAAkB,IAAI;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAQA"}
|
package/dist/config.js
CHANGED
|
@@ -6,6 +6,7 @@ const config = new Conf({
|
|
|
6
6
|
ollamaBaseUrl: "http://localhost:11434",
|
|
7
7
|
lmstudioBaseUrl: "http://localhost:1234/v1",
|
|
8
8
|
stableDiffusionBaseUrl: "http://127.0.0.1:7860",
|
|
9
|
+
comfyuiBaseUrl: "http://127.0.0.1:8188",
|
|
9
10
|
environments: {
|
|
10
11
|
prod: {
|
|
11
12
|
apiBaseUrl: "https://api.mindstudio.ai",
|
|
@@ -78,6 +79,20 @@ export function getStableDiffusionInstallPath() {
|
|
|
78
79
|
export function setStableDiffusionInstallPath(path) {
|
|
79
80
|
config.set("stableDiffusionInstallPath", path);
|
|
80
81
|
}
|
|
82
|
+
// ComfyUI (shared across environments)
|
|
83
|
+
export function getComfyUIBaseUrl() {
|
|
84
|
+
return config.get("comfyuiBaseUrl");
|
|
85
|
+
}
|
|
86
|
+
export function setComfyUIBaseUrl(url) {
|
|
87
|
+
config.set("comfyuiBaseUrl", url);
|
|
88
|
+
}
|
|
89
|
+
// ComfyUI install path
|
|
90
|
+
export function getComfyUIInstallPath() {
|
|
91
|
+
return config.get("comfyuiInstallPath");
|
|
92
|
+
}
|
|
93
|
+
export function setComfyUIInstallPath(path) {
|
|
94
|
+
config.set("comfyuiInstallPath", path);
|
|
95
|
+
}
|
|
81
96
|
export function getConfigPath() {
|
|
82
97
|
return config.path;
|
|
83
98
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { VideoProvider, LocalModel, VideoGenerationOptions, VideoGenerationResult, VideoGenerationProgress, ParameterSchema } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* ComfyUI provider for video generation.
|
|
4
|
+
* Default URL: http://127.0.0.1:8188
|
|
5
|
+
*/
|
|
6
|
+
export declare class ComfyUIProvider implements VideoProvider {
|
|
7
|
+
readonly name: "comfyui";
|
|
8
|
+
readonly displayName = "ComfyUI";
|
|
9
|
+
readonly capability: "video";
|
|
10
|
+
private getBaseUrl;
|
|
11
|
+
isRunning(): Promise<boolean>;
|
|
12
|
+
/**
|
|
13
|
+
* Discover video models by scanning ComfyUI's model directories.
|
|
14
|
+
*/
|
|
15
|
+
discoverModels(): Promise<LocalModel[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Generate a video using ComfyUI.
|
|
18
|
+
*/
|
|
19
|
+
generateVideo(model: string, prompt: string, options?: VideoGenerationOptions, onProgress?: (progress: VideoGenerationProgress) => void): Promise<VideoGenerationResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Wait for a ComfyUI prompt to finish execution via WebSocket.
|
|
22
|
+
*/
|
|
23
|
+
private waitForCompletion;
|
|
24
|
+
/**
|
|
25
|
+
* Get parameter schemas for video generation UI configuration.
|
|
26
|
+
*/
|
|
27
|
+
getParameterSchemas(): Promise<ParameterSchema[]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=comfyui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comfyui.d.ts","sourceRoot":"","sources":["../../src/providers/comfyui.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IACnC,QAAQ,CAAC,WAAW,aAAa;IACjC,QAAQ,CAAC,UAAU,EAAG,OAAO,CAAU;IAEvC,OAAO,CAAC,UAAU;IAIZ,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAYnC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAqG7C;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,EAChC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,GACvD,OAAO,CAAC,qBAAqB,CAAC;IAsJjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoGzB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAuExD"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { getComfyUIBaseUrl, getComfyUIInstallPath } from "../config.js";
|
|
4
|
+
import { getWorkflowForModel, isKnownVideoModel, } from "../workflows/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* ComfyUI provider for video generation.
|
|
7
|
+
* Default URL: http://127.0.0.1:8188
|
|
8
|
+
*/
|
|
9
|
+
export class ComfyUIProvider {
|
|
10
|
+
name = "comfyui";
|
|
11
|
+
displayName = "ComfyUI";
|
|
12
|
+
capability = "video";
|
|
13
|
+
getBaseUrl() {
|
|
14
|
+
return getComfyUIBaseUrl();
|
|
15
|
+
}
|
|
16
|
+
async isRunning() {
|
|
17
|
+
try {
|
|
18
|
+
const response = await fetch(`${this.getBaseUrl()}/system_stats`, {
|
|
19
|
+
method: "GET",
|
|
20
|
+
signal: AbortSignal.timeout(5000),
|
|
21
|
+
});
|
|
22
|
+
return response.ok;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Discover video models by scanning ComfyUI's model directories.
|
|
30
|
+
*/
|
|
31
|
+
async discoverModels() {
|
|
32
|
+
const models = [];
|
|
33
|
+
// Try to discover models via the API first (more reliable)
|
|
34
|
+
try {
|
|
35
|
+
const response = await fetch(`${this.getBaseUrl()}/object_info/CheckpointLoaderSimple`, { signal: AbortSignal.timeout(5000) });
|
|
36
|
+
if (response.ok) {
|
|
37
|
+
const data = (await response.json());
|
|
38
|
+
const nodeInfo = data.CheckpointLoaderSimple;
|
|
39
|
+
const checkpoints = nodeInfo?.input?.required?.ckpt_name?.[0] || [];
|
|
40
|
+
for (const name of checkpoints) {
|
|
41
|
+
if (isKnownVideoModel(name)) {
|
|
42
|
+
const workflow = getWorkflowForModel(name);
|
|
43
|
+
models.push({
|
|
44
|
+
name: name,
|
|
45
|
+
provider: this.name,
|
|
46
|
+
capability: "video",
|
|
47
|
+
parameterSize: workflow?.displayName,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// API not available, try filesystem scan
|
|
55
|
+
}
|
|
56
|
+
// Also scan diffusion_models directory for Wan2.1 style models
|
|
57
|
+
try {
|
|
58
|
+
const response = await fetch(`${this.getBaseUrl()}/object_info/UNETLoader`, { signal: AbortSignal.timeout(5000) });
|
|
59
|
+
if (response.ok) {
|
|
60
|
+
const data = (await response.json());
|
|
61
|
+
const nodeInfo = data.UNETLoader;
|
|
62
|
+
const unetModels = nodeInfo?.input?.required?.unet_name?.[0] || [];
|
|
63
|
+
for (const name of unetModels) {
|
|
64
|
+
if (isKnownVideoModel(name) &&
|
|
65
|
+
!models.some((m) => m.name === name)) {
|
|
66
|
+
const workflow = getWorkflowForModel(name);
|
|
67
|
+
models.push({
|
|
68
|
+
name: name,
|
|
69
|
+
provider: this.name,
|
|
70
|
+
capability: "video",
|
|
71
|
+
parameterSize: workflow?.displayName,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Ignore
|
|
79
|
+
}
|
|
80
|
+
// Fallback: scan filesystem if API returned nothing
|
|
81
|
+
if (models.length === 0) {
|
|
82
|
+
const installPath = getComfyUIInstallPath();
|
|
83
|
+
if (installPath) {
|
|
84
|
+
const dirs = [
|
|
85
|
+
path.join(installPath, "models", "checkpoints"),
|
|
86
|
+
path.join(installPath, "models", "diffusion_models"),
|
|
87
|
+
];
|
|
88
|
+
for (const dir of dirs) {
|
|
89
|
+
if (fs.existsSync(dir)) {
|
|
90
|
+
try {
|
|
91
|
+
const files = fs.readdirSync(dir);
|
|
92
|
+
for (const file of files) {
|
|
93
|
+
if (isKnownVideoModel(file) &&
|
|
94
|
+
!models.some((m) => m.name === file)) {
|
|
95
|
+
const workflow = getWorkflowForModel(file);
|
|
96
|
+
models.push({
|
|
97
|
+
name: file,
|
|
98
|
+
provider: this.name,
|
|
99
|
+
capability: "video",
|
|
100
|
+
parameterSize: workflow?.displayName,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Ignore read errors
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return models;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generate a video using ComfyUI.
|
|
116
|
+
*/
|
|
117
|
+
async generateVideo(model, prompt, options, onProgress) {
|
|
118
|
+
const baseUrl = this.getBaseUrl();
|
|
119
|
+
const workflowConfig = getWorkflowForModel(model);
|
|
120
|
+
if (!workflowConfig) {
|
|
121
|
+
throw new Error(`No workflow template found for model: ${model}. Supported families: LTX-Video, Wan2.1`);
|
|
122
|
+
}
|
|
123
|
+
const defaults = workflowConfig.defaults;
|
|
124
|
+
const seed = options?.seed !== undefined && options.seed !== -1
|
|
125
|
+
? options.seed
|
|
126
|
+
: Math.floor(Math.random() * 2 ** 32);
|
|
127
|
+
// Build the workflow
|
|
128
|
+
const workflow = workflowConfig.buildWorkflow({
|
|
129
|
+
model,
|
|
130
|
+
prompt,
|
|
131
|
+
negativePrompt: options?.negativePrompt || "worst quality, blurry, distorted",
|
|
132
|
+
width: options?.width || defaults.width,
|
|
133
|
+
height: options?.height || defaults.height,
|
|
134
|
+
numFrames: options?.numFrames || defaults.numFrames,
|
|
135
|
+
fps: options?.fps || defaults.fps,
|
|
136
|
+
steps: options?.steps || defaults.steps,
|
|
137
|
+
cfgScale: options?.cfgScale || defaults.cfgScale,
|
|
138
|
+
seed,
|
|
139
|
+
});
|
|
140
|
+
// Generate a unique client ID for this request
|
|
141
|
+
const clientId = `mindstudio_${Date.now()}_${Math.random().toString(36).slice(2)}`;
|
|
142
|
+
// Connect WebSocket for progress tracking before submitting
|
|
143
|
+
const wsUrl = baseUrl.replace(/^http/, "ws") + `/ws?clientId=${clientId}`;
|
|
144
|
+
// Submit the workflow
|
|
145
|
+
const submitResponse = await fetch(`${baseUrl}/prompt`, {
|
|
146
|
+
method: "POST",
|
|
147
|
+
headers: { "Content-Type": "application/json" },
|
|
148
|
+
body: JSON.stringify({
|
|
149
|
+
prompt: workflow,
|
|
150
|
+
client_id: clientId,
|
|
151
|
+
}),
|
|
152
|
+
});
|
|
153
|
+
if (!submitResponse.ok) {
|
|
154
|
+
const errorText = await submitResponse.text();
|
|
155
|
+
throw new Error(`ComfyUI prompt submission failed: ${submitResponse.status} ${errorText}`);
|
|
156
|
+
}
|
|
157
|
+
const submitResult = (await submitResponse.json());
|
|
158
|
+
if (submitResult.node_errors && Object.keys(submitResult.node_errors).length > 0) {
|
|
159
|
+
throw new Error(`ComfyUI workflow validation failed: ${JSON.stringify(submitResult.node_errors)}`);
|
|
160
|
+
}
|
|
161
|
+
const promptId = submitResult.prompt_id;
|
|
162
|
+
// Wait for execution to complete using WebSocket
|
|
163
|
+
await this.waitForCompletion(wsUrl, promptId, onProgress);
|
|
164
|
+
// Fetch the result from history
|
|
165
|
+
const historyResponse = await fetch(`${baseUrl}/history/${promptId}`, { signal: AbortSignal.timeout(30000) });
|
|
166
|
+
if (!historyResponse.ok) {
|
|
167
|
+
throw new Error(`Failed to fetch result history: ${historyResponse.status}`);
|
|
168
|
+
}
|
|
169
|
+
const history = (await historyResponse.json());
|
|
170
|
+
const promptHistory = history[promptId];
|
|
171
|
+
if (!promptHistory) {
|
|
172
|
+
throw new Error("No result found in ComfyUI history");
|
|
173
|
+
}
|
|
174
|
+
// Find the output from our output node
|
|
175
|
+
// VHS_VideoCombine uses "gifs" key, SaveAnimatedWEBP uses "images"
|
|
176
|
+
const outputNodeId = workflowConfig.outputNodeId;
|
|
177
|
+
const outputData = promptHistory.outputs[outputNodeId];
|
|
178
|
+
const outputFiles = outputData?.gifs || outputData?.images;
|
|
179
|
+
if (!outputFiles || outputFiles.length === 0) {
|
|
180
|
+
throw new Error("No output files found in ComfyUI result");
|
|
181
|
+
}
|
|
182
|
+
const outputFile = outputFiles[0];
|
|
183
|
+
// Download the output file
|
|
184
|
+
const fileUrl = new URL(`${baseUrl}/view`);
|
|
185
|
+
fileUrl.searchParams.set("filename", outputFile.filename);
|
|
186
|
+
fileUrl.searchParams.set("subfolder", outputFile.subfolder || "");
|
|
187
|
+
fileUrl.searchParams.set("type", outputFile.type || "output");
|
|
188
|
+
const fileResponse = await fetch(fileUrl.toString(), {
|
|
189
|
+
signal: AbortSignal.timeout(60000),
|
|
190
|
+
});
|
|
191
|
+
if (!fileResponse.ok) {
|
|
192
|
+
throw new Error(`Failed to download output file: ${fileResponse.status}`);
|
|
193
|
+
}
|
|
194
|
+
const fileBuffer = await fileResponse.arrayBuffer();
|
|
195
|
+
const videoBase64 = Buffer.from(fileBuffer).toString("base64");
|
|
196
|
+
// Determine MIME type from filename
|
|
197
|
+
const ext = path.extname(outputFile.filename).toLowerCase();
|
|
198
|
+
const mimeType = ext === ".mp4"
|
|
199
|
+
? "video/mp4"
|
|
200
|
+
: ext === ".webm"
|
|
201
|
+
? "video/webm"
|
|
202
|
+
: ext === ".webp"
|
|
203
|
+
? "image/webp"
|
|
204
|
+
: ext === ".gif"
|
|
205
|
+
? "image/gif"
|
|
206
|
+
: "video/mp4";
|
|
207
|
+
const fps = options?.fps || defaults.fps;
|
|
208
|
+
const numFrames = options?.numFrames || defaults.numFrames;
|
|
209
|
+
return {
|
|
210
|
+
videoBase64,
|
|
211
|
+
mimeType,
|
|
212
|
+
duration: numFrames / fps,
|
|
213
|
+
fps,
|
|
214
|
+
seed,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Wait for a ComfyUI prompt to finish execution via WebSocket.
|
|
219
|
+
*/
|
|
220
|
+
waitForCompletion(wsUrl, promptId, onProgress) {
|
|
221
|
+
return new Promise((resolve, reject) => {
|
|
222
|
+
const timeoutMs = 30 * 60 * 1000; // 30 minutes for video generation
|
|
223
|
+
let ws;
|
|
224
|
+
const timeout = setTimeout(() => {
|
|
225
|
+
try {
|
|
226
|
+
ws?.close();
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// Ignore
|
|
230
|
+
}
|
|
231
|
+
reject(new Error("Video generation timed out after 30 minutes"));
|
|
232
|
+
}, timeoutMs);
|
|
233
|
+
try {
|
|
234
|
+
ws = new WebSocket(wsUrl);
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
clearTimeout(timeout);
|
|
238
|
+
reject(new Error(`Failed to connect to ComfyUI WebSocket: ${err instanceof Error ? err.message : err}`));
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
ws.onmessage = (event) => {
|
|
242
|
+
try {
|
|
243
|
+
const message = JSON.parse(typeof event.data === "string" ? event.data : "");
|
|
244
|
+
if (message.type === "progress") {
|
|
245
|
+
const data = message.data;
|
|
246
|
+
if (!data.prompt_id || data.prompt_id === promptId) {
|
|
247
|
+
onProgress?.({
|
|
248
|
+
step: data.value,
|
|
249
|
+
totalSteps: data.max,
|
|
250
|
+
currentNode: data.node,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (message.type === "execution_success") {
|
|
255
|
+
const data = message.data;
|
|
256
|
+
if (data.prompt_id === promptId) {
|
|
257
|
+
clearTimeout(timeout);
|
|
258
|
+
ws.close();
|
|
259
|
+
resolve();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (message.type === "execution_error") {
|
|
263
|
+
const data = message.data;
|
|
264
|
+
if (data.prompt_id === promptId) {
|
|
265
|
+
clearTimeout(timeout);
|
|
266
|
+
ws.close();
|
|
267
|
+
reject(new Error(`ComfyUI execution error${data.node_type ? ` in ${data.node_type}` : ""}: ${data.exception_message || "Unknown error"}`));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// Ignore non-JSON messages
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
ws.onerror = () => {
|
|
276
|
+
clearTimeout(timeout);
|
|
277
|
+
reject(new Error("ComfyUI WebSocket error: connection failed"));
|
|
278
|
+
};
|
|
279
|
+
ws.onclose = (event) => {
|
|
280
|
+
// Only reject if we haven't already resolved
|
|
281
|
+
if (!event.wasClean) {
|
|
282
|
+
clearTimeout(timeout);
|
|
283
|
+
reject(new Error("ComfyUI WebSocket connection closed unexpectedly"));
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get parameter schemas for video generation UI configuration.
|
|
290
|
+
*/
|
|
291
|
+
async getParameterSchemas() {
|
|
292
|
+
return [
|
|
293
|
+
{
|
|
294
|
+
type: "number",
|
|
295
|
+
label: "Width",
|
|
296
|
+
variable: "width",
|
|
297
|
+
helpText: "Video width in pixels. Larger = better quality but bigger file.",
|
|
298
|
+
defaultValue: 512,
|
|
299
|
+
numberOptions: { min: 256, max: 1280, step: 64 },
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
type: "number",
|
|
303
|
+
label: "Height",
|
|
304
|
+
variable: "height",
|
|
305
|
+
helpText: "Video height in pixels. Larger = better quality but bigger file.",
|
|
306
|
+
defaultValue: 320,
|
|
307
|
+
numberOptions: { min: 256, max: 1280, step: 64 },
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
type: "number",
|
|
311
|
+
label: "Frames",
|
|
312
|
+
variable: "numFrames",
|
|
313
|
+
helpText: "Number of frames to generate. More frames = longer video but bigger file. Keep low to avoid upload limits.",
|
|
314
|
+
defaultValue: 41,
|
|
315
|
+
numberOptions: { min: 9, max: 97, step: 8 },
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
type: "number",
|
|
319
|
+
label: "FPS",
|
|
320
|
+
variable: "fps",
|
|
321
|
+
helpText: "Frames per second for the output video.",
|
|
322
|
+
defaultValue: 8,
|
|
323
|
+
numberOptions: { min: 4, max: 30, step: 1 },
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
type: "number",
|
|
327
|
+
label: "Steps",
|
|
328
|
+
variable: "steps",
|
|
329
|
+
helpText: "Number of denoising steps. More steps = higher quality but slower.",
|
|
330
|
+
defaultValue: 20,
|
|
331
|
+
numberOptions: { min: 10, max: 100, step: 1 },
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
type: "number",
|
|
335
|
+
label: "CFG Scale",
|
|
336
|
+
variable: "cfgScale",
|
|
337
|
+
helpText: "How strongly the video should follow the prompt. Higher = more literal.",
|
|
338
|
+
defaultValue: 7,
|
|
339
|
+
numberOptions: { min: 1, max: 20, step: 0.5 },
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
type: "number",
|
|
343
|
+
label: "Seed",
|
|
344
|
+
variable: "seed",
|
|
345
|
+
helpText: "A specific value used to guide randomness. Use -1 for random.",
|
|
346
|
+
defaultValue: -1,
|
|
347
|
+
numberOptions: { min: -1, max: 2147483647 },
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
type: "text",
|
|
351
|
+
label: "Negative Prompt",
|
|
352
|
+
variable: "negativePrompt",
|
|
353
|
+
helpText: "Things you don't want in the video",
|
|
354
|
+
placeholder: "worst quality, blurry, distorted",
|
|
355
|
+
},
|
|
356
|
+
];
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=comfyui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comfyui.js","sourceRoot":"","sources":["../../src/providers/comfyui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Provider, TextProvider, ImageProvider, LocalModel, ProviderType, ModelCapability } from "./types.js";
|
|
1
|
+
import type { Provider, TextProvider, ImageProvider, VideoProvider, LocalModel, ProviderType, ModelCapability } from "./types.js";
|
|
2
2
|
export * from "./types.js";
|
|
3
3
|
export { OllamaProvider } from "./ollama.js";
|
|
4
4
|
export { LMStudioProvider } from "./lmstudio.js";
|
|
5
5
|
export { StableDiffusionProvider } from "./stable-diffusion.js";
|
|
6
|
+
export { ComfyUIProvider } from "./comfyui.js";
|
|
6
7
|
/**
|
|
7
8
|
* Get a provider instance by name
|
|
8
9
|
*/
|
|
@@ -42,6 +43,14 @@ export declare function getTextProvider(name: ProviderType): TextProvider | unde
|
|
|
42
43
|
* Get an image provider by name
|
|
43
44
|
*/
|
|
44
45
|
export declare function getImageProvider(name: ProviderType): ImageProvider | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Get all video providers
|
|
48
|
+
*/
|
|
49
|
+
export declare function getVideoProviders(): VideoProvider[];
|
|
50
|
+
/**
|
|
51
|
+
* Get a video provider by name
|
|
52
|
+
*/
|
|
53
|
+
export declare function getVideoProvider(name: ProviderType): VideoProvider | undefined;
|
|
45
54
|
/**
|
|
46
55
|
* Discover models filtered by capability
|
|
47
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAU/C;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAEpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASpE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG7D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAClD,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAChD,CAOA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAG5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,GACjB,aAAa,GAAG,SAAS,CAG3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,GACjB,aAAa,GAAG,SAAS,CAG3B;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAWvB;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAqB7E"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { OllamaProvider } from "./ollama.js";
|
|
2
2
|
import { LMStudioProvider } from "./lmstudio.js";
|
|
3
3
|
import { StableDiffusionProvider } from "./stable-diffusion.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ComfyUIProvider } from "./comfyui.js";
|
|
5
|
+
import { isTextProvider, isImageProvider, isVideoProvider } from "./types.js";
|
|
5
6
|
export * from "./types.js";
|
|
6
7
|
export { OllamaProvider } from "./ollama.js";
|
|
7
8
|
export { LMStudioProvider } from "./lmstudio.js";
|
|
8
9
|
export { StableDiffusionProvider } from "./stable-diffusion.js";
|
|
10
|
+
export { ComfyUIProvider } from "./comfyui.js";
|
|
9
11
|
// Registry of all available providers
|
|
10
12
|
const allProviders = [
|
|
11
13
|
new OllamaProvider(),
|
|
12
14
|
new LMStudioProvider(),
|
|
13
15
|
new StableDiffusionProvider(),
|
|
16
|
+
new ComfyUIProvider(),
|
|
14
17
|
];
|
|
15
18
|
/**
|
|
16
19
|
* Get a provider instance by name
|
|
@@ -78,6 +81,19 @@ export function getImageProvider(name) {
|
|
|
78
81
|
const provider = allProviders.find((p) => p.name === name);
|
|
79
82
|
return provider && isImageProvider(provider) ? provider : undefined;
|
|
80
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Get all video providers
|
|
86
|
+
*/
|
|
87
|
+
export function getVideoProviders() {
|
|
88
|
+
return allProviders.filter(isVideoProvider);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get a video provider by name
|
|
92
|
+
*/
|
|
93
|
+
export function getVideoProvider(name) {
|
|
94
|
+
const provider = allProviders.find((p) => p.name === name);
|
|
95
|
+
return provider && isVideoProvider(provider) ? provider : undefined;
|
|
96
|
+
}
|
|
81
97
|
/**
|
|
82
98
|
* Discover models filtered by capability
|
|
83
99
|
*/
|
|
@@ -95,8 +111,8 @@ export async function discoverAllModelsWithParameters() {
|
|
|
95
111
|
const runningProviders = await discoverRunningProviders();
|
|
96
112
|
const modelsWithParams = await Promise.all(runningProviders.map(async (provider) => {
|
|
97
113
|
const models = await provider.discoverModels();
|
|
98
|
-
// For image providers, fetch parameter schemas
|
|
99
|
-
if (isImageProvider(provider)) {
|
|
114
|
+
// For image/video providers, fetch parameter schemas
|
|
115
|
+
if (isImageProvider(provider) || isVideoProvider(provider)) {
|
|
100
116
|
const parameters = await provider.getParameterSchemas();
|
|
101
117
|
return models.map((model) => ({
|
|
102
118
|
...model,
|