@annotorious/plugin-segment-anything 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{sam2-worker-CtByxq2p.js → sam2-worker-Ds8tqCQ5.js} +2 -2
- package/dist/assets/{sam2-worker-CtByxq2p.js.map → sam2-worker-Ds8tqCQ5.js.map} +1 -1
- package/dist/{get-image-bounds-6QFs6_Gs.js → get-image-bounds-uVAZj3ys.js} +2 -2
- package/dist/{get-image-bounds-6QFs6_Gs.js.map → get-image-bounds-uVAZj3ys.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/openseadragon/index.js +112 -109
- package/dist/openseadragon/index.js.map +1 -1
- package/dist/sam2/sam2-worker-messages.d.ts +5 -1
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -4462,5 +4462,5 @@ ${E}`,o=B.createShaderModule({code:R,label:A.name});$e("verbose",()=>`[WebGPU] $
|
|
|
4462
4462
|
*
|
|
4463
4463
|
* SPDX-License-Identifier: Apache-2.0
|
|
4464
4464
|
*)
|
|
4465
|
-
*/const getFilename=A=>{const I=A.split(/[?#]/)[0];return I.substring(I.lastIndexOf("/")+1)},loadModel=async A=>{const I=await navigator.storage.getDirectory(),B=getFilename(A),U=await I.getFileHandle(B).catch(()=>{});if(U){const w=await U.getFile();if(console.log(`[a9s-sam] Cached: ${B.substring(0,B.indexOf("."))}`),w.size>1e7)return await w.arrayBuffer();I.removeEntry(B)}try{console.log(`[a9s-sam] Downloading ${B}`);const w=await fetch(A).then(o=>o.arrayBuffer()),E=await I.getFileHandle(B,{create:!0});console.log("[a9s-sam] Writing to cache");const R=await E.createWritable();return await R.write(w),await R.close(),w}catch(w){throw console.error(w),new Error(`Download failed: ${A}`)}},BASE_PATH="https://huggingface.co/g-ronimo/sam2-tiny/resolve/main",createSAM2=(A=BASE_PATH)=>{let I=null,B=null,U=!1,w=!1,E=null,R=null;const o=()=>Promise.all([loadModel(`${A}/sam2_hiera_tiny_encoder.with_runtime_opt.ort`),loadModel(`${A}/sam2_hiera_tiny_decoder_pr1.onnx`)]).then(M=>Promise.all(M.map(y=>h(y)))).then(([M,y])=>{I=M,B=y}).catch(M=>{throw console.error("[a9s-sam] Initialization failed:",M),M}),h=M=>Iw.create(M,{executionProviders:["webgpu"],logSeverityLevel:3});return{init:o,encodeImage:(M,y)=>{if(!I)return Promise.reject("[a9s-sam] Encoder not initialized");if(U)return Promise.reject("[a9s-sam] Encoder busy");U=!0;const s=performance.now(),j=[...I.outputNames];return I.run({image:M}).then(Y=>{console.log(`[a9s-sam] Encoding took ${Math.round(performance.now()-s)}ms`),R={high_res_feats_0:Y[j[0]],high_res_feats_1:Y[j[1]],image_embed:Y[j[2]]},E=y,U=!1}).catch(Y=>{throw console.error(Y),U=!1,"Encoding failed"})},decode:M=>{if(!(B&&I&&R))return Promise.reject("SAM2 not ready");if(U||w)return Promise.reject("SAM2 busy");w=!0;const j=[...M.include,...M.exclude].map(l=>[l.x,l.y]),Y=[...M.include.map(()=>1),...M.exclude.map(()=>0)],c=new nt("float32",new Float32Array(256*256),[1,1,256,256]),a={...R,point_coords:new nt("float32",j.flat(),[1,j.length,2]),point_labels:new nt("float32",Y,[1,Y.length]),mask_input:c,has_mask_input:new nt("float32",[0],[1])};return B.run(a).then(l=>(w=!1,{result:l,viewportVersion:E})).catch(l=>{throw console.error(l),w=!1,l})}}},SAM2=createSAM2();let previewBusy=!1,pendingPreview=null;const decodePreview=A=>(previewBusy=!0,SAM2.decode({include:[A],exclude:[]}).then(({result:I,viewportVersion:B})=>{self.postMessage({type:"decode_preview_success",result:I,viewportVersion:B})}).catch(I=>{self.postMessage({type:"
|
|
4466
|
-
//# sourceMappingURL=sam2-worker-
|
|
4465
|
+
*/const getFilename=A=>{const I=A.split(/[?#]/)[0];return I.substring(I.lastIndexOf("/")+1)},loadModel=async A=>{const I=await navigator.storage.getDirectory(),B=getFilename(A),U=await I.getFileHandle(B).catch(()=>{});if(U){const w=await U.getFile();if(console.log(`[a9s-sam] Cached: ${B.substring(0,B.indexOf("."))}`),w.size>1e7)return await w.arrayBuffer();I.removeEntry(B)}try{console.log(`[a9s-sam] Downloading ${B}`);const w=await fetch(A).then(o=>o.arrayBuffer()),E=await I.getFileHandle(B,{create:!0});console.log("[a9s-sam] Writing to cache");const R=await E.createWritable();return await R.write(w),await R.close(),w}catch(w){throw console.error(w),new Error(`Download failed: ${A}`)}},BASE_PATH="https://huggingface.co/g-ronimo/sam2-tiny/resolve/main",createSAM2=(A=BASE_PATH)=>{let I=null,B=null,U=!1,w=!1,E=null,R=null;const o=()=>Promise.all([loadModel(`${A}/sam2_hiera_tiny_encoder.with_runtime_opt.ort`),loadModel(`${A}/sam2_hiera_tiny_decoder_pr1.onnx`)]).then(M=>Promise.all(M.map(y=>h(y)))).then(([M,y])=>{I=M,B=y}).catch(M=>{throw console.error("[a9s-sam] Initialization failed:",M),M}),h=M=>Iw.create(M,{executionProviders:["webgpu"],logSeverityLevel:3});return{init:o,encodeImage:(M,y)=>{if(!I)return Promise.reject("[a9s-sam] Encoder not initialized");if(U)return Promise.reject("[a9s-sam] Encoder busy");U=!0;const s=performance.now(),j=[...I.outputNames];return I.run({image:M}).then(Y=>{console.log(`[a9s-sam] Encoding took ${Math.round(performance.now()-s)}ms`),R={high_res_feats_0:Y[j[0]],high_res_feats_1:Y[j[1]],image_embed:Y[j[2]]},E=y,U=!1}).catch(Y=>{throw console.error(Y),U=!1,"Encoding failed"})},decode:M=>{if(!(B&&I&&R))return Promise.reject("SAM2 not ready");if(U||w)return Promise.reject("SAM2 busy");w=!0;const j=[...M.include,...M.exclude].map(l=>[l.x,l.y]),Y=[...M.include.map(()=>1),...M.exclude.map(()=>0)],c=new nt("float32",new Float32Array(256*256),[1,1,256,256]),a={...R,point_coords:new nt("float32",j.flat(),[1,j.length,2]),point_labels:new nt("float32",Y,[1,Y.length]),mask_input:c,has_mask_input:new nt("float32",[0],[1])};return B.run(a).then(l=>(w=!1,{result:l,viewportVersion:E})).catch(l=>{throw console.error(l),w=!1,l})}}},SAM2=createSAM2();let previewBusy=!1,pendingPreview=null;const decodePreview=A=>(previewBusy=!0,SAM2.decode({include:[A],exclude:[]}).then(({result:I,viewportVersion:B})=>{self.postMessage({type:"decode_preview_success",result:I,viewportVersion:B})}).catch(I=>{self.postMessage({type:"decode_preview_error",error:I})}).finally(()=>{if(pendingPreview){const I=pendingPreview;return pendingPreview=null,decodePreview(I)}else previewBusy=!1}));self.onmessage=A=>{const{type:I}=A.data;if(I==="init")SAM2.init().then(()=>self.postMessage({type:"init_success"})).catch(B=>self.postMessage({type:"init_error",error:B}));else if(I==="encode"){const{data:{float32Array:B,shape:U},viewportVersion:w}=A.data;console.log(`[a9s-sam] Encoding${w?` - ${w}`:""}`),SAM2.encodeImage(new nt("float32",B,U),w).then(()=>{self.postMessage({type:"encode_success",viewportVersion:w})}).catch(E=>{console.log(`[annotorious-sam] Encoding failed ${w||""}`),self.postMessage({type:"encode_error",error:E,viewportVersion:w})})}else I==="decode_preview"?previewBusy?pendingPreview=A.data.point:decodePreview(A.data.point):I==="decode"&&SAM2.decode(A.data.prompt).then(({result:B,viewportVersion:U})=>self.postMessage({type:"decode_success",result:B,viewportVersion:U})).catch(B=>self.postMessage({type:"decode_error",error:B}))}})();
|
|
4466
|
+
//# sourceMappingURL=sam2-worker-Ds8tqCQ5.js.map
|