diffusionstudio / vits-web

Web api for using VITS based models in the browser!
https://huggingface.co/spaces/diffusionstudio/vits-web
155 stars 15 forks source link

Not compatible with onnxruntime-web >= 1.19.0 #8

Open pocka opened 2 months ago

pocka commented 2 months ago

This package uses^1 a versioned WASM binary file of ONNX runtime Web fetched from CDN^2. Due to the WASM file is for onnxruntime-web@1.18.0 and onnxruntime-web@1.19.0 seems not to be compatible with that WASM file, using this library with onnxruntime-web@1.19.0 (and probably later versions) throws an exception at predict().

# Firefox (no stack trace...)
RuntimeError: indirect call to null [ort-wasm-simd-threaded.wasm:7257016:1](https://cdnjs.cloudflare.com/ajax/libs/onnxruntime-web/1.18.0/ort-wasm-simd-threaded.wasm)

# Chrome
ort-wasm-simd-threaded.wasm:0x6ebbb8 
Uncaught (in promise) RuntimeError: null function or function signature mismatch
    at ort-wasm-simd-threaded.wasm:0x6ebbb8
    at Jr (onnxruntime-web.js?v=a0152505:13175:39)
    at Xa (onnxruntime-web.js?v=a0152505:13585:129)
    at c (onnxruntime-web.js?v=a0152505:13588:13)
    at we (onnxruntime-web.js?v=a0152505:13069:20)
    at onnxruntime-web.js?v=a0152505:13555:17

Adding an escape-hatch like #7 would solve this problem. Or, narrowing peerDependencies.onnxruntime-web to 1.18.x would reduce the chance of users installing >= 1.19.0. As a workaround, users can avoid the error by pinning onnxruntime-web to 1.18.0 in project's package.json.

Steps to reproduce

  1. Clone this repository
  2. Delete package-lock.json
  3. Install dependencies (npm i)
  4. Run npm run dev
  5. Open the page (http://localhost:5173)
  6. Open browser console
  7. Press Predict
  8. An error appears on the console