framefields 2.13.1 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +5 -1
- package/dist/audio/index.d.mts +5 -5
- package/dist/audio/index.mjs +10 -10
- package/dist/{audio-DIvi6hTD.mjs → audio-6TfPlfl4.mjs} +3 -3
- package/dist/{audio-DIvi6hTD.mjs.map → audio-6TfPlfl4.mjs.map} +1 -1
- package/dist/{audio-C4B9p_yq.d.mts → audio-7oqTUi4G.d.mts} +3 -3
- package/dist/{audio-C4B9p_yq.d.mts.map → audio-7oqTUi4G.d.mts.map} +1 -1
- package/dist/cli/check-worker.mjs +44 -44
- package/dist/cli.mjs +1 -1
- package/dist/cloud/index.d.mts.map +1 -1
- package/dist/cloud/index.mjs +1 -1
- package/dist/{cloud-Cj1TIme8.mjs → cloud-jnk1hPYf.mjs} +2 -2
- package/dist/{cloud-Cj1TIme8.mjs.map → cloud-jnk1hPYf.mjs.map} +1 -1
- package/dist/components/index.d.mts +13 -13
- package/dist/components/index.mjs +43 -43
- package/dist/{dist-Kbf-JTry.mjs → dist-BtI6ukB5.mjs} +2 -2
- package/dist/{dist-Kbf-JTry.mjs.map → dist-BtI6ukB5.mjs.map} +1 -1
- package/dist/{dist-CCrYOkcc.mjs → dist-COOpgG9G.mjs} +4 -3
- package/dist/{dist-CCrYOkcc.mjs.map → dist-COOpgG9G.mjs.map} +1 -1
- package/dist/{dist-DtPPPsZV.mjs → dist-XqlFM2a8.mjs} +14063 -5308
- package/dist/dist-XqlFM2a8.mjs.map +1 -0
- package/dist/{dist-CiTgmfUw.mjs → dist-f1zkl69f.mjs} +4 -4
- package/dist/dist-f1zkl69f.mjs.map +1 -0
- package/dist/{dist-B_rSWeOz.mjs → dist-umQOWz0a.mjs} +1 -1
- package/dist/effects/index.d.mts +5 -5
- package/dist/effects/index.mjs +35 -35
- package/dist/{effects-B-L3rLs6.mjs → effects-DlRMovU5.mjs} +2 -2
- package/dist/{effects-B-L3rLs6.mjs.map → effects-DlRMovU5.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +2 -2
- package/dist/{fonts-k5ll8NTE.mjs → fonts-BWYcXjyK.mjs} +3 -3
- package/dist/fonts-BWYcXjyK.mjs.map +1 -0
- package/dist/{gpu-D2HT3KcE.mjs → gpu-CH1PdM4T.mjs} +2 -2
- package/dist/{gpu-D2HT3KcE.mjs.map → gpu-CH1PdM4T.mjs.map} +1 -1
- package/dist/{index-rtCXNxGO.d.mts → index-BHTycml5.d.mts} +2 -2
- package/dist/{index-rtCXNxGO.d.mts.map → index-BHTycml5.d.mts.map} +1 -1
- package/dist/{index-BFTtXosj.d.mts → index-BVd6nXd5.d.mts} +2 -2
- package/dist/{index-BFTtXosj.d.mts.map → index-BVd6nXd5.d.mts.map} +1 -1
- package/dist/{index-ByhlTwxh.d.mts → index-BcxxxwhV.d.mts} +5 -5
- package/dist/{index-ByhlTwxh.d.mts.map → index-BcxxxwhV.d.mts.map} +1 -1
- package/dist/{index-CnZhBlob.d.mts → index-BnB_Ou2y.d.mts} +2 -2
- package/dist/index-BnB_Ou2y.d.mts.map +1 -0
- package/dist/{index-a6JrbAK0.d.mts → index-C-V6CAhP.d.mts} +32 -2
- package/dist/index-C-V6CAhP.d.mts.map +1 -0
- package/dist/{index-DBh3WphX.d.mts → index-CMhkkc56.d.mts} +44 -12
- package/dist/index-CMhkkc56.d.mts.map +1 -0
- package/dist/{index-BGlaws7-.d.mts → index-CYVpYGM-.d.mts} +3 -3
- package/dist/{index-BGlaws7-.d.mts.map → index-CYVpYGM-.d.mts.map} +1 -1
- package/dist/{index-DQ1U3HC3.d.mts → index-DhL7ckvs.d.mts} +7 -7
- package/dist/index-DhL7ckvs.d.mts.map +1 -0
- package/dist/{index-CtKUQ2VG.d.mts → index-DkAjKnhW.d.mts} +1487 -533
- package/dist/index-DkAjKnhW.d.mts.map +1 -0
- package/dist/{index-B08eSpaI.d.mts → index-RILu3ULT.d.mts} +2 -2
- package/dist/{index-B08eSpaI.d.mts.map → index-RILu3ULT.d.mts.map} +1 -1
- package/dist/{index-C5sgRLlG.d.mts → index-TCtdSXd7.d.mts} +3 -1
- package/dist/index-TCtdSXd7.d.mts.map +1 -0
- package/dist/{index-C2yaponf.d.mts → index-s2qQ8ifZ.d.mts} +911 -57
- package/dist/index-s2qQ8ifZ.d.mts.map +1 -0
- package/dist/index.d.mts +15 -15
- package/dist/index.mjs +52 -52
- package/dist/preview/index.d.mts +5 -5
- package/dist/preview/index.mjs +10 -10
- package/dist/preview-BeGF1Bb1.mjs +1002 -0
- package/dist/preview-BeGF1Bb1.mjs.map +1 -0
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-64L4GUOF.mjs → chunk-4F3DG6YB.mjs} +2 -2
- package/dist/preview-engine/chunk-A2OTOW3B.mjs +4694 -0
- package/dist/preview-engine/chunk-BR56TQBP.mjs +5 -0
- package/dist/preview-engine/{chunk-ADLIF544.mjs → chunk-H2XKXXAU.mjs} +1 -1
- package/dist/preview-engine/chunk-NDUODAY2.mjs +3 -0
- package/dist/preview-engine/{chunk-FZ4RD7HV.mjs → chunk-QAQJSWUT.mjs} +1 -1
- package/dist/preview-engine/chunk-SWRGQTVC.mjs +138 -0
- package/dist/preview-engine/{chunk-52X7SURQ.mjs → chunk-TEA3GVBJ.mjs} +1 -1
- package/dist/preview-engine/chunk-VM2ZBPLM.mjs +644 -0
- package/dist/preview-engine/{chunk-UBY2UYEL.mjs → chunk-XSHNQJ7L.mjs} +1 -1
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +2 -2
- package/dist/preview-engine/{renderers-DU7KPFVV.mjs → renderers-6C7NWWDX.mjs} +1 -1
- package/dist/preview-engine/renderers-HHVGNMSJ.mjs +206 -0
- package/dist/preview-engine/{src-YXNX4MLK.mjs → src-RCNEKIRP.mjs} +1 -1
- package/dist/preview-page/index.html +19 -0
- package/dist/preview-page/main.css +1 -0
- package/dist/preview-page/main.js +327 -0
- package/dist/{program-BfiB9ttP.mjs → program-CMigyfso.mjs} +919 -58
- package/dist/program-CMigyfso.mjs.map +1 -0
- package/dist/renderer/index.d.mts +4 -4
- package/dist/renderer/index.mjs +2 -2
- package/dist/{renderer-CoC64eam.mjs → renderer-0GMEL_Zi.mjs} +3 -3
- package/dist/{renderer-CoC64eam.mjs.map → renderer-0GMEL_Zi.mjs.map} +1 -1
- package/dist/{renderer-CSu_vYPn.mjs → renderer-3Wv2ZBJG.mjs} +3 -3
- package/dist/{renderer-CSu_vYPn.mjs.map → renderer-3Wv2ZBJG.mjs.map} +1 -1
- package/dist/{renderer-Dv_iRIyx.mjs → renderer-4nXkaAWu.mjs} +1280 -285
- package/dist/renderer-4nXkaAWu.mjs.map +1 -0
- package/dist/{renderer-TfeohPxt.mjs → renderer-6SnfLXeg.mjs} +3 -3
- package/dist/{renderer-TfeohPxt.mjs.map → renderer-6SnfLXeg.mjs.map} +1 -1
- package/dist/{renderer-D0xM67cK.mjs → renderer-8gHw3O0P.mjs} +2 -2
- package/dist/{renderer-D0xM67cK.mjs.map → renderer-8gHw3O0P.mjs.map} +1 -1
- package/dist/{renderer-C64_B8It.mjs → renderer-AOBglZHC.mjs} +2 -2
- package/dist/{renderer-B10HDC13.mjs → renderer-B0bSARK3.mjs} +3 -3
- package/dist/{renderer-B10HDC13.mjs.map → renderer-B0bSARK3.mjs.map} +1 -1
- package/dist/{renderer-DWYmJSrl.mjs → renderer-B2_tuRfl.mjs} +2 -2
- package/dist/{renderer-DWYmJSrl.mjs.map → renderer-B2_tuRfl.mjs.map} +1 -1
- package/dist/{renderer-mDBoz0zT.mjs → renderer-B82FhkEr.mjs} +3 -3
- package/dist/{renderer-mDBoz0zT.mjs.map → renderer-B82FhkEr.mjs.map} +1 -1
- package/dist/{renderer-DYeNNc_G.mjs → renderer-B9lzA0PY.mjs} +3 -3
- package/dist/{renderer-DYeNNc_G.mjs.map → renderer-B9lzA0PY.mjs.map} +1 -1
- package/dist/{renderer-BGchUBW_.mjs → renderer-BBSIWSry.mjs} +2 -2
- package/dist/{renderer-BGchUBW_.mjs.map → renderer-BBSIWSry.mjs.map} +1 -1
- package/dist/{renderer-GIlQ9lZq.mjs → renderer-BEKDMxbi.mjs} +2 -2
- package/dist/{renderer-GIlQ9lZq.mjs.map → renderer-BEKDMxbi.mjs.map} +1 -1
- package/dist/renderer-BERGAxqA.mjs +5 -0
- package/dist/{renderer-Bw0O--gW.mjs → renderer-BF960HY8.mjs} +3 -3
- package/dist/{renderer-Bw0O--gW.mjs.map → renderer-BF960HY8.mjs.map} +1 -1
- package/dist/{renderer-BhcTYhaP.mjs → renderer-BFwyVxCu.mjs} +3 -3
- package/dist/{renderer-BhcTYhaP.mjs.map → renderer-BFwyVxCu.mjs.map} +1 -1
- package/dist/{renderer-DYlx7VHo.mjs → renderer-BNiwcI3-.mjs} +2 -2
- package/dist/{renderer-DYlx7VHo.mjs.map → renderer-BNiwcI3-.mjs.map} +1 -1
- package/dist/{renderer-B3_GddgJ.mjs → renderer-BPbVb2Q4.mjs} +2 -2
- package/dist/{renderer-B3_GddgJ.mjs.map → renderer-BPbVb2Q4.mjs.map} +1 -1
- package/dist/renderer-BQ_YkBMt.mjs +6 -0
- package/dist/{renderer-Y1kjtOto.mjs → renderer-BUWxlA8T.mjs} +3 -3
- package/dist/{renderer-Y1kjtOto.mjs.map → renderer-BUWxlA8T.mjs.map} +1 -1
- package/dist/renderer-BW0Tjsv9.mjs +5 -0
- package/dist/{renderer-DtFZbE1j.mjs → renderer-BX8liu-e.mjs} +2 -2
- package/dist/{renderer-BOlHW3Mi.mjs → renderer-BXIwDAr_.mjs} +2 -2
- package/dist/{renderer-BOlHW3Mi.mjs.map → renderer-BXIwDAr_.mjs.map} +1 -1
- package/dist/{renderer-DzON3wDZ.mjs → renderer-B_Hy1W-g.mjs} +3 -3
- package/dist/{renderer-DzON3wDZ.mjs.map → renderer-B_Hy1W-g.mjs.map} +1 -1
- package/dist/{renderer-BM19iK8v.mjs → renderer-Bb6cvSgh.mjs} +2 -2
- package/dist/{renderer-BM19iK8v.mjs.map → renderer-Bb6cvSgh.mjs.map} +1 -1
- package/dist/{renderer-D0h1hTOo.mjs → renderer-BdppwWC9.mjs} +2 -2
- package/dist/{renderer-D0h1hTOo.mjs.map → renderer-BdppwWC9.mjs.map} +1 -1
- package/dist/{renderer-BTwuM9u-.mjs → renderer-Bhc24HVe.mjs} +3 -3
- package/dist/{renderer-BTwuM9u-.mjs.map → renderer-Bhc24HVe.mjs.map} +1 -1
- package/dist/{renderer-BZX932Lj.mjs → renderer-BiNA2wF0.mjs} +2 -2
- package/dist/{renderer-BZX932Lj.mjs.map → renderer-BiNA2wF0.mjs.map} +1 -1
- package/dist/{renderer-CkTehyRX.mjs → renderer-BmoBgTp5.mjs} +3 -3
- package/dist/{renderer-CkTehyRX.mjs.map → renderer-BmoBgTp5.mjs.map} +1 -1
- package/dist/{renderer-B3un4Pdi.mjs → renderer-BmqFmCWS.mjs} +3 -3
- package/dist/{renderer-B3un4Pdi.mjs.map → renderer-BmqFmCWS.mjs.map} +1 -1
- package/dist/{renderer-CHCRcCKw.mjs → renderer-BnVwAObV.mjs} +2 -2
- package/dist/{renderer-CHCRcCKw.mjs.map → renderer-BnVwAObV.mjs.map} +1 -1
- package/dist/{renderer-Cv9CKKWG.mjs → renderer-BxttZHme.mjs} +2 -2
- package/dist/{renderer-Cv9CKKWG.mjs.map → renderer-BxttZHme.mjs.map} +1 -1
- package/dist/renderer-BzyPdUD1.mjs +5 -0
- package/dist/renderer-C0hM-mtY.mjs +5 -0
- package/dist/renderer-C6cyUTvk.mjs +5 -0
- package/dist/{renderer-B6bK9rXm.mjs → renderer-C8E4XsSg.mjs} +2 -2
- package/dist/{renderer-B6bK9rXm.mjs.map → renderer-C8E4XsSg.mjs.map} +1 -1
- package/dist/renderer-C8zY3pzk.mjs +5 -0
- package/dist/{renderer-4nsuReW2.mjs → renderer-C9U-LY50.mjs} +3 -3
- package/dist/{renderer-4nsuReW2.mjs.map → renderer-C9U-LY50.mjs.map} +1 -1
- package/dist/{renderer-BvBqTAtk.mjs → renderer-CB2JVu5x.mjs} +3 -3
- package/dist/{renderer-BvBqTAtk.mjs.map → renderer-CB2JVu5x.mjs.map} +1 -1
- package/dist/{renderer-CQ4h8n7p.mjs → renderer-CC4YBJ8Z.mjs} +3 -3
- package/dist/{renderer-CQ4h8n7p.mjs.map → renderer-CC4YBJ8Z.mjs.map} +1 -1
- package/dist/renderer-CEkSOyKu.mjs +5 -0
- package/dist/{renderer-zLi2qFGT.mjs → renderer-CIycc5O-.mjs} +2 -2
- package/dist/{renderer-zLi2qFGT.mjs.map → renderer-CIycc5O-.mjs.map} +1 -1
- package/dist/renderer-CJYtfa4x.mjs +5 -0
- package/dist/{renderer-yNWYqvvq.mjs → renderer-CJraQlV-.mjs} +2 -2
- package/dist/{renderer-yNWYqvvq.mjs.map → renderer-CJraQlV-.mjs.map} +1 -1
- package/dist/renderer-CKMtHGZh.mjs +5 -0
- package/dist/renderer-CLzicoiy.mjs +5 -0
- package/dist/renderer-CM2A4BHd.mjs +5 -0
- package/dist/{renderer-BrEeUw7T.mjs → renderer-COWGWtob.mjs} +2 -2
- package/dist/{renderer-BrEeUw7T.mjs.map → renderer-COWGWtob.mjs.map} +1 -1
- package/dist/{renderer-uER8kn7f.mjs → renderer-COxG2XGf.mjs} +2 -2
- package/dist/{renderer-uER8kn7f.mjs.map → renderer-COxG2XGf.mjs.map} +1 -1
- package/dist/{renderer-C4hd6Cqi.mjs → renderer-CQDCIsQm.mjs} +2 -2
- package/dist/{renderer-C4hd6Cqi.mjs.map → renderer-CQDCIsQm.mjs.map} +1 -1
- package/dist/{renderer-Cfx_FCSf.mjs → renderer-CRUeag8i.mjs} +3 -3
- package/dist/{renderer-Cfx_FCSf.mjs.map → renderer-CRUeag8i.mjs.map} +1 -1
- package/dist/{renderer-CXrnzihz.mjs → renderer-CWVput06.mjs} +3 -3
- package/dist/{renderer-CXrnzihz.mjs.map → renderer-CWVput06.mjs.map} +1 -1
- package/dist/renderer-CZlHjcxr.mjs +5 -0
- package/dist/{renderer-BmyFfvVA.mjs → renderer-CbbnBLOB.mjs} +3 -3
- package/dist/{renderer-BmyFfvVA.mjs.map → renderer-CbbnBLOB.mjs.map} +1 -1
- package/dist/renderer-CbimvSU8.mjs +5 -0
- package/dist/renderer-Ccvc63yd.mjs +5 -0
- package/dist/renderer-Cdp-SGfq.mjs +5 -0
- package/dist/renderer-CeTcSs3e.mjs +5 -0
- package/dist/{renderer-_J9JcCMR.mjs → renderer-CfLZein2.mjs} +3 -3
- package/dist/{renderer-_J9JcCMR.mjs.map → renderer-CfLZein2.mjs.map} +1 -1
- package/dist/{renderer-D-mX1EVA.mjs → renderer-Ch-q1O-q.mjs} +3 -3
- package/dist/{renderer-D-mX1EVA.mjs.map → renderer-Ch-q1O-q.mjs.map} +1 -1
- package/dist/{renderer-uzU6dsdR.mjs → renderer-Ch5JvJWl.mjs} +2 -2
- package/dist/{renderer-uzU6dsdR.mjs.map → renderer-Ch5JvJWl.mjs.map} +1 -1
- package/dist/{renderer-BZMh2io2.mjs → renderer-ChtEzq-R.mjs} +2 -2
- package/dist/{renderer-BZMh2io2.mjs.map → renderer-ChtEzq-R.mjs.map} +1 -1
- package/dist/{renderer-B2IUPjhw.mjs → renderer-Cj9nTC5l.mjs} +3 -3
- package/dist/{renderer-B2IUPjhw.mjs.map → renderer-Cj9nTC5l.mjs.map} +1 -1
- package/dist/{renderer-CdXBRdFf.mjs → renderer-CqT8HsSS.mjs} +2 -2
- package/dist/{renderer-CdXBRdFf.mjs.map → renderer-CqT8HsSS.mjs.map} +1 -1
- package/dist/{renderer-CldjJmRR.mjs → renderer-CuQjMhdV.mjs} +2 -2
- package/dist/renderer-CvNuu52U.mjs +5 -0
- package/dist/renderer-CwciC0oI.mjs +5 -0
- package/dist/renderer-CysLUbIr.mjs +5 -0
- package/dist/{renderer-BsrKj6Td.mjs → renderer-Cz30EVws.mjs} +2 -2
- package/dist/{renderer-BsrKj6Td.mjs.map → renderer-Cz30EVws.mjs.map} +1 -1
- package/dist/renderer-D3A22Vxb.mjs +5 -0
- package/dist/renderer-D5SY9EmA.mjs +5 -0
- package/dist/renderer-D8h3ZvaE.mjs +5 -0
- package/dist/renderer-DE-B6N9n.mjs +5 -0
- package/dist/renderer-DETZTI7t.mjs +5 -0
- package/dist/{renderer-CC22Djgi.mjs → renderer-DHoX-5U_.mjs} +3 -3
- package/dist/{renderer-CC22Djgi.mjs.map → renderer-DHoX-5U_.mjs.map} +1 -1
- package/dist/{renderer-HKv5cBdp.mjs → renderer-DOkm0Ycd.mjs} +2 -2
- package/dist/{renderer-HKv5cBdp.mjs.map → renderer-DOkm0Ycd.mjs.map} +1 -1
- package/dist/{renderer-fG8Jy8Rx.d.mts → renderer-DU3f6ZrS.d.mts} +2 -2
- package/dist/{renderer-fG8Jy8Rx.d.mts.map → renderer-DU3f6ZrS.d.mts.map} +1 -1
- package/dist/{renderer-C98XwEIr.mjs → renderer-DUzv-shq.mjs} +2 -2
- package/dist/{renderer-C98XwEIr.mjs.map → renderer-DUzv-shq.mjs.map} +1 -1
- package/dist/renderer-DWnDj0IM.mjs +5 -0
- package/dist/renderer-DcGUIbQF.mjs +5 -0
- package/dist/renderer-Dfq6FoNO.mjs +5 -0
- package/dist/renderer-DhasXW6S.mjs +3 -0
- package/dist/{renderer-BEuXJY-C.mjs → renderer-DhnOWnEA.mjs} +3 -3
- package/dist/{renderer-BEuXJY-C.mjs.map → renderer-DhnOWnEA.mjs.map} +1 -1
- package/dist/{renderer-BIKkxw_Z.mjs → renderer-Dhy1XHzz.mjs} +3 -3
- package/dist/{renderer-BIKkxw_Z.mjs.map → renderer-Dhy1XHzz.mjs.map} +1 -1
- package/dist/renderer-DjCvpsV_.mjs +5 -0
- package/dist/{renderer-pn52dzZz.mjs → renderer-DjJshz9Y.mjs} +2 -2
- package/dist/{renderer-pn52dzZz.mjs.map → renderer-DjJshz9Y.mjs.map} +1 -1
- package/dist/{renderer-DhGZ41hQ.mjs → renderer-DmTUIdus.mjs} +3 -3
- package/dist/{renderer-DhGZ41hQ.mjs.map → renderer-DmTUIdus.mjs.map} +1 -1
- package/dist/{renderer-D_m6Qbsi.mjs → renderer-Dq7AioJa.mjs} +2 -2
- package/dist/{renderer-D_m6Qbsi.mjs.map → renderer-Dq7AioJa.mjs.map} +1 -1
- package/dist/renderer-DrAaM6JD.mjs +5 -0
- package/dist/{renderer-D-GWBoVT.mjs → renderer-Dt4sqNEu.mjs} +2 -2
- package/dist/{renderer-D-GWBoVT.mjs.map → renderer-Dt4sqNEu.mjs.map} +1 -1
- package/dist/{renderer-DCrKEVjb.mjs → renderer-Dtcs4idV.mjs} +3 -3
- package/dist/{renderer-DCrKEVjb.mjs.map → renderer-Dtcs4idV.mjs.map} +1 -1
- package/dist/renderer-Dxlv8LYm.mjs +5 -0
- package/dist/{renderer-CO9vE3sd.mjs → renderer-Gj8SrE2W.mjs} +2 -2
- package/dist/{renderer-CO9vE3sd.mjs.map → renderer-Gj8SrE2W.mjs.map} +1 -1
- package/dist/{renderer-DvHi_wXE.mjs → renderer-KfnXDJS0.mjs} +3 -3
- package/dist/{renderer-DvHi_wXE.mjs.map → renderer-KfnXDJS0.mjs.map} +1 -1
- package/dist/{renderer-7xQmXXMH.mjs → renderer-MXVlg4p5.mjs} +3 -3
- package/dist/{renderer-7xQmXXMH.mjs.map → renderer-MXVlg4p5.mjs.map} +1 -1
- package/dist/{renderer-YONlI6W-.mjs → renderer-N2b6QZ1E.mjs} +3 -3
- package/dist/{renderer-YONlI6W-.mjs.map → renderer-N2b6QZ1E.mjs.map} +1 -1
- package/dist/renderer-Pb43OO2t.mjs +5 -0
- package/dist/{renderer-DNynPM6X.mjs → renderer-Q7gDzm8c.mjs} +2 -2
- package/dist/{renderer-DNynPM6X.mjs.map → renderer-Q7gDzm8c.mjs.map} +1 -1
- package/dist/{renderer-BEhZiOT4.mjs → renderer-RCiANtRV.mjs} +2 -2
- package/dist/{renderer-BEhZiOT4.mjs.map → renderer-RCiANtRV.mjs.map} +1 -1
- package/dist/{renderer-Dm57W73p.mjs → renderer-Sig9nZcI.mjs} +2 -2
- package/dist/renderer-VQbm-cGr.mjs +5 -0
- package/dist/{renderer-DiZkZ0Pr.mjs → renderer-fabBgwQX.mjs} +3 -3
- package/dist/{renderer-DiZkZ0Pr.mjs.map → renderer-fabBgwQX.mjs.map} +1 -1
- package/dist/{renderer-Bw-_GZVw.mjs → renderer-g-0PCNoo.mjs} +3 -3
- package/dist/{renderer-Bw-_GZVw.mjs.map → renderer-g-0PCNoo.mjs.map} +1 -1
- package/dist/{renderer-QbSrnPZU.mjs → renderer-gmHKIbKI.mjs} +3 -3
- package/dist/{renderer-QbSrnPZU.mjs.map → renderer-gmHKIbKI.mjs.map} +1 -1
- package/dist/{renderer-CU6WT5jW.mjs → renderer-kVZwiRoK.mjs} +3 -3
- package/dist/{renderer-CU6WT5jW.mjs.map → renderer-kVZwiRoK.mjs.map} +1 -1
- package/dist/renderer-oPMypDM1.mjs +5 -0
- package/dist/{renderer-CRhEGqW4.mjs → renderer-p7tgxP-A.mjs} +3 -3
- package/dist/{renderer-CRhEGqW4.mjs.map → renderer-p7tgxP-A.mjs.map} +1 -1
- package/dist/{renderer-CO4NGvAh.mjs → renderer-tvYj306A.mjs} +81 -78
- package/dist/renderer-tvYj306A.mjs.map +1 -0
- package/dist/renderer-xvWGpVyp.mjs +5 -0
- package/dist/renderer-zafZbD6Q.mjs +5 -0
- package/dist/{renderers-CP8CFWDs-BufiCyn7.mjs → renderers-CP8CFWDs-DLjtjrwx.mjs} +2 -2
- package/dist/{renderers-CP8CFWDs-BufiCyn7.mjs.map → renderers-CP8CFWDs-DLjtjrwx.mjs.map} +1 -1
- package/dist/sam/index.d.mts +3 -3
- package/dist/sam/index.mjs +1 -1
- package/dist/signals/index.d.mts +5 -5
- package/dist/signals/index.mjs +4 -4
- package/dist/{src-BU6vm9sP-DdTHmCr4.mjs → src-B23p_eh7-Cj6-lvV6.mjs} +293 -6
- package/dist/src-B23p_eh7-Cj6-lvV6.mjs.map +1 -0
- package/dist/{src-DrP7fGJX.mjs → src-CoHAjviq.mjs} +1355 -178
- package/dist/src-CoHAjviq.mjs.map +1 -0
- package/dist/storage/index.mjs +1 -1
- package/package.json +63 -60
- package/dist/dist-CiTgmfUw.mjs.map +0 -1
- package/dist/dist-DtPPPsZV.mjs.map +0 -1
- package/dist/fonts-k5ll8NTE.mjs.map +0 -1
- package/dist/index-C2yaponf.d.mts.map +0 -1
- package/dist/index-C5sgRLlG.d.mts.map +0 -1
- package/dist/index-CnZhBlob.d.mts.map +0 -1
- package/dist/index-CtKUQ2VG.d.mts.map +0 -1
- package/dist/index-DBh3WphX.d.mts.map +0 -1
- package/dist/index-DQ1U3HC3.d.mts.map +0 -1
- package/dist/index-a6JrbAK0.d.mts.map +0 -1
- package/dist/preview-engine/chunk-5ZS46EFB.mjs +0 -5
- package/dist/preview-engine/chunk-N3XTDAL6.mjs +0 -2227
- package/dist/preview-engine/chunk-NCQHOGZK.mjs +0 -3
- package/dist/preview-engine/chunk-PH3UUX6A.mjs +0 -138
- package/dist/preview-engine/chunk-XCPRRMMW.mjs +0 -2462
- package/dist/preview-engine/renderers-ZMMQ7S2A.mjs +0 -228
- package/dist/preview-lHH8Tv4j.mjs +0 -2446
- package/dist/preview-lHH8Tv4j.mjs.map +0 -1
- package/dist/program-BfiB9ttP.mjs.map +0 -1
- package/dist/renderer-0rLmztAv.mjs +0 -5
- package/dist/renderer-B0pjOXFY.mjs +0 -5
- package/dist/renderer-B7J13reL.mjs +0 -5
- package/dist/renderer-BPGIKGgl.mjs +0 -5
- package/dist/renderer-Bv-Artj1.mjs +0 -5
- package/dist/renderer-BvLjbhcL.mjs +0 -5
- package/dist/renderer-By6awWaf.mjs +0 -5
- package/dist/renderer-C0rvsz7m.mjs +0 -5
- package/dist/renderer-CDgud_HB.mjs +0 -5
- package/dist/renderer-CDiRF3bG.mjs +0 -6
- package/dist/renderer-CIIEQd4B.mjs +0 -5
- package/dist/renderer-CJblwOA9.mjs +0 -5
- package/dist/renderer-CNMOXtXE.mjs +0 -5
- package/dist/renderer-CO4NGvAh.mjs.map +0 -1
- package/dist/renderer-COeSeNGg.mjs +0 -5
- package/dist/renderer-CUfElmtZ.mjs +0 -5
- package/dist/renderer-CYh2lFoJ.mjs +0 -5
- package/dist/renderer-CYtVZYMH.mjs +0 -5
- package/dist/renderer-CjxZlkjb.mjs +0 -5
- package/dist/renderer-Cpd6TvTC.mjs +0 -5
- package/dist/renderer-D3ziOPhX.mjs +0 -5
- package/dist/renderer-D5yp74NL.mjs +0 -3
- package/dist/renderer-DL-phtL5.mjs +0 -5
- package/dist/renderer-DSnmYnHg.mjs +0 -5
- package/dist/renderer-DUGfsT-E.mjs +0 -5
- package/dist/renderer-DW5af9x1.mjs +0 -5
- package/dist/renderer-DYMrol1t.mjs +0 -5
- package/dist/renderer-DekeUHaz.mjs +0 -5
- package/dist/renderer-Dt5uyJdZ.mjs +0 -5
- package/dist/renderer-Dv_iRIyx.mjs.map +0 -1
- package/dist/renderer-DwLQAnaK.mjs +0 -5
- package/dist/renderer-IXQP2CWM.mjs +0 -5
- package/dist/renderer-K-Pkw63O.mjs +0 -5
- package/dist/renderer-MPw2KH9P.mjs +0 -5
- package/dist/renderer-RPu8RMav.mjs +0 -5
- package/dist/renderer-dCqxd5N2.mjs +0 -5
- package/dist/renderer-lhjmE-Fp.mjs +0 -5
- package/dist/renderer-u9cmBuvM.mjs +0 -5
- package/dist/renderer-vH12jcpz.mjs +0 -5
- package/dist/src-BU6vm9sP-DdTHmCr4.mjs.map +0 -1
- package/dist/src-DrP7fGJX.mjs.map +0 -1
|
@@ -2,11 +2,11 @@ import { Pt as frameSignal, pn as programmaticSignal } from "./dist-C8XSqfTx.mjs
|
|
|
2
2
|
import { a as PoseSkeletonComputePipeline } from "./dist-DgZpN6IK.mjs";
|
|
3
3
|
import { existsSync, mkdirSync, statSync } from "node:fs";
|
|
4
4
|
import { dirname, join, resolve } from "node:path";
|
|
5
|
-
import { readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
6
5
|
import { createHash } from "node:crypto";
|
|
6
|
+
import { readFile, rename, unlink, writeFile } from "node:fs/promises";
|
|
7
7
|
import { homedir } from "node:os";
|
|
8
8
|
|
|
9
|
-
//#region ../vision/dist/registry-
|
|
9
|
+
//#region ../vision/dist/registry-DJ-XmFZF.mjs
|
|
10
10
|
const hf = (repo, revision, path$1) => `https://huggingface.co/${repo}/resolve/${revision}/${path$1}`;
|
|
11
11
|
const RTMDET_INS_REPO = "tori29umai/rtmdet-ins-onnx-person-masks";
|
|
12
12
|
const RTMDET_INS_REV = "e5218e8d47d7c50077f27f9893a28e0ef2ad5656";
|
|
@@ -14,6 +14,7 @@ const RTMDET_INS_SOURCE = "RTMDet-Ins (OpenMMLab mmdetection, Apache-2.0), mmdep
|
|
|
14
14
|
const RTMO_SOURCE = "RTMO (OpenMMLab mmpose, Apache-2.0), ONNX export";
|
|
15
15
|
const SELFIE_SOURCE = "MediaPipe Selfie Segmenter (Google, Apache-2.0), ONNX export";
|
|
16
16
|
const DEPTH_SOURCE = "Depth Anything V2 Small (TikTok / HKU, Apache-2.0), ONNX export";
|
|
17
|
+
const VITMATTE_SOURCE = "ViTMatte Small, Distinctions-646 (HUST Vision Lab, code MIT, weights Apache-2.0), ONNX export";
|
|
17
18
|
const models = {
|
|
18
19
|
"rtmdet-ins-t": {
|
|
19
20
|
key: "rtmdet-ins-t",
|
|
@@ -104,6 +105,16 @@ const models = {
|
|
|
104
105
|
sha256: "afb6a5c28f3b6bf1618c6e43f02073ef9dfdc70e937502d51603e57b0a1df10c",
|
|
105
106
|
input: [518, 518],
|
|
106
107
|
source: DEPTH_SOURCE
|
|
108
|
+
},
|
|
109
|
+
"vitmatte-s": {
|
|
110
|
+
key: "vitmatte-s",
|
|
111
|
+
family: "vitmatte",
|
|
112
|
+
filename: "vitmatte-s.onnx",
|
|
113
|
+
url: hf("Xenova/vitmatte-small-distinctions-646", "358d428c452e5e0cd52955011a8b51944731d28e", "onnx/model.onnx"),
|
|
114
|
+
bytes: 103885865,
|
|
115
|
+
sha256: "a1cf48234c369faa3ea1711981d961fe1ec71f51e593f9d6553aa5a0e7d557e3",
|
|
116
|
+
input: [1024, 1024],
|
|
117
|
+
source: VITMATTE_SOURCE
|
|
107
118
|
}
|
|
108
119
|
};
|
|
109
120
|
const VISION_MODELS = models;
|
|
@@ -205,7 +216,7 @@ const COCO_CLASSES = [
|
|
|
205
216
|
];
|
|
206
217
|
|
|
207
218
|
//#endregion
|
|
208
|
-
//#region ../vision/dist/src-
|
|
219
|
+
//#region ../vision/dist/src-B23p_eh7.mjs
|
|
209
220
|
function computeIoU(boxA, boxB) {
|
|
210
221
|
const xA = Math.max(boxA.originX, boxB.originX);
|
|
211
222
|
const yA = Math.max(boxA.originY, boxB.originY);
|
|
@@ -1650,6 +1661,238 @@ var SegmentationTexturePool = class {
|
|
|
1650
1661
|
}
|
|
1651
1662
|
};
|
|
1652
1663
|
/**
|
|
1664
|
+
* Trimaps from hard masks, for alpha matting: pixels well inside the mask are
|
|
1665
|
+
* foreground, pixels well outside are background, and a band of `band` pixels
|
|
1666
|
+
* either side of the edge is unknown, for the matting model to resolve.
|
|
1667
|
+
*/
|
|
1668
|
+
/** Trimap values, as ViTMatte reads them (0, 0.5, 1 on its 0..1 scale). */
|
|
1669
|
+
const TRIMAP_BACKGROUND = 0;
|
|
1670
|
+
const TRIMAP_UNKNOWN = 128;
|
|
1671
|
+
const TRIMAP_FOREGROUND = 255;
|
|
1672
|
+
const FAR = 0x56bc75e2d63100000;
|
|
1673
|
+
/**
|
|
1674
|
+
* Squared Euclidean distance from every pixel to the nearest pixel where
|
|
1675
|
+
* `inside(i)` holds, with that pixel's index (−1 when there is none).
|
|
1676
|
+
* Felzenszwalb and Huttenlocher's two-pass lower envelope, O(width × height).
|
|
1677
|
+
*/
|
|
1678
|
+
function distanceTransform(width, height, inside) {
|
|
1679
|
+
const n = width * height;
|
|
1680
|
+
const columns = new Float32Array(n);
|
|
1681
|
+
const columnFrom = new Int32Array(n);
|
|
1682
|
+
const scratch = envelopeScratch(Math.max(width, height));
|
|
1683
|
+
for (let x = 0; x < width; x++) {
|
|
1684
|
+
for (let y = 0; y < height; y++) scratch.f[y] = inside(y * width + x) ? 0 : FAR;
|
|
1685
|
+
envelope(scratch, height);
|
|
1686
|
+
for (let y = 0; y < height; y++) {
|
|
1687
|
+
columns[y * width + x] = scratch.d[y];
|
|
1688
|
+
columnFrom[y * width + x] = scratch.from[y];
|
|
1689
|
+
}
|
|
1690
|
+
}
|
|
1691
|
+
const distance = new Float32Array(n);
|
|
1692
|
+
const nearest = new Int32Array(n);
|
|
1693
|
+
for (let y = 0; y < height; y++) {
|
|
1694
|
+
const row = y * width;
|
|
1695
|
+
for (let x = 0; x < width; x++) scratch.f[x] = columns[row + x];
|
|
1696
|
+
envelope(scratch, width);
|
|
1697
|
+
for (let x = 0; x < width; x++) {
|
|
1698
|
+
const d = scratch.d[x];
|
|
1699
|
+
const fromX = scratch.from[x];
|
|
1700
|
+
distance[row + x] = d;
|
|
1701
|
+
nearest[row + x] = d >= FAR ? -1 : columnFrom[row + fromX] * width + fromX;
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
return {
|
|
1705
|
+
distance,
|
|
1706
|
+
nearest
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1709
|
+
function envelopeScratch(length) {
|
|
1710
|
+
return {
|
|
1711
|
+
f: new Float64Array(length),
|
|
1712
|
+
d: new Float64Array(length),
|
|
1713
|
+
from: new Int32Array(length),
|
|
1714
|
+
v: new Int32Array(length),
|
|
1715
|
+
z: new Float64Array(length + 1)
|
|
1716
|
+
};
|
|
1717
|
+
}
|
|
1718
|
+
/** One dimension: d[q] = min over p of (q − p)² + f[p]. */
|
|
1719
|
+
function envelope(s, length) {
|
|
1720
|
+
const { f, d, from, v, z } = s;
|
|
1721
|
+
let k = -1;
|
|
1722
|
+
for (let q = 0; q < length; q++) {
|
|
1723
|
+
const fq = f[q];
|
|
1724
|
+
if (fq >= FAR) continue;
|
|
1725
|
+
let cut = Number.NEGATIVE_INFINITY;
|
|
1726
|
+
while (k >= 0) {
|
|
1727
|
+
const p = v[k];
|
|
1728
|
+
cut = (fq + q * q - (f[p] + p * p)) / (2 * (q - p));
|
|
1729
|
+
if (cut > z[k]) break;
|
|
1730
|
+
k--;
|
|
1731
|
+
}
|
|
1732
|
+
k++;
|
|
1733
|
+
v[k] = q;
|
|
1734
|
+
z[k] = k === 0 ? Number.NEGATIVE_INFINITY : cut;
|
|
1735
|
+
z[k + 1] = Number.POSITIVE_INFINITY;
|
|
1736
|
+
}
|
|
1737
|
+
if (k < 0) {
|
|
1738
|
+
d.fill(FAR, 0, length);
|
|
1739
|
+
from.fill(0, 0, length);
|
|
1740
|
+
return;
|
|
1741
|
+
}
|
|
1742
|
+
let j = 0;
|
|
1743
|
+
for (let q = 0; q < length; q++) {
|
|
1744
|
+
while (z[j + 1] < q) j++;
|
|
1745
|
+
const p = v[j];
|
|
1746
|
+
d[q] = (q - p) * (q - p) + f[p];
|
|
1747
|
+
from[q] = p;
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
/**
|
|
1751
|
+
* The trimap of a mask (`mask[i] >= 128` is inside): an unknown band of
|
|
1752
|
+
* `band` px either side of the edge, foreground inside it, background outside.
|
|
1753
|
+
*/
|
|
1754
|
+
function trimapFromMask(mask, width, height, band) {
|
|
1755
|
+
const outside = distanceTransform(width, height, (i) => mask[i] >= 128);
|
|
1756
|
+
const inside = distanceTransform(width, height, (i) => mask[i] < 128);
|
|
1757
|
+
const r2 = band * band;
|
|
1758
|
+
const data = new Uint8Array(width * height);
|
|
1759
|
+
let x0 = width;
|
|
1760
|
+
let y0 = height;
|
|
1761
|
+
let x1 = 0;
|
|
1762
|
+
let y1 = 0;
|
|
1763
|
+
for (let y = 0; y < height; y++) for (let x = 0; x < width; x++) {
|
|
1764
|
+
const i = y * width + x;
|
|
1765
|
+
const isIn = mask[i] >= 128;
|
|
1766
|
+
if ((isIn ? inside.distance[i] : outside.distance[i]) > r2) {
|
|
1767
|
+
data[i] = isIn ? TRIMAP_FOREGROUND : TRIMAP_BACKGROUND;
|
|
1768
|
+
continue;
|
|
1769
|
+
}
|
|
1770
|
+
data[i] = TRIMAP_UNKNOWN;
|
|
1771
|
+
if (x < x0) x0 = x;
|
|
1772
|
+
if (y < y0) y0 = y;
|
|
1773
|
+
if (x >= x1) x1 = x + 1;
|
|
1774
|
+
if (y >= y1) y1 = y + 1;
|
|
1775
|
+
}
|
|
1776
|
+
return {
|
|
1777
|
+
data,
|
|
1778
|
+
width,
|
|
1779
|
+
height,
|
|
1780
|
+
unknown: x1 > x0 ? [
|
|
1781
|
+
x0,
|
|
1782
|
+
y0,
|
|
1783
|
+
x1,
|
|
1784
|
+
y1
|
|
1785
|
+
] : null,
|
|
1786
|
+
nearest: outside.nearest
|
|
1787
|
+
};
|
|
1788
|
+
}
|
|
1789
|
+
/** Default band for a frame: about 1.2% of its short side, 3…40 px (13 px at 1080p). */
|
|
1790
|
+
function defaultMatteBand(width, height) {
|
|
1791
|
+
return Math.min(40, Math.max(3, Math.round(Math.min(width, height) * .012)));
|
|
1792
|
+
}
|
|
1793
|
+
/** ViTMatte's patch grid: both input sides pad to a multiple of 32 (as its image processor does). */
|
|
1794
|
+
const DIVISOR = 32;
|
|
1795
|
+
/**
|
|
1796
|
+
* The window around a trimap's unknown band, grown by `context` px so the
|
|
1797
|
+
* model sees what is on either side, and scaled down when its long side
|
|
1798
|
+
* exceeds `resolution`. Null when there is nothing to resolve.
|
|
1799
|
+
*/
|
|
1800
|
+
function matteWindow(trimap, context, resolution) {
|
|
1801
|
+
if (!trimap.unknown) return null;
|
|
1802
|
+
const [ux0, uy0, ux1, uy1] = trimap.unknown;
|
|
1803
|
+
const x0 = Math.max(0, ux0 - context);
|
|
1804
|
+
const y0 = Math.max(0, uy0 - context);
|
|
1805
|
+
const x1 = Math.min(trimap.width, ux1 + context);
|
|
1806
|
+
const y1 = Math.min(trimap.height, uy1 + context);
|
|
1807
|
+
const scale = Math.min(1, resolution / Math.max(x1 - x0, y1 - y0));
|
|
1808
|
+
const contentWidth = Math.max(1, Math.round((x1 - x0) * scale));
|
|
1809
|
+
const contentHeight = Math.max(1, Math.round((y1 - y0) * scale));
|
|
1810
|
+
return {
|
|
1811
|
+
x0,
|
|
1812
|
+
y0,
|
|
1813
|
+
x1,
|
|
1814
|
+
y1,
|
|
1815
|
+
scale,
|
|
1816
|
+
contentWidth,
|
|
1817
|
+
contentHeight,
|
|
1818
|
+
inputWidth: Math.ceil(contentWidth / DIVISOR) * DIVISOR,
|
|
1819
|
+
inputHeight: Math.ceil(contentHeight / DIVISOR) * DIVISOR
|
|
1820
|
+
};
|
|
1821
|
+
}
|
|
1822
|
+
/**
|
|
1823
|
+
* The model input `[1, 4, H, W]`: RGB as (v / 255 − 0.5) / 0.5, then the
|
|
1824
|
+
* trimap on 0…1. The image is sampled bilinearly, the trimap nearest so its
|
|
1825
|
+
* three levels stay exact; padding is zero in every channel.
|
|
1826
|
+
*/
|
|
1827
|
+
function vitmatteInput(image, trimap, window, out) {
|
|
1828
|
+
const { inputWidth: w, inputHeight: h } = window;
|
|
1829
|
+
const plane = w * h;
|
|
1830
|
+
const tensor = out && out.length >= 4 * plane ? out.subarray(0, 4 * plane) : new Float32Array(4 * plane);
|
|
1831
|
+
tensor.fill(0);
|
|
1832
|
+
const { data, width: sw, height: sh } = image;
|
|
1833
|
+
const inv = 1 / window.scale;
|
|
1834
|
+
for (let y = 0; y < window.contentHeight; y++) {
|
|
1835
|
+
const sy = Math.min(sh - 1, Math.max(0, window.y0 + (y + .5) * inv - .5));
|
|
1836
|
+
const y0 = Math.floor(sy);
|
|
1837
|
+
const y1 = Math.min(sh - 1, y0 + 1);
|
|
1838
|
+
const fy = sy - y0;
|
|
1839
|
+
const ty = Math.min(window.y1 - 1, Math.floor(window.y0 + (y + .5) * inv));
|
|
1840
|
+
for (let x = 0; x < window.contentWidth; x++) {
|
|
1841
|
+
const sx = Math.min(sw - 1, Math.max(0, window.x0 + (x + .5) * inv - .5));
|
|
1842
|
+
const x0 = Math.floor(sx);
|
|
1843
|
+
const x1 = Math.min(sw - 1, x0 + 1);
|
|
1844
|
+
const fx = sx - x0;
|
|
1845
|
+
const o = y * w + x;
|
|
1846
|
+
for (let c = 0; c < 3; c++) {
|
|
1847
|
+
const a = data[(y0 * sw + x0) * 4 + c];
|
|
1848
|
+
const b = data[(y0 * sw + x1) * 4 + c];
|
|
1849
|
+
const d = data[(y1 * sw + x0) * 4 + c];
|
|
1850
|
+
const e = data[(y1 * sw + x1) * 4 + c];
|
|
1851
|
+
const top = a + (b - a) * fx;
|
|
1852
|
+
const v = top + (d + (e - d) * fx - top) * fy;
|
|
1853
|
+
tensor[c * plane + o] = v / 127.5 - 1;
|
|
1854
|
+
}
|
|
1855
|
+
const tx = Math.min(window.x1 - 1, Math.floor(window.x0 + (x + .5) * inv));
|
|
1856
|
+
tensor[3 * plane + o] = trimap.data[ty * trimap.width + tx] / 255;
|
|
1857
|
+
}
|
|
1858
|
+
}
|
|
1859
|
+
return tensor;
|
|
1860
|
+
}
|
|
1861
|
+
/**
|
|
1862
|
+
* The frame's alpha: the trimap's foreground and background as they are,
|
|
1863
|
+
* and the model's alpha (sampled back to source px) across the unknown band.
|
|
1864
|
+
*/
|
|
1865
|
+
function composeMatte(trimap, window, alphas) {
|
|
1866
|
+
const { width } = trimap;
|
|
1867
|
+
const out = Uint8Array.from(trimap.data, (v) => v === TRIMAP_UNKNOWN ? 0 : v);
|
|
1868
|
+
if (!window) return out;
|
|
1869
|
+
const w = window.inputWidth;
|
|
1870
|
+
const maxX = window.contentWidth - 1;
|
|
1871
|
+
const maxY = window.contentHeight - 1;
|
|
1872
|
+
for (let y = window.y0; y < window.y1; y++) {
|
|
1873
|
+
const my = Math.min(maxY, Math.max(0, (y - window.y0 + .5) * window.scale - .5));
|
|
1874
|
+
const my0 = Math.floor(my);
|
|
1875
|
+
const my1 = Math.min(maxY, my0 + 1);
|
|
1876
|
+
const fy = my - my0;
|
|
1877
|
+
for (let x = window.x0; x < window.x1; x++) {
|
|
1878
|
+
const i = y * width + x;
|
|
1879
|
+
if (trimap.data[i] !== TRIMAP_UNKNOWN) continue;
|
|
1880
|
+
const mx = Math.min(maxX, Math.max(0, (x - window.x0 + .5) * window.scale - .5));
|
|
1881
|
+
const mx0 = Math.floor(mx);
|
|
1882
|
+
const mx1 = Math.min(maxX, mx0 + 1);
|
|
1883
|
+
const fx = mx - mx0;
|
|
1884
|
+
const a = alphas[my0 * w + mx0];
|
|
1885
|
+
const b = alphas[my0 * w + mx1];
|
|
1886
|
+
const c = alphas[my1 * w + mx0];
|
|
1887
|
+
const d = alphas[my1 * w + mx1];
|
|
1888
|
+
const top = a + (b - a) * fx;
|
|
1889
|
+
const v = top + (c + (d - c) * fx - top) * fy;
|
|
1890
|
+
out[i] = Math.round(Math.min(1, Math.max(0, v)) * 255);
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
return out;
|
|
1894
|
+
}
|
|
1895
|
+
/**
|
|
1653
1896
|
* Resolves the default model cache directory:
|
|
1654
1897
|
* 1. `FRAMEFIELDS_MODELS_DIR`
|
|
1655
1898
|
* 2. `~/.cache/framefields/models`
|
|
@@ -2915,6 +3158,46 @@ var VisionRunner = class VisionRunner$1 {
|
|
|
2915
3158
|
const dims = predicted.dims;
|
|
2916
3159
|
return decodeDepth(predicted.data, dims[dims.length - 1] ?? input[0], dims[dims.length - 2] ?? input[1]);
|
|
2917
3160
|
}
|
|
3161
|
+
/**
|
|
3162
|
+
* Resolves a hard mask's edge to soft alpha (ViTMatte Small): hair, motion
|
|
3163
|
+
* blur and see-through parts. `mask` is frame-sized, inside where ≥ 128.
|
|
3164
|
+
* Only a band around the edge changes; one model pass covers every part of
|
|
3165
|
+
* the mask, cropped to the band and scaled to `resolution`.
|
|
3166
|
+
*/
|
|
3167
|
+
async refineMatte(image, mask, options = {}) {
|
|
3168
|
+
const { width, height } = image;
|
|
3169
|
+
if (mask.length !== width * height) throw new Error(`refineMatte: the mask has ${mask.length} pixels; the frame has ${width}×${height}.`);
|
|
3170
|
+
const band = Math.max(1, Math.round(options.band ?? defaultMatteBand(width, height)));
|
|
3171
|
+
const key = "vitmatte-s";
|
|
3172
|
+
const trimap = trimapFromMask(mask, width, height, band);
|
|
3173
|
+
const window = matteWindow(trimap, Math.max(32, band * 2), options.resolution ?? VISION_MODELS[key].input[0]);
|
|
3174
|
+
let alphas = [];
|
|
3175
|
+
if (window) {
|
|
3176
|
+
const pixels = isGpuImage(image) ? await readTexturePixels(image) : image;
|
|
3177
|
+
alphas = output(await this.queued(key, async () => {
|
|
3178
|
+
const session = await this.session(key);
|
|
3179
|
+
const scratch = this._core.tensorScratch;
|
|
3180
|
+
const data = vitmatteInput(pixels, trimap, window, scratch.get(key));
|
|
3181
|
+
if (data.buffer !== scratch.get(key)?.buffer) scratch.set(key, data);
|
|
3182
|
+
return session.run({
|
|
3183
|
+
name: "pixel_values",
|
|
3184
|
+
data,
|
|
3185
|
+
dims: [
|
|
3186
|
+
1,
|
|
3187
|
+
4,
|
|
3188
|
+
window.inputHeight,
|
|
3189
|
+
window.inputWidth
|
|
3190
|
+
]
|
|
3191
|
+
});
|
|
3192
|
+
}), "alphas", key).data;
|
|
3193
|
+
}
|
|
3194
|
+
return {
|
|
3195
|
+
mask: composeMatte(trimap, window, alphas),
|
|
3196
|
+
width,
|
|
3197
|
+
height,
|
|
3198
|
+
nearest: trimap.nearest
|
|
3199
|
+
};
|
|
3200
|
+
}
|
|
2918
3201
|
close() {
|
|
2919
3202
|
if (!this._ownsCore) return;
|
|
2920
3203
|
const core = this._core;
|
|
@@ -2965,8 +3248,12 @@ var VisionRunner = class VisionRunner$1 {
|
|
|
2965
3248
|
* the input scratch buffer, and one run already uses the session's threads.
|
|
2966
3249
|
*/
|
|
2967
3250
|
infer(key, image, input) {
|
|
3251
|
+
return this.queued(key, () => this.inferNow(key, image, input));
|
|
3252
|
+
}
|
|
3253
|
+
/** Runs `fn` after the model's earlier runs: one inference per session at a time. */
|
|
3254
|
+
queued(key, fn) {
|
|
2968
3255
|
const queue = this._core.runQueue;
|
|
2969
|
-
const run = (queue.get(key) ?? Promise.resolve()).then(
|
|
3256
|
+
const run = (queue.get(key) ?? Promise.resolve()).then(fn, fn);
|
|
2970
3257
|
const tail = run.catch(() => void 0);
|
|
2971
3258
|
queue.set(key, tail);
|
|
2972
3259
|
tail.then(() => {
|
|
@@ -4380,5 +4667,5 @@ var VisionNode = class VisionNode$1 {
|
|
|
4380
4667
|
};
|
|
4381
4668
|
|
|
4382
4669
|
//#endregion
|
|
4383
|
-
export {
|
|
4384
|
-
//# sourceMappingURL=src-
|
|
4670
|
+
export { sessionCompute as A, maskObject as C, pinNodeToObject as D, pinNodeToLandmark as E, VISION_MODELS as F, registerVisionModel as I, strings as M, varint as N, readTexturePixels as O, COCO_CLASSES as P, maskBounds as S, mergeSubjectMask as T, encoder as _, PoseSkeletonRenderer as a, imageToTensor as b, TemporalObjectTracker as c, VisionNode as d, VisionRunner as f, defaultMatteBand as g, createDefaultSessionProvider as h, COCO17_KEYPOINT_NAMES as i, setVisionDevice as j, readVarint as k, VisionBundle as l, concat as m, COCO17_BONES as n, SegmentationTexturePool as o, analyzeSequence as p, COCO17_KEYPOINTS as r, SpatialLandmarkTransformer as s, CLIP_SUBJECT as t, VisionModelStore as u, fields as v, matchPoseToTracks as w, lengthDelimited as x, firstString as y };
|
|
4671
|
+
//# sourceMappingURL=src-B23p_eh7-Cj6-lvV6.mjs.map
|