framefields 2.9.0 → 2.9.3
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/NOTICE.md +14 -0
- package/README.md +1 -5
- package/dist/audio/index.d.mts +5 -4
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-BfQg37MW.mjs → audio-B6RmYOPe.mjs} +4 -4
- package/dist/{audio-BfQg37MW.mjs.map → audio-B6RmYOPe.mjs.map} +1 -1
- package/dist/{audio-a0MFkK6J.mjs → audio-BlDbnteH.mjs} +1 -1
- package/dist/{audio-a0MFkK6J.mjs.map → audio-BlDbnteH.mjs.map} +1 -1
- package/dist/{audio-Ccpl9mjV.d.mts → audio-D6tBMbHh.d.mts} +4 -3
- package/dist/audio-D6tBMbHh.d.mts.map +1 -0
- package/dist/{check-result-C3jlgV2i.mjs → check-result-Bj7g62ka.mjs} +1 -1
- package/dist/{check-result-C3jlgV2i.mjs.map → check-result-Bj7g62ka.mjs.map} +1 -1
- package/dist/cli/check-worker.mjs +50 -50
- package/dist/cli.mjs +1 -1
- package/dist/components/index.d.mts +14 -11
- package/dist/components/index.mjs +47 -47
- package/dist/dist-BlulwErl.mjs +3 -0
- package/dist/{dist-BlIrsfcn.mjs → dist-ByxHoMQI.mjs} +1 -1
- package/dist/{dist-BlIrsfcn.mjs.map → dist-ByxHoMQI.mjs.map} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs → dist-Cn8bDsQF.mjs} +1 -1
- package/dist/{dist-Buaaj-Ul.mjs.map → dist-Cn8bDsQF.mjs.map} +1 -1
- package/dist/{dist-C1cCW7Bt.mjs → dist-D12-a3-x.mjs} +3 -3
- package/dist/{dist-C1cCW7Bt.mjs.map → dist-D12-a3-x.mjs.map} +1 -1
- package/dist/{dist-C8Xq3zgx.mjs → dist-DEUU6sNe.mjs} +4 -4
- package/dist/{dist-C8Xq3zgx.mjs.map → dist-DEUU6sNe.mjs.map} +1 -1
- package/dist/{dist-DVMepKaO.mjs → dist-DL1GwJvs.mjs} +2 -2
- package/dist/{dist-DVMepKaO.mjs.map → dist-DL1GwJvs.mjs.map} +1 -1
- package/dist/dist-Dq5TkNDI.mjs +1434 -0
- package/dist/dist-Dq5TkNDI.mjs.map +1 -0
- package/dist/effects/index.d.mts +6 -4
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-CemgqEPv.mjs → effects-CViUoQSV.mjs} +3 -3
- package/dist/{effects-CemgqEPv.mjs.map → effects-CViUoQSV.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-BW0pPcvJ.mjs → fonts-B0U2KO5I.mjs} +2 -2
- package/dist/{fonts-BW0pPcvJ.mjs.map → fonts-B0U2KO5I.mjs.map} +1 -1
- package/dist/{gpu-CMaa63nz.mjs → gpu-zFNrvhV9.mjs} +2 -2
- package/dist/{gpu-CMaa63nz.mjs.map → gpu-zFNrvhV9.mjs.map} +1 -1
- package/dist/index-9_4X2ro1.d.mts +2402 -0
- package/dist/index-9_4X2ro1.d.mts.map +1 -0
- package/dist/{index-CZjrnylh.d.mts → index-B9Lm1x8i.d.mts} +662 -640
- package/dist/index-B9Lm1x8i.d.mts.map +1 -0
- package/dist/{index-BfDFmIBE.d.mts → index-BuYtrhzL.d.mts} +1 -1
- package/dist/{index-BfDFmIBE.d.mts.map → index-BuYtrhzL.d.mts.map} +1 -1
- package/dist/{index-D5UDyVMb.d.mts → index-Bzo1uj8h.d.mts} +4 -2401
- package/dist/index-Bzo1uj8h.d.mts.map +1 -0
- package/dist/{index-Du5YgdzM.d.mts → index-C6GcuYVA.d.mts} +6 -1151
- package/dist/index-C6GcuYVA.d.mts.map +1 -0
- package/dist/{index-BIjMAW1h.d.mts → index-CgGM31I9.d.mts} +2 -2
- package/dist/{index-BIjMAW1h.d.mts.map → index-CgGM31I9.d.mts.map} +1 -1
- package/dist/index-DBhswLMO.d.mts +330 -0
- package/dist/index-DBhswLMO.d.mts.map +1 -0
- package/dist/{index-CJL0JAU8.d.mts → index-V0ZQ4JN6.d.mts} +2 -2
- package/dist/{index-CJL0JAU8.d.mts.map → index-V0ZQ4JN6.d.mts.map} +1 -1
- package/dist/{index-7Z9_a_iB.d.mts → index-f4IF1vRH.d.mts} +3 -3
- package/dist/{index-7Z9_a_iB.d.mts.map → index-f4IF1vRH.d.mts.map} +1 -1
- package/dist/index-svAgwTY_.d.mts +1163 -0
- package/dist/index-svAgwTY_.d.mts.map +1 -0
- package/dist/{index-CFoAmh7q.d.mts → index-w28KUM9A.d.mts} +3 -3
- package/dist/{index-CFoAmh7q.d.mts.map → index-w28KUM9A.d.mts.map} +1 -1
- package/dist/index.d.mts +15 -12
- package/dist/index.mjs +58 -57
- package/dist/preview/index.d.mts +4 -3
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-BQVgn6Ho.mjs → preview-ZKJ_zTmd.mjs} +3 -3
- package/dist/{preview-BQVgn6Ho.mjs.map → preview-ZKJ_zTmd.mjs.map} +1 -1
- package/dist/preview-engine/{chunk-GEUUXTDL.mjs → chunk-D73ZKPFN.mjs} +4 -4
- package/dist/preview-engine/{chunk-UQKPDGEH.mjs → chunk-EJJITH6U.mjs} +1 -1
- package/dist/preview-engine/{chunk-374QY63R.mjs → chunk-Q62GPWGD.mjs} +23 -23
- package/dist/preview-engine/chunk-XYGDTPO7.mjs +39 -0
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +1 -1
- package/dist/preview-engine/{renderers-O55BEDQZ.mjs → renderers-MDHPQY6D.mjs} +1 -1
- package/dist/preview-engine/src-4IUYUKIZ.mjs +8 -0
- package/dist/{program-CKpKkllV.mjs → program-xjIwjKb6.mjs} +4 -4
- package/dist/{program-CKpKkllV.mjs.map → program-xjIwjKb6.mjs.map} +1 -1
- package/dist/renderer/index.d.mts +3 -2
- package/dist/renderer/index.mjs +3 -3
- package/dist/renderer-129U3pc9.mjs +5 -0
- package/dist/renderer-2phFTFxQ.mjs +5 -0
- package/dist/{renderer-Bfk6A7UO.mjs → renderer-5qJPGvVL.mjs} +5 -5
- package/dist/{renderer-Bfk6A7UO.mjs.map → renderer-5qJPGvVL.mjs.map} +1 -1
- package/dist/renderer-9muKpDeE.mjs +5 -0
- package/dist/{renderer-B522Dkdk.mjs → renderer-AUK_ZS3p.mjs} +4 -4
- package/dist/{renderer-B522Dkdk.mjs.map → renderer-AUK_ZS3p.mjs.map} +1 -1
- package/dist/{renderer-DKgPVOLL.d.mts → renderer-B-inTgyb.d.mts} +2 -2
- package/dist/{renderer-DKgPVOLL.d.mts.map → renderer-B-inTgyb.d.mts.map} +1 -1
- package/dist/{renderer-BF0hx_iJ.mjs → renderer-B3IRvukr.mjs} +5 -5
- package/dist/{renderer-BF0hx_iJ.mjs.map → renderer-B3IRvukr.mjs.map} +1 -1
- package/dist/renderer-B5Dhv6j9.mjs +5 -0
- package/dist/{renderer-DO-KbpYZ.mjs → renderer-B6TjJi1g.mjs} +5 -5
- package/dist/{renderer-DO-KbpYZ.mjs.map → renderer-B6TjJi1g.mjs.map} +1 -1
- package/dist/{renderer-D61B9bXF.mjs → renderer-B78W9uad.mjs} +4 -4
- package/dist/{renderer-D61B9bXF.mjs.map → renderer-B78W9uad.mjs.map} +1 -1
- package/dist/{renderer-BPWDsufX.mjs → renderer-B7kOF_Az.mjs} +3 -3
- package/dist/{renderer-BPWDsufX.mjs.map → renderer-B7kOF_Az.mjs.map} +1 -1
- package/dist/renderer-BBUgCS3C.mjs +5 -0
- package/dist/{renderer-C7eFJf0_.mjs → renderer-BG6bkKtY.mjs} +5 -5
- package/dist/{renderer-C7eFJf0_.mjs.map → renderer-BG6bkKtY.mjs.map} +1 -1
- package/dist/{renderer-B39I6CQw.mjs → renderer-BJKzZwyn.mjs} +4 -4
- package/dist/{renderer-B39I6CQw.mjs.map → renderer-BJKzZwyn.mjs.map} +1 -1
- package/dist/{renderer-DqvoMLca.mjs → renderer-BJQt0RiZ.mjs} +5 -5
- package/dist/{renderer-DqvoMLca.mjs.map → renderer-BJQt0RiZ.mjs.map} +1 -1
- package/dist/renderer-BKXM28Mx.mjs +5 -0
- package/dist/renderer-BKqm6xdf.mjs +5 -0
- package/dist/{renderer-DiY70S8S.mjs → renderer-BMP_lYMk.mjs} +4 -4
- package/dist/{renderer-DiY70S8S.mjs.map → renderer-BMP_lYMk.mjs.map} +1 -1
- package/dist/renderer-BMfMMf0R.mjs +5 -0
- package/dist/{renderer-DkRSZg5g.mjs → renderer-BNbMi9CI.mjs} +5 -5
- package/dist/{renderer-DkRSZg5g.mjs.map → renderer-BNbMi9CI.mjs.map} +1 -1
- package/dist/{renderer-D7Al3_-5.mjs → renderer-BPYIqtNg.mjs} +5 -5
- package/dist/{renderer-D7Al3_-5.mjs.map → renderer-BPYIqtNg.mjs.map} +1 -1
- package/dist/renderer-BPsjEnnl.mjs +5 -0
- package/dist/{renderer-DDEkFbVI.mjs → renderer-BQOeeXTr.mjs} +5 -5
- package/dist/{renderer-DDEkFbVI.mjs.map → renderer-BQOeeXTr.mjs.map} +1 -1
- package/dist/{renderer-GBmWjBvy.mjs → renderer-BRWjLiHX.mjs} +3 -3
- package/dist/{renderer-GBmWjBvy.mjs.map → renderer-BRWjLiHX.mjs.map} +1 -1
- package/dist/{renderer-_iMAO698.mjs → renderer-BVql26Ay.mjs} +2 -2
- package/dist/{renderer-_iMAO698.mjs.map → renderer-BVql26Ay.mjs.map} +1 -1
- package/dist/{renderer-CHr7MiYW.mjs → renderer-BWMzjSgf.mjs} +5 -5
- package/dist/{renderer-CHr7MiYW.mjs.map → renderer-BWMzjSgf.mjs.map} +1 -1
- package/dist/{renderer-pHWEHDnM.mjs → renderer-BYqrtBvd.mjs} +5 -5
- package/dist/{renderer-pHWEHDnM.mjs.map → renderer-BYqrtBvd.mjs.map} +1 -1
- package/dist/{renderer-CwFqqpWY.mjs → renderer-BZmmekE8.mjs} +4 -4
- package/dist/{renderer-CwFqqpWY.mjs.map → renderer-BZmmekE8.mjs.map} +1 -1
- package/dist/{renderer-D47AEJE_.mjs → renderer-BcO7LUla.mjs} +3 -3
- package/dist/{renderer-D47AEJE_.mjs.map → renderer-BcO7LUla.mjs.map} +1 -1
- package/dist/{renderer-BlvGcyAN.mjs → renderer-BdbI_u9w.mjs} +3 -3
- package/dist/{renderer-BlvGcyAN.mjs.map → renderer-BdbI_u9w.mjs.map} +1 -1
- package/dist/{renderer-DsEyjwfT.mjs → renderer-Be5hfwSd.mjs} +74 -74
- package/dist/{renderer-DsEyjwfT.mjs.map → renderer-Be5hfwSd.mjs.map} +1 -1
- package/dist/{renderer-BAYTI6jj.mjs → renderer-BfbSvElt.mjs} +4 -4
- package/dist/{renderer-BAYTI6jj.mjs.map → renderer-BfbSvElt.mjs.map} +1 -1
- package/dist/{renderer-BpIF1QIE.mjs → renderer-BgDLCCuq.mjs} +5 -5
- package/dist/{renderer-BpIF1QIE.mjs.map → renderer-BgDLCCuq.mjs.map} +1 -1
- package/dist/renderer-Bofr6f88.mjs +6 -0
- package/dist/renderer-BqoGcujR.mjs +5 -0
- package/dist/renderer-BvuBt2aH.mjs +5 -0
- package/dist/renderer-BxTgXHu1.mjs +5 -0
- package/dist/renderer-Bz2Rrz60.mjs +5 -0
- package/dist/{renderer-g_vrrAQU.mjs → renderer-C06U4c9k.mjs} +3 -3
- package/dist/{renderer-g_vrrAQU.mjs.map → renderer-C06U4c9k.mjs.map} +1 -1
- package/dist/{renderer-D7r6onRT.mjs → renderer-C3Iev6zu.mjs} +4 -4
- package/dist/{renderer-D7r6onRT.mjs.map → renderer-C3Iev6zu.mjs.map} +1 -1
- package/dist/{renderer-CpUJBOfb.mjs → renderer-C3tVrzyT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs → renderer-C4yKI8MT.mjs} +3 -3
- package/dist/{renderer-SWr3vbrV.mjs.map → renderer-C4yKI8MT.mjs.map} +1 -1
- package/dist/{renderer-Xv6GfNUI.mjs → renderer-C6st34I6.mjs} +3 -3
- package/dist/{renderer-Xv6GfNUI.mjs.map → renderer-C6st34I6.mjs.map} +1 -1
- package/dist/{renderer-sCovEubT.mjs → renderer-C7MAqpIS.mjs} +4 -4
- package/dist/{renderer-sCovEubT.mjs.map → renderer-C7MAqpIS.mjs.map} +1 -1
- package/dist/renderer-CBjG8rjE.mjs +5 -0
- package/dist/{renderer-BAusZ6Vu.mjs → renderer-CCFHnafT.mjs} +4 -4
- package/dist/{renderer-BAusZ6Vu.mjs.map → renderer-CCFHnafT.mjs.map} +1 -1
- package/dist/{renderer-DVCJjVn7.mjs → renderer-CDVb4OfJ.mjs} +5 -5
- package/dist/{renderer-DVCJjVn7.mjs.map → renderer-CDVb4OfJ.mjs.map} +1 -1
- package/dist/{renderer-DpruWmZU.mjs → renderer-CEfVvcw-.mjs} +4 -4
- package/dist/{renderer-DpruWmZU.mjs.map → renderer-CEfVvcw-.mjs.map} +1 -1
- package/dist/{renderer-DbRZe0Re.mjs → renderer-CIB5L_C4.mjs} +5 -5
- package/dist/{renderer-DbRZe0Re.mjs.map → renderer-CIB5L_C4.mjs.map} +1 -1
- package/dist/{renderer-ktWXVYka.mjs → renderer-CPTXJs0n.mjs} +6 -6
- package/dist/{renderer-ktWXVYka.mjs.map → renderer-CPTXJs0n.mjs.map} +1 -1
- package/dist/renderer-CS2zyPyZ.mjs +5 -0
- package/dist/{renderer-CcvvoKiZ.mjs → renderer-CUBDxuxh.mjs} +5 -5
- package/dist/{renderer-CcvvoKiZ.mjs.map → renderer-CUBDxuxh.mjs.map} +1 -1
- package/dist/renderer-CWLF6cAz.mjs +1008 -0
- package/dist/renderer-CWLF6cAz.mjs.map +1 -0
- package/dist/{renderer-EaLUCobW.mjs → renderer-CXLugAe8.mjs} +4 -4
- package/dist/{renderer-EaLUCobW.mjs.map → renderer-CXLugAe8.mjs.map} +1 -1
- package/dist/renderer-CXnbl_jR.mjs +5 -0
- package/dist/{renderer-C7L8Ceqr.mjs → renderer-CYX9vKZ-.mjs} +4 -4
- package/dist/{renderer-C7L8Ceqr.mjs.map → renderer-CYX9vKZ-.mjs.map} +1 -1
- package/dist/{renderer-8QIwXh7O.mjs → renderer-C_2UDMEG.mjs} +6 -6
- package/dist/{renderer-8QIwXh7O.mjs.map → renderer-C_2UDMEG.mjs.map} +1 -1
- package/dist/renderer-CaF9vod_.mjs +5 -0
- package/dist/renderer-CbSBH3lp.mjs +5 -0
- package/dist/{renderer-B2jjxsjO.mjs → renderer-CbhnJi_8.mjs} +4 -4
- package/dist/{renderer-B2jjxsjO.mjs.map → renderer-CbhnJi_8.mjs.map} +1 -1
- package/dist/{renderer-BdyopiLC.mjs → renderer-CcJyD9Q5.mjs} +4 -4
- package/dist/{renderer-BdyopiLC.mjs.map → renderer-CcJyD9Q5.mjs.map} +1 -1
- package/dist/renderer-CdjuGRbO.mjs +5 -0
- package/dist/{renderer-DF-yvIrV.mjs → renderer-Cl8r1LJe.mjs} +4 -4
- package/dist/{renderer-DF-yvIrV.mjs.map → renderer-Cl8r1LJe.mjs.map} +1 -1
- package/dist/renderer-CoLbxC13.mjs +5 -0
- package/dist/{renderer-BgO6BA_z.mjs → renderer-CpedZNEG.mjs} +3 -3
- package/dist/{renderer-BgO6BA_z.mjs.map → renderer-CpedZNEG.mjs.map} +1 -1
- package/dist/renderer-Cr9G0dXB.mjs +5 -0
- package/dist/{renderer-bAKUeHF3.mjs → renderer-CwVbHki6.mjs} +5 -5
- package/dist/{renderer-bAKUeHF3.mjs.map → renderer-CwVbHki6.mjs.map} +1 -1
- package/dist/{renderer-DTqDy2m9.mjs → renderer-CyCtm0UV.mjs} +3 -3
- package/dist/{renderer-DTqDy2m9.mjs.map → renderer-CyCtm0UV.mjs.map} +1 -1
- package/dist/{renderer-CYC32bDW.mjs → renderer-D1VsqFf4.mjs} +5 -5
- package/dist/{renderer-CYC32bDW.mjs.map → renderer-D1VsqFf4.mjs.map} +1 -1
- package/dist/{renderer-CCycwCEB.mjs → renderer-D2TTDcgh.mjs} +3 -3
- package/dist/{renderer-CCycwCEB.mjs.map → renderer-D2TTDcgh.mjs.map} +1 -1
- package/dist/renderer-D63l6_UC.mjs +5 -0
- package/dist/renderer-DCJqnzER.mjs +5 -0
- package/dist/{renderer-cod5Ona9.mjs → renderer-DEQeONTd.mjs} +3 -3
- package/dist/renderer-DFBOR5J3.mjs +5 -0
- package/dist/renderer-DGAZSzw6.mjs +5 -0
- package/dist/{renderer-oKRF4A0M.mjs → renderer-DH7l5WFr.mjs} +4 -4
- package/dist/{renderer-oKRF4A0M.mjs.map → renderer-DH7l5WFr.mjs.map} +1 -1
- package/dist/{renderer-DNQvOrkY.mjs → renderer-DIEmK57T.mjs} +5 -5
- package/dist/{renderer-DNQvOrkY.mjs.map → renderer-DIEmK57T.mjs.map} +1 -1
- package/dist/{renderer-DEmYyaqj.mjs → renderer-DIqkhsLI.mjs} +4 -4
- package/dist/{renderer-DEmYyaqj.mjs.map → renderer-DIqkhsLI.mjs.map} +1 -1
- package/dist/{renderer-DX41niRU.mjs → renderer-DOKHd37M.mjs} +4 -4
- package/dist/{renderer-DX41niRU.mjs.map → renderer-DOKHd37M.mjs.map} +1 -1
- package/dist/renderer-DPLGk1Qk.mjs +5 -0
- package/dist/renderer-DTCUzByS.mjs +5 -0
- package/dist/{renderer-BXJXziIt.mjs → renderer-DW7hbluw.mjs} +3 -3
- package/dist/{renderer-BXJXziIt.mjs.map → renderer-DW7hbluw.mjs.map} +1 -1
- package/dist/{renderer--fkmiVjl.mjs → renderer-Dat8opUZ.mjs} +4 -4
- package/dist/{renderer--fkmiVjl.mjs.map → renderer-Dat8opUZ.mjs.map} +1 -1
- package/dist/renderer-DdGahYi1.mjs +5 -0
- package/dist/{renderer-DmkWrWAk.mjs → renderer-Dee8ksIV.mjs} +3 -3
- package/dist/{renderer-DmkWrWAk.mjs.map → renderer-Dee8ksIV.mjs.map} +1 -1
- package/dist/renderer-DhL4nNPk.mjs +5 -0
- package/dist/renderer-DkyTbiVz.mjs +3 -0
- package/dist/renderer-DnAZweRX.mjs +5 -0
- package/dist/{renderer-BX7jS14r.d.mts → renderer-DoPEPlbG.d.mts} +3 -2
- package/dist/{renderer-BX7jS14r.d.mts.map → renderer-DoPEPlbG.d.mts.map} +1 -1
- package/dist/renderer-DpisVnT2.mjs +5 -0
- package/dist/{renderer-mNSyac1V.mjs → renderer-DrWeb39d.mjs} +1 -1
- package/dist/{renderer-mNSyac1V.mjs.map → renderer-DrWeb39d.mjs.map} +1 -1
- package/dist/renderer-Ds7pAKnE.mjs +3 -0
- package/dist/{renderer-CiQhD8Gg.mjs → renderer-Dss7T71q.mjs} +5 -5
- package/dist/{renderer-CiQhD8Gg.mjs.map → renderer-Dss7T71q.mjs.map} +1 -1
- package/dist/{renderer-C41U1tK6.mjs → renderer-Du-GnKLb.mjs} +9 -9
- package/dist/{renderer-C41U1tK6.mjs.map → renderer-Du-GnKLb.mjs.map} +1 -1
- package/dist/renderer-DxZD5B54.mjs +5 -0
- package/dist/{renderer-WCZu2Rf5.mjs → renderer-ESkPj6pk.mjs} +4 -4
- package/dist/{renderer-WCZu2Rf5.mjs.map → renderer-ESkPj6pk.mjs.map} +1 -1
- package/dist/{renderer-DMvmf3T2.mjs → renderer-F1D9ZJ8I.mjs} +3 -3
- package/dist/{renderer-BlPqTEii.mjs → renderer-HnSiwSW8.mjs} +4 -4
- package/dist/{renderer-BlPqTEii.mjs.map → renderer-HnSiwSW8.mjs.map} +1 -1
- package/dist/{renderer-1r-Uq-Ae.mjs → renderer-IQ97z2rw.mjs} +3 -3
- package/dist/{renderer-1r-Uq-Ae.mjs.map → renderer-IQ97z2rw.mjs.map} +1 -1
- package/dist/{renderer-DFzI3yI_.mjs → renderer-NTCk1Srf.mjs} +3 -3
- package/dist/{renderer-DFzI3yI_.mjs.map → renderer-NTCk1Srf.mjs.map} +1 -1
- package/dist/{renderer-D8bBHrWC.mjs → renderer-OsQRvOle.mjs} +5 -5
- package/dist/{renderer-D8bBHrWC.mjs.map → renderer-OsQRvOle.mjs.map} +1 -1
- package/dist/renderer-PMHOnbnA.mjs +5 -0
- package/dist/renderer-STufNpMx.mjs +5 -0
- package/dist/renderer-SdrgfCxH.mjs +5 -0
- package/dist/{renderer-Lth37j17.mjs → renderer-US4GsamT.mjs} +3 -3
- package/dist/{renderer-zXPVLRlD.mjs → renderer-VhkubIx_.mjs} +5 -5
- package/dist/{renderer-zXPVLRlD.mjs.map → renderer-VhkubIx_.mjs.map} +1 -1
- package/dist/{renderer-DIw3UtEU.mjs → renderer-bbaMOD4I.mjs} +5 -5
- package/dist/{renderer-DIw3UtEU.mjs.map → renderer-bbaMOD4I.mjs.map} +1 -1
- package/dist/{renderer-hSCfnvaK.mjs → renderer-eT7Gp7FS.mjs} +5 -5
- package/dist/{renderer-hSCfnvaK.mjs.map → renderer-eT7Gp7FS.mjs.map} +1 -1
- package/dist/{renderer-CQvmbRQ5.mjs → renderer-g7fF2AYk.mjs} +5 -5
- package/dist/{renderer-CQvmbRQ5.mjs.map → renderer-g7fF2AYk.mjs.map} +1 -1
- package/dist/{renderer-B-ur0Ej8.mjs → renderer-mLlgfM7X.mjs} +4 -4
- package/dist/{renderer-B-ur0Ej8.mjs.map → renderer-mLlgfM7X.mjs.map} +1 -1
- package/dist/{renderer-SSBL4M1o.mjs → renderer-mQt-y49D.mjs} +5 -5
- package/dist/{renderer-SSBL4M1o.mjs.map → renderer-mQt-y49D.mjs.map} +1 -1
- package/dist/{renderer-BIGFP1cF.mjs → renderer-q4zMFfnY.mjs} +2 -2
- package/dist/{renderer-BIGFP1cF.mjs.map → renderer-q4zMFfnY.mjs.map} +1 -1
- package/dist/{renderer-DXEWbnRF.mjs → renderer-sPI7aY6c.mjs} +4 -4
- package/dist/{renderer-DXEWbnRF.mjs.map → renderer-sPI7aY6c.mjs.map} +1 -1
- package/dist/{renderer-sYSkIUfo.mjs → renderer-xDV2cCkX.mjs} +5 -5
- package/dist/{renderer-sYSkIUfo.mjs.map → renderer-xDV2cCkX.mjs.map} +1 -1
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs → renderers-CP8CFWDs-BH1gUTYa.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DH2oktaC.mjs.map → renderers-CP8CFWDs-BH1gUTYa.mjs.map} +1 -1
- package/dist/sam/index.d.mts +4 -0
- package/dist/sam/index.mjs +3 -0
- package/dist/signals/index.d.mts +7 -6
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-CXwgAUp-.mjs → signals-gOd0Ui9B.mjs} +4 -4
- package/dist/{signals-CXwgAUp-.mjs.map → signals-gOd0Ui9B.mjs.map} +1 -1
- package/dist/{src-CK5rGVbh.mjs → src-BU1VOWSk.mjs} +81 -39
- package/dist/src-BU1VOWSk.mjs.map +1 -0
- package/dist/{renderer-B0piZg9r.mjs → src-Bnr8DUC--DzkRGA62.mjs} +12 -993
- package/dist/src-Bnr8DUC--DzkRGA62.mjs.map +1 -0
- package/package.json +69 -69
- package/dist/audio-Ccpl9mjV.d.mts.map +0 -1
- package/dist/index-CZjrnylh.d.mts.map +0 -1
- package/dist/index-D5UDyVMb.d.mts.map +0 -1
- package/dist/index-Du5YgdzM.d.mts.map +0 -1
- package/dist/preview-engine/chunk-CCB3VTY2.mjs +0 -39
- package/dist/preview-engine/src-NGVAJYHC.mjs +0 -8
- package/dist/renderer--Ac-dg4A.mjs +0 -5
- package/dist/renderer--N7TMqzU.mjs +0 -5
- package/dist/renderer-2ecmdOae.mjs +0 -5
- package/dist/renderer-B0piZg9r.mjs.map +0 -1
- package/dist/renderer-B5RJp5g-.mjs +0 -5
- package/dist/renderer-B7xyT1Vb.mjs +0 -5
- package/dist/renderer-BBeArN_x.mjs +0 -5
- package/dist/renderer-BCAZDu-r.mjs +0 -5
- package/dist/renderer-BJnhik7Y.mjs +0 -5
- package/dist/renderer-BxRW8MZO.mjs +0 -5
- package/dist/renderer-C-lfsEAN.mjs +0 -5
- package/dist/renderer-C6nOFN4-.mjs +0 -5
- package/dist/renderer-C84TSQmS.mjs +0 -5
- package/dist/renderer-C8_6YofT.mjs +0 -5
- package/dist/renderer-COR66Sby.mjs +0 -3
- package/dist/renderer-COb3tOPG.mjs +0 -5
- package/dist/renderer-CSCIzaLy.mjs +0 -5
- package/dist/renderer-CmI4c8MS.mjs +0 -5
- package/dist/renderer-CqVltdX9.mjs +0 -5
- package/dist/renderer-D-FpMzLY.mjs +0 -5
- package/dist/renderer-D-Oyn9mG.mjs +0 -5
- package/dist/renderer-D2QrkA8_.mjs +0 -5
- package/dist/renderer-D64r4iN-.mjs +0 -5
- package/dist/renderer-DCq6YkgP.mjs +0 -5
- package/dist/renderer-DDHG3GdR.mjs +0 -5
- package/dist/renderer-DMdNfcud.mjs +0 -6
- package/dist/renderer-DZQXZ4lK.mjs +0 -5
- package/dist/renderer-DczJJLA1.mjs +0 -5
- package/dist/renderer-DfqJj9oe.mjs +0 -5
- package/dist/renderer-DgO9ihVJ.mjs +0 -5
- package/dist/renderer-DhgnQZYb.mjs +0 -5
- package/dist/renderer-DjxKjHMf.mjs +0 -5
- package/dist/renderer-DnRDW2Oz.mjs +0 -3
- package/dist/renderer-DqLA5cdR.mjs +0 -5
- package/dist/renderer-Dudp6ZlH.mjs +0 -5
- package/dist/renderer-_jC5KIT1.mjs +0 -5
- package/dist/renderer-cTgAuVmJ.mjs +0 -5
- package/dist/renderer-nVKDvDLO.mjs +0 -5
- package/dist/renderer-pZ6_pUo1.mjs +0 -5
- package/dist/src-CK5rGVbh.mjs.map +0 -1
- /package/dist/{chunk-BcJoO4Nm.mjs → chunk-D8S17ehY.mjs} +0 -0
- /package/dist/{renderer-COqFNSfV.mjs → renderer-Cputd36d.mjs} +0 -0
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import{W as be,Z as ye,ba as xe,ea as ve,fa as Te,ga as Me,ha as Ue,ka as we}from"./chunk-GEUUXTDL.mjs";import{q as ke}from"./chunk-BXPM5SJ3.mjs";import{g as he}from"./chunk-KOVN277Z.mjs";import{g as S}from"./chunk-Y4NIR77Z.mjs";S();S();S();var ne=new Uint8Array(0),Pe=new Uint32Array(0);function Ce(t,e,n){ne.length<t.length&&(ne=new Uint8Array(t.length),Pe=new Uint32Array(t.length));let r=ne,a=Pe,i=0,s=0;for(let u=1;u<=t.length;u++)(u===t.length||t[u]!==t[s])&&(r[i]=t[s],a[i]=u-s,i++,s=u);return{width:e,height:n,values:r.slice(0,i),lengths:a.slice(0,i)}}function Ve(t){let e=new Uint8Array(t.width*t.height),n=0;for(let r=0;r<t.values.length;r++){let a=n+t.lengths[r];t.values[r]!==0&&e.fill(t.values[r],n,a),n=a}return e}function Re(t){return t.values.byteLength+t.lengths.byteLength}function ie(t){let{mask:e,...n}=t;return{...n,rle:Ce(e,t.width,t.height)}}function oe(t){let{rle:e,...n}=t;return{...n,mask:Ve(e)}}function re(t){let e=512+t.detections.length*128+t.objects.length*256;for(let n of t.masks??[])e+=Re(n.rle);return t.subject&&(e+=Re(t.subject.mask.rle)),e}var L=class{constructor(e=256*1024*1024){this.maxBytes=e}maxBytes;entries=new Map;bytes=0;get(e,n){let r=`${e}#${n}`,a=this.entries.get(r);return a&&(this.entries.delete(r),this.entries.set(r,a)),a}set(e,n,r){let a=`${e}#${n}`,i=this.entries.get(a);i&&(this.bytes-=re(i),this.entries.delete(a)),this.entries.set(a,r),this.bytes+=re(r);for(let[s,u]of this.entries){if(this.bytes<=this.maxBytes)break;this.entries.delete(s),this.bytes-=re(u)}}clear(){this.entries.clear(),this.bytes=0}get size(){return this.entries.size}};S();var Be=`
|
|
2
|
-
struct Params {
|
|
3
|
-
mode: u32, // 0 matte, 1 mask, 2 crop
|
|
4
|
-
_pad: u32,
|
|
5
|
-
cropMin: vec2<f32>, // uv of the subject bounds (crop)
|
|
6
|
-
cropMax: vec2<f32>,
|
|
7
|
-
_pad2: vec2<f32>,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
@group(0) @binding(0) var<uniform> params: Params;
|
|
11
|
-
@group(0) @binding(1) var picture: texture_2d<f32>;
|
|
12
|
-
@group(0) @binding(2) var mask: texture_2d<f32>;
|
|
13
|
-
@group(0) @binding(3) var samp: sampler;
|
|
14
|
-
|
|
15
|
-
struct VSOut {
|
|
16
|
-
@builtin(position) pos: vec4<f32>,
|
|
17
|
-
@location(0) uv: vec2<f32>,
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
@vertex fn vs(@builtin(vertex_index) i: u32) -> VSOut {
|
|
21
|
-
var p = array<vec2<f32>, 3>(vec2(-1.0, -1.0), vec2(3.0, -1.0), vec2(-1.0, 3.0));
|
|
22
|
-
var out: VSOut;
|
|
23
|
-
out.pos = vec4(p[i], 0.0, 1.0);
|
|
24
|
-
out.uv = vec2(p[i].x * 0.5 + 0.5, 0.5 - p[i].y * 0.5);
|
|
25
|
-
return out;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@fragment fn fs(in: VSOut) -> @location(0) vec4<f32> {
|
|
29
|
-
var uv = in.uv;
|
|
30
|
-
if (params.mode == 2u) {
|
|
31
|
-
uv = mix(params.cropMin, params.cropMax, uv);
|
|
32
|
-
}
|
|
33
|
-
let m = textureSampleLevel(mask, samp, uv, 0.0).r;
|
|
34
|
-
if (params.mode == 1u) {
|
|
35
|
-
return vec4(m, m, m, 1.0);
|
|
36
|
-
}
|
|
37
|
-
return textureSampleLevel(picture, samp, uv, 0.0) * m;
|
|
38
|
-
}
|
|
39
|
-
`,$=class{constructor(e,n){this.device=e;let r=e.createShaderModule({label:"vision_matte_composite",code:Be});this.pipeline=e.createRenderPipeline({label:"vision_matte_composite",layout:"auto",vertex:{module:r,entryPoint:"vs"},fragment:{module:r,entryPoint:"fs",targets:[{format:n}]},primitive:{topology:"triangle-list"}}),this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"})}device;pipeline;sampler;uniforms=[];uniformIndex=0;masks=new Map;uploadMask(e,n,r,a){let i=this.masks.get(e);(!i||i.width!==r||i.height!==a)&&(i?.destroy(),i=this.device.createTexture({label:`vision_mask_${e}`,size:[r,a],format:"r8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST}),this.masks.set(e,i));let s=Math.ceil(r/256)*256,u=n;if(s!==r){u=new Uint8Array(s*a);for(let f=0;f<a;f++)u.set(n.subarray(f*r,(f+1)*r),f*s)}return this.device.queue.writeTexture({texture:i},u.buffer,{offset:u.byteOffset,bytesPerRow:s,rowsPerImage:a},{width:r,height:a}),i}draw(e,n,r,a,i,s){let u=a.width,f=a.height,c=new Float32Array(8),g=new Uint32Array(c.buffer);g[0]=i==="matte"?0:i==="mask"?1:2,i==="crop"&&s?(c[2]=s.x0/u,c[3]=s.y0/f,c[4]=(s.x1+1)/u,c[5]=(s.y1+1)/f):(c[2]=0,c[3]=0,c[4]=1,c[5]=1,i==="crop"&&(g[0]=0)),this.uniformIndex>=this.uniforms.length&&this.uniforms.push(this.device.createBuffer({size:c.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}));let o=this.uniforms[this.uniformIndex];this.uniformIndex=(this.uniformIndex+1)%16,this.device.queue.writeBuffer(o,0,c);let p=this.device.createBindGroup({layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:o}},{binding:1,resource:r.createView()},{binding:2,resource:a.createView()},{binding:3,resource:this.sampler}]}),y=e.beginRenderPass({label:"vision_matte_composite",colorAttachments:[{view:n,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});y.setPipeline(this.pipeline),y.setBindGroup(0,p),y.draw(3),y.end()}};var F=new Map,Fe=4,ae=null,z=null,Ge=null,Ie=new L,je=new Map,De=new Map,Ee=new Map,Ne=new Map,Se=new Map,ce=new WeakMap,_=new Map,D=new Map,Ye=3;function ue(t,e,n,r,a,i){let s=t.get(n);return(!s||s.width!==r.width||s.height!==r.height||s.format!==r.format)&&(s?.destroy(),s=e.createTexture({size:[r.width,r.height],format:r.format,usage:a,label:i}),t.set(n,s)),s}var Xe=(t,e,n)=>ue(De,t,e,n,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING,"vision_held_frame"),Le=(t,e,n)=>ue(Ee,t,e,n,GPUTextureUsage.COPY_DST|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_analysis_frame"),$e=(t,e,n)=>ue(Ne,t,e,n,GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,"vision_matte");function ze(t,e,n,r,a){let i=e;return JSON.stringify([t,i?.operation?.id??i?.id??null,r,a,n.mode??"passthrough",n.variant,n.confidence,n.classes,n.maskThreshold,n.featherRadius,n.matteSource,n.keyBackground===!0,n.maxMissedFrames])}function Ke(t,e,n){let r=t.backgroundKeyThreshold;return typeof r=="number"?r:typeof r?.get=="function"?Number(r.get({frame:e,fps:n})):typeof r?._value=="number"?Number(r._value):70}function We(t,e,n){if(t)return D.set(e,{mask:t,frame:n}),t;let r=D.get(e);if(r&&n-r.frame<=Ye)return r.mask}function _e(t){let e={variant:t.variant,modelsDir:t.modelsDir,baseUrl:t.baseUrl},n=JSON.stringify(e),r=F.get(n);if(!r){if(F.size>=Fe){let[u,f]=F.entries().next().value;f.runner.close(),F.delete(u)}r={runner:ve.create(e),derived:new Map},F.set(n,r)}let a={confidence:t.confidence,classes:t.classes,maskThreshold:t.maskThreshold,featherRadius:t.featherRadius},i=JSON.stringify(a),s=r.derived.get(i);return s||(s=r.runner.derive(a),r.derived.set(i,s)),s}function qe(t,e){let n=Se.get(t);return n||(n=new be({maxMissedFrames:e.maxMissedFrames??15}),Se.set(t,n)),n}function He(t,e,n){return e<=0||n<=0?t:{people:t.people.map(r=>({...r,keypoints:r.keypoints.map(a=>({x:a.x/e,y:a.y/n,visibility:a.visibility}))}))}}function Je(t,e){if(!e)return!0;let n=t.toLowerCase();return e.some(r=>r.toLowerCase()===n)}function Qe(t,e){return t.map(n=>{let{cx:r,cy:a}=nt(n),i=null;for(let s of e){let u=s.centerX-r,f=s.centerY-a,c=u*u+f*f;(!i||c<i.distance)&&(i={trackId:s.trackId,distance:c})}return i?{...n,trackId:i.trackId}:n})}function Ze(t,e,n){let r=e*n,a=new Uint8Array(r),i=new Int32Array(r),s=0,u=c=>{a[c]||t[c]>0||(a[c]=1,i[s++]=c)};for(let c=0;c<e;c++)u(c),u((n-1)*e+c);for(let c=0;c<n;c++)u(c*e),u(c*e+e-1);let f=0;for(;f<s;){let c=i[f++],g=c%e,o=c+1;g+1<e&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c-1,g>0&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c+e,o<r&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o),o=c-e,o>=0&&!a[o]&&t[o]===0&&(a[o]=1,i[s++]=o)}for(let c=0;c<r;c++)t[c]===0&&a[c]===0&&(t[c]=255)}function et(t,e,n,r=2){if(r<=0)return t;let a=new Uint8Array(e*n),i=new Uint8Array(e*n),s=2*r+1;for(let f=0;f<n;f++){let c=f*e,g=0;for(let o=-r;o<=r;o++){let p=Math.max(0,Math.min(e-1,o));g+=t[c+p]}for(let o=0;o<e;o++){a[c+o]=Math.round(g/s);let p=Math.max(0,o-r),y=Math.min(e-1,o+r+1);g+=t[c+y]-t[c+p]}}let u=new Float64Array(e);for(let f=-r;f<=r;f++){let c=Math.max(0,Math.min(n-1,f))*e;for(let g=0;g<e;g++)u[g]+=a[c+g]}for(let f=0;f<n;f++){let c=f*e,g=Math.max(0,f-r)*e,o=Math.min(n-1,f+r+1)*e;for(let p=0;p<e;p++)i[c+p]=Math.round(u[p]/s),u[p]+=a[o+p]-a[g+p]}return i}function tt(t,e,n,r,a,i){let s=0,u=0,f=0,c=0,g=(d,U)=>{let l=U*e+d;if(t[l])return;let V=l*4;s+=r[V],u+=r[V+1],f+=r[V+2],c++};for(let d=0;d<e;d+=4)g(d,0),g(d,n-1);for(let d=0;d<n;d+=4)g(0,d),g(e-1,d);if(c===0)return t;s/=c,u/=c,f/=c;let o=e*n,p=new Uint8Array(o);for(let d=0,U=0;d<o;d++,U+=4)p[d]=Math.max(Math.abs(r[U]-s),Math.abs(r[U+1]-u),Math.abs(r[U+2]-f))>a?1:0;let y=new Int32Array(o),R=0;for(let d=0;d<o;d++)t[d]>0&&(p[d]&&(t[d]=255),y[R++]=d);let v=0;for(;v<R;){let d=y[v++],U=d%e,l=d+1;U+1<e&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d-1,U>0&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d+e,l<o&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l),l=d-e,l>=0&&t[l]!==255&&p[l]&&(t[l]=255,y[R++]=l)}Ze(t,e,n);let O=i!==void 0&&i>0?Math.max(1,Math.min(8,Math.round(i*50))):2;return et(t,e,n,O)}function nt(t){let{mask:e,width:n,height:r}=t,a=0,i=0,s=0;for(let u=0;u<r;u++){let f=u*n;for(let c=0;c<n;c++)e[f+c]>0&&(a+=c,i+=u,s++)}return s===0?{cx:0,cy:0}:{cx:a/s,cy:i/s}}var Oe=async t=>{let{ctx:e,encoder:n,pass:r,targetView:a,targetWidth:i,targetHeight:s,props:u,drawChild:f}=t,{virtualMedia:c}=u;ke(e.device);let g=c?.operation;if(g?.op!=="Vision")return;let o=g;r.end();let p=c?.children?.[0];if(!p)return;let y=o.effect,R=y!=null,v=c?.id??g?.id??`${i}x${s}_${o.mode}_${o.variant}_${o.keyBackground}_${o.backgroundKeyThreshold}`,O=`vision-${v}`,d=R?ce.get(y):_.get(O);d&&(d.width!==i||d.height!==s)&&(d.destroy(),d=void 0,R?ce.delete(y):_.delete(O));let U=d!==void 0;if(!d&&(d=e.device.createTexture({size:[i,s],format:e.renderer.format,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC,label:"vision_child_persistent"}),R?ce.set(y,d):_.set(O,d),_.size>4)){let m=_.keys().next().value;m&&m!==O&&(_.get(m)?.destroy(),_.delete(m))}let l=u.frame??0,V=u.compositionFrame??l,E=u.fps??24,w=o.mode??"passthrough",I=w==="mask"||w==="matte"||w==="crop",M=o.visionBundle??c.visionBundle,K=o.enableDetection!==!1||w==="boxes"||w==="tracking",N=o.enableSegmentation===!0||I&&o.matteSource!=="selfie",W=o.enableMatte===!0||I&&o.matteSource==="selfie",q=o.enablePose===!0||w==="skeleton",de=I&&!M&&!q&&!W&&o.keyBackground!==!0?rt(y,u.sourceTimeSec===void 0?l:u.sourceTimeSec*E,E,i,s):void 0,Y=de!==void 0,H=!Y&&!W&&!q&&(K||N),le=H?ze(v,p,o,i,s):"",J=m=>o.keyBackground===!0?Ke(o,V-(l-m),E):void 0,fe=m=>{if(!H||m===void 0)return;let h=Ie.get(le,m);if(!(!h||h.keyThreshold!==J(m))&&!(N&&M&&!h.masks))return h},B=U?je.get(v):void 0,P=fe(l),me=Y||P!==void 0;P||(P=fe(B));let Q;I&&U&&!me&&(Q=Xe(e.device,v,d),n.copyTextureToTexture({texture:d},{texture:Q},[i,s,1]));let X,Z=null;if(U&&!P&&!Y){let m=Le(e.device,v,d),h=e.device.createCommandEncoder({label:"vision_analysis_copy"});h.copyTextureToTexture({texture:d},{texture:m},[i,s,1]),e.device.queue.submit([h.finish()]),X={texture:m,device:e.device,width:i,height:s},I&&o.keyBackground===!0&&(Z=(await ye(X)).data)}let ge=d.createView();e.renderer.beginFrame(n,ge,{r:0,g:0,b:0,a:0},i,s,"clear").end(),await f(p,{...u},ge,d,i,s),je.set(v,l);let j=[],A=[],ee,te,x;if(Y)x=de??void 0,x?D.set(v,{mask:x,frame:l}):D.delete(v);else if(P)j=P.objects,K&&M?.setObjectResult(l,{objects:P.objects,rawDetections:P.detections}),N&&M&&P.masks&&(A=P.masks.map(oe),M.setMaskResult(l,A)),P.subject&&(x=oe(P.subject.mask),D.set(v,{mask:x,frame:l}));else if(X){let m=_e(o),h=X,T=[];if(K){T=await m.detect(h);let k=qe(v,o);l===0&&k.reset(),j=k.update(T,l,E),M?.setObjectResult(l,{objects:j,rawDetections:T})}let G=[];if(N){let k=I&&o.matteSource!=="selfie"&&o.classes!==void 0,C=await(k?_e({...o,classes:void 0}):m).segment(h);A=Qe(k?C.masks.filter(Ae=>Je(Ae.category,o.classes)):C.masks,j),G=k?C.masks:A,M?.setMaskResult(l,A)}if(W&&(ee=await m.matte(h),M?.setMatteResult(l,ee)),q){let k=await m.pose(h),b=He(k,h.width,h.height);te={people:we(b.people,j)},M?.setPoseResult(l,te)}if(I){x=We(o.matteSource==="selfie"?st(ee):Ue(G.length>0?G:M?.getMaskResult(l)??[],{classes:o.classes}),v,l);let k=J(B??l);x&&k!==void 0&&Z&&(x={...x,mask:tt(x.mask,x.width,x.height,Z,k,o.featherRadius)})}H&&B!==void 0&&Ie.set(le,B,{detections:T,objects:j,masks:M?A.map(ie):null,subject:x?{mask:ie(x)}:null,keyThreshold:J(B)})}if(I){let m=me?d:Q;if(!x||!m){e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear").end();return}(!z||Ge!==e.renderer.format)&&(z=new $(e.device,e.renderer.format),Ge=e.renderer.format);let h=z.uploadMask(v,x.mask,x.width,x.height),T=$e(e.device,v,d);z.draw(n,T.createView(),m,h,w,w==="crop"?Me(x)??void 0:void 0),M?.setStencilTexture(T);let G=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(G,T,{x:0,y:0,width:i,height:s}),G.end();return}if(w==="skeleton"){ae||(ae=new xe(e.device));let h=(M?.getPoseResult(l)??te)?.people[0];if(h&&h.keypoints.length>0){let T=ae.renderToTexture(h.keypoints,{width:i,height:s}),G=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(G,T,{x:0,y:0,width:i,height:s}),G.end();return}}if(w==="boxes"||w==="tracking"){let m=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(m,d,{x:0,y:0,width:i,height:s});let h=j.length>0?j:M?.getObjectResult(l).objects??[];if(h.length>0){let T="#38bdf8";for(let k of h){if(!k.active)continue;let b=k.boundingBox;e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:b.width,height:2},T),e.renderer.drawRect(m,{x:b.originX,y:b.originY+b.height-2,width:b.width,height:2},T),e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:2,height:b.height},T),e.renderer.drawRect(m,{x:b.originX+b.width-2,y:b.originY,width:2,height:b.height},T);let C=Math.min(16,b.width/4,b.height/4);e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:C,height:4},"#ffffff"),e.renderer.drawRect(m,{x:b.originX,y:b.originY,width:4,height:C},"#ffffff"),w==="tracking"&&e.renderer.drawRect(m,{x:k.centerX-3,y:k.centerY-3,width:6,height:6},"#ef4444",3)}}m.end();return}let pe=e.renderer.beginFrame(n,a,{r:0,g:0,b:0,a:0},i,s,"clear");e.renderer.drawTexture(pe,d,{x:0,y:0,width:i,height:s}),pe.end()};function rt(t,e,n,r,a){let i=t?.[Te],s=i?.subject(e,n);if(!s)return s;let u=s.width/s.height/(r/a);if(Math.abs(u-1)<.01)return s;if(i?.exact)throw new Error("A prompted clip matte requires the source aspect ratio. Apply layout cropping after the source matte.")}function st(t){if(!t||t.coverage<=0)return;let e=Math.round(t.coverage*t.width*t.height);return{category:"person",mask:t.mask,width:t.width,height:t.height,area:e,coverage:t.coverage,detectionIndex:-1}}var bt=he({WebGPURenderer:Oe});export{bt as a};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{T as Ee,U as ze,Y as Q,da as ee}from"./chunk-GEUUXTDL.mjs";import"./chunk-BREZX5L5.mjs";import"./chunk-EAHJZDOJ.mjs";import"./chunk-CJ4CSVU3.mjs";import"./chunk-6ISHV73H.mjs";import{g as Fe,h as V,i as $e,j as Te,k as G,l as te,m as g,n as M,p as Ce,s as K}from"./chunk-BXPM5SJ3.mjs";import"./chunk-GH77FX2Y.mjs";import"./chunk-HOV6DDBZ.mjs";import{a as A}from"./chunk-6FULVULN.mjs";import"./chunk-RECQ74RP.mjs";import"./chunk-ULOFDFHJ.mjs";import"./chunk-VEDMJBJV.mjs";import"./chunk-QEWDIPJ7.mjs";import"./chunk-OGPJTUAL.mjs";import"./chunk-5RRKGN2U.mjs";import"./chunk-BDZ3TSOT.mjs";import{f as S,g as y}from"./chunk-Y4NIR77Z.mjs";y();y();var zt="https://github.com/facebookresearch/sam3/blob/main/LICENSE";function Ne(e="SAM 3",t){if(!t?.acceptLicense&&!(typeof S<"u"&&S.env?.FRAMEFIELDS_ACCEPT_SAM_LICENSE==="1"))throw new Error(`Meta SAM License agreement required for ${e}:
|
|
2
|
-
SAM 3's model weights are subject to Meta's SAM License.
|
|
3
|
-
Review terms at: ${zt}
|
|
4
|
-
To download and run SAM 3 in Framefields, you must explicitly accept the terms by:
|
|
5
|
-
1. Passing 'acceptLicense: true' (or 'acceptSamLicense: true' in ClipVision options), or
|
|
6
|
-
2. Setting the environment variable FRAMEFIELDS_ACCEPT_SAM_LICENSE=1.`)}y();var re={tiny:{repo:"diffusionstudio/sam2.1-tiny-video-onnx-fp16",revision:"66673b5db39371b7dd7847f4d3bc0d4f4179b79e",size:512,name:"Hiera Tiny"},small:{repo:"diffusionstudio/sam2.1-small-video-onnx-fp16",revision:"927ecec6e6ae2727d0af7720eefdb07f2efe4689",size:1024,name:"Hiera Small"}},Ue={webgpu:"fp16",cuda:"fp16",cpu:"q4"},Ie="Meta SAM License",je=(e,t,r)=>`https://huggingface.co/${e}/resolve/${t}/${r}`,E=(e,t,[r,s,n])=>{let{repo:o,revision:a,size:i,name:c}=re[e],l=`sam2.1-${e}-${t}`;return{key:l,family:"sam2",filename:`${l}${r.slice(r.lastIndexOf("."))}`,url:je(o,a,r),bytes:s,sha256:n,input:[i,i],source:`Meta SAM 2.1 ${c} (Apache-2.0), Diffusion Studio ${i}px fp16 video export`,license:"Apache-2.0"}},se=(e,t)=>(r,s,[n,o,a])=>({key:r,family:"sam3",filename:s,url:je(e,t,n),bytes:o,sha256:a,input:[1008,1008],source:`Meta SAM 3 (${Ie}), pinned ${e} ONNX export`,license:Ie}),Oe=se("onnx-community/sam3-tracker-ONNX","429305c8a5b3de597243d919a07e4e6bdcd00ef7");function fe(e,[t,r],[s,n]){let{graph:o,data:a}=be(e);return[Oe(`sam3-vision_encoder-${e}`,`sam3-${o}`,[`onnx/${o}`,t,r]),Oe(`sam3-vision_encoder-${e}-data`,`sam3-${a}`,[`onnx/${a}`,s,n])]}function be(e){let t=`vision_encoder_${e}.onnx`;return{graph:t,data:`${t}_data`}}var ye=se("jax-image-tools/sam3-video-onnx","e942689a73d942f83c69b5965881cb3a0f6153ba"),Re=se("RamRom/sam3-onnx","68ce2746e903966a88549cdd08ab554ff9162db0"),W=se("danilobukvic/sam3-text-onnx","fe8f8e123bfa42d4e57d14fa2f4928a4c60f4665"),De="bundles/sam3-base-video-tracking-ortcuda-v2/graphs/base_tracker_preview_single1.onnx",Ft=[E("tiny","constants",["constants.json",9781,"67583810f4b80b762285377a5cc1066bbe19cdf8ef7fc87ff6aa78fc79830ef2"]),E("tiny","vision_encoder",["onnx/vision_encoder.onnx",58385353,"24e9ccf5994be5c8dd93ebe771a4cc4f8bb122d0524555ac3ba4e7141710b133"]),E("tiny","mask_decoder",["onnx/mask_decoder.onnx",8898805,"6bc158b0d028777ca2e25203ece0f27429c436de39a5c7fe301b3858d6059789"]),E("tiny","memory_encoder",["onnx/memory_encoder.onnx",2807753,"8b2bb6810444cee684ef938b7464c5645653f236014f5497c3db3654818cc7ce"]),E("tiny","memory_attention",["onnx/memory_attention.onnx",13029470,"67c4e4da01bc7f501b88294bb19a8200362915ece04e9d7e367a437658f342c9"]),E("tiny","pointer_tpos",["onnx/pointer_tpos.onnx",34228,"3ab5bfce40ed01208301b2d8f596b9c9f7f493dcd7e09ef01ec22e5be3694bd7"]),E("small","constants",["constants.json",9820,"09397f7251c159b64a2d581cc3ea0dbb3cf720c2e60777cb14e244405ed1c305"]),E("small","vision_encoder",["onnx/vision_encoder.onnx",83679474,"fb570036f5afac59ef20848958b075c84da746e333efd863104d94604652efc4"]),E("small","mask_decoder",["onnx/mask_decoder.onnx",8910345,"999b3b47bf2e924d522ed6cc011fa2c9b651754cc07895eb0da16a28a5ce7c4d"]),E("small","memory_encoder",["onnx/memory_encoder.onnx",2807884,"f36324e383dbf21fcd549169aedf698db00c307fd9a49538c0e5f0aa168e4f99"]),E("small","memory_attention",["onnx/memory_attention.onnx",16175204,"6666be8ca502b5c16e9a113d3d3934996d32f27e93bee5e66a8317fcceec9985"]),E("small","pointer_tpos",["onnx/pointer_tpos.onnx",34228,"f9c1b36e0aa9dc6b7c05b02a8fdaa17cc671d967ffcacc14fcd3177e65ec25e9"]),...fe("fp16",[1263005,"f8c52be6de99124bb17f25792054406abc482ce3502166f948d5c5849cd14d02"],[934729728,"4b021a4d3068c9e9153f2f2fcc9e6d280156228671c00ab6c2ddfa737da7f151"]),...fe("q4f16",[1307816,"4b96732adab3d7d70ac0964ce540a61fad097fbc10c9b27612f47d676877cefc"],[295622656,"d1d60808376dbd48e34cf89feaee708c13abed229f2398ab512149db34fdab07"]),...fe("q4",[1320396,"b80cb1cb6ab80efe646ad49ffa11d398af76e8912eb966971932ef2d8e7fe11b"],[368954368,"be632cacb4a82ef8be28285e49821b9dd7f96e3231cb90df631890f367110555"]),ye("sam3-mask_decoder","sam3-mask_decoder.onnx",["mask_decoder.onnx",17809322,"4dff9a588828eeceba4285be85fb9c2a0306447ad642d02b1d8f6bfff1f19af9"]),ye("sam3-memory_encoder","sam3-memory_encoder.onnx",["memory_encoder.onnx",5587704,"78146118c2f91073489926bb587a81f129c391b2e0d1dba3aede6fbaa699498f"]),ye("sam3-memory_attention","sam3-memory_attention.onnx",["memory_attention.onnx",34592488,"8b24dc20acbb485b81f0e67ed0980b747aaa836707ccff4567a87e59c0ca1c24"]),Re("sam3-support","sam3-base_tracker_preview_single1.onnx",[De,3064674,"d80c1958175d5de6ca72f5b95d24d853dbdb511e0851d5918a4dcf7ed000f3ea"]),Re("sam3-support-data","sam3-base_tracker_preview_single1.onnx.data",[`${De}.data`,63668224,"618f62fbac368e863ee295526efd84ca768fb9914c7e1a5d9f1fb0f28837dda1"]),W("sam3-text-vision_encoder","sam3-vision_encoder_int4_fp16attn.onnx",["vision_encoder_int4_fp16attn.onnx",5216609,"9d148134938a6a284a829733774d3b1356a706a3397bb1d4be240bf041e3ac0e"]),W("sam3-text-vision_encoder-data","sam3-vision_encoder_int4_fp16attn.onnx.data",["vision_encoder_int4_fp16attn.onnx.data",292836352,"b89c9156064e926761f29be3f87b160fd34f4c93f1de46593295d155621829a2"]),W("sam3-text-encoder","sam3-text_encoder_int8.onnx",["text_encoder_int8.onnx",357021801,"c0baf8a4165ecc4039bee9389903723e74a68d617d685a4f1dbfc21c58bb4121"]),W("sam3-text-decoder","sam3-decoder_int8.onnx",["decoder_int8.onnx",26804694,"d721e7b643bb3ee2c48a59d520401c035c702cfbb13cb7f50fa103f0beb27af8"]),W("sam3-tokenizer","sam3-tokenizer.json",["tokenizer.json",3642073,"6d9109cc838977f3ca94a379eec36aecc7c807e1785cd729660ca2fc0171fb35"]),W("sam3-tokenizer-config","sam3-tokenizer_config.json",["tokenizer_config.json",799,"39670ad98457fe8f14ca59f6bb74591e9fc850974380a63993e5b8ffc865baa2"])];function ne(){for(let e of Ft)Ee[e.key]||ze(e)}y();var oe=class{constructor(t){this.temporal=t}temporal;seed;recent=[];remember(t,r){r?(this.seed=t,this.recent=[]):(this.recent.push(t),this.recent.length>15&&this.recent.shift())}assemble(t,r=16){if(!this.seed)throw new Error("SAM 2 must be prompted before propagation.");let s=[...this.recent].reverse(),n=[this.seed,...s.slice(0,6)];for(;n.length<7;)n.push(n[1]??this.seed);let o=[this.seed,...s].slice(0,16);for(;o.length<16;)o.push(o[o.length-1]);let a=this.seed.tokens.length,i=new Float32Array(a*7+16*256),c=new Float32Array(i.length);for(let[d,h]of n.entries()){i.set(h.tokens,d*a);let u=Math.min(d,this.recent.length),p=this.temporal[d===0||u===0?6:u-1];$t(c,d*a,h.positions,p)}let l=new Float32Array(16);for(let[d,h]of o.entries())i.set(h.pointer,a*7+d*256),l[d]=Math.abs(t-h.frame)/Math.max(1,Math.min(r,16)-1);return{memory:i,positions:c,distances:l}}};function H(e){let t=e.length/256,r=new Float32Array(e.length);for(let s=0;s<256;s++)for(let n=0;n<t;n++)r[n*256+s]=e[s*t+n]??0;return r}function $t(e,t,r,s){if(!s||s.length!==64)throw new Error("Invalid SAM 2 temporal encoding.");for(let n=0;n<r.length;n++)e[t+n]=(r[n]??0)+(s[n%64]??0)}y();y();function ie(e){if(e.length===0)throw new Error("SAM 2 requires at least one prompt.");let t=-1;for(let r of e){if(!Number.isSafeInteger(r.frame)||r.frame<=t)throw new Error("SAM 2 prompt frames must be nonnegative, unique and increasing.");if(t=r.frame,r.points.length===0)throw new Error("SAM 2 prompts need points or a box.");for(let n of r.points)Tt(n);let s=r.points.filter(n=>n.label>=2);if(s.length&&(s.length!==2||s[0]?.label!==2||s[1]?.label!==3||s[0].x>=s[1].x||s[0].y>=s[1].y))throw new Error("SAM 2 boxes need top-left (2) and bottom-right (3) corners.")}}function Tt(e){if(![0,1,2,3].includes(e.label)||!Number.isFinite(e.x)||!Number.isFinite(e.y)||e.x<0||e.x>1||e.y<0||e.y>1)throw new Error("SAM 2 points require normalized coordinates and labels 0, 1, 2 or 3.")}var Ct=A.object({image_size:A.number().int().positive().multipleOf(16),memory_frames:A.literal(7),image_mean:A.tuple([A.number(),A.number(),A.number()]),image_std:A.tuple([A.number().positive(),A.number().positive(),A.number().positive()]),memory_temporal_positional_encoding:A.array(A.array(A.number()).length(64)).length(7)}),Nt=["vision_encoder","mask_decoder","memory_encoder","memory_attention","pointer_tpos"];function $n(e="tiny"){return`sam2.1-${e}-${re[e].revision}`}function N(e,t){let r=e[t];if(!r||!(r.data instanceof Float32Array))throw new Error(`Missing SAM 2 float output: ${t}`);return r.data}function X(e,t){if(t.data instanceof BigInt64Array)throw new Error(`Unsupported SAM 2 input type: ${e}`);return{name:e,data:t.data,dims:t.dims}}function I(e,t,r){return{name:e,data:t,dims:r}}var Le=class e{constructor(t,r=16){this.constants=t;this.frameCount=r;this.bank=new oe(t.memory_temporal_positional_encoding),this.size=t.image_size,this.tokens=(this.size/16)**2}constants;frameCount;sessions=new Map;bank;size;tokens;lastFrame=-1;released=!1;static async create(t={}){ne();let r=t.store??new ee(t),s=t.model??"tiny";if(!(s in re))throw new Error(`Unknown SAM 2.1 model "${s}"; use "tiny" or "small".`);let n=await r.ensure(`sam2.1-${s}-constants`),o=Ct.parse(JSON.parse(new TextDecoder().decode(n)));if(t.frameCount!==void 0&&(!Number.isSafeInteger(t.frameCount)||t.frameCount<1))throw new Error("SAM 2 frameCount must be a positive integer.");let a=new e(o,t.frameCount),i=t.provider??K();try{for(let c of Nt){let l=await i.createSession(await r.ensure(`sam2.1-${s}-${c}`));a.sessions.set(c,l)}return a}catch(c){throw a.release(),c}}run(t,r){let s=this.sessions.get(t);if(!s)throw new Error("SAM 2 tracker has been released.");if(s.runMany)return s.runMany(r);if(r.length===1&&r[0])return s.run(r[0]);throw new Error("SAM 2 requires a session provider with runMany support.")}async process(t,r,s){if(this.released)throw new Error("SAM 2 tracker has been released.");if(!Number.isSafeInteger(r)||r<0||this.lastFrame>=0&&r!==this.lastFrame+1)throw new Error("SAM 2 propagation requires consecutive source frames.");if(s&&ie([{frame:r,points:s}]),this.lastFrame<0&&!s)throw new Error("SAM 2 needs a prompt on its first frame.");let{tensor:n}=Q(t,{width:this.size,height:this.size,fit:"stretch",channels:"rgb",padValue:0,mean:this.constants.image_mean.map(l=>l*255),std:this.constants.image_std.map(l=>l*255)}),o=await this.run("vision_encoder",[I("pixel_values",n,[1,3,this.size,this.size])]),a=s?o.feats2_no_mem:await this.condition(o,r);if(!a||!o.feats0||!o.feats1)throw new Error("Invalid SAM 2 vision outputs.");let i=s??[{x:0,y:0,label:-1}],c=await this.run("mask_decoder",[X("feats0",o.feats0),X("feats1",o.feats1),X("feats2_cond",a),I("input_points",Float32Array.from(i.flatMap(l=>[l.x*this.size,l.y*this.size])),[1,1,i.length,2]),I("input_labels",Int32Array.from(i.map(l=>l.label)),[1,1,i.length])]);return await this.remember(o,c,r,s!==void 0),this.lastFrame=r,It(N(c,"high_res_mask"),t.width,t.height,N(c,"object_score_logits")[0]??-1/0,N(c,"iou")[0]??0)}async condition(t,r){let s=this.bank.assemble(r,this.frameCount),n=await this.run("pointer_tpos",[I("normalized_diffs",s.distances,[16])]),o=N(n,"pointer_pos");for(let l=0;l<16;l++)for(let d=0;d<4;d++)s.positions.set(o.subarray(l*64,(l+1)*64),7*this.tokens*64+(l*4+d)*64);let a=7*this.tokens+64,c=(await this.run("memory_attention",[I("current_vision_features",H(N(t,"feats2")),[this.tokens,1,256]),I("current_vision_position_embeddings",H(N(t,"vision_pos_embed")),[this.tokens,1,256]),I("memory",s.memory,[a,1,64]),I("memory_pos",s.positions,[a,1,64])])).conditioned_feats;if(!c)throw new Error("Missing SAM 2 conditioned features.");return c}async remember(t,r,s,n){if(!t.feats2||!r.high_res_mask)throw new Error("Invalid SAM 2 memory inputs.");let o=await this.run("memory_encoder",[X("feats2",t.feats2),X("high_res_mask",r.high_res_mask),I("object_score_logits",N(r,"object_score_logits"),[1,1]),I("binarize",new Float32Array([n?1:0]),[])]);this.bank.remember({frame:s,tokens:N(o,"memory_tokens").slice(),positions:N(o,"memory_pos").slice(),pointer:N(r,"object_pointer").slice()},n)}release(){for(let t of this.sessions.values())t.release();this.sessions.clear(),this.released=!0}};function It(e,t,r,s,n){let o=Math.round(Math.sqrt(e.length));if(o*o!==e.length||o%16!==0)throw new Error("Invalid SAM 2 mask shape.");let a=o-1,i=new Uint8Array(t*r);if(s>0)for(let c=0;c<r;c++){let l=Math.max(0,Math.min(a,(c+.5)*o/r-.5)),d=Math.floor(l),h=Math.min(a,d+1),u=l-d;for(let p=0;p<t;p++){let f=Math.max(0,Math.min(a,(p+.5)*o/t-.5)),_=Math.floor(f),m=Math.min(a,_+1),b=f-_,w=(e[d*o+_]??0)*(1-b)+(e[d*o+m]??0)*b,P=(e[h*o+_]??0)*(1-b)+(e[h*o+m]??0)*b;i[c*t+p]=w*(1-u)+P*u>0?255:0}}return{mask:i,width:t,height:r,score:s,iou:n}}y();function O(e,t){return new Uint8Array([...te(e*8),...te(t)])}function F(e,t){return g(e,$e.encode(t))}function ae(e,t){return g(5,M([F(1,e),O(20,7),g(8,new Uint8Array(t.flatMap(te)))]))}function Ve(e,t){return g(5,M([F(1,e),O(3,t),O(20,2)]))}function Ot(e,t){let r=new Uint8Array(4);return new DataView(r.buffer).setFloat32(0,t,!0),g(5,M([F(1,e),new Uint8Array([21,...r]),O(20,1)]))}function z(e,t,r,s=[]){return g(1,M([...t.map(n=>F(1,n)),F(2,r),F(4,e),...s]))}function ge(e,t){let r=M(t.map(s=>g(1,O(1,s))));return M([F(1,e),g(2,g(1,M([O(1,1),g(2,r)])))])}function we(e,t){let r=new Float32Array([t]);return M([O(2,1),F(8,e),g(9,new Uint8Array(r.buffer))])}function Be(e,t,r,s){let n=M([...e,F(2,"framefields_sam3"),...s.map(o=>g(5,o)),...t.map(([o,a])=>g(11,ge(o,a))),...r.map(([o,a])=>g(12,ge(o,a)))]);return M([O(1,9),g(7,n),g(8,O(2,18))])}function Rt(e,t){let r=V(e).find(n=>n.number===7);if(!r)throw new Error("SAM 3 constants graph is missing.");let s=new Map;for(let n of V(r.body).filter(o=>o.number===5)){let o=V(n.body),a=G(n.body,8);if(!a||!/tracker\.(maskmem_tpos_enc|no_mem_embed|obj_ptr_tpos_proj|sam_prompt_encoder\.mask_downscaling)/.test(a))continue;let i=new Map(o.filter(m=>m.number===13).map(m=>[G(m.body,1),G(m.body,2)])),c=Number(i.get("offset")??0),l=Number(i.get("length")??0),d=o.find(m=>m.number===9)?.body??t.subarray(c,c+l),h=o.find(m=>m.number===2),u=h?Fe(h.raw,1)[0]:0;if(![1,10].includes(u))throw new Error(`Unsupported SAM 3 weight type: ${a}`);if(d.length===0||d.length%(u===10?2:4)!==0)throw new Error(`Invalid SAM 3 weight: ${a}`);let p=new DataView(d.buffer,d.byteOffset,d.byteLength),f=Float32Array.from({length:d.length/(u===10?2:4)},(m,b)=>{if(u===1)return p.getFloat32(b*4,!0);let w=p.getUint16(b*2,!0),P=w&32768?-1:1,j=w>>10&31,x=w&1023;if(j===31)throw new Error(`Non-finite SAM 3 weight ${a}`);return P*(j===0?x*2**-24:(1+x/1024)*2**(j-15))}),_=new Uint8Array(f.buffer);s.set(a,{proto:M([...o.filter(m=>![2,9,13,14].includes(m.number)).map(m=>m.raw),O(2,1),g(9,_)]),data:new Float32Array(_.buffer)})}return s}function We(e,t){let r=Rt(e,t),s=c=>{let l=r.get(`tracker.${c}`);if(!l)throw new Error(`Missing SAM 3 weight ${c}`);return l},n=[],o=[we("sqrt2",Math.SQRT2),we("one",1),we("half",.5)],a="mask";for(let[c,l]of[0,3,6].entries()){let d=`sam_prompt_encoder.mask_downscaling.${l}`;for(let p of["weight","bias"])o.push(s(`${d}.${p}`).proto);let h=`conv${c}`;if(n.push(z("Conv",[a,`tracker.${d}.weight`,`tracker.${d}.bias`],h,[ae("kernel_shape",l===6?[1,1]:[2,2]),ae("strides",l===6?[1,1]:[2,2])])),a=h,l===6)continue;let u=`sam_prompt_encoder.mask_downscaling.${l+1}`;for(let p of["weight","bias"])o.push(s(`${u}.${p}`).proto);n.push(z("Transpose",[a],`nhwc${c}`,[ae("perm",[0,2,3,1])]),z("LayerNormalization",[`nhwc${c}`,`tracker.${u}.weight`,`tracker.${u}.bias`],`norm${c}`,[Ve("axis",3),Ot("epsilon",1e-6)]),z("Transpose",[`norm${c}`],`nchw${c}`,[ae("perm",[0,3,1,2])]),z("Div",[`nchw${c}`,"sqrt2"],`div${c}`),z("Erf",[`div${c}`],`erf${c}`),z("Add",[`erf${c}`,"one"],`add${c}`),z("Mul",[`add${c}`,`nchw${c}`],`mul${c}`),z("Mul",[`mul${c}`,"half"],`gelu${c}`)),a=`gelu${c}`}n.push(z("Identity",[a],"dense_prompt"));let i=[s("obj_ptr_tpos_proj.weight").proto,s("obj_ptr_tpos_proj.bias").proto];return{densePrompt:Be(n,[["mask",[1,1,288,288]]],[["dense_prompt",[1,256,72,72]]],o),pointerPosition:Be([z("Gemm",["encoding","tracker.obj_ptr_tpos_proj.weight","tracker.obj_ptr_tpos_proj.bias"],"position",[Ve("transB",1)])],[["encoding",[16,256]]],[["position",[16,64]]],i),temporal:s("maskmem_tpos_enc").data,noMemory:s("no_mem_embed").data}}function qe(e){let t=V(e),r=t.find(o=>o.number===7);if(!r)throw new Error("Missing SAM 3 decoder graph.");let s=!1,n=V(r.body).map(o=>{if(o.number!==1||G(o.body,3)!=="/mask_decoder/Add")return o.raw;let a=Te(o.body,1);if(a[0]!=="feats2"||a[1]!=="/prompt_encoder/Expand_output_0")throw new Error("Unexpected SAM 3 dense prompt contract.");return s=!0,g(1,M(V(o.body).filter(i=>i.number!==1).map(i=>i.raw).concat([F(1,"feats2"),F(1,"dense_prompt")])))});if(!s)throw new Error("SAM 3 decoder has no prompt embedding input.");return n.push(g(11,ge("dense_prompt",[1,256,72,72]))),M(t.map(o=>o===r?g(7,M(n)):o.raw))}y();var ce=class{constructor(t){this.temporal=t}temporal;seed;recent=[];remember(t,r){r?(this.seed=t,this.recent=[]):(this.recent.push(t),this.recent.length>15&&this.recent.shift())}assemble(t,r){if(!this.seed)throw new Error("SAM 3 needs a prompt before propagation.");let s=[this.seed,...this.recent.slice(-6)],n=new Float32Array(s.length*5184*64),o=new Float32Array(n.length);for(let[l,d]of s.entries()){n.set(d.tokens,l*5184*64);let h=d===this.seed?6:Math.min(5,t-d.frame-1);for(let u=0;u<d.positions.length;u++)o[l*5184*64+u]=(d.positions[u]??0)+(this.temporal[h*64+u%64]??0)}let a=[this.seed,...[...this.recent].reverse()].slice(0,16),i=new Float32Array(a.length*256),c=new Float32Array(16*256);for(let[l,d]of a.entries()){i.set(d.pointer,l*256);let h=(t-d.frame)/Math.max(1,Math.min(r,16)-1);for(let u=0;u<128;u++){let p=h/1e4**(2*Math.floor(u/2)/128);c[l*256+u]=Math.sin(p),c[l*256+128+u]=Math.cos(p)}}return{spatial:n,positions:o,pointers:i,encoding:c,pointerCount:a.length}}};function Ge(){let e=new Float32Array(1327104);for(let t=0;t<72;t++)for(let r=0;r<72;r++)for(let s=0;s<128;s++){let n=1e4**(2*Math.floor(s/2)/128),o=(t+1)/(72+1e-6)*2*Math.PI/n,a=(r+1)/(72+1e-6)*2*Math.PI/n;e[(t*72+r)*256+s]=s%2?Math.cos(o):Math.sin(o),e[(t*72+r)*256+128+s]=s%2?Math.cos(a):Math.sin(a)}return e}y();y();var Dt=class{constructor(e){this.trie=this._build_trie(e)}_build_trie(e){let t=Object.create(null);for(let r of e){let s=t;for(let n=0;n<r.length;++n){let o=r[n];s=s[o]??=Object.create(null)}s.end=r}return t}split(e){let t=[],r=e.length,s=0,n=0;for(;n<r;){let o=this.trie,a=null,i=n;for(;i<r&&(o=o[e[i]]);)o.end&&(a=o.end),++i;a?(n>s&&t.push(e.slice(s,n)),t.push(a),n+=a.length,s=n):++n}return s<r&&t.push(e.slice(s)),t}},Ke=Dt,Ut=class{constructor(e){this.content=e.content,this.id=e.id,this.single_word=e.single_word??!1,this.lstrip=e.lstrip??!1,this.rstrip=e.rstrip??!1,this.special=e.special??!1,this.normalized=e.normalized??!this.special}},jt=Ut,st=(e,t)=>{try{return new RegExp(e,t)}catch(r){if(!(r instanceof SyntaxError))throw r;let s=new Map,n=e.replace(/(\\[pP])\{([^}=]+)\}/g,(o,a,i,c)=>{let l=0;for(let h=c-1;h>=0&&e[h]==="\\";--h)++l;if(l%2===1)return o;let d=s.get(i);if(d===void 0){try{new RegExp(`\\p{${i}}`,"u"),d=i}catch{d=`Script=${i}`}s.set(i,d)}return`${a}{${d}}`});if(n===e)throw r;try{return new RegExp(n,t)}catch{throw r}}},ke=e=>e.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n't/g,"n't").replace(/ 'm/g,"'m").replace(/ 's/g,"'s").replace(/ 've/g,"'ve").replace(/ 're/g,"'re"),ue=(e,t=!0)=>{if(e.Regex!==void 0){let r=sr(er(e.Regex));return st(r,"gu")}else if(e.String!==void 0){let r=nr(e.String);return new RegExp(t?r:`(${r})`,"gu")}else return console.warn("Unknown pattern type:",e),null},q="\\p{Alphabetic}\\p{M}\\p{Nd}\\p{Pc}",nt=`${q}\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE`,R=`[${nt}]`,ot=`[^${nt}]`,Lt=`(?:(?<!${R})(?=${R})|(?<=${R})(?!${R}))`,Vt=`(?:(?<!${R})(?!${R})|(?<=${R})(?=${R}))`,Bt="(?:(?<![\\s\\S])|(?<=\\n))",Wt="(?:(?=\\n)|(?![\\s\\S]))",Z="0-9A-Fa-f",qt=new Map([["A","(?<![\\s\\S])"],["z","(?![\\s\\S])"],["Z","(?=\\n?(?![\\s\\S]))"],["h",`[${Z}]`],["H",`[^${Z}]`],["w",R],["W",ot],["d","\\p{Nd}"],["D","\\P{Nd}"],["s","\\p{White_Space}"],["S","\\P{White_Space}"],["b",Lt],["B",Vt],["a","\\x07"],["e","\\x1B"]]),Gt=new Map([["h",Z],["w",q],["d","\\p{Nd}"],["D","\\P{Nd}"],["s","\\p{White_Space}"],["S","\\P{White_Space}"],["a","\\x07"],["e","\\x1B"]]),Kt=new Map([["W",`[^${q}]`],["H",`[^${Z}]`]]),it=new Map([[`
|
|
7
|
-
`,"\\n"],["\r","\\r"],[" ","\\t"],["\f","\\f"],["\v","\\v"]]),Ht=new Map([["alpha","\\p{Alphabetic}"],["alnum","\\p{Alphabetic}\\p{Nd}"],["digit","\\p{Nd}"],["lower","\\p{Lowercase}"],["upper","\\p{Uppercase}"],["space","\\p{White_Space}"],["blank","\\t\\p{Zs}"],["punct","\\p{P}\\p{S}"],["cntrl","\\p{Cc}"],["word",q],["xdigit",Z]]),at="^$\\.*+?()[]{}|/",Xt=/^\(\?(?:<[=!]|<[A-Za-z_][A-Za-z0-9_]*>|[:=!>])/,ct=/^\\([pPxu])\{([^}]*)\}/,Zt=/^\{(\d+(?:,\d*)?|,\d+)\}/,Yt=/^\[:(\^?)(\p{Alphabetic}+):\]/u,Jt=/^\[:\^:\]/,Qt=/^\[(?:\.[^\]]*\.\]|=[^\]]*=\])/,lt=/^(?:\\x[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}|\\c[A-Za-z])/,dt=e=>e>="A"&&e<="Z"||e>="a"&&e<="z",le=(e,t)=>String.fromCodePoint(e.codePointAt(t)),He=e=>{if(!/^[0-9A-Fa-f]{1,8}$/.test(e))return null;let t=Number.parseInt(e,16);if(t>127)return null;let r=String.fromCharCode(t);return dt(r)?`[${r.toLowerCase()}${r.toUpperCase()}]`:null},er=e=>e.replace(/\[\^\(\\s\|\[([^\]]+)\]\)\]/g,"[^()|\\s$1]"),ht="[\\s\\S]",Xe=256,Ze=()=>({fragment:"",alternatives:[],tail:null,contains_complex_set:!1}),Se=e=>{throw new SyntaxError(`Unsupported range with a set-valued character-class operand at index ${e}`)},de=(e,t,r,s=!0)=>{e.tail==="range"&&Se(r),e.alternatives.push(t),e.tail="set",e.contains_complex_set=e.contains_complex_set||s},L=(e,t,r=!1,s=-1)=>{if(r&&e.tail==="range"&&Se(s),e.tail==="range"){e.fragment+=t,e.tail="complete_range";return}e.fragment+=t,e.tail=r?"set":"scalar",e.contains_complex_set=e.contains_complex_set||r},tr=(e,t,r)=>{let s=ct.exec(e.slice(t));if(s){let[u,p,f]=s;if(p==="P"&&f==="Word")de(r,`[^${q}]`,t);else{let _=p==="x"?`\\u{${f}}`:p==="p"&&f==="Word"?q:u;L(r,_,p==="p"||p==="P",t)}return t+u.length}let n=lt.exec(e.slice(t));if(n)return L(r,n[0]),t+n[0].length;if(t+1>=e.length)throw new SyntaxError(`Unterminated escape in character class at index ${t}`);let o=le(e,t+1),a=t+1+o.length,i=it.get(o);if(i!==void 0)return L(r,i),a;let c=Kt.get(o);if(c!==void 0)return de(r,c,t),a;let l=Gt.get(o),d,h=!1;return l!==void 0?(d=l,h=o!=="a"&&o!=="e"):/[A-Za-z0-9]/.test(o)?d=`\\${o}`:at.includes(o)||o==="-"?d=`\\${o}`:d=o,L(r,d,h,t),a},ut=e=>e.length===1?e[0]:`(?:(?=(?:${e.join("|")}))${ht})`,Ye=e=>{let t=e.fragment.length===0?e.alternatives:[`[${e.fragment}]`,...e.alternatives];return ut(t)},rr=e=>{let t=st(`^(?:${e})$`,"u"),r="";for(let s=0;s<26;++s){let n=String.fromCharCode(65+s),o=String.fromCharCode(97+s),a=t.test(n),i=t.test(o);a!==i&&(r+=a?o:n)}return r},pt=(e,t,r,s=!0,n=1)=>{if(n>Xe)throw new SyntaxError(`Maximum character-class nesting depth of ${Xe} exceeded at index ${t}`);let o=t+1,a=e[o]==="^";a&&++o;let i=o,c=[Ze()],l=c[0],d=!1;for(;o<e.length;){let h=le(e,o);if(h==="\\"){o=tr(e,o,l);continue}if(h==="]"){if(o===i){L(l,"\\]"),++o;continue}if(l.tail===null)throw c.length>1?new SyntaxError(`Malformed character-class intersection with an empty operand at index ${o}`):new SyntaxError(`Empty character class at index ${t}`);let u=c.some(w=>w.contains_complex_set);if(a&&c.length>1&&d)throw new SyntaxError(`Unsupported outer-negated character-class intersection with a nested negated class containing a Unicode property, POSIX class, or shorthand at index ${t}`);let p=Ye(c[0]),f=p;if(c.length>1){let w="";for(let P=1;P<c.length;++P)w+=`(?=${Ye(c[P])})`;f=`(?:${w}${p})`}let _=c.length===1&&l.alternatives.length===0,m=l.fragment;if(r&&s){let w=rr(f);w.length>0&&(_?(m+=w,f=`[${m}]`):f=ut([f,`[${w}]`]))}return{atom:a?_?`[^${m}]`:`(?:(?!${f})${ht})`:f,end:o+1,negated:a,contains_complex_set:u,contains_nested_negated_complex_set:d}}if(e.startsWith("&&",o)){if(l.tail===null)throw new SyntaxError(`Malformed character-class intersection with an empty operand at index ${o}`);l=Ze(),c.push(l),o+=2;continue}if(h==="["){let u=e.slice(o);if(Jt.test(u))throw new SyntaxError(`Malformed empty negated POSIX character class at index ${o}`);let p=Yt.exec(u);if(p){let[,_,m]=p,b=Ht.get(m);if(b===void 0)throw new SyntaxError(`Unsupported POSIX character class "${m}" at index ${o}`);if(r&&_&&(m==="lower"||m==="upper"))throw new SyntaxError(`Unsupported negated POSIX ${m} class inside an inline case-insensitive group`);_?de(l,`[^${b}]`,o):L(l,b,!0,o),o+=p[0].length;continue}if(Qt.test(u))throw new SyntaxError(`Unsupported POSIX collating or equivalence bracket expression at index ${o}`);let f=pt(e,o,r,!1,n+1);de(l,f.atom,o,f.contains_complex_set),d||=f.contains_nested_negated_complex_set||f.negated&&f.contains_complex_set,o=f.end;continue}if(h==="-"){let u=e[o+1]==="]"||e.startsWith("&&",o+1);l.tail==="set"&&!u&&Se(o),l.tail===null||l.tail==="range"||l.tail==="complete_range"||u?L(l,"\\-"):(l.fragment+="-",l.tail="range"),++o;continue}L(l,h==="^"&&l.fragment.length===0?"\\^":h),o+=h.length}throw new SyntaxError(`${c.length>1?"Unterminated character-class intersection":"Unterminated character class"} at index ${t}`)},sr=e=>{let t="",r=-1,s=!1,n=!1,o=[],a=i=>{r=t.length,t+=i,s=!1};for(let i=0;i<e.length;){let c=le(e,i);if(c==="\\"){let l=ct.exec(e.slice(i));if(l){let[_,m,b]=l,w=_;if(m==="x"){let P=`\\u{${b}}`;w=n?He(b)??P:P}else b==="Word"&&(w=m==="p"?R:ot);a(w),i+=_.length;continue}let d=lt.exec(e.slice(i));if(d){let _=d[0],m=n&&_[1]!=="c"?He(_.slice(2))??_:_;a(m),i+=_.length;continue}if(i+1>=e.length){t+=c;break}let h=le(e,i+1);if(i+=1+h.length,h==="G")continue;let u=it.get(h);if(u!==void 0){a(u);continue}let p=qt.get(h),f;p!==void 0?f=p:/[A-Za-z0-9]/.test(h)?f=`\\${h}`:at.includes(h)?f=`\\${h}`:f=h,a(f);continue}switch(c){case"[":{let l=pt(e,i,n);a(l.atom),i=l.end;continue}case"]":a("\\]"),++i;continue;case".":a("[^\\n]"),++i;continue;case"^":a(Bt),++i;continue;case"$":a(Wt),++i;continue;case"(":{let l=e.startsWith("(?i:",i),d=l?"(?i:":Xt.exec(e.slice(i))?.[0]??"(",h=l||d==="(?>"?"(?:":d;o.push([t.length,n]),l&&(n=!0),t+=h,s=!1,i+=d.length;continue}case")":t+=c,[r,n]=o.pop()??[-1,!1],s=!1,++i;continue;case"|":t+=c,r=-1,s=!1,++i;continue;case"{":{let l=Zt.exec(e.slice(i));if(!l||r<0){a("\\{"),++i;continue}let d=l[1].startsWith(",")?`0${l[1]}`:l[1];i+=l[0].length;let h=e[i];h==="+"||h==="*"?(t=`${t.slice(0,r)}(?:${t.slice(r)}{${d}})${h}`,++i):t+=`{${d}}`,s=!0;continue}case"}":a("\\}"),++i;continue;case"+":if(s){++i;continue}t+=c,s=!0,++i;continue;case"*":case"?":t+=c,s=!0,++i;continue;default:a(n&&dt(c)?`[${c.toLowerCase()}${c.toUpperCase()}]`:c),i+=c.length;continue}}return t},nr=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),or=(e,t,r)=>{let s=[],n=0;for(;n<e.length;){if(s.push(e[n]),(t.get(e[n])??r)!==r){++n;continue}for(;++n<e.length&&(t.get(e[n])??r)===r;)t.get(s.at(-1))!==r&&(s[s.length-1]+=e[n])}return s},ir=e=>e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=63744&&e<=64255||e>=194560&&e<=195103,ar=e=>Number.isInteger(e)||typeof e=="bigint",cr=e=>{let t=0;for(let r of e)++t;return t},lr=e=>mt(e.toLowerCase()),$=(...e)=>Array.prototype.concat.apply([],e),xe=e=>new Map(Object.entries(e)),dr=(e,t)=>{let r=[],s=0;for(let n of e.matchAll(t)){let o=n[0];s<n.index&&r.push(e.slice(s,n.index)),o.length>0&&r.push(o),s=n.index+o.length}return s<e.length&&r.push(e.slice(s)),r},mt=e=>e.replace(/\p{M}/gu,""),Je=(e,t,r=[])=>{if(!e||Array.isArray(e)||typeof e!="object")return`${t} must be a valid object`;for(let s of r)if(!(s in e))return`${t} must contain a "${s}" property`;return null},hr=e=>e.match(/\S+/g)||[],ur=class{constructor(){let e=function(...t){return e._call(...t)};return Object.setPrototypeOf(e,new.target.prototype)}},Y=ur,pr=class extends Y{constructor(e){super(),this.config=e}_call(e){return this.normalize(e)}},U=pr,mr=class extends U{tokenize_chinese_chars(e){let t=[];for(let r=0;r<e.length;++r){let s=e[r],n=s.charCodeAt(0);ir(n)?(t.push(" "),t.push(s),t.push(" ")):t.push(s)}return t.join("")}strip_accents(e){return e.normalize("NFD").replace(/\p{Mn}/gu,"")}is_control(e){switch(e){case" ":case`
|
|
8
|
-
`:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(e)}}clean_text(e){let t=[];for(let r of e){let s=r.charCodeAt(0);s===0||s===65533||this.is_control(r)||(/^\s$/.test(r)?t.push(" "):t.push(r))}return t.join("")}normalize(e){return this.config.clean_text&&(e=this.clean_text(e)),this.config.handle_chinese_chars&&(e=this.tokenize_chinese_chars(e)),this.config.lowercase?(e=e.toLowerCase(),this.config.strip_accents!==!1&&(e=this.strip_accents(e))):this.config.strip_accents&&(e=this.strip_accents(e)),e}},_r=mr,fr=class extends U{constructor(e){super(e),this.charsmap=e.precompiled_charsmap??null}normalize(e){return e=e.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),e=e.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),e.includes("\uFF5E")?e=e.split("\uFF5E").map(r=>r.normalize("NFKC")).join("\uFF5E"):e=e.normalize("NFKC"),e}},yr=fr,br=class extends U{constructor(e){super(e),this.normalizers=(e.normalizers??[]).map(t=>_t(t))}normalize(e){return this.normalizers.reduce((t,r)=>r?r.normalize(t):t,e)}},wr=br,gr=class extends U{constructor(e){super(e),this.pattern=ue(this.config.pattern??{})}normalize(e){return this.pattern===null?e:e.replaceAll(this.pattern,this.config.content??"")}},vr=gr,kr=class extends U{constructor(){super(...arguments),this.form="NFC"}normalize(e){return e=e.normalize(this.form),e}},pe=kr,Sr=class extends pe{constructor(){super(...arguments),this.form="NFC"}},xr=Sr,Ar=class extends pe{constructor(){super(...arguments),this.form="NFD"}},Mr=Ar,Pr=class extends pe{constructor(){super(...arguments),this.form="NFKC"}},Er=Pr,zr=class extends pe{constructor(){super(...arguments),this.form="NFKD"}},Fr=zr,$r=class extends U{normalize(e){return this.config.strip_left&&this.config.strip_right?e=e.trim():(this.config.strip_left&&(e=e.trimStart()),this.config.strip_right&&(e=e.trimEnd())),e}},Tr=$r,Cr=class extends U{normalize(e){return mt(e)}},Nr=Cr,Ir=class extends U{normalize(e){return e.toLowerCase()}},Or=Ir,Rr=class extends U{normalize(e){return e=this.config.prepend+e,e}},Dr=Rr;function Ur(e){if(e===null)return null;switch(e.type){case"BertNormalizer":return new _r(e);case"Precompiled":return new yr(e);case"Sequence":return new wr(e);case"Replace":return new vr(e);case"NFC":return new xr(e);case"NFD":return new Mr(e);case"NFKC":return new Er(e);case"NFKD":return new Fr(e);case"Strip":return new Tr(e);case"StripAccents":return new Nr(e);case"Lowercase":return new Or(e);case"Prepend":return new Dr(e);default:throw new Error(`Unknown Normalizer type: ${e.type}`)}}var _t=Ur,jr=class extends Y{pre_tokenize(e,t){return(Array.isArray(e)?e.map(r=>this.pre_tokenize_text(r,t)):this.pre_tokenize_text(e,t)).flat()}_call(e,t){return this.pre_tokenize(e,t)}},T=jr,ft=(()=>{let e=[...Array.from({length:94},(n,o)=>o+33),...Array.from({length:12},(n,o)=>o+161),...Array.from({length:82},(n,o)=>o+174)],t=e.slice(),r=0;for(let n=0;n<256;++n)e.includes(n)||(e.push(n),t.push(256+r),r+=1);let s=t.map(n=>String.fromCharCode(n));return Object.fromEntries(e.map((n,o)=>[n,s[o]]))})(),Lr=e=>Object.fromEntries(Object.entries(e).map(([t,r])=>[r,t])),Vr=Lr(ft),he="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",Br=class extends T{constructor(e){super(),this.config=e,this.add_prefix_space=this.config.add_prefix_space??!1,this.trim_offsets=this.config.trim_offsets??!1,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=ft,this.text_encoder=new TextEncoder}pre_tokenize_text(e,t){return this.add_prefix_space&&!e.startsWith(" ")&&(e=" "+e),(this.use_regex?e.match(this.pattern)||[]:[e]).map(s=>Array.from(this.text_encoder.encode(s),n=>this.byte_encoder[n]).join(""))}},Wr=Br,qr=class extends T{pre_tokenize_text(e,t){return e.match(/\w+|[^\w\s]+/g)||[]}},Gr=qr,Kr=class extends T{constructor(e){super(),this.replacement=e.replacement??"\u2581",this.str_rep=e.str_rep||this.replacement,this.prepend_scheme=e.prepend_scheme??"always"}pre_tokenize_text(e,t){let{section_index:r=void 0}=t??{},s=e.replaceAll(" ",this.str_rep);return!s.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&r===0)&&(s=this.str_rep+s),[s]}},Hr=Kr,Xr=class extends T{constructor(e){super(),this.config=e,this.pattern=ue(this.config.pattern??{},this.config.invert??!0)}pre_tokenize_text(e){return this.pattern===null?[]:this.config.invert?(e.match(this.pattern)||[]).filter(t=>t):this.config.behavior?.toLowerCase()==="removed"?e.split(this.pattern).filter(t=>t):dr(e,this.pattern)}},Zr=Xr,Yr=class extends T{constructor(e){super(),this.config=e,this.pattern=new RegExp(`[^${he}]+|[${he}]+`,"gu")}pre_tokenize_text(e){return e.match(this.pattern)||[]}},Jr=Yr,Qr=class extends T{constructor(e){super(),this.config=e;let t=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(t,"gu")}pre_tokenize_text(e){return e.match(this.pattern)||[]}},es=Qr,ts=class extends T{constructor(){super(),this.pattern=new RegExp(`[^\\s${he}]+|[${he}]`,"gu")}pre_tokenize_text(e,t){return e.trim().match(this.pattern)||[]}},rs=ts,ss=class extends T{constructor(e){super(),this.config=e,this.pattern=ue(this.config.pattern??{}),this.content=this.config.content??""}pre_tokenize_text(e){return this.pattern===null?[e]:[e.replaceAll(this.pattern,this.config.content??"")]}},ns=ss,os=class extends T{constructor(e){super(),this.tokenizers=(e.pretokenizers??[]).map(t=>yt(t))}pre_tokenize_text(e,t){return this.tokenizers.reduce((r,s)=>s?s.pre_tokenize(r,t):r,[e])}},is=os,as=class extends T{pre_tokenize_text(e){return hr(e)}},cs=as,ls=class extends T{constructor(e){super(),this.config=e,this._length=e.length}pre_tokenize_text(e){let t=[];for(let r=0;r<e.length;r+=this._length)t.push(e.slice(r,r+this._length));return t}},ds=ls;function hs(e){if(e===null)return null;switch(e.type){case"BertPreTokenizer":return new rs;case"Sequence":return new is(e);case"Whitespace":return new Gr;case"WhitespaceSplit":return new cs;case"Metaspace":return new Hr(e);case"ByteLevel":return new Wr(e);case"Split":return new Zr(e);case"Punctuation":return new Jr(e);case"Digits":return new es(e);case"Replace":return new ns(e);case"FixedLength":return new ds(e);default:throw new Error(`Unknown PreTokenizer type: ${e.type}`)}}var yt=hs,us=class extends Y{constructor(e){super(),this.config=e,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}_call(e){let t=this.encode(e);return this.fuse_unk&&(t=or(t,this.tokens_to_ids,this.unk_token_id)),t}},me=us,ps=class extends me{constructor(e){super(e),this.max_input_chars_per_word=100,this.tokens_to_ids=xe(e.vocab),this.unk_token_id=this.tokens_to_ids.get(e.unk_token),this.unk_token=e.unk_token,this.max_input_chars_per_word=e.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[t,r]of this.tokens_to_ids)this.vocab[r]=t}encode(e){let t=[];for(let r of e){let s=[...r];if(s.length>this.max_input_chars_per_word){t.push(this.unk_token);continue}let n=!1,o=0,a=[];for(;o<s.length;){let i=s.length,c=null;for(;o<i;){let l=s.slice(o,i).join("");if(o>0&&(l=this.config.continuing_subword_prefix+l),this.tokens_to_ids.has(l)){c=l;break}--i}if(c===null){n=!0;break}a.push(c),o=i}n?t.push(this.unk_token):t.push(...a)}return t}},Qe=ps,et=class bt{constructor(t,r){this.is_leaf=t,this.children=r}static default(){return new bt(!1,new Map)}},ms=class{constructor(){this.root=et.default()}extend(e){for(let t of e)this.push(t)}push(e){let t=this.root;for(let r of e){let s=t.children.get(r);s===void 0&&(s=et.default(),t.children.set(r,s)),t=s}t.is_leaf=!0}*common_prefix_search(e,t=0){let r=this.root;if(r===void 0)return;let s="";for(let n=t;n<e.length;++n){let o=e[n];if(s+=o,r=r.children.get(o),r===void 0)return;r.is_leaf&&(yield s)}}},_s=ms,ve=class wt{constructor(t,r,s,n,o){this.token_id=t,this.node_id=r,this.pos=s,this.length=n,this.score=o,this.prev=null,this.backtrace_score=0}clone(){let t=new wt(this.token_id,this.node_id,this.pos,this.length,this.score);return t.prev=this.prev,t.backtrace_score=this.backtrace_score,t}},fs=class{constructor(e,t,r){this.chars=Array.from(e),this.len=this.chars.length,this.bos_token_id=t,this.eos_token_id=r,this.nodes=[],this.begin_nodes=Array.from({length:this.len+1},()=>[]),this.end_nodes=Array.from({length:this.len+1},()=>[]);let s=new ve(this.bos_token_id??0,0,0,0,0),n=new ve(this.eos_token_id??0,1,this.len,0,0);this.nodes.push(s.clone()),this.nodes.push(n.clone()),this.begin_nodes[this.len].push(n),this.end_nodes[0].push(s)}insert(e,t,r,s){let n=this.nodes.length,o=new ve(s,n,e,t,r);this.begin_nodes[e].push(o),this.end_nodes[e+t].push(o),this.nodes.push(o)}viterbi(){let e=this.len,t=0;for(;t<=e;){if(this.begin_nodes[t].length==0)return[];for(let a of this.begin_nodes[t]){a.prev=null;let i=0,c=null;for(let l of this.end_nodes[t]){let d=l.backtrace_score+a.score;(c===null||d>i)&&(c=l.clone(),i=d)}if(c!==null)a.prev=c,a.backtrace_score=i;else return[]}++t}let r=[],n=this.begin_nodes[e][0].prev;if(n===null)return[];let o=n.clone();for(;o.prev!==null;)r.push(o.clone()),o=o.clone().prev.clone();return r.reverse(),r}piece(e){return this.chars.slice(e.pos,e.pos+e.length).join("")}tokens(){return this.viterbi().map(t=>this.piece(t))}token_ids(){return this.viterbi().map(t=>t.token_id)}},ys=fs;function bs(e){if(e.length===0)throw new Error("Array must not be empty");let t=e[0],r=0;for(let s=1;s<e.length;++s)e[s]<t&&(t=e[s],r=s);return[t,r]}var ws=class extends me{constructor(e,t){super(e);let r=e.vocab.length;this.vocab=new Array(r),this.scores=new Array(r);for(let s=0;s<r;++s)[this.vocab[s],this.scores[s]]=e.vocab[s];this.unk_token_id=e.unk_id,this.unk_token=this.vocab[e.unk_id],this.tokens_to_ids=new Map(this.vocab.map((s,n)=>[s,n])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=t,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.min_score=bs(this.scores)[0],this.unk_score=this.min_score-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new _s,this.trie.extend(this.vocab),this.fuse_unk=!0}populate_nodes(e){let t=e.chars,r=1,s=0;for(;s<t.length;){let n=!1,o=this.trie.common_prefix_search(t,s);for(let a of o){let i=this.tokens_to_ids.get(a),c=this.scores[i],l=cr(a);e.insert(s,l,c,i),!n&&l===r&&(n=!0)}n||e.insert(s,r,this.unk_score,this.unk_token_id),s+=r}}tokenize(e){let t=new ys(e,this.bos_token_id,this.eos_token_id);return this.populate_nodes(t),t.tokens()}encode(e){let t=[];for(let r of e){let s=this.tokenize(r);t.push(...s)}return t}},tt=ws,gs=class{constructor(e=(r,s)=>r>s,t=1/0){this._heap=[],this._comparator=e,this._max_size=t}get size(){return this._heap.length}is_empty(){return this.size===0}peek(){return this._heap[0]}push(...e){return this.extend(e)}extend(e){for(let t of e)if(this.size<this._max_size)this._heap.push(t),this._sift_up();else{let r=this._smallest();this._comparator(t,this._heap[r])&&(this._heap[r]=t,this._sift_up_from(r))}return this.size}pop(){let e=this.peek(),t=this.size-1;return t>0&&this._swap(0,t),this._heap.pop(),this._sift_down(),e}replace(e){let t=this.peek();return this._heap[0]=e,this._sift_down(),t}_parent(e){return(e+1>>>1)-1}_left(e){return(e<<1)+1}_right(e){return e+1<<1}_greater(e,t){return this._comparator(this._heap[e],this._heap[t])}_swap(e,t){let r=this._heap[e];this._heap[e]=this._heap[t],this._heap[t]=r}_sift_up(){this._sift_up_from(this.size-1)}_sift_up_from(e){for(;e>0&&this._greater(e,this._parent(e));)this._swap(e,this._parent(e)),e=this._parent(e)}_sift_down(){let e=0;for(;this._left(e)<this.size&&this._greater(this._left(e),e)||this._right(e)<this.size&&this._greater(this._right(e),e);){let t=this._right(e)<this.size&&this._greater(this._right(e),this._left(e))?this._right(e):this._left(e);this._swap(e,t),e=t}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}},vs=gs,ks=class{constructor(e){this.capacity=e,this.cache=new Map}get(e){if(!this.cache.has(e))return;let t=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,t),t}put(e,t){this.cache.has(e)&&this.cache.delete(e),this.cache.set(e,t),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}},Ss=ks,xs=class extends me{constructor(e){super(e),this.tokens_to_ids=xe(e.vocab),this.unk_token_id=this.tokens_to_ids.get(e.unk_token),this.unk_token=e.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[r,s]of this.tokens_to_ids)this.vocab[s]=r;let t=Array.isArray(e.merges[0]);this.merges=t?e.merges:e.merges.map(r=>r.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((r,s)=>[JSON.stringify(r),s])),this.end_of_word_suffix=e.end_of_word_suffix,this.continuing_subword_suffix=e.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new Ss(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(e){if(e.length===0)return[];let t=this.cache.get(e);if(t!==void 0)return t;let r=Array.from(e);this.end_of_word_suffix&&(r[r.length-1]+=this.end_of_word_suffix);let s=[];if(r.length>1){let n=new vs((i,c)=>i.score<c.score),o={token:r[0],bias:0,prev:null,next:null},a=o;for(let i=1;i<r.length;++i){let c={bias:i/r.length,token:r[i],prev:a,next:null};a.next=c,this.add_node(n,a),a=c}for(;!n.is_empty();){let i=n.pop();if(i.deleted||!i.next||i.next.deleted)continue;if(i.deleted=!0,i.next.deleted=!0,i.prev){let l={...i.prev};i.prev.deleted=!0,i.prev=l,l.prev?l.prev.next=l:o=l}let c={token:i.token+i.next.token,bias:i.bias,prev:i.prev,next:i.next.next};c.prev?(c.prev.next=c,this.add_node(n,c.prev)):o=c,c.next&&(c.next.prev=c,this.add_node(n,c))}for(let i=o;i!==null;i=i.next)s.push(i.token)}else s=r;if(this.continuing_subword_suffix)for(let n=0;n<s.length-1;++n)s[n]+=this.continuing_subword_suffix;return e.length<this.max_length_to_cache&&this.cache.put(e,s),s}add_node(e,t){let r=this.bpe_ranks.get(JSON.stringify([t.token,t.next.token]));r!==void 0&&(t.score=r+t.bias,e.push(t))}encode(e){let t=[];for(let r of e){if(this.ignore_merges&&this.tokens_to_ids.has(r)){t.push(r);continue}let s=this.bpe(r);for(let n of s)if(this.tokens_to_ids.has(n))t.push(n);else if(this.byte_fallback){let o=Array.from(this.text_encoder.encode(n)).map(a=>`<0x${a.toString(16).toUpperCase().padStart(2,"0")}>`);o.every(a=>this.tokens_to_ids.has(a))?t.push(...o):this.unk_token!=null&&t.push(this.unk_token)}else this.unk_token!=null&&t.push(this.unk_token)}return t}},rt=xs,As=class extends me{constructor(e,t){super(e);let r=e.vocab;this.tokens_to_ids=xe(t.target_lang?r[t.target_lang]:r),this.bos_token=t.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=t.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=t.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=t.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[s,n]of this.tokens_to_ids)this.vocab[n]=s}encode(e){return e}},Ms=As;function Ps(e,t){switch(e.type){case"WordPiece":return new Qe(e);case"Unigram":return new tt(e,t.eos_token);case"BPE":return new rt(e);default:if(e.vocab)return Array.isArray(e.vocab)?new tt(e,t.eos_token):Object.hasOwn(e,"continuing_subword_prefix")&&Object.hasOwn(e,"unk_token")?Object.hasOwn(e,"merges")?new rt(e):new Qe(e):new Ms(e,{target_lang:t.target_lang,bos_token:t.bos_token,eos_token:t.eos_token,pad_token:t.pad_token,unk_token:t.unk_token});throw new Error(`Unknown TokenizerModel type: ${e?.type}`)}}var Es=Ps,zs=class extends Y{constructor(e){super(),this.config=e}_call(e,...t){return this.post_process(e,...t)}},J=zs,Fs=class extends J{post_process(e,t=null,r=!0){let s=t===null?this.config.single:this.config.pair,n=[],o=[];for(let a of s)"SpecialToken"in a?r&&(n.push(a.SpecialToken.id),o.push(a.SpecialToken.type_id)):"Sequence"in a&&(a.Sequence.id==="A"?(n=$(n,e),o=$(o,new Array(e.length).fill(a.Sequence.type_id))):a.Sequence.id==="B"&&(n=$(n,t),o=$(o,new Array(t.length).fill(a.Sequence.type_id))));return{tokens:n,token_type_ids:o}}},$s=Fs,Ts=class extends J{post_process(e,t=null){return{tokens:e,tokens_pair:t}}},Cs=Ts,Ns=class extends J{constructor(e){super(e),this.sep=e.sep,this.cls=e.cls}post_process(e,t=null,r=!0){r&&(e=$([this.cls[0]],e,[this.sep[0]]));let s=new Array(e.length).fill(0);if(t){let n=[],o=r?[this.sep[0]]:[];e=$(e,n,t,o),s=$(s,new Array(t.length+n.length+o.length).fill(1))}return{tokens:e,token_type_ids:s}}},Is=Ns,Os=class extends J{constructor(e){super(e),this.sep=e.sep,this.cls=e.cls}post_process(e,t,r=!0){r&&(e=$([this.cls[0]],e,[this.sep[0]]));let s=new Array(e.length).fill(0);if(t){let n=r?[this.sep[0]]:[],o=r?[this.sep[0]]:[];e=$(e,n,t,o),s=$(s,new Array(t.length+n.length+o.length).fill(1))}return{tokens:e,token_type_ids:s}}},Rs=Os,Ds=class extends J{constructor(e){super(e),this.processors=(e.processors??[]).map(t=>gt(t))}post_process(e,t=null,r=!0){let s={tokens:e,tokens_pair:t};for(let n of this.processors)s=n.post_process(s.tokens,s.tokens_pair,r);return s}},Us=Ds;function js(e){if(e===null)return null;switch(e.type){case"TemplateProcessing":return new $s(e);case"ByteLevel":return new Cs(e);case"BertProcessing":return new Is(e);case"RobertaProcessing":return new Rs(e);case"Sequence":return new Us(e);default:throw new Error(`Unknown PostProcessor type: ${e.type}`)}}var gt=js,Ls=class extends Y{constructor(e){super(),this.config=e,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets="trim_offsets"in e?e.trim_offsets:!1}_call(e){return this.decode(e)}decode(e){return this.decode_chain(e).join("")}},D=Ls,Vs=class extends D{constructor(e){super(e),this.byte_decoder=Vr,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(e){let t=e.join(""),r=new Uint8Array([...t].map(s=>this.byte_decoder[s]));return this.text_decoder.decode(r)}decode_chain(e){let t=[],r=[];for(let s of e)this.added_tokens.find(n=>n.content===s)!==void 0?(r.length>0&&(t.push(this.convert_tokens_to_string(r)),r=[]),t.push(s)):r.push(s);return r.length>0&&t.push(this.convert_tokens_to_string(r)),t}},Bs=Vs,Ws=class extends D{constructor(e){super(e),this.cleanup=e.cleanup}decode_chain(e){return e.map((t,r)=>{if(r!==0){let s=this.config.prefix;s&&t.startsWith(s)?t=t.replace(s,""):t=" "+t}return this.cleanup&&(t=ke(t)),t})}},qs=Ws,Gs=class extends D{constructor(e){super(e),this.replacement=e.replacement??"\u2581"}decode_chain(e){let t=[];for(let r=0;r<e.length;++r){let s=e[r].replaceAll(this.replacement," ");r==0&&s.startsWith(" ")&&(s=s.substring(1)),t.push(s)}return t}},Ks=Gs,Hs=class extends D{constructor(e){super(e),this.suffix=e.suffix??""}decode_chain(e){return e.map((t,r)=>t.replaceAll(this.suffix,r===e.length-1?"":" "))}},Xs=Hs,Zs=class extends D{constructor(e){super(e),this.pad_token=e.pad_token??"",this.word_delimiter_token=e.word_delimiter_token??"",this.cleanup=e.cleanup}convert_tokens_to_string(e){if(e.length===0)return"";let t=[e[0]];for(let n=1;n<e.length;++n)e[n]!==t.at(-1)&&t.push(e[n]);let s=t.filter(n=>n!==this.pad_token).join("");return this.cleanup&&(s=ke(s).replaceAll(this.word_delimiter_token," ").trim()),s}decode_chain(e){return[this.convert_tokens_to_string(e)]}},Ys=Zs,Js=class extends D{constructor(e){super(e),this.decoders=(e.decoders??[]).map(t=>vt(t))}decode_chain(e){return this.decoders.reduce((t,r)=>r.decode_chain(t),e)}},Qs=Js,en=class extends D{constructor(e){super(e),this.pattern=ue(this.config.pattern)}decode_chain(e){let t=this.config.content??"",r=this.pattern;return r===null?e:e.map(s=>s.replaceAll(r,t))}},tn=en,rn=class extends D{decode_chain(e){return[e.join("")]}},sn=rn,nn=class extends D{constructor(e){super(e),this.content=e.content??"",this.start=e.start??0,this.stop=e.stop??0}decode_chain(e){return e.map(t=>{let r=0;for(let n=0;n<this.start&&t[n]===this.content;++n){r=n+1;continue}let s=t.length;for(let n=0;n<this.stop;++n){let o=t.length-n-1;if(t[o]===this.content){s=o;continue}else break}return t.slice(r,s)})}},on=nn,an=class extends D{constructor(e){super(e),this.text_decoder=new TextDecoder}decode_chain(e){let t=[],r=[];for(let s of e){let n=null;if(s.length===6&&s.startsWith("<0x")&&s.endsWith(">")){let o=parseInt(s.slice(3,5),16);isNaN(o)||(n=o)}if(n!==null)r.push(n);else{if(r.length>0){let o=this.text_decoder.decode(Uint8Array.from(r));t.push(o),r=[]}t.push(s)}}if(r.length>0){let s=this.text_decoder.decode(Uint8Array.from(r));t.push(s),r=[]}return t}},cn=an;function ln(e){if(e===null)return null;switch(e.type){case"ByteLevel":return new Bs(e);case"WordPiece":return new qs(e);case"Metaspace":return new Ks(e);case"BPEDecoder":return new Xs(e);case"CTC":return new Ys(e);case"Sequence":return new Qs(e);case"Replace":return new tn(e);case"Fuse":return new sn(e);case"Strip":return new on(e);case"ByteFallback":return new cn(e);default:throw new Error(`Unknown Decoder type: ${e.type}`)}}var vt=ln,dn=class{constructor(e,t){let r=Je(e,"Tokenizer",["model","decoder","post_processor","pre_tokenizer","normalizer"]);if(r)throw new Error(r);let s=Je(t,"Config");if(s)throw new Error(s);this.tokenizer=e,this.config=t,this.normalizer=_t(this.tokenizer.normalizer),this.pre_tokenizer=yt(this.tokenizer.pre_tokenizer),this.model=Es(this.tokenizer.model,this.config),this.post_processor=gt(this.tokenizer.post_processor),this.decoder=vt(this.tokenizer.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];let n=[],o=[];this.added_tokens_map=new Map;for(let a of this.tokenizer.added_tokens){let i=new jt(a);if(this.added_tokens.push(i),this.model.tokens_to_ids.set(i.content,i.id),this.model.vocab[i.id]=i.content,i.special&&(this.special_tokens.push(i.content),this.all_special_ids.push(i.id)),this.added_tokens_map.set(i.content,i),i.normalized&&this.normalizer!==null){let c=this.normalizer(i.content);o.push(c),this.added_tokens_map.set(c,i)}else n.push(i.content)}(this.config.additional_special_tokens??[]).forEach(a=>{this.special_tokens.includes(a)||this.special_tokens.push(a)}),this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.splitter_unnormalized=new Ke(n),this.splitter_normalized=new Ke(o),this.remove_space=this.config.remove_space,this.clean_up_tokenization_spaces=this.config.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=this.config.do_lowercase_and_remove_accent??!1}encode(e,{text_pair:t=null,add_special_tokens:r=!0,return_token_type_ids:s=null}={}){let{tokens:n,token_type_ids:o}=this.tokenize_helper(e,{text_pair:t,add_special_tokens:r}),a=n.map(c=>this.added_tokens_map.get(c)?.id??this.model.tokens_to_ids.get(c)??this.model.unk_token_id),i={ids:a,tokens:n,attention_mask:new Array(a.length).fill(1)};return s&&o&&(i.token_type_ids=o),i}decode(e,t={}){if(!Array.isArray(e)||e.length===0||!ar(e[0]))throw Error("token_ids must be a non-empty array of integers.");let r=e.map(n=>this.model.vocab[Number(n)]??this.model.unk_token);t.skip_special_tokens&&(r=r.filter(n=>!this.special_tokens.includes(n)));let s=this.decoder?this.decoder(r):r.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(s=s.replaceAll(this.decoder.end_of_word_suffix," "),t.skip_special_tokens&&(s=s.trim())),(t.clean_up_tokenization_spaces??this.clean_up_tokenization_spaces)&&(s=ke(s)),s}tokenize(e,{text_pair:t=null,add_special_tokens:r=!1}={}){return this.tokenize_helper(e,{text_pair:t,add_special_tokens:r}).tokens}encode_text(e){if(e===null)return null;let t=this.splitter_unnormalized.split(e);return t.forEach((r,s)=>{let n=this.added_tokens_map.get(r);n&&(n.lstrip&&s>0&&(t[s-1]=t[s-1].trimEnd()),n.rstrip&&s<t.length-1&&(t[s+1]=t[s+1].trimStart()))}),t.flatMap((r,s)=>{if(r.length===0)return[];if(this.added_tokens_map.has(r))return[r];if(this.remove_space===!0&&(r=r.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(r=lr(r)),this.normalizer!==null&&(r=this.normalizer(r)),r.length===0)return[];let n=this.splitter_normalized.split(r);return n.forEach((o,a)=>{let i=this.added_tokens_map.get(o);i&&(i.lstrip&&a>0&&(n[a-1]=n[a-1].trimEnd()),i.rstrip&&a<n.length-1&&(n[a+1]=n[a+1].trimStart()))}),n.flatMap(o=>{if(o.length===0)return[];if(this.added_tokens_map.has(o))return[o];let a=this.pre_tokenizer!==null?this.pre_tokenizer(o,{section_index:s}):[o];return this.model(a)})})}tokenize_helper(e,{text_pair:t=null,add_special_tokens:r=!0}){let s=this.encode_text(e),n=this.encode_text(t||null);return this.post_processor?this.post_processor(s,n,r):{tokens:$(s??[],n??[])}}token_to_id(e){return this.model.tokens_to_ids.get(e)}id_to_token(e){return this.model.vocab[e]}get_added_tokens_decoder(){let e=new Map;for(let t of this.added_tokens)e.set(t.id,t);return e}get_vocab(e=!0){let t=new Map;for(let r=0;r<this.model.vocab.length;++r){let s=this.model.vocab[r];(e||!this.added_tokens_map.has(s))&&t.set(s,r)}return t}},kt=dn;function v(e,t){let r=e[t];if(!(r?.data instanceof Float32Array))throw new Error(`Missing SAM 3 float output ${t}`);return r.data}async function B(e,t){if(!e.runMany)throw new Error("SAM 3 requires a session provider with runMany support.");return e.runMany(t)}var _e=class e{constructor(t){this.tokenizer=t}tokenizer;sessions=[];static async create(t,r){let s=async o=>JSON.parse(new TextDecoder().decode(await t.ensure(o))),n=new e(new kt(await s("sam3-tokenizer"),await s("sam3-tokenizer-config")));try{n.sessions.push(await r.createSession(await t.ensure("sam3-text-vision_encoder"),{externalData:[{path:"vision_encoder_int4_fp16attn.onnx.data",data:await t.ensure("sam3-text-vision_encoder-data")}]}));for(let o of["sam3-text-encoder","sam3-text-decoder"])n.sessions.push(await r.createSession(await t.ensure(o)));return n}catch(o){throw n.release(),o}}async select(t,r,s,n=1){let[o,a,i]=this.sessions;if(!o||!a||!i)throw new Error("SAM 3 text selector has been released.");let c=this.tokenizer.encode(r).ids;if(c.length>32)throw new Error("SAM 3 text prompts must fit within 32 CLIP tokens.");let l=new BigInt64Array(32).fill(49407n),d=new BigInt64Array(32);c.forEach((x,C)=>{l[C]=BigInt(x),d[C]=1n});let h=await B(a,[{name:"input_ids",data:l,dims:[1,32]},{name:"attention_mask",data:d,dims:[1,32]}]),u=await B(o,[{name:"pixel_values",data:t,dims:[1,3,1008,1008]}]),p=[{name:"text_features",data:v(h,"text_features"),dims:[1,32,256]},{name:"attention_mask",data:d,dims:[1,32]}];for(let x of["fpn_hidden_state_0","fpn_hidden_state_1","fpn_hidden_state_2","fpn_position_encoding_2"]){let C=u[x];if(!C)throw new Error(`Missing SAM 3 concept feature ${x}`);p.push({name:x,data:v(u,x),dims:C.dims})}let f=await B(i,p),_=v(f,"pred_logits"),m=v(f,"pred_masks");if(m.length!==_.length*Ae)throw new Error("Invalid SAM 3 concept mask shape.");let b=[..._.keys()].sort((x,C)=>(_[C]??-1/0)-(_[x]??-1/0)),w=1/(1+Math.exp(-(_[b[0]??0]??-1/0)));if(w<s)throw new Error(`SAM 3 found no confident instance for text ${JSON.stringify(r)} (score ${w.toFixed(3)}, threshold ${s}).`);let P=Math.log(s/(1-s)),j=[];for(let x of b){if(j.length>=n||(_[x]??-1/0)<P)break;let C=m.slice(x*Ae,(x+1)*Ae);j.every(Et=>hn(Et,C)<=.5)&&j.push(C)}return j}release(){for(let t of this.sessions)t.release();this.sessions.length=0}},Ae=288*288;function hn(e,t){let r=0,s=0;for(let n=0;n<e.length;n++){let o=(e[n]??0)>0,a=(t[n]??0)>0;o&&a&&r++,(o||a)&&s++}return s?r/s:0}y();y();var un=2,Me=class{constructor(t,r){this.session=t;this.forget=r}session;forget;users=0;recent=[];hold(){this.users++;let t=!0;return{encode:r=>this.encode(r),release:()=>{t&&(t=!1,!(--this.users>0)&&(this.forget(),this.recent.length=0,this.session.release()))}}}encode(t){let r=pn(t),s=this.recent.find(o=>o.key===r);if(s)return s.features;let n={key:r,features:this.run(t)};return this.recent.push(n),this.recent.length>un&&this.recent.shift(),n.features.catch(()=>{let o=this.recent.indexOf(n);o>=0&&this.recent.splice(o,1)}),n.features}async run(t){let{tensor:r}=Q(t,{width:1008,height:1008,fit:"stretch",channels:"rgb",padValue:0,mean:[127.5,127.5,127.5],std:[127.5,127.5,127.5]}),s=await B(this.session,[{name:"pixel_values",data:r,dims:[1,3,1008,1008]}]);return{pixels:r,feats0:v(s,"image_embeddings.0"),feats1:v(s,"image_embeddings.1"),raw:v(s,"image_embeddings.2")}}},St=new WeakMap;async function xt(e,t,r){let s=St.get(t);s||(s=new Map,St.set(t,s));let n=s,o=n.get(r);return o||(o=(async()=>{let a=await t.createSession(await e.ensure(`sam3-vision_encoder-${r}`),{externalData:[{path:be(r).data,data:await e.ensure(`sam3-vision_encoder-${r}-data`)}]});return new Me(a,()=>n.delete(r))})(),n.set(r,o),o.catch(()=>n.delete(r))),(await o).hold()}function pn(e){let t=e.data,r=2166136261,s=16777619^t.length;for(let n=0;n<t.length;n++){let o=t[n]??0;r=Math.imul(r^o,16777619),s=Math.imul(s^o,1540483477)^s>>>15}return`${e.width}x${e.height}:${(r>>>0).toString(36)}${(s>>>0).toString(36)}`}y();function At(e){let t=new Float32Array(e[0]?.length??0).fill(-1/0);for(let r of e)for(let s=0;s<t.length;s++)t[s]=Math.max(t[s]??-1/0,r[s]??-1/0);return t}y();function Mt(e){let t=e.prompts??(e.text?[{frame:0,text:e.text}]:[]);if(!t.length)throw new Error("SAM 3 requires at least one prompt or text description.");let r=-1;for(let o of t){if(!Number.isSafeInteger(o.frame)||o.frame<=r)throw new Error("SAM 3 prompt frames must be nonnegative, unique and increasing.");if(r=o.frame,o.points!==void 0==(o.text!==void 0))throw new Error("SAM 3 prompts need either points/a box or text.");if(o.points&&ie([{frame:o.frame,points:o.points}]),o.text!==void 0&&!o.text.trim())throw new Error("SAM 3 text prompts must not be empty.");if(o.object!==void 0&&(o.text!==void 0||!Number.isSafeInteger(o.object)||o.object<1))throw new Error("SAM 3 prompt objects are positive track IDs on points prompts.")}let s=e.maxObjects??1;if(!Number.isSafeInteger(s)||s<1)throw new Error("SAM 3 maxObjects must be a positive integer.");let n=e.textThreshold??.5;if(!Number.isFinite(n)||n<=0||n>=1)throw new Error("SAM 3 textThreshold must be between zero and one.")}function pi(e){return`sam3-${e}-429305c8-video-e942689a-support-68ce2746-text-fe8f8e12-v2`}async function mn(e=K(),t){return t??Ue[await Ce(e)]}var Pe=10;function k(e,t,r){return{name:e,data:t,dims:r}}var Pt=class e{constructor(t,r,s){this.store=t;this.provider=r;this.options=s}store;provider;options;sessions=new Map;encoder;position=Ge();banks=[];temporal;noMemory;selector;lastFrame=-1;released=!1;static async create(t={}){if(Ne("SAM 3",t),ne(),t.frameCount!==void 0&&(!Number.isSafeInteger(t.frameCount)||t.frameCount<1))throw new Error("SAM 3 frameCount must be a positive integer.");if(t.textThreshold!==void 0&&(!Number.isFinite(t.textThreshold)||t.textThreshold<=0||t.textThreshold>=1))throw new Error("SAM 3 textThreshold must be between zero and one.");if(t.maxObjects!==void 0&&(!Number.isSafeInteger(t.maxObjects)||t.maxObjects<1))throw new Error("SAM 3 maxObjects must be a positive integer.");let r=t.store??new ee({...t,acceptLicense:t.acceptLicense??!0}),s=t.provider??K(),n=new e(r,s,t);try{n.encoder=await xt(r,s,await mn(s,t.precision));let o=We(await r.ensure("sam3-support"),await r.ensure("sam3-support-data"));n.temporal=o.temporal,n.noMemory=o.noMemory,n.sessions.set("dense_prompt",await s.createSession(o.densePrompt)),n.sessions.set("pointer_position",await s.createSession(o.pointerPosition));let a=await r.ensure("sam3-mask_decoder");n.sessions.set("mask_decoder",await s.createSession(a)),n.sessions.set("dense_decoder",await s.createSession(qe(a)));for(let i of["memory_encoder","memory_attention"])n.sessions.set(i,await s.createSession(await r.ensure(`sam3-${i}`)));return t.store||r.clearMemoryCache(),n}catch(o){throw n.release(),o}}run(t,r){let s=this.sessions.get(t);if(!s)throw new Error("SAM 3 tracker has been released.");return B(s,r)}async process(t,r,s){if(this.released)throw new Error("SAM 3 tracker has been released.");if(!Number.isSafeInteger(r)||r<0||this.lastFrame>=0&&r!==this.lastFrame+1)throw new Error("SAM 3 propagation requires consecutive source frames.");if(s&&Mt({prompts:[{...s,frame:r}]}),this.lastFrame<0&&!s)throw new Error("SAM 3 needs a prompt on its first frame.");if(!this.encoder)throw new Error("SAM 3 tracker has been released.");let{pixels:n,feats0:o,feats1:a,raw:i}=await this.encoder.encode(t),c=[k("feats0",o,[1,32,288,288]),k("feats1",a,[1,64,144,144])],l=await this.seeds(n,s),d=[];for(let[h,u]of this.banks.entries()){let p=l.get(h),f=p?this.initialFeatures(i):await this.condition(i,r,u),_=await this.decode(c,f,p),m=p?.mask??v(_,"high_res_masks"),b=p?.mask?Pe:v(_,"object_score_logits")[0]??-1/0;await this.remember(u,i,_,r,p,m,b),d.push({id:h+1,mask:_n(m,t.width,t.height,b),score:b,iou:p?.mask?1:Math.max(...v(_,"iou_scores"))})}return this.lastFrame=r,{width:t.width,height:t.height,objects:d}}async seeds(t,r){let s=new Map;if(r?.points){let n=(r.object??1)-1;if(n>this.banks.length)throw new Error(`SAM 3 prompt object ${n+1} skips track IDs; the next new ID is ${this.banks.length+1}.`);n===this.banks.length&&this.banks.push(this.newBank()),s.set(n,{points:r.points})}if(r?.text!==void 0){this.selector??=await _e.create(this.store,this.provider),this.options.store||this.store.clearMemoryCache();let n=await this.selector.select(t,r.text,this.options.textThreshold??.5,this.options.maxObjects??(this.options.merge?1/0:1)),o=this.options.merge?[At(n)]:n;this.banks.length=0;for(let[a,i]of o.entries()){this.banks.push(this.newBank());let c=Float32Array.from(i,d=>d>0?1:0),l=await this.run("dense_prompt",[k("mask",c,[1,1,288,288])]);s.set(a,{dense:v(l,"dense_prompt"),mask:fn(i)})}}return s}newBank(){if(!this.temporal)throw new Error("SAM 3 tracker has been released.");return new ce(this.temporal)}decode(t,r,s){let n=s?.points??[{x:0,y:0,label:-1}],o=[...t,k("feats2",r,[1,256,72,72]),k("input_points",Float32Array.from(n.flatMap(a=>[a.x*1008,a.y*1008])),[1,1,n.length,2]),k("input_labels",Int32Array.from(n.map(a=>a.label)),[1,1,n.length])];return s?.dense?this.run("dense_decoder",[...o,k("dense_prompt",s.dense,[1,256,72,72])]):this.run("mask_decoder",o)}initialFeatures(t){if(!this.noMemory)throw new Error("Missing SAM 3 no-memory embedding.");return Float32Array.from(t,(r,s)=>r+(this.noMemory?.[Math.floor(s/5184)]??0))}async condition(t,r,s){let n=s.assemble(r,this.options.frameCount??16),o=await this.run("pointer_position",[k("encoding",n.encoding,[16,256])]),a=new Float32Array(n.pointerCount*256),i=v(o,"position");for(let h=0;h<n.pointerCount;h++)for(let u=0;u<4;u++)a.set(i.subarray(h*64,(h+1)*64),(h*4+u)*64);let c=await this.run("memory_attention",[k("current_vision_features",H(t),[5184,1,256]),k("current_vision_position_embeddings",this.position,[5184,1,256]),k("spatial_memory",n.spatial,[n.spatial.length/64,1,64]),k("spatial_memory_position_embeddings",n.positions,[n.positions.length/64,1,64]),k("pointer_memory",n.pointers,[n.pointerCount*4,1,64]),k("pointer_memory_position_embeddings",a,[n.pointerCount*4,1,64])]),l=v(c,"conditioned_features"),d=new Float32Array(l.length);for(let h=0;h<5184;h++)for(let u=0;u<256;u++)d[u*5184+h]=l[h*256+u]??0;return d}async remember(t,r,s,n,o,a,i){let c=await this.run("memory_encoder",[k("vision_features",r,[1,256,72,72]),k("pred_masks_high_res",a,[1,1,1008,1008]),k("object_score_logits",Float32Array.of(i),[1,1]),k("is_mask_from_pts",new Uint8Array([o?1:0]),[1])]);t.remember({frame:n,tokens:v(c,"memory_tokens").slice(),positions:v(c,"memory_pos_enc").slice(),pointer:v(s,"object_pointer").slice()},o!==void 0)}release(){for(let t of this.sessions.values())t.release();this.sessions.clear(),this.encoder?.release(),this.encoder=void 0,this.selector?.release(),this.banks.length=0,this.temporal=void 0,this.noMemory=void 0,this.released=!0}};function _n(e,t,r,s){if(e.length!==1008*1008)throw new Error("Invalid SAM 3 high-resolution mask shape.");let n=new Uint8Array(t*r);if(s<=0)return n;for(let o=0;o<r;o++)for(let a=0;a<t;a++){let i=Math.max(0,Math.min(1007,(o+.5)*1008/r-.5)),c=Math.max(0,Math.min(1007,(a+.5)*1008/t-.5)),l=Math.floor(i),d=Math.floor(c),h=i-l,u=c-d,p=Math.min(1007,l+1),f=Math.min(1007,d+1),_=(e[l*1008+d]??0)*(1-u)+(e[l*1008+f]??0)*u,m=(e[p*1008+d]??0)*(1-u)+(e[p*1008+f]??0)*u;n[o*t+a]=_*(1-h)+m*h>0?255:0}return n}function fn(e){let t=new Float32Array(1016064);for(let r=0;r<1008;r++){let s=Math.max(0,Math.min(287,(r+.5)*288/1008-.5)),n=Math.floor(s),o=Math.min(287,n+1),a=s-n;for(let i=0;i<1008;i++){let c=Math.max(0,Math.min(287,(i+.5)*288/1008-.5)),l=Math.floor(c),d=Math.min(287,l+1),h=c-l,u=(e[n*288+l]??0)*(1-h)+(e[n*288+d]??0)*h,p=(e[o*288+l]??0)*(1-h)+(e[o*288+d]??0)*h;t[r*1008+i]=u*(1-a)+p*a>0?Pe:-Pe}}return t}export{re as SAM2_EXPORTS,Ue as SAM3_ENCODER,Ie as SAM_LICENSE,zt as SAM_LICENSE_TERMS_URL,Ft as SAM_MODELS,oe as Sam2MemoryBank,Le as Sam2Tracker,ce as Sam3MemoryBank,_e as Sam3TextSelector,Pt as Sam3Tracker,Ne as assertSamLicenseAccepted,It as decodeSam2Mask,ne as ensureSamModelsRegistered,$n as sam2Revision,H as sam2Tokens,qe as sam3DenseDecoder,be as sam3EncoderFiles,v as sam3Floats,_n as sam3Mask,Ge as sam3Position,mn as sam3Precision,pi as sam3Revision,B as sam3Run,We as sam3SupportGraphs,ie as validateSam2Prompts,Mt as validateSam3Prompts};
|