@jax-data-science/sci-image-visualizer 0.2.2 → 0.2.4
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/README.md +5 -3
- package/esm2022/lib/toolbar/segmentation/cellpose-segmenter.service.mjs +6 -5
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs +5 -4
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
- package/lib/toolbar/segmentation/cellpose-segmenter.service.d.ts +5 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -43,11 +43,13 @@ npm install @angular/animations @angular/router primeng \
|
|
|
43
43
|
| `file-saver` | `^2.0.5` | GeoJSON / mask export |
|
|
44
44
|
| `buffer` | `^5.7.1` | |
|
|
45
45
|
| `onnxruntime-web` | `~1.26.0` | browser SAM / cellpose inference (WebGPU/WASM) |
|
|
46
|
-
| `cellpose-js` | `^0.3.0` | automatic cellpose-SAM segmentation |
|
|
47
46
|
|
|
48
47
|
The rendering backends and helpers — `openseadragon`, `plotly.js-dist-min`,
|
|
49
|
-
`napari-js`, `fast-png`, and `tslib` — are declared as regular
|
|
50
|
-
and installed automatically; you don't add them yourself.
|
|
48
|
+
`napari-js`, `cellpose-js`, `fast-png`, and `tslib` — are declared as regular
|
|
49
|
+
**dependencies** and installed automatically; you don't add them yourself.
|
|
50
|
+
`cellpose-js` is still lazy-imported at runtime, so apps that never open the
|
|
51
|
+
Cellpose tool don't pay for it in the bundle — but it does need
|
|
52
|
+
`onnxruntime-web` (its own peer, listed above) present. See
|
|
51
53
|
[Quick start](#usage-host-integration-brief) below for wiring.
|
|
52
54
|
|
|
53
55
|
## Live demo & running the example
|
|
@@ -6,10 +6,11 @@ const DEFAULT_MODEL_URL = 'https://huggingface.co/ballon999/cellpose-sam-onnx/re
|
|
|
6
6
|
/**
|
|
7
7
|
* Default in-library {@link ICellSegmenter} backed by cellpose-js (WebGPU/WASM
|
|
8
8
|
* ONNX) — so the toolbar's automatic **Cellpose** tool works out of the box in
|
|
9
|
-
* any app, with no host wiring (jit-ui#90). `cellpose-js` is a
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* any app, with no host wiring (jit-ui#90). `cellpose-js` is a regular
|
|
10
|
+
* dependency — installed automatically, like `napari-js` — but it is
|
|
11
|
+
* **lazy-imported** on first use, so apps that never run Cellpose pay nothing
|
|
12
|
+
* for it in the bundle. A host can still override the {@link CELL_SEGMENTER}
|
|
13
|
+
* token to supply a different implementation.
|
|
13
14
|
*
|
|
14
15
|
* Owns a single shared {@link Cellpose} instance (one model load, one WebGPU
|
|
15
16
|
* session, one worker). {@link getModel} exposes that instance so a host's
|
|
@@ -81,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
|
|
|
81
82
|
type: Injectable,
|
|
82
83
|
args: [{ providedIn: 'root' }]
|
|
83
84
|
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbHBvc2Utc2VnbWVudGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rvb2xiYXIvc2VnbWVudGF0aW9uL2NlbGxwb3NlLXNlZ21lbnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUt0RCxnRkFBZ0Y7QUFDaEYsTUFBTSxpQkFBaUIsR0FDckIsaUZBQWlGLENBQUM7QUFFcEY7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVVLGFBQVEsR0FBb0IsSUFBSSxDQUFDO1FBQ2pDLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxpQkFBaUIsQ0FBQztLQXNFdEM7SUFwRUMsK0VBQStFO0lBQy9FLFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUNoQixLQUFpRSxFQUNqRSxRQUE4QjtRQUU5QixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQzVCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksS0FBSztnQkFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3JDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDekIsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUMsRUFDRCxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUN6QyxDQUFDO1FBQ0YsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUMxQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFDM0U7WUFDRSwwRUFBMEU7WUFDMUUseUVBQXlFO1lBQ3pFLDBDQUEwQztZQUMxQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQ25ELElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUN6RjtTQUNGLENBQ0YsQ0FBQztRQUNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLENBQ04sVUFBMkQsRUFDM0QsUUFBbUM7UUFFbkMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pCLHNFQUFzRTtnQkFDdEUsTUFBTSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDL0QsWUFBWSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3RELE9BQU8sRUFBRSxJQUFJO29CQUNiLFVBQVUsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO29CQUM5RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDL0IsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCx5REFBeUQ7SUFDekQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDaEMsQ0FBQzs4R0F4RVUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldE9ydFdhc21CYXNlIH0gZnJvbSAnLi9vcnQtcnVudGltZS1jb25maWcnO1xuXG5pbXBvcnQgdHlwZSB7IElDZWxsU2VnbWVudGVyLCBDZWxsU2VnbWVudGF0aW9uLCBDZWxsU2VnbWVudFByb2dyZXNzIH0gZnJvbSAnLi4vLi4vY29udHJhY3RzL2NlbGwtc2VnbWVudGVyLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgQ2VsbHBvc2UgfSBmcm9tICdjZWxscG9zZS1qcyc7XG5cbi8qKiBIb3N0ZWQgY2VsbHBvc2UtU0FNIE9OTlggKENQU0FNLCBmcDE2KS4gT3ZlcnJpZGUgdmlhIHtAbGluayBzZXRNb2RlbFVybH0uICovXG5jb25zdCBERUZBVUxUX01PREVMX1VSTCA9XG4gICdodHRwczovL2h1Z2dpbmdmYWNlLmNvL2JhbGxvbjk5OS9jZWxscG9zZS1zYW0tb25ueC9yZXNvbHZlL21haW4vY3BzYW1fZnAxNi5vbm54JztcblxuLyoqXG4gKiBEZWZhdWx0IGluLWxpYnJhcnkge0BsaW5rIElDZWxsU2VnbWVudGVyfSBiYWNrZWQgYnkgY2VsbHBvc2UtanMgKFdlYkdQVS9XQVNNXG4gKiBPTk5YKSDigJQgc28gdGhlIHRvb2xiYXIncyBhdXRvbWF0aWMgKipDZWxscG9zZSoqIHRvb2wgd29ya3Mgb3V0IG9mIHRoZSBib3ggaW5cbiAqIGFueSBhcHAsIHdpdGggbm8gaG9zdCB3aXJpbmcgKGppdC11aSM5MCkuIGBjZWxscG9zZS1qc2AgaXMgYSByZWd1bGFyXG4gKiBkZXBlbmRlbmN5IOKAlCBpbnN0YWxsZWQgYXV0b21hdGljYWxseSwgbGlrZSBgbmFwYXJpLWpzYCDigJQgYnV0IGl0IGlzXG4gKiAqKmxhenktaW1wb3J0ZWQqKiBvbiBmaXJzdCB1c2UsIHNvIGFwcHMgdGhhdCBuZXZlciBydW4gQ2VsbHBvc2UgcGF5IG5vdGhpbmdcbiAqIGZvciBpdCBpbiB0aGUgYnVuZGxlLiBBIGhvc3QgY2FuIHN0aWxsIG92ZXJyaWRlIHRoZSB7QGxpbmsgQ0VMTF9TRUdNRU5URVJ9XG4gKiB0b2tlbiB0byBzdXBwbHkgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24uXG4gKlxuICogT3ducyBhIHNpbmdsZSBzaGFyZWQge0BsaW5rIENlbGxwb3NlfSBpbnN0YW5jZSAob25lIG1vZGVsIGxvYWQsIG9uZSBXZWJHUFVcbiAqIHNlc3Npb24sIG9uZSB3b3JrZXIpLiB7QGxpbmsgZ2V0TW9kZWx9IGV4cG9zZXMgdGhhdCBpbnN0YW5jZSBzbyBhIGhvc3Qnc1xuICogcHJvY2Vzc2luZyBwaXBlbGluZSBjYW4gcmV1c2UgaXQgaW5zdGVhZCBvZiBsb2FkaW5nIHRoZSB+NTg4IE1CIG1vZGVsIHR3aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENlbGxwb3NlU2VnbWVudGVyU2VydmljZSBpbXBsZW1lbnRzIElDZWxsU2VnbWVudGVyIHtcbiAgcHJpdmF0ZSBpbnN0YW5jZTogQ2VsbHBvc2UgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2FkaW5nOiBQcm9taXNlPENlbGxwb3NlPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1vZGVsVXJsID0gREVGQVVMVF9NT0RFTF9VUkw7XG5cbiAgLyoqIFBvaW50IHRoZSBzZWdtZW50ZXIgYXQgYSBkaWZmZXJlbnQgaG9zdGVkIENQU0FNIE9OTlggKGJlZm9yZSBmaXJzdCB1c2UpLiAqL1xuICBzZXRNb2RlbFVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubW9kZWxVcmwgPSB1cmw7XG4gIH1cblxuICBhc3luYyBzZWdtZW50Q2VsbHMoXG4gICAgaW1hZ2U6IHsgZGF0YTogVWludDhDbGFtcGVkQXJyYXk7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0sXG4gICAgcHJvZ3Jlc3M/OiBDZWxsU2VnbWVudFByb2dyZXNzLFxuICApOiBQcm9taXNlPENlbGxTZWdtZW50YXRpb24+IHtcbiAgICBsZXQgYW5ub3VuY2VkRG93bmxvYWQgPSBmYWxzZTtcbiAgICBjb25zdCBjcCA9IGF3YWl0IHRoaXMuZ2V0TW9kZWwoXG4gICAgICAobG9hZGVkLCB0b3RhbCkgPT4ge1xuICAgICAgICBpZiAodG90YWwpIHByb2dyZXNzPy5vblByb2dyZXNzPy4obG9hZGVkIC8gdG90YWwpO1xuICAgICAgICBpZiAobG9hZGVkID4gMCAmJiAhYW5ub3VuY2VkRG93bmxvYWQpIHtcbiAgICAgICAgICBhbm5vdW5jZWREb3dubG9hZCA9IHRydWU7XG4gICAgICAgICAgcHJvZ3Jlc3M/Lm9uU3RhdHVzPy4oJ0Rvd25sb2FkaW5nIENlbGxwb3NlLVNBTSBtb2RlbOKApicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKHN0YXR1cykgPT4gcHJvZ3Jlc3M/Lm9uU3RhdHVzPy4oc3RhdHVzKSxcbiAgICApO1xuICAgIHByb2dyZXNzPy5vblN0YXR1cz8uKCdQcmVwcm9jZXNzaW5nIGltYWdl4oCmJyk7XG4gICAgY29uc3Qgb3V0ID0gYXdhaXQgY3Auc2VnbWVudChcbiAgICAgIHsgZGF0YTogaW1hZ2UuZGF0YSwgd2lkdGg6IGltYWdlLndpZHRoLCBoZWlnaHQ6IGltYWdlLmhlaWdodCwgY2hhbm5lbHM6IDQgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gY2VsbHBvc2UtanMgcnVucyBpbmZlcmVuY2UgaW4gaXRzIHdvcmtlciAodGhlc2UgZmlyZSBiZXR3ZWVuIHRpbGVzKSBhbmRcbiAgICAgICAgLy8gYXZlcmFnaW5nL2R5bmFtaWNzIG9uIHRoZSBtYWluIHRocmVhZDsgc3VyZmFjZSBib3RoIHNvIHRoZSB0b2FzdCBzaG93c1xuICAgICAgICAvLyByZWFsIHByb2dyZXNzIGluc3RlYWQgb2YgbG9va2luZyBzdHVjay5cbiAgICAgICAgb25UaWxlUHJvZ3Jlc3M6IChkb25lLCB0b3RhbCkgPT4gcHJvZ3Jlc3M/Lm9uU3RhdHVzPy4oXG4gICAgICAgICAgZG9uZSA8IHRvdGFsID8gYFJ1bm5pbmcgaW5mZXJlbmNlICh0aWxlICR7ZG9uZX0vJHt0b3RhbH0p4oCmYCA6ICdDb21wdXRpbmcgZmxvdyBkeW5hbWljc+KApicsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIHsgbGFiZWxzOiBvdXQubWFza3MsIHdpZHRoOiBvdXQud2lkdGgsIGhlaWdodDogb3V0LmhlaWdodCwgY291bnQ6IG91dC5jb3VudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzaGFyZWQgQ2VsbHBvc2UgaW5zdGFuY2UsIGxhemlseSBjcmVhdGVkIG9uIGZpcnN0IHVzZSBhbmQgcmV1c2VkXG4gICAqIHRoZXJlYWZ0ZXIgKGRlZHVwZWQgYWNyb3NzIGNvbmN1cnJlbnQgY2FsbGVycykuIEV4cG9zZWQgc28gYSBob3N0IHBpcGVsaW5lXG4gICAqIGVuZ2luZSBjYW4gcnVuIHJpY2hlciBgc2VnbWVudCgpYCBvcHRpb25zIG9uIHRoZSBzYW1lIGluc3RhbmNlLiBgb25Qcm9ncmVzc2BcbiAgICogcmVwb3J0cyByYXcgZG93bmxvYWRlZC90b3RhbCBieXRlcyAoYHRvdGFsYCBpcyBudWxsIHdoZW4gdW5rbm93bik7IGBvblN0YXR1c2BcbiAgICogcmVwb3J0cyB3b3JrZXItaW5pdCBwaGFzZSBzdHJpbmdzLlxuICAgKi9cbiAgZ2V0TW9kZWwoXG4gICAgb25Qcm9ncmVzcz86IChsb2FkZWQ6IG51bWJlciwgdG90YWw6IG51bWJlciB8IG51bGwpID0+IHZvaWQsXG4gICAgb25TdGF0dXM/OiAoc3RhdHVzOiBzdHJpbmcpID0+IHZvaWQsXG4gICk6IFByb21pc2U8Q2VsbHBvc2U+IHtcbiAgICBpZiAodGhpcy5pbnN0YW5jZSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmluc3RhbmNlKTtcbiAgICBpZiAoIXRoaXMubG9hZGluZykge1xuICAgICAgdGhpcy5sb2FkaW5nID0gKGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gTGF6eToga2VlcCBjZWxscG9zZS1qcyArIGl0cyBPUlQgcnVudGltZSBvdXQgb2YgdGhlIGluaXRpYWwgYnVuZGxlLlxuICAgICAgICBjb25zdCB7IENlbGxwb3NlLCBjb25maWd1cmVPcnQgfSA9IGF3YWl0IGltcG9ydCgnY2VsbHBvc2UtanMnKTtcbiAgICAgICAgY29uZmlndXJlT3J0KHsgd2FzbVBhdGhzOiBnZXRPcnRXYXNtQmFzZSgpIH0pO1xuICAgICAgICBjb25zdCBjcCA9IGF3YWl0IENlbGxwb3NlLmZyb21QcmV0cmFpbmVkKHRoaXMubW9kZWxVcmwsIHtcbiAgICAgICAgICBwcmVsb2FkOiB0cnVlLFxuICAgICAgICAgIG9uUHJvZ3Jlc3M6ICh7IGxvYWRlZCwgdG90YWwgfSkgPT4gb25Qcm9ncmVzcz8uKGxvYWRlZCwgdG90YWwpLFxuICAgICAgICAgIG9uU3RhdHVzOiAocykgPT4gb25TdGF0dXM/LihzKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBjcDtcbiAgICAgICAgcmV0dXJuIGNwO1xuICAgICAgfSkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZztcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBzaGFyZWQgbW9kZWwgaXMgYWxyZWFkeSBsb2FkZWQgKHdhcm0pLiAqL1xuICBpc0xvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnN0YW5jZSAhPT0gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -308,10 +308,11 @@ const DEFAULT_MODEL_URL = 'https://huggingface.co/ballon999/cellpose-sam-onnx/re
|
|
|
308
308
|
/**
|
|
309
309
|
* Default in-library {@link ICellSegmenter} backed by cellpose-js (WebGPU/WASM
|
|
310
310
|
* ONNX) — so the toolbar's automatic **Cellpose** tool works out of the box in
|
|
311
|
-
* any app, with no host wiring (jit-ui#90). `cellpose-js` is a
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
311
|
+
* any app, with no host wiring (jit-ui#90). `cellpose-js` is a regular
|
|
312
|
+
* dependency — installed automatically, like `napari-js` — but it is
|
|
313
|
+
* **lazy-imported** on first use, so apps that never run Cellpose pay nothing
|
|
314
|
+
* for it in the bundle. A host can still override the {@link CELL_SEGMENTER}
|
|
315
|
+
* token to supply a different implementation.
|
|
315
316
|
*
|
|
316
317
|
* Owns a single shared {@link Cellpose} instance (one model load, one WebGPU
|
|
317
318
|
* session, one worker). {@link getModel} exposes that instance so a host's
|