mirror of
https://github.com/huggingface/candle.git
synced 2025-06-18 19:47:12 +00:00
force model cache (#751)
This commit is contained in:
@ -1,6 +1,19 @@
|
||||
//load the candle yolo wasm module
|
||||
import init, { Model, ModelPose } from "./build/m.js";
|
||||
|
||||
async function fetchArrayBuffer(url) {
|
||||
const cacheName = "yolo-candle-cache";
|
||||
const cache = await caches.open(cacheName);
|
||||
const cachedResponse = await cache.match(url);
|
||||
if (cachedResponse) {
|
||||
const data = await cachedResponse.arrayBuffer();
|
||||
return new Uint8Array(data);
|
||||
}
|
||||
const res = await fetch(url, { cache: "force-cache" });
|
||||
cache.put(url, res.clone());
|
||||
return new Uint8Array(await res.arrayBuffer());
|
||||
}
|
||||
|
||||
class Yolo {
|
||||
static instance = {};
|
||||
// Retrieve the YOLO model. When called for the first time,
|
||||
@ -11,9 +24,7 @@ class Yolo {
|
||||
await init();
|
||||
|
||||
self.postMessage({ status: `loading model ${modelID}:${modelSize}` });
|
||||
const modelRes = await fetch(modelURL);
|
||||
const yoloArrayBuffer = await modelRes.arrayBuffer();
|
||||
const weightsArrayU8 = new Uint8Array(yoloArrayBuffer);
|
||||
const weightsArrayU8 = await fetchArrayBuffer(modelURL);
|
||||
if (/pose/.test(modelID)) {
|
||||
// if pose model, use ModelPose
|
||||
this.instance[modelID] = new ModelPose(weightsArrayU8, modelSize);
|
||||
|
Reference in New Issue
Block a user