@huggingface/transformers 4.0.0-next.8 → 4.0.0-next.9
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/README.md +2 -2
- package/dist/ort-wasm-simd-threaded.jsep.mjs +26 -26
- package/dist/transformers.js +338 -230
- package/dist/transformers.min.js +22 -18
- package/dist/transformers.node.cjs +339 -228
- package/dist/transformers.node.min.cjs +23 -19
- package/dist/transformers.node.min.mjs +23 -19
- package/dist/transformers.node.mjs +336 -228
- package/dist/transformers.web.js +220 -112
- package/dist/transformers.web.min.js +18 -14
- package/package.json +2 -2
- package/src/env.js +1 -1
- package/src/models/gemma3/image_processing_gemma3.js +3 -0
- package/src/models/gemma3/modeling_gemma3.js +4 -1
- package/src/models/gemma3/processing_gemma3.js +45 -0
- package/src/models/image_processors.js +1 -0
- package/src/models/modeling_utils.js +46 -25
- package/src/models/processors.js +1 -0
- package/src/models/qwen2_vl/modeling_qwen2_vl.js +39 -32
- package/src/models/registry.js +2 -8
- package/src/utils/model_registry/ModelRegistry.js +36 -0
- package/src/utils/model_registry/get_available_dtypes.js +68 -0
- package/src/utils/model_registry/get_model_files.js +7 -60
- package/src/utils/model_registry/resolve_model_type.js +66 -0
- package/types/models/gemma3/image_processing_gemma3.d.ts +4 -0
- package/types/models/gemma3/image_processing_gemma3.d.ts.map +1 -0
- package/types/models/gemma3/modeling_gemma3.d.ts +4 -1
- package/types/models/gemma3/modeling_gemma3.d.ts.map +1 -1
- package/types/models/gemma3/processing_gemma3.d.ts +20 -0
- package/types/models/gemma3/processing_gemma3.d.ts.map +1 -0
- package/types/models/image_processors.d.ts +1 -0
- package/types/models/modeling_utils.d.ts +2 -3
- package/types/models/modeling_utils.d.ts.map +1 -1
- package/types/models/processors.d.ts +1 -0
- package/types/models/qwen2_vl/modeling_qwen2_vl.d.ts.map +1 -1
- package/types/models/registry.d.ts.map +1 -1
- package/types/utils/model_registry/ModelRegistry.d.ts +27 -0
- package/types/utils/model_registry/ModelRegistry.d.ts.map +1 -1
- package/types/utils/model_registry/get_available_dtypes.d.ts +26 -0
- package/types/utils/model_registry/get_available_dtypes.d.ts.map +1 -0
- package/types/utils/model_registry/get_model_files.d.ts +25 -0
- package/types/utils/model_registry/get_model_files.d.ts.map +1 -1
- package/types/utils/model_registry/resolve_model_type.d.ts +24 -0
- package/types/utils/model_registry/resolve_model_type.d.ts.map +1 -0
|
@@ -14,7 +14,7 @@ var __export = (target, all) => {
|
|
|
14
14
|
import fs from "fs";
|
|
15
15
|
import path from "path";
|
|
16
16
|
import url from "url";
|
|
17
|
-
var VERSION = "4.0.0-next.
|
|
17
|
+
var VERSION = "4.0.0-next.9";
|
|
18
18
|
var HAS_SELF = typeof self !== "undefined";
|
|
19
19
|
var IS_FS_AVAILABLE = !isEmpty(fs);
|
|
20
20
|
var IS_PATH_AVAILABLE = !isEmpty(path);
|
|
@@ -5753,14 +5753,14 @@ var Random = class {
|
|
|
5753
5753
|
* @returns {number} A normally distributed random value.
|
|
5754
5754
|
*/
|
|
5755
5755
|
gauss(mu = 0, sigma = 1) {
|
|
5756
|
-
let
|
|
5756
|
+
let z2 = this._gauss_next;
|
|
5757
5757
|
this._gauss_next = null;
|
|
5758
|
-
if (
|
|
5758
|
+
if (z2 === null) {
|
|
5759
5759
|
const x2pi = this.random() * 2 * Math.PI, g2rad = Math.sqrt(-2 * Math.log(1 - this.random()));
|
|
5760
|
-
|
|
5760
|
+
z2 = Math.cos(x2pi) * g2rad;
|
|
5761
5761
|
this._gauss_next = Math.sin(x2pi) * g2rad;
|
|
5762
5762
|
}
|
|
5763
|
-
return mu +
|
|
5763
|
+
return mu + z2 * sigma;
|
|
5764
5764
|
}
|
|
5765
5765
|
/**
|
|
5766
5766
|
* Shuffles an array in-place using the Fisher-Yates algorithm.
|
|
@@ -7480,7 +7480,7 @@ var uint16_to_float32 = /* @__PURE__ */ (function() {
|
|
|
7480
7480
|
// src/backends/onnx.js
|
|
7481
7481
|
import * as ONNX_NODE from "onnxruntime-node";
|
|
7482
7482
|
|
|
7483
|
-
// ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.
|
|
7483
|
+
// ../../node_modules/.pnpm/onnxruntime-web@1.25.0-dev.20260323-a99aad9d36/node_modules/onnxruntime-web/dist/ort.webgpu.bundle.min.mjs
|
|
7484
7484
|
var ort_webgpu_bundle_min_exports = {};
|
|
7485
7485
|
__export(ort_webgpu_bundle_min_exports, {
|
|
7486
7486
|
InferenceSession: () => Jf,
|
|
@@ -8248,7 +8248,7 @@ async function ts(a = {}) {
|
|
|
8248
8248
|
throw L(e = "Aborted(" + e + ")"), W = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), R?.(e), e;
|
|
8249
8249
|
}
|
|
8250
8250
|
function Ye() {
|
|
8251
|
-
return { a: { f: Vs, J: js, k: Hs, p: Ys, l: qs, ta: Js, b: Xs, ca: Qs, Ka: Sn,
|
|
8251
|
+
return { a: { f: Vs, J: js, k: Hs, p: Ys, l: qs, ta: Js, b: Xs, ca: Qs, Ka: Sn, q: Zs, da: Ln, _a: On, Ga: Bn, Ia: Mn, $a: Cn, Ya: Un, Ra: Dn, Xa: Pn, pa: _n, Ha: Rn, Yb: Nn, Za: kn, Fa: Wn, eb: Ks, Da: ti, Tb: ri, Rb: oi, Ca: si, M: ii, I: ui, Sb: fi, ka: yi, Ub: bi, Ua: wi, Wb: Ti, La: vi, Pb: Ei, la: Si, Ta: Ar, bb: Ai, U: Oi, n: Di, c: Er, sb: Pi, w: _i, L: Ri, z: Ni, j: ki, o: Yn, tb: Wi, G: Fi, T: Gi, h: $i, u: zi, m: Vi, i: ji, Oa: Hi, Pa: Yi, Qa: qi, Ma: Qn, Na: Zn, Qb: Kn, fb: Xi, db: Ki, Y: eu, rb: tu, ma: ru, cb: Qi, gb: nu, ab: ou, Xb: au, N: Ji, hb: su, X: iu, Vb: uu, ob: bu, C: wu, sa: gu, ra: Tu, qb: vu, W: Eu, v: Su, nb: Au, mb: Iu, lb: xu, pb: Lu, kb: Ou, jb: Bu, ib: Mu, Va: ao, Wa: so, Ja: br, ea: io, oa: uo, Sa: fo, na: co, Db: Gf, xa: Df, Eb: Ff, ya: Uf, F: Ef, e: ff, s: sf, x: af, D: gf, Ib: Bf, ba: Lf, B: lf, za: Mf, $: Pf, ha: Of, Fb: kf, Gb: Nf, Ba: Sf, Aa: xf, Jb: Af, wa: Wf, aa: Cf, d: uf, A: df, r: cf, Cb: $f, t: mf, y: Tf, H: pf, E: hf, K: vf, S: _f, ja: wf, _: Rf, Kb: bf, Lb: yf, P: If2, g: Uu, a: Fe, Ob: qe, Hb: Du, ia: Pu, O: _u, qa: Ru, Mb: Nu, Q: ku, zb: Wu, Ab: Fu, ua: Gu, fa: $u, R: zu, Ea: Vu, va: ju, Z: Hu, xb: Yu, Zb: qu, V: Ju, Bb: Xu, ub: Qu, vb: Ku, wb: ef, ga: tf, yb: rf, Nb: nf } };
|
|
8252
8252
|
}
|
|
8253
8253
|
async function bt() {
|
|
8254
8254
|
function e(o, u) {
|
|
@@ -8311,14 +8311,14 @@ async function ts(a = {}) {
|
|
|
8311
8311
|
gt.push(t), Je[e.Nc] = t, t.Nc = e.Nc;
|
|
8312
8312
|
var n = { Oc: "run", he: e.ge, Wc: e.Wc, Nc: e.Nc };
|
|
8313
8313
|
return t.postMessage(n, e.Yc), 0;
|
|
8314
|
-
},
|
|
8314
|
+
}, G = 0, V = (e, t, ...n) => {
|
|
8315
8315
|
var o, u = 16 * n.length, c = P(), h = Ft(u), b = h >>> 3;
|
|
8316
8316
|
for (o of n) typeof o == "bigint" ? ((p(), pe)[b++ >>> 0] = 1n, (p(), pe)[b++ >>> 0] = o) : ((p(), pe)[b++ >>> 0] = 0n, (p(), ae)[b++ >>> 0] = o);
|
|
8317
8317
|
return e = Lo(e, 0, u, h, t), D(c), e;
|
|
8318
8318
|
};
|
|
8319
8319
|
function qe(e) {
|
|
8320
8320
|
if (i) return V(0, 1, e);
|
|
8321
|
-
if (S = e, !(0 <
|
|
8321
|
+
if (S = e, !(0 < G)) {
|
|
8322
8322
|
for (var t of gt) Se(t);
|
|
8323
8323
|
for (t of We) Se(t);
|
|
8324
8324
|
We = [], gt = [], Je = {}, W = true;
|
|
@@ -8363,7 +8363,7 @@ async function ts(a = {}) {
|
|
|
8363
8363
|
We.push(e);
|
|
8364
8364
|
}
|
|
8365
8365
|
var Fe, zs = (e, t) => {
|
|
8366
|
-
|
|
8366
|
+
G = 0, e = zr(e, t), 0 < G ? S = e : Fr(e);
|
|
8367
8367
|
}, Ct = [], Ut = 0, me = (e) => -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e);
|
|
8368
8368
|
function Vs(e) {
|
|
8369
8369
|
var t = new wr(e >>>= 0);
|
|
@@ -8715,7 +8715,7 @@ async function ts(a = {}) {
|
|
|
8715
8715
|
}
|
|
8716
8716
|
var he = (e) => {
|
|
8717
8717
|
if (!W) try {
|
|
8718
|
-
if (e(), !(0 <
|
|
8718
|
+
if (e(), !(0 < G)) try {
|
|
8719
8719
|
i ? Wt() && Fr(S) : br(S);
|
|
8720
8720
|
} catch (t) {
|
|
8721
8721
|
t instanceof wt || t == "unwind" || y(0, t);
|
|
@@ -8743,7 +8743,7 @@ async function ts(a = {}) {
|
|
|
8743
8743
|
return (t ? Vr[t] : of[e])(...Ir);
|
|
8744
8744
|
}
|
|
8745
8745
|
var Ei = () => {
|
|
8746
|
-
|
|
8746
|
+
G = 0;
|
|
8747
8747
|
};
|
|
8748
8748
|
function Si(e) {
|
|
8749
8749
|
e >>>= 0, i ? postMessage({ Oc: "cleanupThread", ie: e }) : yn(Je[e]);
|
|
@@ -8763,7 +8763,7 @@ async function ts(a = {}) {
|
|
|
8763
8763
|
try {
|
|
8764
8764
|
return e(...n);
|
|
8765
8765
|
} finally {
|
|
8766
|
-
W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0,
|
|
8766
|
+
W || (_t.pop(), Me && Ge === 1 && _t.length === 0 && (Ge = 0, G += 1, Pt(wa), typeof Fibers < "u" && Fibers.De()));
|
|
8767
8767
|
}
|
|
8768
8768
|
};
|
|
8769
8769
|
return jn.set(e, t), t;
|
|
@@ -8778,7 +8778,7 @@ async function ts(a = {}) {
|
|
|
8778
8778
|
try {
|
|
8779
8779
|
var c = (function() {
|
|
8780
8780
|
var E = (p(), x)[Me + 8 >>> 2 >>> 0];
|
|
8781
|
-
return E = Vn.get(E), E = jn.get(E), --
|
|
8781
|
+
return E = Vn.get(E), E = jn.get(E), --G, E();
|
|
8782
8782
|
})();
|
|
8783
8783
|
} catch (E) {
|
|
8784
8784
|
c = E, u = true;
|
|
@@ -8969,7 +8969,7 @@ async function ts(a = {}) {
|
|
|
8969
8969
|
return L(ct(e >>> 0, t >>> 0));
|
|
8970
8970
|
}
|
|
8971
8971
|
var ou = () => {
|
|
8972
|
-
throw
|
|
8972
|
+
throw G += 1, "unwind";
|
|
8973
8973
|
};
|
|
8974
8974
|
function au() {
|
|
8975
8975
|
return 4294901760;
|
|
@@ -9062,15 +9062,15 @@ async function ts(a = {}) {
|
|
|
9062
9062
|
}
|
|
9063
9063
|
(b = (p(), A)[c + 24 >>> 2 >>> 0]) && (b = { label: Ne(b + 4) }, e.defaultQueue = b), e.label = Ne(c + 4);
|
|
9064
9064
|
}
|
|
9065
|
-
|
|
9066
|
-
--
|
|
9067
|
-
ce[u >>> 0] = B.queue, ce[o >>> 0] = B, lt(n, B.lost.then((ue) => {
|
|
9065
|
+
G += 1, lt(t, h.requestDevice(e).then((B) => {
|
|
9066
|
+
--G, he(() => {
|
|
9067
|
+
ce[u >>> 0] = B.queue, ce[o >>> 0] = B, G += 1, lt(n, B.lost.then((ue) => {
|
|
9068
9068
|
he(() => {
|
|
9069
9069
|
B.onuncapturederror = () => {
|
|
9070
9070
|
};
|
|
9071
9071
|
var ye = P(), fe = Ce(ue.message);
|
|
9072
9072
|
_r(n, yu[ue.reason], fe), D(ye);
|
|
9073
|
-
});
|
|
9073
|
+
}), --G;
|
|
9074
9074
|
})), B.onuncapturederror = (ue) => {
|
|
9075
9075
|
var ye = 5;
|
|
9076
9076
|
ue.error instanceof GPUValidationError ? ye = 2 : ue.error instanceof GPUOutOfMemoryError ? ye = 3 : ue.error instanceof GPUInternalError && (ye = 4);
|
|
@@ -9079,7 +9079,7 @@ async function ts(a = {}) {
|
|
|
9079
9079
|
}, "adapterInfo" in B || (B.adapterInfo = h.info), kr(t, 1, o, 0);
|
|
9080
9080
|
});
|
|
9081
9081
|
}, (B) => {
|
|
9082
|
-
--
|
|
9082
|
+
--G, he(() => {
|
|
9083
9083
|
var ue = P(), ye = Ce(B.message);
|
|
9084
9084
|
kr(t, 3, o, ye), n && _r(n, 4, ye), D(ue);
|
|
9085
9085
|
});
|
|
@@ -9122,12 +9122,12 @@ async function ts(a = {}) {
|
|
|
9122
9122
|
function vu(e, t, n, o, u) {
|
|
9123
9123
|
e >>>= 0, t = me(t), n = me(n), u >>>= 0;
|
|
9124
9124
|
var c = O(e);
|
|
9125
|
-
Re[e] = [], u == 4294967295 && (u = void 0),
|
|
9126
|
-
--
|
|
9125
|
+
Re[e] = [], u == 4294967295 && (u = void 0), G += 1, lt(t, c.mapAsync(n, o >>> 0, u).then(() => {
|
|
9126
|
+
--G, he(() => {
|
|
9127
9127
|
Rr(t, 1, 0);
|
|
9128
9128
|
});
|
|
9129
9129
|
}, (h) => {
|
|
9130
|
-
--
|
|
9130
|
+
--G, he(() => {
|
|
9131
9131
|
P();
|
|
9132
9132
|
var b = Ce(h.message);
|
|
9133
9133
|
Rr(t, h.name === "AbortError" ? 4 : h.name === "OperationError" ? 3 : 0, b), delete Re[e];
|
|
@@ -9156,12 +9156,12 @@ async function ts(a = {}) {
|
|
|
9156
9156
|
return ce[n >>> 0] = u, o && (Re[n] = []), true;
|
|
9157
9157
|
}
|
|
9158
9158
|
function Iu(e, t, n, o) {
|
|
9159
|
-
e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e),
|
|
9160
|
-
--
|
|
9159
|
+
e >>>= 0, t = me(t), o >>>= 0, n = du(n >>> 0), e = O(e), G += 1, lt(t, e.createComputePipelineAsync(n).then((u) => {
|
|
9160
|
+
--G, he(() => {
|
|
9161
9161
|
ce[o >>> 0] = u, Pr(t, 1, o, 0);
|
|
9162
9162
|
});
|
|
9163
9163
|
}, (u) => {
|
|
9164
|
-
--
|
|
9164
|
+
--G, he(() => {
|
|
9165
9165
|
var c = P(), h = Ce(u.message);
|
|
9166
9166
|
Pr(t, u.reason === "validation" ? 3 : u.reason === "internal" ? 4 : 0, o, h), D(c);
|
|
9167
9167
|
});
|
|
@@ -9176,15 +9176,15 @@ async function ts(a = {}) {
|
|
|
9176
9176
|
(e = O(e)).onuncapturederror = null, e.destroy();
|
|
9177
9177
|
};
|
|
9178
9178
|
function Ou(e, t) {
|
|
9179
|
-
t = me(t), e = O(e >>> 0),
|
|
9180
|
-
--
|
|
9179
|
+
t = me(t), e = O(e >>> 0), G += 1, lt(t, e.popErrorScope().then((n) => {
|
|
9180
|
+
--G, he(() => {
|
|
9181
9181
|
var o = 5;
|
|
9182
9182
|
n ? n instanceof GPUValidationError ? o = 2 : n instanceof GPUOutOfMemoryError ? o = 3 : n instanceof GPUInternalError && (o = 4) : o = 1;
|
|
9183
9183
|
var u = P(), c = n ? Ce(n.message) : 0;
|
|
9184
9184
|
Nr(t, 1, o, c), D(u);
|
|
9185
9185
|
});
|
|
9186
9186
|
}, (n) => {
|
|
9187
|
-
--
|
|
9187
|
+
--G, he(() => {
|
|
9188
9188
|
var o = P(), u = Ce(n.message);
|
|
9189
9189
|
Nr(t, 1, 5, u), D(o);
|
|
9190
9190
|
});
|
|
@@ -9195,8 +9195,8 @@ async function ts(a = {}) {
|
|
|
9195
9195
|
var u = { featureLevel: pu[(p(), x)[n + 4 >>> 2 >>> 0]], powerPreference: mu[(p(), x)[n + 8 >>> 2 >>> 0]], forceFallbackAdapter: !!(p(), A)[n + 12 >>> 2 >>> 0] };
|
|
9196
9196
|
(e = (p(), A)[n >>> 2 >>> 0]) !== 0 && (p(), u.Fe = !!(p(), A)[e + 8 >>> 2 >>> 0]);
|
|
9197
9197
|
}
|
|
9198
|
-
"gpu" in navigator ? (
|
|
9199
|
-
--
|
|
9198
|
+
"gpu" in navigator ? (G += 1, lt(t, navigator.gpu.requestAdapter(u).then((c) => {
|
|
9199
|
+
--G, he(() => {
|
|
9200
9200
|
if (c) ce[o >>> 0] = c, Et(t, 1, o, 0);
|
|
9201
9201
|
else {
|
|
9202
9202
|
var h = P(), b = Ce("WebGPU not available on this browser (requestAdapter returned null)");
|
|
@@ -9204,7 +9204,7 @@ async function ts(a = {}) {
|
|
|
9204
9204
|
}
|
|
9205
9205
|
});
|
|
9206
9206
|
}, (c) => {
|
|
9207
|
-
--
|
|
9207
|
+
--G, he(() => {
|
|
9208
9208
|
var h = P(), b = Ce(c.message);
|
|
9209
9209
|
Et(t, 4, o, b), D(h);
|
|
9210
9210
|
});
|
|
@@ -9435,7 +9435,7 @@ async function ts(a = {}) {
|
|
|
9435
9435
|
Te(`invalid type for getValue: ${t}`);
|
|
9436
9436
|
}
|
|
9437
9437
|
}, r.UTF8ToString = ct, r.stringToUTF8 = Pe, r.lengthBytesUTF8 = _e;
|
|
9438
|
-
var lo, po, Dr, Wt, xe, pt, mo, ho, yo, bo, wo, go, To, vo, Eo, So, Ao, Pr, _r, Rr, Nr, Et, kr, Io, Wr, xo, Lo, Oo, Fr, Bo, Mo, Gr, N, St, Co, D, Ft, P, Uo, $r, Do, Po, _o, zr, Ro, No, ko, Wo, Fo, Go, $o, zo, Vo, jo, Ho, Yo, qo, Jo, Xo, Qo, Zo, Ko, ea, ta, ra, na, oa, aa, sa, ia, ua, fa, ca, da, la, pa, ma, ha, ya, ba, wa, ga, Ta, ke, of = [qe, yr, En, Ln, On, Bn, Mn, Cn, Un, Dn, Pn, _n, Rn, Nn, kn, Wn, Qn, Zn, Kn, ao, so, io, uo, fo, co], Vr = {
|
|
9438
|
+
var lo, po, Dr, Wt, xe, pt, mo, ho, yo, bo, wo, go, To, vo, Eo, So, Ao, Pr, _r, Rr, Nr, Et, kr, Io, Wr, xo, Lo, Oo, Fr, Bo, Mo, Gr, N, St, Co, D, Ft, P, Uo, $r, Do, Po, _o, zr, Ro, No, ko, Wo, Fo, Go, $o, zo, Vo, jo, Ho, Yo, qo, Jo, Xo, Qo, Zo, Ko, ea, ta, ra, na, oa, aa, sa, ia, ua, fa, ca, da, la, pa, ma, ha, ya, ba, wa, ga, Ta, ke, of = [qe, yr, En, Ln, On, Bn, Mn, Cn, Un, Dn, Pn, _n, Rn, Nn, kn, Wn, Qn, Zn, Kn, ao, so, io, uo, fo, co], Vr = { 937012: (e, t, n, o, u) => {
|
|
9439
9439
|
if (r === void 0 || !r.Uc) return 1;
|
|
9440
9440
|
if ((e = ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = r.Uc.get(e))) return 2;
|
|
9441
9441
|
if (t = Number(t >>> 0), n = Number(n >>> 0), o = Number(o >>> 0), t + n > e.byteLength) return 3;
|
|
@@ -9455,11 +9455,11 @@ async function ts(a = {}) {
|
|
|
9455
9455
|
} catch {
|
|
9456
9456
|
return 4;
|
|
9457
9457
|
}
|
|
9458
|
-
},
|
|
9458
|
+
}, 937836: (e, t, n) => {
|
|
9459
9459
|
r.Sd(e, (p(), J).subarray(t >>> 0, t + n >>> 0));
|
|
9460
|
-
},
|
|
9460
|
+
}, 937900: () => r.me(), 937942: (e) => {
|
|
9461
9461
|
r.jd(e);
|
|
9462
|
-
},
|
|
9462
|
+
}, 937979: () => typeof wasmOffsetConverter < "u" };
|
|
9463
9463
|
function af(e, t, n, o) {
|
|
9464
9464
|
var u = P();
|
|
9465
9465
|
try {
|
|
@@ -9478,12 +9478,12 @@ async function ts(a = {}) {
|
|
|
9478
9478
|
N(1, 0);
|
|
9479
9479
|
}
|
|
9480
9480
|
}
|
|
9481
|
-
function uf(e
|
|
9482
|
-
var
|
|
9481
|
+
function uf(e) {
|
|
9482
|
+
var t = P();
|
|
9483
9483
|
try {
|
|
9484
|
-
|
|
9485
|
-
} catch (
|
|
9486
|
-
if (D(
|
|
9484
|
+
Ro(e);
|
|
9485
|
+
} catch (n) {
|
|
9486
|
+
if (D(t), n !== n + 0) throw n;
|
|
9487
9487
|
N(1, 0);
|
|
9488
9488
|
}
|
|
9489
9489
|
}
|
|
@@ -9496,25 +9496,16 @@ async function ts(a = {}) {
|
|
|
9496
9496
|
N(1, 0);
|
|
9497
9497
|
}
|
|
9498
9498
|
}
|
|
9499
|
-
function cf(e) {
|
|
9500
|
-
var
|
|
9501
|
-
try {
|
|
9502
|
-
Ro(e);
|
|
9503
|
-
} catch (n) {
|
|
9504
|
-
if (D(t), n !== n + 0) throw n;
|
|
9505
|
-
N(1, 0);
|
|
9506
|
-
}
|
|
9507
|
-
}
|
|
9508
|
-
function df(e, t, n, o, u, c, h) {
|
|
9509
|
-
var b = P();
|
|
9499
|
+
function cf(e, t, n) {
|
|
9500
|
+
var o = P();
|
|
9510
9501
|
try {
|
|
9511
|
-
|
|
9512
|
-
} catch (
|
|
9513
|
-
if (D(
|
|
9502
|
+
_o(e, t, n);
|
|
9503
|
+
} catch (u) {
|
|
9504
|
+
if (D(o), u !== u + 0) throw u;
|
|
9514
9505
|
N(1, 0);
|
|
9515
9506
|
}
|
|
9516
9507
|
}
|
|
9517
|
-
function
|
|
9508
|
+
function df(e, t) {
|
|
9518
9509
|
var n = P();
|
|
9519
9510
|
try {
|
|
9520
9511
|
Vo(e, t);
|
|
@@ -9523,6 +9514,15 @@ async function ts(a = {}) {
|
|
|
9523
9514
|
N(1, 0);
|
|
9524
9515
|
}
|
|
9525
9516
|
}
|
|
9517
|
+
function lf(e, t, n, o, u, c, h) {
|
|
9518
|
+
var b = P();
|
|
9519
|
+
try {
|
|
9520
|
+
return Wo(e, t, n, o, u, c, h);
|
|
9521
|
+
} catch (E) {
|
|
9522
|
+
if (D(b), E !== E + 0) throw E;
|
|
9523
|
+
N(1, 0);
|
|
9524
|
+
}
|
|
9525
|
+
}
|
|
9526
9526
|
function pf(e, t, n, o, u, c) {
|
|
9527
9527
|
var h = P();
|
|
9528
9528
|
try {
|
|
@@ -9952,7 +9952,7 @@ var nc;
|
|
|
9952
9952
|
var oc;
|
|
9953
9953
|
var ac;
|
|
9954
9954
|
var qt;
|
|
9955
|
-
var
|
|
9955
|
+
var z;
|
|
9956
9956
|
var je = k(() => {
|
|
9957
9957
|
"use strict";
|
|
9958
9958
|
Yt();
|
|
@@ -10008,19 +10008,19 @@ var je = k(() => {
|
|
|
10008
10008
|
rr = false, ds = true, H(M);
|
|
10009
10009
|
});
|
|
10010
10010
|
})), await Promise.race(C), S) throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`);
|
|
10011
|
-
},
|
|
10011
|
+
}, z = () => {
|
|
10012
10012
|
if (nn && rn) return rn;
|
|
10013
10013
|
throw new Error("WebAssembly is not initialized yet.");
|
|
10014
10014
|
};
|
|
10015
10015
|
});
|
|
10016
10016
|
var be;
|
|
10017
10017
|
var Lt;
|
|
10018
|
-
var
|
|
10018
|
+
var $;
|
|
10019
10019
|
var nr = k(() => {
|
|
10020
10020
|
"use strict";
|
|
10021
10021
|
je();
|
|
10022
10022
|
be = (a, r) => {
|
|
10023
|
-
let s =
|
|
10023
|
+
let s = z(), f = s.lengthBytesUTF8(a) + 1, i = s._malloc(f);
|
|
10024
10024
|
return s.stringToUTF8(a, i, f), r.push(i), i;
|
|
10025
10025
|
}, Lt = (a, r, s, f) => {
|
|
10026
10026
|
if (typeof a == "object" && a !== null) {
|
|
@@ -10034,8 +10034,8 @@ var nr = k(() => {
|
|
|
10034
10034
|
else if (typeof d == "boolean") f(l, d ? "1" : "0");
|
|
10035
10035
|
else throw new Error(`Can't handle extra config type: ${typeof d}`);
|
|
10036
10036
|
});
|
|
10037
|
-
},
|
|
10038
|
-
let r =
|
|
10037
|
+
}, $ = (a) => {
|
|
10038
|
+
let r = z(), s = r.stackSave();
|
|
10039
10039
|
try {
|
|
10040
10040
|
let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
|
|
10041
10041
|
r._OrtGetLastError(i, i + f);
|
|
@@ -10052,7 +10052,7 @@ var ps = k(() => {
|
|
|
10052
10052
|
je();
|
|
10053
10053
|
nr();
|
|
10054
10054
|
ls = (a) => {
|
|
10055
|
-
let r =
|
|
10055
|
+
let r = z(), s = 0, f = [], i = a || {};
|
|
10056
10056
|
try {
|
|
10057
10057
|
if (a?.logSeverityLevel === void 0) i.logSeverityLevel = 2;
|
|
10058
10058
|
else if (typeof a.logSeverityLevel != "number" || !Number.isInteger(a.logSeverityLevel) || a.logSeverityLevel < 0 || a.logSeverityLevel > 4) throw new Error(`log severity level is not valid: ${a.logSeverityLevel}`);
|
|
@@ -10060,9 +10060,9 @@ var ps = k(() => {
|
|
|
10060
10060
|
else if (typeof a.logVerbosityLevel != "number" || !Number.isInteger(a.logVerbosityLevel)) throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);
|
|
10061
10061
|
a?.terminate === void 0 && (i.terminate = false);
|
|
10062
10062
|
let d = 0;
|
|
10063
|
-
return a?.tag !== void 0 && (d = be(a.tag, f)), s = r._OrtCreateRunOptions(i.logSeverityLevel, i.logVerbosityLevel, !!i.terminate, d), s === 0 &&
|
|
10063
|
+
return a?.tag !== void 0 && (d = be(a.tag, f)), s = r._OrtCreateRunOptions(i.logSeverityLevel, i.logVerbosityLevel, !!i.terminate, d), s === 0 && $("Can't create run options."), a?.extra !== void 0 && Lt(a.extra, "", /* @__PURE__ */ new WeakSet(), (l, m) => {
|
|
10064
10064
|
let y = be(l, f), w = be(m, f);
|
|
10065
|
-
r._OrtAddRunConfigEntry(s, y, w) !== 0 &&
|
|
10065
|
+
r._OrtAddRunConfigEntry(s, y, w) !== 0 && $(`Can't set a run config entry: ${l} - ${m}.`);
|
|
10066
10066
|
}), [s, f];
|
|
10067
10067
|
} catch (d) {
|
|
10068
10068
|
throw s !== 0 && r._OrtReleaseRunOptions(s), f.forEach((l) => r._free(l)), d;
|
|
@@ -10110,7 +10110,7 @@ var hs = k(() => {
|
|
|
10110
10110
|
r.use_ort_model_bytes_directly || (r.use_ort_model_bytes_directly = "1"), a.executionProviders && a.executionProviders.some((s) => (typeof s == "string" ? s : s.name) === "webgpu") && (a.enableMemPattern = false);
|
|
10111
10111
|
}, on = (a, r, s, f) => {
|
|
10112
10112
|
let i = be(r, f), d = be(s, f);
|
|
10113
|
-
|
|
10113
|
+
z()._OrtAddSessionConfigEntry(a, i, d) !== 0 && $(`Can't set a session config entry: ${r} - ${s}.`);
|
|
10114
10114
|
}, ot = (a, r, s, f) => {
|
|
10115
10115
|
let i = be(r, f), d = be(s, f);
|
|
10116
10116
|
a.push([i, d]);
|
|
@@ -10141,7 +10141,7 @@ var hs = k(() => {
|
|
|
10141
10141
|
}
|
|
10142
10142
|
S.validationMode && ot(l, "validationMode", S.validationMode, s);
|
|
10143
10143
|
}
|
|
10144
|
-
let v =
|
|
10144
|
+
let v = z().webgpuRegisterDevice(g);
|
|
10145
10145
|
if (v) {
|
|
10146
10146
|
let [S, C, R] = v;
|
|
10147
10147
|
ot(l, "deviceId", S.toString(), s), ot(l, "webgpuInstance", C.toString(), s), ot(l, "webgpuDevice", R.toString(), s);
|
|
@@ -10156,13 +10156,13 @@ var hs = k(() => {
|
|
|
10156
10156
|
}
|
|
10157
10157
|
let m = be(d, s), y = l.length, w = 0, T = 0;
|
|
10158
10158
|
if (y > 0) {
|
|
10159
|
-
w =
|
|
10160
|
-
for (let g = 0; g < y; g++)
|
|
10159
|
+
w = z()._malloc(y * z().PTR_SIZE), s.push(w), T = z()._malloc(y * z().PTR_SIZE), s.push(T);
|
|
10160
|
+
for (let g = 0; g < y; g++) z().setValue(w + g * z().PTR_SIZE, l[g][0], "*"), z().setValue(T + g * z().PTR_SIZE, l[g][1], "*");
|
|
10161
10161
|
}
|
|
10162
|
-
await
|
|
10162
|
+
await z()._OrtAppendExecutionProvider(a, m, w, T, y) !== 0 && $(`Can't append execution provider: ${d}.`);
|
|
10163
10163
|
}
|
|
10164
10164
|
}, ms = async (a) => {
|
|
10165
|
-
let r =
|
|
10165
|
+
let r = z(), s = 0, f = [], i = a || {};
|
|
10166
10166
|
uc(i);
|
|
10167
10167
|
try {
|
|
10168
10168
|
let d = sc(i.graphOptimizationLevel ?? "all"), l = ic(i.executionMode ?? "sequential"), m = typeof i.logId == "string" ? be(i.logId, f) : 0, y = i.logSeverityLevel ?? 2;
|
|
@@ -10170,7 +10170,7 @@ var hs = k(() => {
|
|
|
10170
10170
|
let w = i.logVerbosityLevel ?? 0;
|
|
10171
10171
|
if (!Number.isInteger(w) || w < 0 || w > 4) throw new Error(`log verbosity level is not valid: ${w}`);
|
|
10172
10172
|
let T = typeof i.optimizedModelFilePath == "string" ? be(i.optimizedModelFilePath, f) : 0;
|
|
10173
|
-
if (s = r._OrtCreateSessionOptions(d, !!i.enableCpuMemArena, !!i.enableMemPattern, l, !!i.enableProfiling, 0, m, y, w, T), s === 0 &&
|
|
10173
|
+
if (s = r._OrtCreateSessionOptions(d, !!i.enableCpuMemArena, !!i.enableMemPattern, l, !!i.enableProfiling, 0, m, y, w, T), s === 0 && $("Can't create session options."), i.executionProviders && await fc(s, i, f), i.enableGraphCapture !== void 0) {
|
|
10174
10174
|
if (typeof i.enableGraphCapture != "boolean") throw new Error(`enableGraphCapture must be a boolean value: ${i.enableGraphCapture}`);
|
|
10175
10175
|
on(s, "enableGraphCapture", i.enableGraphCapture.toString(), f);
|
|
10176
10176
|
}
|
|
@@ -10178,13 +10178,13 @@ var hs = k(() => {
|
|
|
10178
10178
|
if (typeof g != "string") throw new Error(`free dimension override name must be a string: ${g}`);
|
|
10179
10179
|
if (typeof v != "number" || !Number.isInteger(v) || v < 0) throw new Error(`free dimension override value must be a non-negative integer: ${v}`);
|
|
10180
10180
|
let S = be(g, f);
|
|
10181
|
-
r._OrtAddFreeDimensionOverride(s, S, v) !== 0 &&
|
|
10181
|
+
r._OrtAddFreeDimensionOverride(s, S, v) !== 0 && $(`Can't set a free dimension override: ${g} - ${v}.`);
|
|
10182
10182
|
}
|
|
10183
10183
|
return i.extra !== void 0 && Lt(i.extra, "", /* @__PURE__ */ new WeakSet(), (g, v) => {
|
|
10184
10184
|
on(s, g, v, f);
|
|
10185
10185
|
}), [s, f];
|
|
10186
10186
|
} catch (d) {
|
|
10187
|
-
throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 &&
|
|
10187
|
+
throw s !== 0 && r._OrtReleaseSessionOptions(s) !== 0 && $("Can't release session options."), f.forEach((l) => r._free(l)), d;
|
|
10188
10188
|
}
|
|
10189
10189
|
};
|
|
10190
10190
|
});
|
|
@@ -10754,7 +10754,7 @@ var Os = k(() => {
|
|
|
10754
10754
|
return l ? l.push(d) : this.temporarySessionTensorIds.set(r, [d]), d;
|
|
10755
10755
|
}
|
|
10756
10756
|
uploadTensor(r, s) {
|
|
10757
|
-
if (
|
|
10757
|
+
if (!z().shouldTransferToMLTensor) throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");
|
|
10758
10758
|
le("verbose", () => `[WebNN] uploadTensor {tensorId: ${r}, data: ${s.byteLength}}`), this.tensorManager.upload(r, s);
|
|
10759
10759
|
}
|
|
10760
10760
|
async downloadTensor(r, s) {
|
|
@@ -10860,11 +10860,11 @@ var Kr = k(() => {
|
|
|
10860
10860
|
nr();
|
|
10861
10861
|
sn();
|
|
10862
10862
|
yc = (a, r) => {
|
|
10863
|
-
|
|
10863
|
+
z()._OrtInit(a, r) !== 0 && $("Can't initialize onnxruntime.");
|
|
10864
10864
|
}, Jt = async (a) => {
|
|
10865
10865
|
yc(a.wasm.numThreads, Ot(a.logLevel));
|
|
10866
10866
|
}, Xt = async (a, r) => {
|
|
10867
|
-
|
|
10867
|
+
z().asyncInit?.();
|
|
10868
10868
|
let s = a.webgpu.adapter;
|
|
10869
10869
|
if (r === "webgpu") {
|
|
10870
10870
|
if (typeof navigator > "u" || !navigator.gpu) throw new Error("WebGPU is not supported in current environment");
|
|
@@ -10879,29 +10879,29 @@ var Kr = k(() => {
|
|
|
10879
10879
|
}
|
|
10880
10880
|
}
|
|
10881
10881
|
if (r === "webnn" && (typeof navigator > "u" || !navigator.ml)) throw new Error("WebNN is not supported in current environment");
|
|
10882
|
-
if (r === "webgpu" &&
|
|
10882
|
+
if (r === "webgpu" && z().webgpuInit((f) => {
|
|
10883
10883
|
a.webgpu.device = f;
|
|
10884
10884
|
}), r === "webnn") {
|
|
10885
10885
|
let f = new (Os(), $t(Ls)).WebNNBackend(a);
|
|
10886
|
-
|
|
10886
|
+
z().webnnInit([f, () => f.reserveTensorId(), (i) => f.releaseTensorId(i), async (i, d, l, m, y) => f.ensureTensor(i, d, l, m, y), (i, d) => {
|
|
10887
10887
|
f.uploadTensor(i, d);
|
|
10888
10888
|
}, async (i, d) => f.downloadTensor(i, d), (i, d) => f.registerMLContext(i, d), !!a.trace]);
|
|
10889
10889
|
}
|
|
10890
10890
|
}, it = /* @__PURE__ */ new Map(), bc = (a) => {
|
|
10891
|
-
let r =
|
|
10891
|
+
let r = z(), s = r.stackSave();
|
|
10892
10892
|
try {
|
|
10893
10893
|
let f = r.PTR_SIZE, i = r.stackAlloc(2 * f);
|
|
10894
|
-
r._OrtGetInputOutputCount(a, i, i + f) !== 0 &&
|
|
10894
|
+
r._OrtGetInputOutputCount(a, i, i + f) !== 0 && $("Can't get session input/output count.");
|
|
10895
10895
|
let l = f === 4 ? "i32" : "i64";
|
|
10896
10896
|
return [Number(r.getValue(i, l)), Number(r.getValue(i + f, l))];
|
|
10897
10897
|
} finally {
|
|
10898
10898
|
r.stackRestore(s);
|
|
10899
10899
|
}
|
|
10900
10900
|
}, Bs = (a, r) => {
|
|
10901
|
-
let s =
|
|
10901
|
+
let s = z(), f = s.stackSave(), i = 0;
|
|
10902
10902
|
try {
|
|
10903
10903
|
let d = s.PTR_SIZE, l = s.stackAlloc(2 * d);
|
|
10904
|
-
s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 &&
|
|
10904
|
+
s._OrtGetInputOutputMetadata(a, r, l, l + d) !== 0 && $("Can't get session input/output metadata.");
|
|
10905
10905
|
let y = Number(s.getValue(l, "*"));
|
|
10906
10906
|
i = Number(s.getValue(l + d, "*"));
|
|
10907
10907
|
let w = s.HEAP32[i / 4];
|
|
@@ -10916,11 +10916,11 @@ var Kr = k(() => {
|
|
|
10916
10916
|
s.stackRestore(f), i !== 0 && s._OrtFree(i);
|
|
10917
10917
|
}
|
|
10918
10918
|
}, xt = (a) => {
|
|
10919
|
-
let r =
|
|
10919
|
+
let r = z(), s = r._malloc(a.byteLength);
|
|
10920
10920
|
if (s === 0) throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);
|
|
10921
10921
|
return r.HEAPU8.set(a, s), [s, a.byteLength];
|
|
10922
10922
|
}, Qt = async (a, r) => {
|
|
10923
|
-
let s, f, i =
|
|
10923
|
+
let s, f, i = z();
|
|
10924
10924
|
Array.isArray(a) ? [s, f] = a : a.buffer === i.HEAPU8.buffer ? [s, f] = [a.byteOffset, a.byteLength] : [s, f] = xt(a);
|
|
10925
10925
|
let d = 0, l = 0, m = 0, y = [], w = [], T = [];
|
|
10926
10926
|
try {
|
|
@@ -10941,17 +10941,17 @@ var Kr = k(() => {
|
|
|
10941
10941
|
} else i.currentContext = await i.webnnCreateMLContext();
|
|
10942
10942
|
break;
|
|
10943
10943
|
}
|
|
10944
|
-
d = await i._OrtCreateSession(s, f, l), i.webgpuOnCreateSession?.(d), d === 0 &&
|
|
10944
|
+
d = await i._OrtCreateSession(s, f, l), i.webgpuOnCreateSession?.(d), d === 0 && $("Can't create a session."), i.jsepOnCreateSession?.(), i.currentContext && (i.webnnRegisterMLContext(d, i.currentContext), i.currentContext = void 0, i.shouldTransferToMLTensor = true);
|
|
10945
10945
|
let [g, v] = bc(d), S = !!r?.enableGraphCapture, C = [], R = [], H = [], U = [], M = [];
|
|
10946
10946
|
for (let L = 0; L < g; L++) {
|
|
10947
10947
|
let [W, oe, p] = Bs(d, L);
|
|
10948
|
-
W === 0 &&
|
|
10948
|
+
W === 0 && $("Can't get an input name."), w.push(W);
|
|
10949
10949
|
let ne = i.UTF8ToString(W);
|
|
10950
10950
|
C.push(ne), H.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
|
|
10951
10951
|
}
|
|
10952
10952
|
for (let L = 0; L < v; L++) {
|
|
10953
10953
|
let [W, oe, p] = Bs(d, L + g);
|
|
10954
|
-
W === 0 &&
|
|
10954
|
+
W === 0 && $("Can't get an output name."), T.push(W);
|
|
10955
10955
|
let ne = i.UTF8ToString(W);
|
|
10956
10956
|
R.push(ne), U.push(oe === 0 ? { name: ne, isTensor: false } : { name: ne, isTensor: true, type: or(oe), shape: p });
|
|
10957
10957
|
{
|
|
@@ -10970,23 +10970,23 @@ var Kr = k(() => {
|
|
|
10970
10970
|
}
|
|
10971
10971
|
}
|
|
10972
10972
|
let Y = null;
|
|
10973
|
-
return M.some((L) => L === "gpu-buffer" || L === "ml-tensor" || L === "ml-tensor-cpu-output") && (m = i._OrtCreateBinding(d), m === 0 &&
|
|
10973
|
+
return M.some((L) => L === "gpu-buffer" || L === "ml-tensor" || L === "ml-tensor-cpu-output") && (m = i._OrtCreateBinding(d), m === 0 && $("Can't create IO binding."), Y = { handle: m, outputPreferredLocations: M, outputPreferredLocationsEncoded: M.map((L) => L === "ml-tensor-cpu-output" ? "ml-tensor" : L).map((L) => an(L)) }), it.set(d, [d, w, T, Y, S, false]), [d, C, R, H, U];
|
|
10974
10974
|
} catch (g) {
|
|
10975
|
-
throw w.forEach((v) => i._OrtFree(v)), T.forEach((v) => i._OrtFree(v)), m !== 0 && i._OrtReleaseBinding(m) !== 0 &&
|
|
10975
|
+
throw w.forEach((v) => i._OrtFree(v)), T.forEach((v) => i._OrtFree(v)), m !== 0 && i._OrtReleaseBinding(m) !== 0 && $("Can't release IO binding."), d !== 0 && i._OrtReleaseSession(d) !== 0 && $("Can't release session."), g;
|
|
10976
10976
|
} finally {
|
|
10977
|
-
i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 &&
|
|
10977
|
+
i._free(s), l !== 0 && i._OrtReleaseSessionOptions(l) !== 0 && $("Can't release session options."), y.forEach((g) => i._free(g)), i.unmountExternalData?.();
|
|
10978
10978
|
}
|
|
10979
10979
|
}, Zt = (a) => {
|
|
10980
|
-
let r =
|
|
10980
|
+
let r = z(), s = it.get(a);
|
|
10981
10981
|
if (!s) throw new Error(`cannot release session. invalid session id: ${a}`);
|
|
10982
10982
|
let [f, i, d, l, m] = s;
|
|
10983
|
-
l && (m && r._OrtClearBoundOutputs(l.handle) !== 0 &&
|
|
10983
|
+
l && (m && r._OrtClearBoundOutputs(l.handle) !== 0 && $("Can't clear bound outputs."), r._OrtReleaseBinding(l.handle) !== 0 && $("Can't release IO binding.")), r.jsepOnReleaseSession?.(a), r.webnnOnReleaseSession?.(a), r.webgpuOnReleaseSession?.(a), i.forEach((y) => r._OrtFree(y)), d.forEach((y) => r._OrtFree(y)), r._OrtReleaseSession(f) !== 0 && $("Can't release session."), it.delete(a);
|
|
10984
10984
|
}, Ms = async (a, r, s, f, i, d, l = false) => {
|
|
10985
10985
|
if (!a) {
|
|
10986
10986
|
r.push(0);
|
|
10987
10987
|
return;
|
|
10988
10988
|
}
|
|
10989
|
-
let m =
|
|
10989
|
+
let m = z(), y = m.PTR_SIZE, w = a[0], T = a[1], g = a[3], v = g, S, C;
|
|
10990
10990
|
if (w === "string" && (g === "gpu-buffer" || g === "ml-tensor")) throw new Error("String tensor is not supported on GPU.");
|
|
10991
10991
|
if (l && g !== "gpu-buffer") throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);
|
|
10992
10992
|
if (g === "gpu-buffer") {
|
|
@@ -11030,12 +11030,12 @@ var Kr = k(() => {
|
|
|
11030
11030
|
try {
|
|
11031
11031
|
T.forEach((M, Y) => m.setValue(H + Y * y, M, y === 4 ? "i32" : "i64"));
|
|
11032
11032
|
let U = m._OrtCreateTensor(He(w), S, C, H, T.length, an(v));
|
|
11033
|
-
U === 0 &&
|
|
11033
|
+
U === 0 && $(`Can't create tensor for input/output. session=${f}, index=${d}.`), r.push(U);
|
|
11034
11034
|
} finally {
|
|
11035
11035
|
m.stackRestore(R);
|
|
11036
11036
|
}
|
|
11037
11037
|
}, Kt = async (a, r, s, f, i, d) => {
|
|
11038
|
-
let l =
|
|
11038
|
+
let l = z(), m = l.PTR_SIZE, y = it.get(a);
|
|
11039
11039
|
if (!y) throw new Error(`cannot run inference. invalid session id: ${a}`);
|
|
11040
11040
|
let w = y[0], T = y[1], g = y[2], v = y[3], S = y[4], C = y[5], R = r.length, H = f.length, U = 0, M = [], Y = [], L = [], W = [], oe = [], p = l.stackSave(), ne = l.stackAlloc(R * m), X = l.stackAlloc(R * m), J = l.stackAlloc(H * m), Ue = l.stackAlloc(H * m);
|
|
11041
11041
|
try {
|
|
@@ -11051,33 +11051,33 @@ var Kr = k(() => {
|
|
|
11051
11051
|
$e("wasm bindInputsOutputs");
|
|
11052
11052
|
for (let q = 0; q < R; q++) {
|
|
11053
11053
|
let we = r[q];
|
|
11054
|
-
await l._OrtBindInput(_, T[we], Y[q]) !== 0 &&
|
|
11054
|
+
await l._OrtBindInput(_, T[we], Y[q]) !== 0 && $(`Can't bind input[${q}] for session=${a}.`);
|
|
11055
11055
|
}
|
|
11056
11056
|
for (let q = 0; q < H; q++) {
|
|
11057
11057
|
let we = f[q];
|
|
11058
|
-
i[q]?.[3] ? (oe.push(L[q]), l._OrtBindOutput(_, g[we], L[q], 0) !== 0 &&
|
|
11058
|
+
i[q]?.[3] ? (oe.push(L[q]), l._OrtBindOutput(_, g[we], L[q], 0) !== 0 && $(`Can't bind pre-allocated output[${q}] for session=${a}.`)) : l._OrtBindOutput(_, g[we], 0, pe[we]) !== 0 && $(`Can't bind output[${q}] to ${ae[q]} for session=${a}.`);
|
|
11059
11059
|
}
|
|
11060
11060
|
ze("wasm bindInputsOutputs"), it.set(a, [w, T, g, v, S, true]);
|
|
11061
11061
|
}
|
|
11062
11062
|
l.jsepOnRunStart?.(w), l.webnnOnRunStart?.(w);
|
|
11063
11063
|
let Q;
|
|
11064
|
-
v ? Q = await l._OrtRunWithBinding(w, v.handle, H, J, U) : Q = await l._OrtRun(w, X, ne, R, Ue, H, J, U), Q !== 0 &&
|
|
11064
|
+
v ? Q = await l._OrtRunWithBinding(w, v.handle, H, J, U) : Q = await l._OrtRun(w, X, ne, R, Ue, H, J, U), Q !== 0 && $("failed to call OrtRun().");
|
|
11065
11065
|
let x = [], A = [];
|
|
11066
11066
|
$e("wasm ProcessOutputTensor");
|
|
11067
11067
|
for (let _ = 0; _ < H; _++) {
|
|
11068
11068
|
let ae = Number(l.getValue(J + _ * m, "*"));
|
|
11069
11069
|
if (ae === L[_] || oe.includes(L[_])) {
|
|
11070
|
-
x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 &&
|
|
11070
|
+
x.push(i[_]), ae !== L[_] && l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
|
|
11071
11071
|
continue;
|
|
11072
11072
|
}
|
|
11073
11073
|
let pe = l.stackSave(), q = l.stackAlloc(4 * m), we = false, re, se = 0;
|
|
11074
11074
|
try {
|
|
11075
|
-
l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 &&
|
|
11075
|
+
l._OrtGetTensorData(ae, q, q + m, q + 2 * m, q + 3 * m) !== 0 && $(`Can't access output tensor data on index ${_}.`);
|
|
11076
11076
|
let Te = m === 4 ? "i32" : "i64", Ye = Number(l.getValue(q, Te));
|
|
11077
11077
|
se = l.getValue(q + m, "*");
|
|
11078
11078
|
let bt = l.getValue(q + m * 2, "*"), wt = Number(l.getValue(q + m * 3, Te)), Se = [];
|
|
11079
11079
|
for (let ee = 0; ee < wt; ee++) Se.push(Number(l.getValue(bt + ee * m, Te)));
|
|
11080
|
-
l._OrtFree(bt) !== 0 &&
|
|
11080
|
+
l._OrtFree(bt) !== 0 && $("Can't free memory for tensor dims.");
|
|
11081
11081
|
let Ae = Se.reduce((ee, Z) => ee * Z, 1);
|
|
11082
11082
|
re = or(Ye);
|
|
11083
11083
|
let Oe = v?.outputPreferredLocations[f[_]];
|
|
@@ -11085,24 +11085,24 @@ var Kr = k(() => {
|
|
|
11085
11085
|
if (Oe === "gpu-buffer" || Oe === "ml-tensor") throw new Error("String tensor is not supported on GPU.");
|
|
11086
11086
|
let ee = [];
|
|
11087
11087
|
for (let Z = 0; Z < Ae; Z++) {
|
|
11088
|
-
let
|
|
11089
|
-
ee.push(l.UTF8ToString(
|
|
11088
|
+
let G = l.getValue(se + Z * m, "*"), V = l.getValue(se + (Z + 1) * m, "*"), qe = Z === Ae - 1 ? void 0 : V - G;
|
|
11089
|
+
ee.push(l.UTF8ToString(G, qe));
|
|
11090
11090
|
}
|
|
11091
11091
|
x.push([re, Se, ee, "cpu"]);
|
|
11092
11092
|
} else if (Oe === "gpu-buffer" && Ae > 0) {
|
|
11093
11093
|
let ee = l.webgpuGetBuffer;
|
|
11094
11094
|
if (!ee) throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');
|
|
11095
|
-
let Z = ee(se),
|
|
11096
|
-
if (
|
|
11095
|
+
let Z = ee(se), G = mt(Ye, Ae);
|
|
11096
|
+
if (G === void 0 || !ar(re)) throw new Error(`Unsupported data type: ${re}`);
|
|
11097
11097
|
we = true;
|
|
11098
11098
|
{
|
|
11099
11099
|
l.webgpuRegisterBuffer(Z, a, se);
|
|
11100
|
-
let V = l.webgpuCreateDownloader(Z,
|
|
11100
|
+
let V = l.webgpuCreateDownloader(Z, G, a);
|
|
11101
11101
|
x.push([re, Se, { gpuBuffer: Z, download: async () => {
|
|
11102
11102
|
let qe = await V();
|
|
11103
11103
|
return new (at(re))(qe);
|
|
11104
11104
|
}, dispose: () => {
|
|
11105
|
-
l._OrtReleaseTensor(ae) !== 0 &&
|
|
11105
|
+
l._OrtReleaseTensor(ae) !== 0 && $("Can't release tensor.");
|
|
11106
11106
|
} }, "gpu-buffer"]);
|
|
11107
11107
|
}
|
|
11108
11108
|
} else if (Oe === "ml-tensor" && Ae > 0) {
|
|
@@ -11117,8 +11117,8 @@ var Kr = k(() => {
|
|
|
11117
11117
|
} else if (Oe === "ml-tensor-cpu-output" && Ae > 0) {
|
|
11118
11118
|
let ee = l.webnnCreateMLTensorDownloader(se, re)(), Z = x.length;
|
|
11119
11119
|
we = true, A.push((async () => {
|
|
11120
|
-
let
|
|
11121
|
-
return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae),
|
|
11120
|
+
let G = [Z, await ee];
|
|
11121
|
+
return l.webnnReleaseTensorId(se), l._OrtReleaseTensor(ae), G;
|
|
11122
11122
|
})()), x.push([re, Se, [], "cpu"]);
|
|
11123
11123
|
} else {
|
|
11124
11124
|
let ee = at(re), Z = new ee(Ae);
|
|
@@ -11128,7 +11128,7 @@ var Kr = k(() => {
|
|
|
11128
11128
|
l.stackRestore(pe), re === "string" && se && l._free(se), we || l._OrtReleaseTensor(ae);
|
|
11129
11129
|
}
|
|
11130
11130
|
}
|
|
11131
|
-
v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 &&
|
|
11131
|
+
v && !S && (l._OrtClearBoundOutputs(v.handle) !== 0 && $("Can't clear bound outputs."), it.set(a, [w, T, g, v, S, false]));
|
|
11132
11132
|
for (let [_, ae] of await Promise.all(A)) x[_][2] = ae;
|
|
11133
11133
|
return ze("wasm ProcessOutputTensor"), x;
|
|
11134
11134
|
} finally {
|
|
@@ -11139,10 +11139,10 @@ var Kr = k(() => {
|
|
|
11139
11139
|
}), Y.forEach((Q) => l._OrtReleaseTensor(Q)), L.forEach((Q) => l._OrtReleaseTensor(Q)), W.forEach((Q) => l._free(Q)), U !== 0 && l._OrtReleaseRunOptions(U), M.forEach((Q) => l._free(Q));
|
|
11140
11140
|
}
|
|
11141
11141
|
}, er = (a) => {
|
|
11142
|
-
let r =
|
|
11142
|
+
let r = z(), s = it.get(a);
|
|
11143
11143
|
if (!s) throw new Error("invalid session id");
|
|
11144
11144
|
let f = s[0], i = r._OrtEndProfiling(f);
|
|
11145
|
-
i === 0 &&
|
|
11145
|
+
i === 0 && $("Can't get an profile file name."), r._OrtFree(i);
|
|
11146
11146
|
}, tr = (a) => {
|
|
11147
11147
|
let r = [];
|
|
11148
11148
|
for (let s of a) {
|
|
@@ -11375,7 +11375,7 @@ var $s = k(() => {
|
|
|
11375
11375
|
Ve();
|
|
11376
11376
|
Ve();
|
|
11377
11377
|
Ve();
|
|
11378
|
-
var Xa = "1.25.0-dev.
|
|
11378
|
+
var Xa = "1.25.0-dev.20260323-a99aad9d36";
|
|
11379
11379
|
var Tl = Zr;
|
|
11380
11380
|
{
|
|
11381
11381
|
let a = ($s(), $t(Gs)).wasmBackend;
|
|
@@ -15731,6 +15731,7 @@ var processors_exports = {};
|
|
|
15731
15731
|
__export(processors_exports, {
|
|
15732
15732
|
ChatterboxProcessor: () => ChatterboxProcessor,
|
|
15733
15733
|
Florence2Processor: () => Florence2Processor,
|
|
15734
|
+
Gemma3Processor: () => Gemma3Processor,
|
|
15734
15735
|
Gemma3nProcessor: () => Gemma3nProcessor,
|
|
15735
15736
|
Glm46VProcessor: () => Glm46VProcessor,
|
|
15736
15737
|
GraniteSpeechProcessor: () => GraniteSpeechProcessor,
|
|
@@ -18721,6 +18722,7 @@ __export(image_processors_exports, {
|
|
|
18721
18722
|
DonutImageProcessor: () => DonutImageProcessor,
|
|
18722
18723
|
EfficientNetImageProcessor: () => EfficientNetImageProcessor,
|
|
18723
18724
|
GLPNFeatureExtractor: () => GLPNFeatureExtractor,
|
|
18725
|
+
Gemma3ImageProcessor: () => Gemma3ImageProcessor,
|
|
18724
18726
|
Glm46VImageProcessor: () => Glm46VImageProcessor,
|
|
18725
18727
|
GroundingDinoImageProcessor: () => GroundingDinoImageProcessor,
|
|
18726
18728
|
Idefics3ImageProcessor: () => Idefics3ImageProcessor,
|
|
@@ -18905,6 +18907,10 @@ var EfficientNetImageProcessor = class extends ImageProcessor {
|
|
|
18905
18907
|
}
|
|
18906
18908
|
};
|
|
18907
18909
|
|
|
18910
|
+
// src/models/gemma3/image_processing_gemma3.js
|
|
18911
|
+
var Gemma3ImageProcessor = class extends ImageProcessor {
|
|
18912
|
+
};
|
|
18913
|
+
|
|
18908
18914
|
// src/models/qwen2_vl/image_processing_qwen2_vl.js
|
|
18909
18915
|
var Qwen2VLImageProcessor = class extends ImageProcessor {
|
|
18910
18916
|
constructor(config) {
|
|
@@ -20128,6 +20134,48 @@ var Florence2Processor = class extends Processor {
|
|
|
20128
20134
|
}
|
|
20129
20135
|
};
|
|
20130
20136
|
|
|
20137
|
+
// src/models/gemma3/processing_gemma3.js
|
|
20138
|
+
var Gemma3Processor = class extends Processor {
|
|
20139
|
+
static tokenizer_class = AutoTokenizer;
|
|
20140
|
+
static image_processor_class = AutoImageProcessor;
|
|
20141
|
+
static uses_processor_config = true;
|
|
20142
|
+
static uses_chat_template_file = true;
|
|
20143
|
+
constructor(config, components, chat_template) {
|
|
20144
|
+
super(config, components, chat_template);
|
|
20145
|
+
this.image_seq_length = this.config.image_seq_length;
|
|
20146
|
+
const { boi_token, image_token, eoi_token } = this.tokenizer.config;
|
|
20147
|
+
this.boi_token = boi_token;
|
|
20148
|
+
this.image_token = image_token;
|
|
20149
|
+
this.eoi_token = eoi_token;
|
|
20150
|
+
const image_tokens_expanded = image_token.repeat(this.image_seq_length);
|
|
20151
|
+
this.full_image_sequence = `
|
|
20152
|
+
|
|
20153
|
+
${boi_token}${image_tokens_expanded}${eoi_token}
|
|
20154
|
+
|
|
20155
|
+
`;
|
|
20156
|
+
}
|
|
20157
|
+
/**
|
|
20158
|
+
* @param {string|string[]} text
|
|
20159
|
+
* @param {import('../../utils/image.js').RawImage|import('../../utils/image.js').RawImage[]} [images]
|
|
20160
|
+
* @param {Object} [options]
|
|
20161
|
+
*/
|
|
20162
|
+
async _call(text, images = null, options = {}) {
|
|
20163
|
+
if (typeof text === "string") {
|
|
20164
|
+
text = [text];
|
|
20165
|
+
}
|
|
20166
|
+
let image_inputs;
|
|
20167
|
+
if (images) {
|
|
20168
|
+
image_inputs = await this.image_processor(images, options);
|
|
20169
|
+
text = text.map((prompt) => prompt.replaceAll(this.boi_token, this.full_image_sequence));
|
|
20170
|
+
}
|
|
20171
|
+
const text_inputs = this.tokenizer(text, options);
|
|
20172
|
+
return {
|
|
20173
|
+
...text_inputs,
|
|
20174
|
+
...image_inputs
|
|
20175
|
+
};
|
|
20176
|
+
}
|
|
20177
|
+
};
|
|
20178
|
+
|
|
20131
20179
|
// src/models/gemma3n/processing_gemma3n.js
|
|
20132
20180
|
var Gemma3nProcessor = class extends Processor {
|
|
20133
20181
|
static image_processor_class = AutoImageProcessor;
|
|
@@ -23308,8 +23356,7 @@ var MODEL_TYPES = {
|
|
|
23308
23356
|
ImageAudioTextToText: 13,
|
|
23309
23357
|
Supertonic: 14,
|
|
23310
23358
|
Chatterbox: 15,
|
|
23311
|
-
|
|
23312
|
-
VoxtralRealtime: 17
|
|
23359
|
+
VoxtralRealtime: 16
|
|
23313
23360
|
};
|
|
23314
23361
|
var MODEL_TYPE_CONFIG = {
|
|
23315
23362
|
[MODEL_TYPES.DecoderOnly]: {
|
|
@@ -23366,12 +23413,12 @@ var MODEL_TYPE_CONFIG = {
|
|
|
23366
23413
|
can_generate: true,
|
|
23367
23414
|
forward: image_text_to_text_forward,
|
|
23368
23415
|
prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
|
|
23369
|
-
sessions: (config) => {
|
|
23416
|
+
sessions: (config, options, textOnly) => {
|
|
23370
23417
|
const s = {
|
|
23371
23418
|
embed_tokens: "embed_tokens",
|
|
23372
|
-
vision_encoder: "vision_encoder",
|
|
23373
23419
|
decoder_model_merged: "decoder_model_merged"
|
|
23374
23420
|
};
|
|
23421
|
+
if (!textOnly) s["vision_encoder"] = "vision_encoder";
|
|
23375
23422
|
if (config.is_encoder_decoder) s["model"] = "encoder_model";
|
|
23376
23423
|
return s;
|
|
23377
23424
|
},
|
|
@@ -23393,12 +23440,17 @@ var MODEL_TYPE_CONFIG = {
|
|
|
23393
23440
|
[MODEL_TYPES.ImageAudioTextToText]: {
|
|
23394
23441
|
can_generate: true,
|
|
23395
23442
|
prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
|
|
23396
|
-
sessions: () =>
|
|
23397
|
-
|
|
23398
|
-
|
|
23399
|
-
|
|
23400
|
-
|
|
23401
|
-
|
|
23443
|
+
sessions: (config, options, textOnly) => {
|
|
23444
|
+
const s = {
|
|
23445
|
+
embed_tokens: "embed_tokens",
|
|
23446
|
+
decoder_model_merged: "decoder_model_merged"
|
|
23447
|
+
};
|
|
23448
|
+
if (!textOnly) {
|
|
23449
|
+
s["audio_encoder"] = "audio_encoder";
|
|
23450
|
+
s["vision_encoder"] = "vision_encoder";
|
|
23451
|
+
}
|
|
23452
|
+
return s;
|
|
23453
|
+
},
|
|
23402
23454
|
optional_configs: { generation_config: "generation_config.json" }
|
|
23403
23455
|
},
|
|
23404
23456
|
[MODEL_TYPES.Phi3V]: {
|
|
@@ -23449,14 +23501,6 @@ var MODEL_TYPE_CONFIG = {
|
|
|
23449
23501
|
cache_sessions: { model: true },
|
|
23450
23502
|
optional_configs: { generation_config: "generation_config.json" }
|
|
23451
23503
|
},
|
|
23452
|
-
[MODEL_TYPES.MultimodalLanguageModelOnly]: {
|
|
23453
|
-
can_generate: true,
|
|
23454
|
-
forward: image_text_to_text_forward,
|
|
23455
|
-
prepare_inputs: multimodal_text_to_text_prepare_inputs_for_generation,
|
|
23456
|
-
sessions: () => ({ embed_tokens: "embed_tokens", decoder_model_merged: "decoder_model_merged" }),
|
|
23457
|
-
cache_sessions: { decoder_model_merged: true },
|
|
23458
|
-
optional_configs: { generation_config: "generation_config.json" }
|
|
23459
|
-
},
|
|
23460
23504
|
[MODEL_TYPES.VoxtralRealtime]: {
|
|
23461
23505
|
can_generate: true,
|
|
23462
23506
|
prepare_inputs: decoder_prepare_inputs_for_generation,
|
|
@@ -23482,6 +23526,19 @@ function getSessionsConfig(modelType, config, options = {}) {
|
|
|
23482
23526
|
optional_configs: typeConfig.optional_configs
|
|
23483
23527
|
};
|
|
23484
23528
|
}
|
|
23529
|
+
function resolveTypeConfig(modelName, config) {
|
|
23530
|
+
let modelType = MODEL_TYPE_MAPPING.get(modelName);
|
|
23531
|
+
let textOnly = false;
|
|
23532
|
+
const nativeArch = config?.architectures?.[0];
|
|
23533
|
+
if (nativeArch && nativeArch !== modelName && modelName?.endsWith("ForCausalLM") && nativeArch.endsWith("ForConditionalGeneration")) {
|
|
23534
|
+
const nativeType = MODEL_TYPE_MAPPING.get(nativeArch);
|
|
23535
|
+
if (nativeType !== void 0) {
|
|
23536
|
+
modelType = nativeType;
|
|
23537
|
+
textOnly = true;
|
|
23538
|
+
}
|
|
23539
|
+
}
|
|
23540
|
+
return { typeConfig: MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default, textOnly, modelType };
|
|
23541
|
+
}
|
|
23485
23542
|
var MODEL_TYPE_MAPPING = /* @__PURE__ */ new Map();
|
|
23486
23543
|
var MODEL_NAME_TO_CLASS_MAPPING = /* @__PURE__ */ new Map();
|
|
23487
23544
|
var MODEL_CLASS_TO_NAME_MAPPING = /* @__PURE__ */ new Map();
|
|
@@ -23501,8 +23558,7 @@ var PreTrainedModel = class extends Callable2 {
|
|
|
23501
23558
|
this.sessions = sessions;
|
|
23502
23559
|
this.configs = configs;
|
|
23503
23560
|
const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor);
|
|
23504
|
-
const
|
|
23505
|
-
const typeConfig = MODEL_TYPE_CONFIG[modelType] ?? MODEL_TYPE_CONFIG.default;
|
|
23561
|
+
const { typeConfig } = resolveTypeConfig(modelName, config);
|
|
23506
23562
|
this.can_generate = typeConfig.can_generate;
|
|
23507
23563
|
this._forward = typeConfig.forward;
|
|
23508
23564
|
this._prepare_inputs_for_generation = typeConfig.prepare_inputs;
|
|
@@ -23565,9 +23621,8 @@ var PreTrainedModel = class extends Callable2 {
|
|
|
23565
23621
|
session_options
|
|
23566
23622
|
};
|
|
23567
23623
|
const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this);
|
|
23568
|
-
const modelType = MODEL_TYPE_MAPPING.get(modelName);
|
|
23569
23624
|
config = options.config = await AutoConfig.from_pretrained(pretrained_model_name_or_path, options);
|
|
23570
|
-
const typeConfig
|
|
23625
|
+
const { typeConfig, textOnly, modelType } = resolveTypeConfig(modelName, config);
|
|
23571
23626
|
if (modelType === void 0) {
|
|
23572
23627
|
const type = modelName ?? config?.model_type;
|
|
23573
23628
|
if (type !== "custom") {
|
|
@@ -23576,7 +23631,7 @@ var PreTrainedModel = class extends Callable2 {
|
|
|
23576
23631
|
);
|
|
23577
23632
|
}
|
|
23578
23633
|
}
|
|
23579
|
-
const sessions = typeConfig.sessions(config, options);
|
|
23634
|
+
const sessions = typeConfig.sessions(config, options, textOnly);
|
|
23580
23635
|
const promises = [
|
|
23581
23636
|
constructSessions(pretrained_model_name_or_path, sessions, options, typeConfig.cache_sessions)
|
|
23582
23637
|
];
|
|
@@ -24631,6 +24686,7 @@ __export(models_exports, {
|
|
|
24631
24686
|
Gemma2Model: () => Gemma2Model,
|
|
24632
24687
|
Gemma2PreTrainedModel: () => Gemma2PreTrainedModel,
|
|
24633
24688
|
Gemma3ForCausalLM: () => Gemma3ForCausalLM,
|
|
24689
|
+
Gemma3ForConditionalGeneration: () => Gemma3ForConditionalGeneration,
|
|
24634
24690
|
Gemma3Model: () => Gemma3Model,
|
|
24635
24691
|
Gemma3PreTrainedModel: () => Gemma3PreTrainedModel,
|
|
24636
24692
|
Gemma3nForCausalLM: () => Gemma3nForCausalLM,
|
|
@@ -26349,12 +26405,35 @@ var Gemma2Model = class extends Gemma2PreTrainedModel {
|
|
|
26349
26405
|
var Gemma2ForCausalLM = class extends Gemma2PreTrainedModel {
|
|
26350
26406
|
};
|
|
26351
26407
|
|
|
26408
|
+
// src/models/llava/modeling_llava.js
|
|
26409
|
+
var LlavaPreTrainedModel = class extends PreTrainedModel {
|
|
26410
|
+
forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
|
|
26411
|
+
};
|
|
26412
|
+
var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
|
|
26413
|
+
_merge_input_ids_with_image_features(kwargs) {
|
|
26414
|
+
const vision_hidden_size = kwargs.image_features.dims.at(-1);
|
|
26415
|
+
const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
|
|
26416
|
+
return default_merge_input_ids_with_image_features({
|
|
26417
|
+
// @ts-ignore
|
|
26418
|
+
image_token_id: this.config.image_token_index ?? this.config.image_token_id,
|
|
26419
|
+
...kwargs,
|
|
26420
|
+
image_features: reshaped_image_hidden_states
|
|
26421
|
+
});
|
|
26422
|
+
}
|
|
26423
|
+
};
|
|
26424
|
+
var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
|
|
26425
|
+
};
|
|
26426
|
+
var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
|
|
26427
|
+
};
|
|
26428
|
+
|
|
26352
26429
|
// src/models/gemma3/modeling_gemma3.js
|
|
26353
26430
|
var Gemma3PreTrainedModel = class extends PreTrainedModel {
|
|
26354
26431
|
};
|
|
26355
26432
|
var Gemma3Model = class extends Gemma3PreTrainedModel {
|
|
26356
26433
|
};
|
|
26357
|
-
var
|
|
26434
|
+
var Gemma3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
|
|
26435
|
+
};
|
|
26436
|
+
var Gemma3ForCausalLM = class extends Gemma3ForConditionalGeneration {
|
|
26358
26437
|
};
|
|
26359
26438
|
|
|
26360
26439
|
// src/models/gemma3n/modeling_gemma3n.js
|
|
@@ -26537,8 +26616,8 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
|
|
|
26537
26616
|
for (let x = 0; x < 3; ++x) {
|
|
26538
26617
|
for (const val of llm_pos_ids_list) {
|
|
26539
26618
|
const seg_len = val.length / 3;
|
|
26540
|
-
for (let
|
|
26541
|
-
llm_positions[index++] = val[
|
|
26619
|
+
for (let z2 = x * seg_len; z2 < (x + 1) * seg_len; ++z2) {
|
|
26620
|
+
llm_positions[index++] = val[z2];
|
|
26542
26621
|
}
|
|
26543
26622
|
}
|
|
26544
26623
|
}
|
|
@@ -26720,40 +26799,45 @@ var Qwen2VLForConditionalGeneration = class extends Qwen2VLPreTrainedModel {
|
|
|
26720
26799
|
});
|
|
26721
26800
|
}
|
|
26722
26801
|
prepare_inputs_for_generation(input_ids, model_inputs, generation_config) {
|
|
26723
|
-
if (model_inputs.attention_mask
|
|
26724
|
-
|
|
26725
|
-
|
|
26802
|
+
if (!model_inputs.attention_mask || model_inputs.position_ids) {
|
|
26803
|
+
return model_inputs;
|
|
26804
|
+
}
|
|
26805
|
+
const session = this.sessions["decoder_model_merged"] ?? this.sessions["model"];
|
|
26806
|
+
if (!session.inputNames.includes("position_ids")) {
|
|
26807
|
+
return model_inputs;
|
|
26808
|
+
}
|
|
26809
|
+
if (!model_inputs.past_key_values) {
|
|
26810
|
+
[model_inputs.position_ids, model_inputs.rope_deltas] = this.get_rope_index(
|
|
26811
|
+
model_inputs.input_ids,
|
|
26812
|
+
model_inputs.image_grid_thw,
|
|
26813
|
+
model_inputs.video_grid_thw,
|
|
26814
|
+
model_inputs.attention_mask
|
|
26815
|
+
);
|
|
26816
|
+
} else {
|
|
26817
|
+
model_inputs.pixel_values = null;
|
|
26818
|
+
const past_length = model_inputs.past_key_values.get_seq_length();
|
|
26819
|
+
if (past_length < model_inputs.input_ids.dims[1]) {
|
|
26820
|
+
const [full_position_ids, rope_deltas] = this.get_rope_index(
|
|
26726
26821
|
model_inputs.input_ids,
|
|
26727
26822
|
model_inputs.image_grid_thw,
|
|
26728
26823
|
model_inputs.video_grid_thw,
|
|
26729
26824
|
model_inputs.attention_mask
|
|
26730
26825
|
);
|
|
26826
|
+
model_inputs.rope_deltas = rope_deltas;
|
|
26827
|
+
model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
|
|
26828
|
+
model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
|
|
26731
26829
|
} else {
|
|
26732
|
-
model_inputs.
|
|
26733
|
-
|
|
26734
|
-
if (past_length < model_inputs.input_ids.dims[1]) {
|
|
26735
|
-
const [full_position_ids, rope_deltas] = this.get_rope_index(
|
|
26830
|
+
if (!model_inputs.rope_deltas) {
|
|
26831
|
+
[, model_inputs.rope_deltas] = this.get_rope_index(
|
|
26736
26832
|
model_inputs.input_ids,
|
|
26737
26833
|
model_inputs.image_grid_thw,
|
|
26738
26834
|
model_inputs.video_grid_thw,
|
|
26739
26835
|
model_inputs.attention_mask
|
|
26740
26836
|
);
|
|
26741
|
-
model_inputs.rope_deltas = rope_deltas;
|
|
26742
|
-
model_inputs.position_ids = full_position_ids.slice(null, null, [past_length, null]);
|
|
26743
|
-
model_inputs.input_ids = model_inputs.input_ids.slice(null, [past_length, null]);
|
|
26744
|
-
} else {
|
|
26745
|
-
if (!model_inputs.rope_deltas) {
|
|
26746
|
-
[, model_inputs.rope_deltas] = this.get_rope_index(
|
|
26747
|
-
model_inputs.input_ids,
|
|
26748
|
-
model_inputs.image_grid_thw,
|
|
26749
|
-
model_inputs.video_grid_thw,
|
|
26750
|
-
model_inputs.attention_mask
|
|
26751
|
-
);
|
|
26752
|
-
}
|
|
26753
|
-
const delta = BigInt(past_length);
|
|
26754
|
-
const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
|
|
26755
|
-
model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
|
|
26756
26837
|
}
|
|
26838
|
+
const delta = BigInt(past_length);
|
|
26839
|
+
const rope_deltas_list = model_inputs.rope_deltas.map((x) => delta + x);
|
|
26840
|
+
model_inputs.position_ids = stack([rope_deltas_list, rope_deltas_list, rope_deltas_list], 0);
|
|
26757
26841
|
}
|
|
26758
26842
|
}
|
|
26759
26843
|
return model_inputs;
|
|
@@ -27036,27 +27120,6 @@ var HunYuanDenseV1Model = class extends HunYuanDenseV1PreTrainedModel {
|
|
|
27036
27120
|
var HunYuanDenseV1ForCausalLM = class extends HunYuanDenseV1PreTrainedModel {
|
|
27037
27121
|
};
|
|
27038
27122
|
|
|
27039
|
-
// src/models/llava/modeling_llava.js
|
|
27040
|
-
var LlavaPreTrainedModel = class extends PreTrainedModel {
|
|
27041
|
-
forward_params = ["input_ids", "attention_mask", "pixel_values", "position_ids", "past_key_values"];
|
|
27042
|
-
};
|
|
27043
|
-
var LlavaForConditionalGeneration = class extends LlavaPreTrainedModel {
|
|
27044
|
-
_merge_input_ids_with_image_features(kwargs) {
|
|
27045
|
-
const vision_hidden_size = kwargs.image_features.dims.at(-1);
|
|
27046
|
-
const reshaped_image_hidden_states = kwargs.image_features.view(-1, vision_hidden_size);
|
|
27047
|
-
return default_merge_input_ids_with_image_features({
|
|
27048
|
-
// @ts-ignore
|
|
27049
|
-
image_token_id: this.config.image_token_index ?? this.config.image_token_id,
|
|
27050
|
-
...kwargs,
|
|
27051
|
-
image_features: reshaped_image_hidden_states
|
|
27052
|
-
});
|
|
27053
|
-
}
|
|
27054
|
-
};
|
|
27055
|
-
var Moondream1ForConditionalGeneration = class extends LlavaForConditionalGeneration {
|
|
27056
|
-
};
|
|
27057
|
-
var LlavaQwen2ForCausalLM = class extends LlavaForConditionalGeneration {
|
|
27058
|
-
};
|
|
27059
|
-
|
|
27060
27123
|
// src/models/idefics3/modeling_idefics3.js
|
|
27061
27124
|
var Idefics3ForConditionalGeneration = class extends LlavaForConditionalGeneration {
|
|
27062
27125
|
forward_params = [
|
|
@@ -29954,6 +30017,7 @@ var MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = /* @__PURE__ */ new Map([
|
|
|
29954
30017
|
["qwen3_vl", "Qwen3VLForCausalLM"],
|
|
29955
30018
|
["qwen3_vl_moe", "Qwen3VLMoeForCausalLM"],
|
|
29956
30019
|
["qwen3_5", "Qwen3_5ForCausalLM"],
|
|
30020
|
+
["qwen3_5_text", "Qwen3_5ForCausalLM"],
|
|
29957
30021
|
["qwen3_5_moe", "Qwen3_5MoeForCausalLM"],
|
|
29958
30022
|
["gemma3n", "Gemma3nForCausalLM"],
|
|
29959
30023
|
["phi", "PhiForCausalLM"],
|
|
@@ -30041,6 +30105,7 @@ var MODEL_FOR_IMAGE_TEXT_TO_TEXT_MAPPING_NAMES = /* @__PURE__ */ new Map([
|
|
|
30041
30105
|
["smolvlm", "SmolVLMForConditionalGeneration"],
|
|
30042
30106
|
["paligemma", "PaliGemmaForConditionalGeneration"],
|
|
30043
30107
|
["llava_qwen2", "LlavaQwen2ForCausalLM"],
|
|
30108
|
+
["gemma3", "Gemma3ForConditionalGeneration"],
|
|
30044
30109
|
["gemma3n", "Gemma3nForConditionalGeneration"],
|
|
30045
30110
|
["mistral3", "Mistral3ForConditionalGeneration"],
|
|
30046
30111
|
["lighton_ocr", "LightOnOcrForConditionalGeneration"],
|
|
@@ -30235,13 +30300,6 @@ var CUSTOM_MAPPING = [
|
|
|
30235
30300
|
],
|
|
30236
30301
|
["SupertonicForConditionalGeneration", SupertonicForConditionalGeneration, MODEL_TYPES.Supertonic],
|
|
30237
30302
|
["ChatterboxModel", ChatterboxModel, MODEL_TYPES.Chatterbox],
|
|
30238
|
-
["Qwen2VLForCausalLM", Qwen2VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30239
|
-
["Qwen2_5_VLForCausalLM", Qwen2_5_VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30240
|
-
["Qwen3VLForCausalLM", Qwen3VLForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30241
|
-
["Qwen3VLMoeForCausalLM", Qwen3VLMoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30242
|
-
["Qwen3_5ForCausalLM", Qwen3_5ForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30243
|
-
["Qwen3_5MoeForCausalLM", Qwen3_5MoeForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30244
|
-
["Gemma3nForCausalLM", Gemma3nForCausalLM, MODEL_TYPES.MultimodalLanguageModelOnly],
|
|
30245
30303
|
[
|
|
30246
30304
|
"VoxtralRealtimeForConditionalGeneration",
|
|
30247
30305
|
VoxtralRealtimeForConditionalGeneration,
|
|
@@ -31923,6 +31981,41 @@ var TASK_ALIASES = Object.freeze({
|
|
|
31923
31981
|
embeddings: "feature-extraction"
|
|
31924
31982
|
});
|
|
31925
31983
|
|
|
31984
|
+
// src/utils/model_registry/resolve_model_type.js
|
|
31985
|
+
function resolve_model_type(config, { warn = true } = {}) {
|
|
31986
|
+
const architectures = (
|
|
31987
|
+
/** @type {string[]} */
|
|
31988
|
+
config.architectures || []
|
|
31989
|
+
);
|
|
31990
|
+
for (const arch of architectures) {
|
|
31991
|
+
const mappedType = MODEL_TYPE_MAPPING.get(arch);
|
|
31992
|
+
if (mappedType !== void 0) {
|
|
31993
|
+
return mappedType;
|
|
31994
|
+
}
|
|
31995
|
+
}
|
|
31996
|
+
if (config.model_type) {
|
|
31997
|
+
const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
|
|
31998
|
+
if (mappedType !== void 0) {
|
|
31999
|
+
return mappedType;
|
|
32000
|
+
}
|
|
32001
|
+
for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
|
|
32002
|
+
if (mapping.has(config.model_type)) {
|
|
32003
|
+
const resolved = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
|
|
32004
|
+
if (resolved !== void 0) {
|
|
32005
|
+
return resolved;
|
|
32006
|
+
}
|
|
32007
|
+
}
|
|
32008
|
+
}
|
|
32009
|
+
}
|
|
32010
|
+
if (warn) {
|
|
32011
|
+
const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
|
|
32012
|
+
logger.warn(
|
|
32013
|
+
`[resolve_model_type] Architecture(s) not found in MODEL_TYPE_MAPPING: [${archList}] for model type '${config.model_type}'. Falling back to EncoderOnly (single model.onnx file). If you encounter issues, please report at: ${GITHUB_ISSUE_URL}`
|
|
32014
|
+
);
|
|
32015
|
+
}
|
|
32016
|
+
return MODEL_TYPES.EncoderOnly;
|
|
32017
|
+
}
|
|
32018
|
+
|
|
31926
32019
|
// src/utils/model_registry/get_model_files.js
|
|
31927
32020
|
function get_config(modelId, { config = null, cache_dir = null, local_files_only = false, revision = "main" } = {}) {
|
|
31928
32021
|
if (config !== null) {
|
|
@@ -31945,43 +32038,7 @@ async function get_model_files(modelId, { config = null, dtype: overrideDtype =
|
|
|
31945
32038
|
const subfolder = "onnx";
|
|
31946
32039
|
const rawDevice = overrideDevice ?? custom_config.device;
|
|
31947
32040
|
let dtype = overrideDtype ?? custom_config.dtype;
|
|
31948
|
-
|
|
31949
|
-
const architectures = (
|
|
31950
|
-
/** @type {string[]} */
|
|
31951
|
-
config.architectures || []
|
|
31952
|
-
);
|
|
31953
|
-
let foundInMapping = false;
|
|
31954
|
-
for (const arch of architectures) {
|
|
31955
|
-
const mappedType = MODEL_TYPE_MAPPING.get(arch);
|
|
31956
|
-
if (mappedType !== void 0) {
|
|
31957
|
-
modelType = mappedType;
|
|
31958
|
-
foundInMapping = true;
|
|
31959
|
-
break;
|
|
31960
|
-
}
|
|
31961
|
-
}
|
|
31962
|
-
if (!foundInMapping && config.model_type) {
|
|
31963
|
-
const mappedType = MODEL_TYPE_MAPPING.get(config.model_type);
|
|
31964
|
-
if (mappedType !== void 0) {
|
|
31965
|
-
modelType = mappedType;
|
|
31966
|
-
foundInMapping = true;
|
|
31967
|
-
}
|
|
31968
|
-
if (!foundInMapping) {
|
|
31969
|
-
for (const mapping of Object.values(MODEL_MAPPING_NAMES)) {
|
|
31970
|
-
if (mapping.has(config.model_type)) {
|
|
31971
|
-
modelType = MODEL_TYPE_MAPPING.get(mapping.get(config.model_type));
|
|
31972
|
-
foundInMapping = true;
|
|
31973
|
-
break;
|
|
31974
|
-
}
|
|
31975
|
-
}
|
|
31976
|
-
}
|
|
31977
|
-
}
|
|
31978
|
-
if (!foundInMapping) {
|
|
31979
|
-
const archList = architectures.length > 0 ? architectures.join(", ") : "(none)";
|
|
31980
|
-
logger.warn(
|
|
31981
|
-
`[get_model_files] Architecture(s) not found in MODEL_TYPE_MAPPING: [${archList}] for model type '${config.model_type}'. Falling back to EncoderOnly (single model.onnx file). If you encounter issues, please report at: ${GITHUB_ISSUE_URL}`
|
|
31982
|
-
);
|
|
31983
|
-
modelType = MODEL_TYPES.EncoderOnly;
|
|
31984
|
-
}
|
|
32041
|
+
const modelType = resolve_model_type(config);
|
|
31985
32042
|
const add_model_file = (fileName, baseName = null) => {
|
|
31986
32043
|
baseName = baseName ?? fileName;
|
|
31987
32044
|
const selectedDevice = selectDevice(rawDevice, fileName);
|
|
@@ -32568,6 +32625,31 @@ async function clear_pipeline_cache(task, modelId, options = {}) {
|
|
|
32568
32625
|
return await clear_files_from_cache(modelId, files, options);
|
|
32569
32626
|
}
|
|
32570
32627
|
|
|
32628
|
+
// src/utils/model_registry/get_available_dtypes.js
|
|
32629
|
+
var CONCRETE_DTYPES = Object.keys(DEFAULT_DTYPE_SUFFIX_MAPPING);
|
|
32630
|
+
async function get_available_dtypes(modelId, { config = null, model_file_name = null, revision = "main", cache_dir = null, local_files_only = false } = {}) {
|
|
32631
|
+
config = await get_config(modelId, { config, cache_dir, local_files_only, revision });
|
|
32632
|
+
const subfolder = "onnx";
|
|
32633
|
+
const modelType = resolve_model_type(config);
|
|
32634
|
+
const { sessions } = getSessionsConfig(modelType, config, { model_file_name });
|
|
32635
|
+
const baseNames = Object.values(sessions);
|
|
32636
|
+
const metadataOptions = { revision, cache_dir, local_files_only };
|
|
32637
|
+
const probeResults = await Promise.all(
|
|
32638
|
+
CONCRETE_DTYPES.map(async (dtype) => {
|
|
32639
|
+
const suffix = DEFAULT_DTYPE_SUFFIX_MAPPING[dtype] ?? "";
|
|
32640
|
+
const allExist = await Promise.all(
|
|
32641
|
+
baseNames.map(async (baseName) => {
|
|
32642
|
+
const filename = `${subfolder}/${baseName}${suffix}.onnx`;
|
|
32643
|
+
const metadata = await get_file_metadata(modelId, filename, metadataOptions);
|
|
32644
|
+
return metadata.exists;
|
|
32645
|
+
})
|
|
32646
|
+
);
|
|
32647
|
+
return { dtype, available: allExist.every(Boolean) };
|
|
32648
|
+
})
|
|
32649
|
+
);
|
|
32650
|
+
return probeResults.filter((r) => r.available).map((r) => r.dtype);
|
|
32651
|
+
}
|
|
32652
|
+
|
|
32571
32653
|
// src/utils/model_registry/ModelRegistry.js
|
|
32572
32654
|
var ModelRegistry = class {
|
|
32573
32655
|
/**
|
|
@@ -32654,6 +32736,29 @@ var ModelRegistry = class {
|
|
|
32654
32736
|
static async get_processor_files(modelId) {
|
|
32655
32737
|
return get_processor_files(modelId);
|
|
32656
32738
|
}
|
|
32739
|
+
/**
|
|
32740
|
+
* Detects which quantization levels (dtypes) are available for a model
|
|
32741
|
+
* by checking which ONNX files exist on the hub or locally.
|
|
32742
|
+
*
|
|
32743
|
+
* A dtype is considered available if all required model session files
|
|
32744
|
+
* exist for that dtype.
|
|
32745
|
+
*
|
|
32746
|
+
* @param {string} modelId - The model id (e.g., "onnx-community/all-MiniLM-L6-v2-ONNX")
|
|
32747
|
+
* @param {Object} [options] - Optional parameters
|
|
32748
|
+
* @param {import('../../configs.js').PretrainedConfig} [options.config=null] - Pre-loaded config
|
|
32749
|
+
* @param {string} [options.model_file_name=null] - Override the model file name (excluding .onnx suffix)
|
|
32750
|
+
* @param {string} [options.revision='main'] - Model revision
|
|
32751
|
+
* @param {string} [options.cache_dir=null] - Custom cache directory
|
|
32752
|
+
* @param {boolean} [options.local_files_only=false] - Only check local files
|
|
32753
|
+
* @returns {Promise<string[]>} Array of available dtype strings (e.g., ['fp32', 'fp16', 'q4', 'q8'])
|
|
32754
|
+
*
|
|
32755
|
+
* @example
|
|
32756
|
+
* const dtypes = await ModelRegistry.get_available_dtypes('onnx-community/all-MiniLM-L6-v2-ONNX');
|
|
32757
|
+
* console.log(dtypes); // ['fp32', 'fp16', 'int8', 'uint8', 'q8', 'q4']
|
|
32758
|
+
*/
|
|
32759
|
+
static async get_available_dtypes(modelId, options = {}) {
|
|
32760
|
+
return get_available_dtypes(modelId, options);
|
|
32761
|
+
}
|
|
32657
32762
|
/**
|
|
32658
32763
|
* Quickly checks if a model is fully cached by verifying `config.json` is present,
|
|
32659
32764
|
* then confirming all required files are cached.
|
|
@@ -33100,8 +33205,11 @@ export {
|
|
|
33100
33205
|
Gemma2Model,
|
|
33101
33206
|
Gemma2PreTrainedModel,
|
|
33102
33207
|
Gemma3ForCausalLM,
|
|
33208
|
+
Gemma3ForConditionalGeneration,
|
|
33209
|
+
Gemma3ImageProcessor,
|
|
33103
33210
|
Gemma3Model,
|
|
33104
33211
|
Gemma3PreTrainedModel,
|
|
33212
|
+
Gemma3Processor,
|
|
33105
33213
|
Gemma3nAudioFeatureExtractor,
|
|
33106
33214
|
Gemma3nForCausalLM,
|
|
33107
33215
|
Gemma3nForConditionalGeneration,
|
|
@@ -33720,7 +33828,7 @@ export {
|
|
|
33720
33828
|
|
|
33721
33829
|
onnxruntime-web/dist/ort.webgpu.bundle.min.mjs:
|
|
33722
33830
|
(*!
|
|
33723
|
-
* ONNX Runtime Web v1.25.0-dev.
|
|
33831
|
+
* ONNX Runtime Web v1.25.0-dev.20260323-a99aad9d36
|
|
33724
33832
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
33725
33833
|
* Licensed under the MIT License.
|
|
33726
33834
|
*)
|