@huggingface/tasks 0.19.3 → 0.19.5
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/commonjs/gguf.d.ts +54 -4
- package/dist/commonjs/gguf.d.ts.map +1 -1
- package/dist/commonjs/gguf.js +152 -8
- package/dist/commonjs/local-apps.d.ts +7 -0
- package/dist/commonjs/local-apps.d.ts.map +1 -1
- package/dist/commonjs/local-apps.js +40 -0
- package/dist/commonjs/model-libraries-snippets.d.ts +3 -0
- package/dist/commonjs/model-libraries-snippets.d.ts.map +1 -1
- package/dist/commonjs/model-libraries-snippets.js +116 -20
- package/dist/commonjs/model-libraries.d.ts +24 -1
- package/dist/commonjs/model-libraries.d.ts.map +1 -1
- package/dist/commonjs/model-libraries.js +23 -0
- package/dist/commonjs/tasks/index.js +1 -1
- package/dist/esm/gguf.d.ts +54 -4
- package/dist/esm/gguf.d.ts.map +1 -1
- package/dist/esm/gguf.js +150 -7
- package/dist/esm/local-apps.d.ts +7 -0
- package/dist/esm/local-apps.d.ts.map +1 -1
- package/dist/esm/local-apps.js +40 -0
- package/dist/esm/model-libraries-snippets.d.ts +3 -0
- package/dist/esm/model-libraries-snippets.d.ts.map +1 -1
- package/dist/esm/model-libraries-snippets.js +111 -18
- package/dist/esm/model-libraries.d.ts +24 -1
- package/dist/esm/model-libraries.d.ts.map +1 -1
- package/dist/esm/model-libraries.js +23 -0
- package/dist/esm/tasks/index.js +1 -1
- package/package.json +1 -2
- package/src/gguf.ts +169 -9
- package/src/local-apps.ts +42 -0
- package/src/model-libraries-snippets.ts +116 -18
- package/src/model-libraries.ts +23 -0
- package/src/tasks/index.ts +1 -1
- package/src/tasks/reinforcement-learning/about.md +1 -1
|
@@ -212,6 +212,13 @@ exports.MODEL_LIBRARIES_UI_ELEMENTS = {
|
|
|
212
212
|
filter: false,
|
|
213
213
|
countDownloads: `path:"scin_dataset_precomputed_embeddings.npz" OR path:"saved_model.pb"`,
|
|
214
214
|
},
|
|
215
|
+
"describe-anything": {
|
|
216
|
+
prettyLabel: "Describe Anything",
|
|
217
|
+
repoName: "Describe Anything",
|
|
218
|
+
repoUrl: "https://github.com/NVlabs/describe-anything",
|
|
219
|
+
snippets: snippets.describe_anything,
|
|
220
|
+
filter: false,
|
|
221
|
+
},
|
|
215
222
|
"dia-tts": {
|
|
216
223
|
prettyLabel: "Dia",
|
|
217
224
|
repoName: "Dia",
|
|
@@ -644,6 +651,14 @@ exports.MODEL_LIBRARIES_UI_ELEMENTS = {
|
|
|
644
651
|
snippets: snippets.perception_encoder,
|
|
645
652
|
countDownloads: `path_extension:"pt"`,
|
|
646
653
|
},
|
|
654
|
+
"phantom-wan": {
|
|
655
|
+
prettyLabel: "Phantom",
|
|
656
|
+
repoName: "Phantom",
|
|
657
|
+
repoUrl: "https://github.com/Phantom-video/Phantom",
|
|
658
|
+
snippets: snippets.phantom_wan,
|
|
659
|
+
filter: false,
|
|
660
|
+
countDownloads: `path_extension:"pth"`,
|
|
661
|
+
},
|
|
647
662
|
pxia: {
|
|
648
663
|
prettyLabel: "pxia",
|
|
649
664
|
repoName: "pxia",
|
|
@@ -991,6 +1006,14 @@ exports.MODEL_LIBRARIES_UI_ELEMENTS = {
|
|
|
991
1006
|
countDownloads: `path_extension:"pt" OR path_extension:"safetensors"`,
|
|
992
1007
|
snippets: snippets.ultralytics,
|
|
993
1008
|
},
|
|
1009
|
+
zonos: {
|
|
1010
|
+
prettyLabel: "Zonos",
|
|
1011
|
+
repoName: "Zonos",
|
|
1012
|
+
repoUrl: "https://github.com/Zyphra/Zonos",
|
|
1013
|
+
docsUrl: "https://github.com/Zyphra/Zonos",
|
|
1014
|
+
snippets: snippets.zonos,
|
|
1015
|
+
filter: false,
|
|
1016
|
+
},
|
|
994
1017
|
"3dtopia-xl": {
|
|
995
1018
|
prettyLabel: "3DTopia-XL",
|
|
996
1019
|
repoName: "3DTopia-XL",
|
|
@@ -119,7 +119,7 @@ exports.TASKS_MODEL_LIBRARIES = {
|
|
|
119
119
|
/**
|
|
120
120
|
* Return the whole TaskData object for a certain task.
|
|
121
121
|
* If the partialTaskData argument is left undefined,
|
|
122
|
-
* the default
|
|
122
|
+
* the default placeholder data will be used.
|
|
123
123
|
*/
|
|
124
124
|
function getData(type, partialTaskData = data_js_17.default) {
|
|
125
125
|
return {
|
package/dist/esm/gguf.d.ts
CHANGED
|
@@ -1,3 +1,54 @@
|
|
|
1
|
+
export declare enum GGMLFileQuantizationType {
|
|
2
|
+
F32 = 0,
|
|
3
|
+
F16 = 1,
|
|
4
|
+
Q4_0 = 2,
|
|
5
|
+
Q4_1 = 3,
|
|
6
|
+
Q4_1_SOME_F16 = 4,
|
|
7
|
+
Q4_2 = 5,
|
|
8
|
+
Q4_3 = 6,
|
|
9
|
+
Q8_0 = 7,
|
|
10
|
+
Q5_0 = 8,
|
|
11
|
+
Q5_1 = 9,
|
|
12
|
+
Q2_K = 10,
|
|
13
|
+
Q3_K_S = 11,
|
|
14
|
+
Q3_K_M = 12,
|
|
15
|
+
Q3_K_L = 13,
|
|
16
|
+
Q4_K_S = 14,
|
|
17
|
+
Q4_K_M = 15,
|
|
18
|
+
Q5_K_S = 16,
|
|
19
|
+
Q5_K_M = 17,
|
|
20
|
+
Q6_K = 18,
|
|
21
|
+
IQ2_XXS = 19,
|
|
22
|
+
IQ2_XS = 20,
|
|
23
|
+
Q2_K_S = 21,
|
|
24
|
+
IQ3_XS = 22,
|
|
25
|
+
IQ3_XXS = 23,
|
|
26
|
+
IQ1_S = 24,
|
|
27
|
+
IQ4_NL = 25,
|
|
28
|
+
IQ3_S = 26,
|
|
29
|
+
IQ3_M = 27,
|
|
30
|
+
IQ2_S = 28,
|
|
31
|
+
IQ2_M = 29,
|
|
32
|
+
IQ4_XS = 30,
|
|
33
|
+
IQ1_M = 31,
|
|
34
|
+
BF16 = 32,
|
|
35
|
+
Q4_0_4_4 = 33,
|
|
36
|
+
Q4_0_4_8 = 34,
|
|
37
|
+
Q4_0_8_8 = 35,
|
|
38
|
+
TQ1_0 = 36,
|
|
39
|
+
TQ2_0 = 37,
|
|
40
|
+
Q2_K_XL = 1000,
|
|
41
|
+
Q3_K_XL = 1001,
|
|
42
|
+
Q4_K_XL = 1002,
|
|
43
|
+
Q5_K_XL = 1003,
|
|
44
|
+
Q6_K_XL = 1004,
|
|
45
|
+
Q8_K_XL = 1005
|
|
46
|
+
}
|
|
47
|
+
export declare const GGUF_QUANT_RE: RegExp;
|
|
48
|
+
export declare const GGUF_QUANT_RE_GLOBAL: RegExp;
|
|
49
|
+
export declare function parseGGUFQuantLabel(fname: string): string | undefined;
|
|
50
|
+
export declare const GGUF_QUANT_ORDER: GGMLFileQuantizationType[];
|
|
51
|
+
export declare function findNearestQuantType(quant: GGMLFileQuantizationType, availableQuants: GGMLFileQuantizationType[]): GGMLFileQuantizationType | undefined;
|
|
1
52
|
export declare enum GGMLQuantizationType {
|
|
2
53
|
F32 = 0,
|
|
3
54
|
F16 = 1,
|
|
@@ -27,9 +78,8 @@ export declare enum GGMLQuantizationType {
|
|
|
27
78
|
I64 = 27,
|
|
28
79
|
F64 = 28,
|
|
29
80
|
IQ1_M = 29,
|
|
30
|
-
BF16 = 30
|
|
81
|
+
BF16 = 30,
|
|
82
|
+
TQ1_0 = 34,
|
|
83
|
+
TQ2_0 = 35
|
|
31
84
|
}
|
|
32
|
-
export declare const GGUF_QUANT_RE: RegExp;
|
|
33
|
-
export declare const GGUF_QUANT_RE_GLOBAL: RegExp;
|
|
34
|
-
export declare function parseGGUFQuantLabel(fname: string): string | undefined;
|
|
35
85
|
//# sourceMappingURL=gguf.d.ts.map
|
package/dist/esm/gguf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gguf.d.ts","sourceRoot":"","sources":["../../src/gguf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gguf.d.ts","sourceRoot":"","sources":["../../src/gguf.ts"],"names":[],"mappings":"AAGA,oBAAY,wBAAwB;IACnC,GAAG,IAAI;IACP,GAAG,IAAI;IACP,IAAI,IAAI;IACR,IAAI,IAAI;IACR,aAAa,IAAI;IACjB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,KAAK;IACT,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,MAAM,KAAK;IACX,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,KAAK,KAAK;IACV,MAAM,KAAK;IACX,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,KAAK,KAAK;IACV,MAAM,KAAK;IACX,KAAK,KAAK;IACV,IAAI,KAAK;IACT,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,KAAK,KAAK;IACV,KAAK,KAAK;IAIV,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;CACd;AAGD,eAAO,MAAM,aAAa,QAAmF,CAAC;AAC9G,eAAO,MAAM,oBAAoB,QAAiC,CAAC;AAEnE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAKD,eAAO,MAAM,gBAAgB,EAAE,wBAAwB,EAyDtD,CAAC;AAIF,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,wBAAwB,EAC/B,eAAe,EAAE,wBAAwB,EAAE,GACzC,wBAAwB,GAAG,SAAS,CAmCtC;AAGD,oBAAY,oBAAoB;IAC/B,GAAG,IAAI;IACP,GAAG,IAAI;IACP,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,IAAI;IACR,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,KAAK,KAAK;IACV,MAAM,KAAK;IACX,KAAK,KAAK;IACV,KAAK,KAAK;IACV,MAAM,KAAK;IACX,EAAE,KAAK;IACP,GAAG,KAAK;IACR,GAAG,KAAK;IACR,GAAG,KAAK;IACR,GAAG,KAAK;IACR,KAAK,KAAK;IACV,IAAI,KAAK;IACT,KAAK,KAAK;IACV,KAAK,KAAK;CACV"}
|
package/dist/esm/gguf.js
CHANGED
|
@@ -1,3 +1,151 @@
|
|
|
1
|
+
// This list is copied from gguf/types.ts, but will all types available (for backward compatibility)
|
|
2
|
+
// NOT to be confused with GGMLQuantizationType, a FileQuantization can contain multiple GGMLQuantizationType
|
|
3
|
+
// For example, Q4_K_M model can contains Q4_K and Q6_K tensors
|
|
4
|
+
export var GGMLFileQuantizationType;
|
|
5
|
+
(function (GGMLFileQuantizationType) {
|
|
6
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["F32"] = 0] = "F32";
|
|
7
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["F16"] = 1] = "F16";
|
|
8
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_0"] = 2] = "Q4_0";
|
|
9
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_1"] = 3] = "Q4_1";
|
|
10
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_1_SOME_F16"] = 4] = "Q4_1_SOME_F16";
|
|
11
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_2"] = 5] = "Q4_2";
|
|
12
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_3"] = 6] = "Q4_3";
|
|
13
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q8_0"] = 7] = "Q8_0";
|
|
14
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q5_0"] = 8] = "Q5_0";
|
|
15
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q5_1"] = 9] = "Q5_1";
|
|
16
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q2_K"] = 10] = "Q2_K";
|
|
17
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q3_K_S"] = 11] = "Q3_K_S";
|
|
18
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q3_K_M"] = 12] = "Q3_K_M";
|
|
19
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q3_K_L"] = 13] = "Q3_K_L";
|
|
20
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_K_S"] = 14] = "Q4_K_S";
|
|
21
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_K_M"] = 15] = "Q4_K_M";
|
|
22
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q5_K_S"] = 16] = "Q5_K_S";
|
|
23
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q5_K_M"] = 17] = "Q5_K_M";
|
|
24
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q6_K"] = 18] = "Q6_K";
|
|
25
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ2_XXS"] = 19] = "IQ2_XXS";
|
|
26
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ2_XS"] = 20] = "IQ2_XS";
|
|
27
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q2_K_S"] = 21] = "Q2_K_S";
|
|
28
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ3_XS"] = 22] = "IQ3_XS";
|
|
29
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ3_XXS"] = 23] = "IQ3_XXS";
|
|
30
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ1_S"] = 24] = "IQ1_S";
|
|
31
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ4_NL"] = 25] = "IQ4_NL";
|
|
32
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ3_S"] = 26] = "IQ3_S";
|
|
33
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ3_M"] = 27] = "IQ3_M";
|
|
34
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ2_S"] = 28] = "IQ2_S";
|
|
35
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ2_M"] = 29] = "IQ2_M";
|
|
36
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ4_XS"] = 30] = "IQ4_XS";
|
|
37
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["IQ1_M"] = 31] = "IQ1_M";
|
|
38
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["BF16"] = 32] = "BF16";
|
|
39
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_0_4_4"] = 33] = "Q4_0_4_4";
|
|
40
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_0_4_8"] = 34] = "Q4_0_4_8";
|
|
41
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_0_8_8"] = 35] = "Q4_0_8_8";
|
|
42
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["TQ1_0"] = 36] = "TQ1_0";
|
|
43
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["TQ2_0"] = 37] = "TQ2_0";
|
|
44
|
+
// custom quants used by unsloth
|
|
45
|
+
// they are not officially a scheme enum value in GGUF, but only here for naming
|
|
46
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q2_K_XL"] = 1000] = "Q2_K_XL";
|
|
47
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q3_K_XL"] = 1001] = "Q3_K_XL";
|
|
48
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q4_K_XL"] = 1002] = "Q4_K_XL";
|
|
49
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q5_K_XL"] = 1003] = "Q5_K_XL";
|
|
50
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q6_K_XL"] = 1004] = "Q6_K_XL";
|
|
51
|
+
GGMLFileQuantizationType[GGMLFileQuantizationType["Q8_K_XL"] = 1005] = "Q8_K_XL";
|
|
52
|
+
})(GGMLFileQuantizationType || (GGMLFileQuantizationType = {}));
|
|
53
|
+
const ggufQuants = Object.values(GGMLFileQuantizationType).filter((v) => typeof v === "string");
|
|
54
|
+
export const GGUF_QUANT_RE = new RegExp(`(?<quant>${ggufQuants.join("|")})` + "(_(?<sizeVariation>[A-Z]+))?");
|
|
55
|
+
export const GGUF_QUANT_RE_GLOBAL = new RegExp(GGUF_QUANT_RE, "g");
|
|
56
|
+
export function parseGGUFQuantLabel(fname) {
|
|
57
|
+
const quantLabel = fname.toUpperCase().match(GGUF_QUANT_RE_GLOBAL)?.at(-1); // if there is multiple quant substrings in a name, we prefer the last one
|
|
58
|
+
return quantLabel;
|
|
59
|
+
}
|
|
60
|
+
// order of quantization, from biggest to smallest
|
|
61
|
+
// this list must be in sync with the order in GGMLFileQuantizationType
|
|
62
|
+
// the gguf.spec.ts tests are using verify if the order is correct
|
|
63
|
+
export const GGUF_QUANT_ORDER = [
|
|
64
|
+
GGMLFileQuantizationType.F32,
|
|
65
|
+
GGMLFileQuantizationType.BF16,
|
|
66
|
+
GGMLFileQuantizationType.F16,
|
|
67
|
+
GGMLFileQuantizationType.Q8_K_XL,
|
|
68
|
+
GGMLFileQuantizationType.Q8_0,
|
|
69
|
+
// 6-bit quantizations
|
|
70
|
+
GGMLFileQuantizationType.Q6_K_XL,
|
|
71
|
+
GGMLFileQuantizationType.Q6_K,
|
|
72
|
+
// 5-bit quantizations
|
|
73
|
+
GGMLFileQuantizationType.Q5_K_XL,
|
|
74
|
+
GGMLFileQuantizationType.Q5_K_M,
|
|
75
|
+
GGMLFileQuantizationType.Q5_K_S,
|
|
76
|
+
GGMLFileQuantizationType.Q5_0,
|
|
77
|
+
GGMLFileQuantizationType.Q5_1,
|
|
78
|
+
// 4-bit quantizations
|
|
79
|
+
GGMLFileQuantizationType.Q4_K_XL,
|
|
80
|
+
GGMLFileQuantizationType.Q4_K_M,
|
|
81
|
+
GGMLFileQuantizationType.Q4_K_S,
|
|
82
|
+
GGMLFileQuantizationType.IQ4_NL,
|
|
83
|
+
GGMLFileQuantizationType.IQ4_XS,
|
|
84
|
+
GGMLFileQuantizationType.Q4_0_4_4,
|
|
85
|
+
GGMLFileQuantizationType.Q4_0_4_8,
|
|
86
|
+
GGMLFileQuantizationType.Q4_0_8_8,
|
|
87
|
+
GGMLFileQuantizationType.Q4_1_SOME_F16,
|
|
88
|
+
GGMLFileQuantizationType.Q4_0,
|
|
89
|
+
GGMLFileQuantizationType.Q4_1,
|
|
90
|
+
GGMLFileQuantizationType.Q4_2,
|
|
91
|
+
GGMLFileQuantizationType.Q4_3,
|
|
92
|
+
// 3-bit quantizations
|
|
93
|
+
GGMLFileQuantizationType.Q3_K_XL,
|
|
94
|
+
GGMLFileQuantizationType.Q3_K_L,
|
|
95
|
+
GGMLFileQuantizationType.Q3_K_M,
|
|
96
|
+
GGMLFileQuantizationType.Q3_K_S,
|
|
97
|
+
GGMLFileQuantizationType.IQ3_M,
|
|
98
|
+
GGMLFileQuantizationType.IQ3_S,
|
|
99
|
+
GGMLFileQuantizationType.IQ3_XS,
|
|
100
|
+
GGMLFileQuantizationType.IQ3_XXS,
|
|
101
|
+
// 2-bit quantizations
|
|
102
|
+
GGMLFileQuantizationType.Q2_K_XL,
|
|
103
|
+
GGMLFileQuantizationType.Q2_K,
|
|
104
|
+
GGMLFileQuantizationType.Q2_K_S,
|
|
105
|
+
GGMLFileQuantizationType.IQ2_M,
|
|
106
|
+
GGMLFileQuantizationType.IQ2_S,
|
|
107
|
+
GGMLFileQuantizationType.IQ2_XS,
|
|
108
|
+
GGMLFileQuantizationType.IQ2_XXS,
|
|
109
|
+
// 1-bit quantizations
|
|
110
|
+
GGMLFileQuantizationType.IQ1_S,
|
|
111
|
+
GGMLFileQuantizationType.IQ1_M,
|
|
112
|
+
GGMLFileQuantizationType.TQ1_0,
|
|
113
|
+
GGMLFileQuantizationType.TQ2_0,
|
|
114
|
+
];
|
|
115
|
+
// This function finds the nearest quantization type that is less than or equal to the given quantization type.
|
|
116
|
+
// It returns undefined if no such quantization type is found.
|
|
117
|
+
export function findNearestQuantType(quant, availableQuants) {
|
|
118
|
+
// Create a map for quick index lookup from the defined order
|
|
119
|
+
const orderMap = new Map();
|
|
120
|
+
GGUF_QUANT_ORDER.forEach((q, index) => {
|
|
121
|
+
orderMap.set(q, index);
|
|
122
|
+
});
|
|
123
|
+
const targetIndex = orderMap.get(quant) ?? 0; // the 0 case should never happen
|
|
124
|
+
// Filter the available quantizations to include only those defined in the order map,
|
|
125
|
+
// then sort them according to the GGUF_QUANT_ORDER (from largest/index 0 to smallest/highest index).
|
|
126
|
+
const sortedAvailable = availableQuants
|
|
127
|
+
.filter((q) => orderMap.has(q))
|
|
128
|
+
.sort((a, b) => (orderMap.get(a) ?? Infinity) - (orderMap.get(b) ?? Infinity));
|
|
129
|
+
// If no valid quantizations are available after filtering
|
|
130
|
+
if (sortedAvailable.length === 0) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
// Iterate through the sorted available quantizations (largest to smallest).
|
|
134
|
+
// Find the first one whose order index is >= the target index.
|
|
135
|
+
// This means finding the largest quantization that is smaller than or equal to the target.
|
|
136
|
+
for (const availableQuant of sortedAvailable) {
|
|
137
|
+
// We know the key exists due to the filter above.
|
|
138
|
+
const availableIndex = orderMap.get(availableQuant) ?? 0;
|
|
139
|
+
if (availableIndex >= targetIndex) {
|
|
140
|
+
return availableQuant;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// If the loop completes, it means all available quantizations are larger (have a smaller index)
|
|
144
|
+
// than the target quantization. In this case, return the "smallest" available quantization,
|
|
145
|
+
// which is the last element in the sorted list (highest index among available).
|
|
146
|
+
return sortedAvailable[sortedAvailable.length - 1];
|
|
147
|
+
}
|
|
148
|
+
// This list is only used to calculate the size of the model, NOT to be confused with the quantization FILE type
|
|
1
149
|
export var GGMLQuantizationType;
|
|
2
150
|
(function (GGMLQuantizationType) {
|
|
3
151
|
GGMLQuantizationType[GGMLQuantizationType["F32"] = 0] = "F32";
|
|
@@ -29,11 +177,6 @@ export var GGMLQuantizationType;
|
|
|
29
177
|
GGMLQuantizationType[GGMLQuantizationType["F64"] = 28] = "F64";
|
|
30
178
|
GGMLQuantizationType[GGMLQuantizationType["IQ1_M"] = 29] = "IQ1_M";
|
|
31
179
|
GGMLQuantizationType[GGMLQuantizationType["BF16"] = 30] = "BF16";
|
|
180
|
+
GGMLQuantizationType[GGMLQuantizationType["TQ1_0"] = 34] = "TQ1_0";
|
|
181
|
+
GGMLQuantizationType[GGMLQuantizationType["TQ2_0"] = 35] = "TQ2_0";
|
|
32
182
|
})(GGMLQuantizationType || (GGMLQuantizationType = {}));
|
|
33
|
-
const ggufQuants = Object.values(GGMLQuantizationType).filter((v) => typeof v === "string");
|
|
34
|
-
export const GGUF_QUANT_RE = new RegExp(`(?<quant>${ggufQuants.join("|")})` + "(_(?<sizeVariation>[A-Z]+))?");
|
|
35
|
-
export const GGUF_QUANT_RE_GLOBAL = new RegExp(GGUF_QUANT_RE, "g");
|
|
36
|
-
export function parseGGUFQuantLabel(fname) {
|
|
37
|
-
const quantLabel = fname.toUpperCase().match(GGUF_QUANT_RE_GLOBAL)?.at(-1); // if there is multiple quant substrings in a name, we prefer the last one
|
|
38
|
-
return quantLabel;
|
|
39
|
-
}
|
package/dist/esm/local-apps.d.ts
CHANGED
|
@@ -87,6 +87,13 @@ export declare const LOCAL_APPS: {
|
|
|
87
87
|
displayOnModelPage: (model: ModelData) => boolean;
|
|
88
88
|
snippet: (model: ModelData) => LocalAppSnippet[];
|
|
89
89
|
};
|
|
90
|
+
"mlx-lm": {
|
|
91
|
+
prettyLabel: string;
|
|
92
|
+
docsUrl: string;
|
|
93
|
+
mainTask: "text-generation";
|
|
94
|
+
displayOnModelPage: (model: ModelData) => boolean;
|
|
95
|
+
snippet: (model: ModelData) => LocalAppSnippet[];
|
|
96
|
+
};
|
|
90
97
|
tgi: {
|
|
91
98
|
prettyLabel: string;
|
|
92
99
|
docsUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAqBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;
|
|
1
|
+
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAqBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;AAiND;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;yBA3MS,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBAsCzC,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;oCAwLzD,SAAS;yBA/IX,SAAS,KAAG,eAAe,EAAE;;;;;;;yBA8E5B,SAAS,KAAG,eAAe,EAAE;;;;;;;yBA7B/B,SAAS,KAAG,eAAe,EAAE;;;;;;;;;;;;;;yBAxEzB,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAJjD,SAAS,aAAa,MAAM,KAAG,MAAM;;CAsT/B,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/esm/local-apps.js
CHANGED
|
@@ -182,6 +182,39 @@ const snippetTgi = (model) => {
|
|
|
182
182
|
},
|
|
183
183
|
];
|
|
184
184
|
};
|
|
185
|
+
const snippetMlxLm = (model) => {
|
|
186
|
+
const openaiCurl = [
|
|
187
|
+
"# Calling the OpenAI-compatible server with curl",
|
|
188
|
+
`curl -X POST "http://localhost:8000/v1/chat/completions" \\`,
|
|
189
|
+
` -H "Content-Type: application/json" \\`,
|
|
190
|
+
` --data '{`,
|
|
191
|
+
` "model": "${model.id}",`,
|
|
192
|
+
` "messages": [`,
|
|
193
|
+
` {"role": "user", "content": "Hello"}`,
|
|
194
|
+
` ]`,
|
|
195
|
+
` }'`,
|
|
196
|
+
];
|
|
197
|
+
return [
|
|
198
|
+
{
|
|
199
|
+
title: "Generate or start a chat session",
|
|
200
|
+
setup: ["# Install MLX LM", "uv tool install mlx-lm"].join("\n"),
|
|
201
|
+
content: [
|
|
202
|
+
...(model.tags.includes("conversational")
|
|
203
|
+
? ["# Interactive chat REPL", `mlx_lm.chat --model "${model.id}"`]
|
|
204
|
+
: ["# Generate some text", `mlx_lm.generate --model "${model.id}" --prompt "Once upon a time"`]),
|
|
205
|
+
].join("\n"),
|
|
206
|
+
},
|
|
207
|
+
...(model.tags.includes("conversational")
|
|
208
|
+
? [
|
|
209
|
+
{
|
|
210
|
+
title: "Run an OpenAI-compatible server",
|
|
211
|
+
setup: ["# Install MLX LM", "uv tool install mlx-lm"].join("\n"),
|
|
212
|
+
content: ["# Start the server", `mlx_lm.server --model "${model.id}"`, ...openaiCurl].join("\n"),
|
|
213
|
+
},
|
|
214
|
+
]
|
|
215
|
+
: []),
|
|
216
|
+
];
|
|
217
|
+
};
|
|
185
218
|
/**
|
|
186
219
|
* Add your new local app here.
|
|
187
220
|
*
|
|
@@ -221,6 +254,13 @@ export const LOCAL_APPS = {
|
|
|
221
254
|
(model.pipeline_tag === "text-generation" || model.pipeline_tag === "image-text-to-text"),
|
|
222
255
|
snippet: snippetVllm,
|
|
223
256
|
},
|
|
257
|
+
"mlx-lm": {
|
|
258
|
+
prettyLabel: "MLX LM",
|
|
259
|
+
docsUrl: "https://github.com/ml-explore/mlx-lm",
|
|
260
|
+
mainTask: "text-generation",
|
|
261
|
+
displayOnModelPage: (model) => model.pipeline_tag === "text-generation" && isMlxModel(model),
|
|
262
|
+
snippet: snippetMlxLm,
|
|
263
|
+
},
|
|
224
264
|
tgi: {
|
|
225
265
|
prettyLabel: "TGI",
|
|
226
266
|
docsUrl: "https://huggingface.co/docs/text-generation-inference/",
|
|
@@ -12,6 +12,7 @@ export declare const depth_anything_v2: (model: ModelData) => string[];
|
|
|
12
12
|
export declare const depth_pro: (model: ModelData) => string[];
|
|
13
13
|
export declare const derm_foundation: () => string[];
|
|
14
14
|
export declare const dia: (model: ModelData) => string[];
|
|
15
|
+
export declare const describe_anything: (model: ModelData) => string[];
|
|
15
16
|
export declare const diffusers: (model: ModelData) => string[];
|
|
16
17
|
export declare const diffusionkit: (model: ModelData) => string[];
|
|
17
18
|
export declare const cartesia_pytorch: (model: ModelData) => string[];
|
|
@@ -37,6 +38,7 @@ export declare const mesh_anything: () => string[];
|
|
|
37
38
|
export declare const open_clip: (model: ModelData) => string[];
|
|
38
39
|
export declare const paddlenlp: (model: ModelData) => string[];
|
|
39
40
|
export declare const perception_encoder: (model: ModelData) => string[];
|
|
41
|
+
export declare const phantom_wan: (model: ModelData) => string[];
|
|
40
42
|
export declare const pyannote_audio_pipeline: (model: ModelData) => string[];
|
|
41
43
|
export declare const pyannote_audio: (model: ModelData) => string[];
|
|
42
44
|
export declare const relik: (model: ModelData) => string[];
|
|
@@ -82,4 +84,5 @@ export declare const audiocraft: (model: ModelData) => string[];
|
|
|
82
84
|
export declare const whisperkit: () => string[];
|
|
83
85
|
export declare const threedtopia_xl: (model: ModelData) => string[];
|
|
84
86
|
export declare const hezar: (model: ModelData) => string[];
|
|
87
|
+
export declare const zonos: (model: ModelData) => string[];
|
|
85
88
|
//# sourceMappingURL=model-libraries-snippets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-libraries-snippets.d.ts","sourceRoot":"","sources":["../../src/model-libraries-snippets.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model-libraries-snippets.d.ts","sourceRoot":"","sources":["../../src/model-libraries-snippets.ts"],"names":[],"mappings":"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"}
|
|
@@ -208,6 +208,19 @@ output = model.generate(text)
|
|
|
208
208
|
|
|
209
209
|
sf.write("simple.mp3", output, 44100)`,
|
|
210
210
|
];
|
|
211
|
+
export const describe_anything = (model) => [
|
|
212
|
+
`# pip install git+https://github.com/NVlabs/describe-anything
|
|
213
|
+
from huggingface_hub import snapshot_download
|
|
214
|
+
from dam import DescribeAnythingModel
|
|
215
|
+
|
|
216
|
+
snapshot_download(${model.id}, local_dir="checkpoints")
|
|
217
|
+
|
|
218
|
+
dam = DescribeAnythingModel(
|
|
219
|
+
model_path="checkpoints",
|
|
220
|
+
conv_mode="v1",
|
|
221
|
+
prompt_mode="focal_prompt",
|
|
222
|
+
)`,
|
|
223
|
+
];
|
|
211
224
|
const diffusersDefaultPrompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k";
|
|
212
225
|
const diffusers_default = (model) => [
|
|
213
226
|
`from diffusers import DiffusionPipeline
|
|
@@ -658,6 +671,17 @@ model = pe.VisionTransformer.from_config("${model.id}", pretrained=True)`;
|
|
|
658
671
|
return [vision_encoder];
|
|
659
672
|
}
|
|
660
673
|
};
|
|
674
|
+
export const phantom_wan = (model) => [
|
|
675
|
+
`from huggingface_hub import snapshot_download
|
|
676
|
+
from phantom_wan import WANI2V, configs
|
|
677
|
+
|
|
678
|
+
checkpoint_dir = snapshot_download("${model.id}")
|
|
679
|
+
wan_i2v = WanI2V(
|
|
680
|
+
config=configs.WAN_CONFIGS['i2v-14B'],
|
|
681
|
+
checkpoint_dir=checkpoint_dir,
|
|
682
|
+
)
|
|
683
|
+
video = wan_i2v.generate(text_prompt, image_prompt)`,
|
|
684
|
+
];
|
|
661
685
|
export const pyannote_audio_pipeline = (model) => [
|
|
662
686
|
`from pyannote.audio import Pipeline
|
|
663
687
|
|
|
@@ -1015,12 +1039,27 @@ export const transformers = (model) => {
|
|
|
1015
1039
|
].join("\n");
|
|
1016
1040
|
}
|
|
1017
1041
|
if (model.pipeline_tag && LIBRARY_TASK_MAPPING.transformers?.includes(model.pipeline_tag)) {
|
|
1018
|
-
const pipelineSnippet = [
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1042
|
+
const pipelineSnippet = [
|
|
1043
|
+
"# Use a pipeline as a high-level helper",
|
|
1044
|
+
"from transformers import pipeline",
|
|
1045
|
+
"",
|
|
1046
|
+
`pipe = pipeline("${model.pipeline_tag}", model="${model.id}"` + remote_code_snippet + ")",
|
|
1047
|
+
];
|
|
1048
|
+
if (model.tags.includes("conversational")) {
|
|
1049
|
+
if (model.tags.includes("image-text-to-text")) {
|
|
1050
|
+
pipelineSnippet.push("messages = [", [
|
|
1051
|
+
" {",
|
|
1052
|
+
' "role": "user",',
|
|
1053
|
+
' "content": [',
|
|
1054
|
+
' {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"},',
|
|
1055
|
+
' {"type": "text", "text": "What animal is on the candy?"}',
|
|
1056
|
+
" ]",
|
|
1057
|
+
" },",
|
|
1058
|
+
].join("\n"), "]");
|
|
1059
|
+
}
|
|
1060
|
+
else {
|
|
1061
|
+
pipelineSnippet.push("messages = [", ' {"role": "user", "content": "Who are you?"},', "]");
|
|
1062
|
+
}
|
|
1024
1063
|
pipelineSnippet.push("pipe(messages)");
|
|
1025
1064
|
}
|
|
1026
1065
|
return [pipelineSnippet.join("\n"), autoSnippet];
|
|
@@ -1185,27 +1224,63 @@ model = SwarmFormerModel.from_pretrained("${model.id}")
|
|
|
1185
1224
|
`,
|
|
1186
1225
|
];
|
|
1187
1226
|
const mlx_unknown = (model) => [
|
|
1188
|
-
|
|
1227
|
+
`# Download the model from the Hub
|
|
1228
|
+
pip install huggingface_hub hf_transfer
|
|
1189
1229
|
|
|
1190
1230
|
export HF_HUB_ENABLE_HF_TRANSFER=1
|
|
1191
1231
|
huggingface-cli download --local-dir ${nameWithoutNamespace(model.id)} ${model.id}`,
|
|
1192
1232
|
];
|
|
1193
1233
|
const mlxlm = (model) => [
|
|
1194
|
-
|
|
1234
|
+
`# Make sure mlx-lm is installed
|
|
1235
|
+
pip install --upgrade mlx-lm
|
|
1236
|
+
|
|
1237
|
+
# Generate text with mlx-lm
|
|
1238
|
+
from mlx_lm import load, generate
|
|
1239
|
+
|
|
1240
|
+
model, tokenizer = load("${model.id}")
|
|
1195
1241
|
|
|
1196
|
-
|
|
1242
|
+
prompt = "Once upon a time in"
|
|
1243
|
+
text = generate(model, tokenizer, prompt=prompt, verbose=True)`,
|
|
1197
1244
|
];
|
|
1198
1245
|
const mlxchat = (model) => [
|
|
1199
|
-
|
|
1246
|
+
`# Make sure mlx-lm is installed
|
|
1247
|
+
pip install --upgrade mlx-lm
|
|
1200
1248
|
|
|
1201
|
-
|
|
1249
|
+
# Generate text with mlx-lm
|
|
1250
|
+
from mlx_lm import load, generate
|
|
1251
|
+
|
|
1252
|
+
model, tokenizer = load("${model.id}")
|
|
1253
|
+
|
|
1254
|
+
prompt = "Write a story about Einstein"
|
|
1255
|
+
messages = [{"role": "user", "content": prompt}]
|
|
1256
|
+
prompt = tokenizer.apply_chat_template(
|
|
1257
|
+
messages, add_generation_prompt=True
|
|
1258
|
+
)
|
|
1259
|
+
|
|
1260
|
+
text = generate(model, tokenizer, prompt=prompt, verbose=True)`,
|
|
1202
1261
|
];
|
|
1203
1262
|
const mlxvlm = (model) => [
|
|
1204
|
-
`
|
|
1263
|
+
`Make sure mlx-vlm is installed
|
|
1264
|
+
from mlx_vlm import load, generate
|
|
1265
|
+
from mlx_vlm.prompt_utils import apply_chat_template
|
|
1266
|
+
from mlx_vlm.utils import load_config
|
|
1267
|
+
|
|
1268
|
+
# Load the model
|
|
1269
|
+
model, processor = load("${model.id}")
|
|
1270
|
+
config = load_config("${model.id}")
|
|
1271
|
+
|
|
1272
|
+
# Prepare input
|
|
1273
|
+
image = ["http://images.cocodataset.org/val2017/000000039769.jpg"]
|
|
1274
|
+
prompt = "Describe this image."
|
|
1275
|
+
|
|
1276
|
+
# Apply chat template
|
|
1277
|
+
formatted_prompt = apply_chat_template(
|
|
1278
|
+
processor, config, prompt, num_images=1
|
|
1279
|
+
)
|
|
1205
1280
|
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1281
|
+
# Generate output
|
|
1282
|
+
output = generate(model, processor, formatted_prompt, image)
|
|
1283
|
+
print(output)`,
|
|
1209
1284
|
];
|
|
1210
1285
|
export const mlxim = (model) => [
|
|
1211
1286
|
`from mlxim.model import create_model
|
|
@@ -1213,11 +1288,11 @@ export const mlxim = (model) => [
|
|
|
1213
1288
|
model = create_model(${model.id})`,
|
|
1214
1289
|
];
|
|
1215
1290
|
export const mlx = (model) => {
|
|
1216
|
-
if (model.
|
|
1291
|
+
if (model.pipeline_tag === "image-text-to-text") {
|
|
1217
1292
|
return mlxvlm(model);
|
|
1218
1293
|
}
|
|
1219
|
-
if (model.
|
|
1220
|
-
if (model.
|
|
1294
|
+
if (model.pipeline_tag === "text-generation") {
|
|
1295
|
+
if (model.tags.includes("conversational")) {
|
|
1221
1296
|
return mlxchat(model);
|
|
1222
1297
|
}
|
|
1223
1298
|
else {
|
|
@@ -1343,4 +1418,22 @@ export const hezar = (model) => [
|
|
|
1343
1418
|
|
|
1344
1419
|
model = Model.load("${model.id}")`,
|
|
1345
1420
|
];
|
|
1421
|
+
export const zonos = (model) => [
|
|
1422
|
+
`# pip install git+https://github.com/Zyphra/Zonos.git
|
|
1423
|
+
import torchaudio
|
|
1424
|
+
from zonos.model import Zonos
|
|
1425
|
+
from zonos.conditioning import make_cond_dict
|
|
1426
|
+
|
|
1427
|
+
model = Zonos.from_pretrained("${model.id}", device="cuda")
|
|
1428
|
+
|
|
1429
|
+
wav, sr = torchaudio.load("speaker.wav") # 5-10s reference clip
|
|
1430
|
+
speaker = model.make_speaker_embedding(wav, sr)
|
|
1431
|
+
|
|
1432
|
+
cond = make_cond_dict(text="Hello, world!", speaker=speaker, language="en-us")
|
|
1433
|
+
codes = model.generate(model.prepare_conditioning(cond))
|
|
1434
|
+
|
|
1435
|
+
audio = model.autoencoder.decode(codes)[0].cpu()
|
|
1436
|
+
torchaudio.save("sample.wav", audio, model.autoencoder.sampling_rate)
|
|
1437
|
+
`,
|
|
1438
|
+
];
|
|
1346
1439
|
//#endregion
|