edgeflowjs 0.1.0 → 0.3.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.
Files changed (152) hide show
  1. package/README.md +200 -66
  2. package/dist/backends/index.d.ts +9 -2
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/index.js +13 -13
  5. package/dist/backends/index.js.map +1 -1
  6. package/dist/backends/onnx.d.ts +49 -4
  7. package/dist/backends/onnx.d.ts.map +1 -1
  8. package/dist/backends/onnx.js +165 -76
  9. package/dist/backends/onnx.js.map +1 -1
  10. package/dist/backends/transformers-adapter.d.ts +99 -0
  11. package/dist/backends/transformers-adapter.d.ts.map +1 -0
  12. package/dist/backends/transformers-adapter.js +171 -0
  13. package/dist/backends/transformers-adapter.js.map +1 -0
  14. package/dist/backends/webgpu.d.ts +7 -5
  15. package/dist/backends/webgpu.d.ts.map +1 -1
  16. package/dist/backends/webgpu.js +7 -5
  17. package/dist/backends/webgpu.js.map +1 -1
  18. package/dist/backends/webnn.d.ts +6 -5
  19. package/dist/backends/webnn.d.ts.map +1 -1
  20. package/dist/backends/webnn.js +6 -5
  21. package/dist/backends/webnn.js.map +1 -1
  22. package/dist/core/composer.d.ts +118 -0
  23. package/dist/core/composer.d.ts.map +1 -0
  24. package/dist/core/composer.js +163 -0
  25. package/dist/core/composer.js.map +1 -0
  26. package/dist/core/device-profiler.d.ts +75 -0
  27. package/dist/core/device-profiler.d.ts.map +1 -0
  28. package/dist/core/device-profiler.js +131 -0
  29. package/dist/core/device-profiler.js.map +1 -0
  30. package/dist/core/index.d.ts +4 -0
  31. package/dist/core/index.d.ts.map +1 -1
  32. package/dist/core/index.js +8 -0
  33. package/dist/core/index.js.map +1 -1
  34. package/dist/core/memory.d.ts +22 -2
  35. package/dist/core/memory.d.ts.map +1 -1
  36. package/dist/core/memory.js +49 -13
  37. package/dist/core/memory.js.map +1 -1
  38. package/dist/core/plugin.d.ts +100 -0
  39. package/dist/core/plugin.d.ts.map +1 -0
  40. package/dist/core/plugin.js +106 -0
  41. package/dist/core/plugin.js.map +1 -0
  42. package/dist/core/runtime.d.ts +4 -0
  43. package/dist/core/runtime.d.ts.map +1 -1
  44. package/dist/core/runtime.js +18 -0
  45. package/dist/core/runtime.js.map +1 -1
  46. package/dist/core/scheduler.d.ts +17 -0
  47. package/dist/core/scheduler.d.ts.map +1 -1
  48. package/dist/core/scheduler.js +101 -3
  49. package/dist/core/scheduler.js.map +1 -1
  50. package/dist/core/types.d.ts +14 -0
  51. package/dist/core/types.d.ts.map +1 -1
  52. package/dist/core/types.js.map +1 -1
  53. package/dist/core/worker.d.ts +202 -0
  54. package/dist/core/worker.d.ts.map +1 -0
  55. package/dist/core/worker.js +477 -0
  56. package/dist/core/worker.js.map +1 -0
  57. package/dist/edgeflow.browser.js +9789 -4379
  58. package/dist/edgeflow.browser.js.map +4 -4
  59. package/dist/edgeflow.browser.min.js +435 -5
  60. package/dist/edgeflow.browser.min.js.map +4 -4
  61. package/dist/index.d.ts +9 -6
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +32 -12
  64. package/dist/index.js.map +1 -1
  65. package/dist/pipelines/automatic-speech-recognition.d.ts +63 -0
  66. package/dist/pipelines/automatic-speech-recognition.d.ts.map +1 -0
  67. package/dist/pipelines/automatic-speech-recognition.js +269 -0
  68. package/dist/pipelines/automatic-speech-recognition.js.map +1 -0
  69. package/dist/pipelines/base.d.ts +6 -1
  70. package/dist/pipelines/base.d.ts.map +1 -1
  71. package/dist/pipelines/base.js +12 -2
  72. package/dist/pipelines/base.js.map +1 -1
  73. package/dist/pipelines/feature-extraction.d.ts +5 -40
  74. package/dist/pipelines/feature-extraction.d.ts.map +1 -1
  75. package/dist/pipelines/feature-extraction.js +44 -63
  76. package/dist/pipelines/feature-extraction.js.map +1 -1
  77. package/dist/pipelines/image-classification.d.ts +4 -36
  78. package/dist/pipelines/image-classification.d.ts.map +1 -1
  79. package/dist/pipelines/image-classification.js +22 -60
  80. package/dist/pipelines/image-classification.js.map +1 -1
  81. package/dist/pipelines/image-segmentation.d.ts +221 -0
  82. package/dist/pipelines/image-segmentation.d.ts.map +1 -0
  83. package/dist/pipelines/image-segmentation.js +535 -0
  84. package/dist/pipelines/image-segmentation.js.map +1 -0
  85. package/dist/pipelines/index.d.ts +18 -0
  86. package/dist/pipelines/index.d.ts.map +1 -1
  87. package/dist/pipelines/index.js +51 -2
  88. package/dist/pipelines/index.js.map +1 -1
  89. package/dist/pipelines/object-detection.d.ts +44 -0
  90. package/dist/pipelines/object-detection.d.ts.map +1 -0
  91. package/dist/pipelines/object-detection.js +218 -0
  92. package/dist/pipelines/object-detection.js.map +1 -0
  93. package/dist/pipelines/question-answering.d.ts +41 -0
  94. package/dist/pipelines/question-answering.d.ts.map +1 -0
  95. package/dist/pipelines/question-answering.js +164 -0
  96. package/dist/pipelines/question-answering.js.map +1 -0
  97. package/dist/pipelines/text-classification.d.ts +3 -39
  98. package/dist/pipelines/text-classification.d.ts.map +1 -1
  99. package/dist/pipelines/text-classification.js +29 -67
  100. package/dist/pipelines/text-classification.js.map +1 -1
  101. package/dist/pipelines/text-generation.d.ts +281 -0
  102. package/dist/pipelines/text-generation.d.ts.map +1 -0
  103. package/dist/pipelines/text-generation.js +766 -0
  104. package/dist/pipelines/text-generation.js.map +1 -0
  105. package/dist/pipelines/zero-shot-classification.d.ts +45 -0
  106. package/dist/pipelines/zero-shot-classification.d.ts.map +1 -0
  107. package/dist/pipelines/zero-shot-classification.js +140 -0
  108. package/dist/pipelines/zero-shot-classification.js.map +1 -0
  109. package/dist/tools/benchmark.d.ts +92 -0
  110. package/dist/tools/benchmark.d.ts.map +1 -0
  111. package/dist/tools/benchmark.js +213 -0
  112. package/dist/tools/benchmark.js.map +1 -0
  113. package/dist/tools/debugger.d.ts +258 -0
  114. package/dist/tools/debugger.d.ts.map +1 -0
  115. package/dist/tools/debugger.js +624 -0
  116. package/dist/tools/debugger.js.map +1 -0
  117. package/dist/tools/index.d.ts +8 -0
  118. package/dist/tools/index.d.ts.map +1 -1
  119. package/dist/tools/index.js +16 -0
  120. package/dist/tools/index.js.map +1 -1
  121. package/dist/tools/monitor.d.ts +284 -0
  122. package/dist/tools/monitor.d.ts.map +1 -0
  123. package/dist/tools/monitor.js +921 -0
  124. package/dist/tools/monitor.js.map +1 -0
  125. package/dist/tools/quantization.d.ts +235 -0
  126. package/dist/tools/quantization.d.ts.map +1 -0
  127. package/dist/tools/quantization.js +830 -0
  128. package/dist/tools/quantization.js.map +1 -0
  129. package/dist/utils/hub.d.ts +162 -0
  130. package/dist/utils/hub.d.ts.map +1 -0
  131. package/dist/utils/hub.js +311 -0
  132. package/dist/utils/hub.js.map +1 -0
  133. package/dist/utils/index.d.ts +3 -1
  134. package/dist/utils/index.d.ts.map +1 -1
  135. package/dist/utils/index.js +5 -1
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/model-loader.d.ts.map +1 -1
  138. package/dist/utils/model-loader.js +106 -30
  139. package/dist/utils/model-loader.js.map +1 -1
  140. package/dist/utils/offline.d.ts +147 -0
  141. package/dist/utils/offline.d.ts.map +1 -0
  142. package/dist/utils/offline.js +405 -0
  143. package/dist/utils/offline.js.map +1 -0
  144. package/dist/utils/preprocessor.d.ts +82 -6
  145. package/dist/utils/preprocessor.d.ts.map +1 -1
  146. package/dist/utils/preprocessor.js +278 -21
  147. package/dist/utils/preprocessor.js.map +1 -1
  148. package/dist/utils/tokenizer.d.ts +197 -72
  149. package/dist/utils/tokenizer.d.ts.map +1 -1
  150. package/dist/utils/tokenizer.js +558 -274
  151. package/dist/utils/tokenizer.js.map +1 -1
  152. package/package.json +26 -11
@@ -0,0 +1,535 @@
1
+ /**
2
+ * edgeFlow.js - Image Segmentation Pipeline
3
+ *
4
+ * Interactive image segmentation using SAM (Segment Anything Model).
5
+ * Supports point prompts and bounding box prompts.
6
+ */
7
+ import { EdgeFlowTensor } from '../core/tensor.js';
8
+ import { BasePipeline, registerPipeline } from './base.js';
9
+ import { loadModel, loadModelFromBuffer, runInference, runInferenceNamed } from '../core/runtime.js';
10
+ // ============================================================================
11
+ // Default Model URLs (SlimSAM - quantized for browser)
12
+ // ============================================================================
13
+ const DEFAULT_SAM_MODELS = {
14
+ encoder: 'https://huggingface.co/Xenova/slimsam-77-uniform/resolve/main/onnx/vision_encoder_quantized.onnx',
15
+ decoder: 'https://huggingface.co/Xenova/slimsam-77-uniform/resolve/main/onnx/prompt_encoder_mask_decoder_quantized.onnx',
16
+ };
17
+ // ============================================================================
18
+ // Image Segmentation Pipeline
19
+ // ============================================================================
20
+ /**
21
+ * ImageSegmentationPipeline - Interactive image segmentation
22
+ *
23
+ * Uses SAM-style models for point/box prompted segmentation.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const segmenter = createImageSegmentationPipeline();
28
+ *
29
+ * // Load models with progress callback
30
+ * await segmenter.loadModels((progress) => {
31
+ * console.log(`Loading ${progress.model}: ${progress.progress}%`);
32
+ * });
33
+ *
34
+ * // Set image and segment
35
+ * await segmenter.setImage(imageElement);
36
+ * const result = await segmenter.segment({
37
+ * points: [{ x: 0.5, y: 0.5, label: 1 }]
38
+ * });
39
+ * ```
40
+ */
41
+ export class ImageSegmentationPipeline extends BasePipeline {
42
+ encoderModel = null;
43
+ decoderModel = null;
44
+ imageEmbedding = null;
45
+ imagePositionalEmbedding = null;
46
+ currentImageSize = null;
47
+ resizedImageSize = null;
48
+ inputSize = 1024; // SAM default input size
49
+ modelsLoaded = false;
50
+ // Custom model URLs
51
+ encoderUrl;
52
+ decoderUrl;
53
+ constructor(config) {
54
+ super(config);
55
+ this.encoderUrl = DEFAULT_SAM_MODELS.encoder;
56
+ this.decoderUrl = DEFAULT_SAM_MODELS.decoder;
57
+ }
58
+ /**
59
+ * Check if models are loaded
60
+ */
61
+ get isModelsLoaded() {
62
+ return this.modelsLoaded;
63
+ }
64
+ /**
65
+ * Set custom model URLs
66
+ */
67
+ setModelUrls(encoder, decoder) {
68
+ this.encoderUrl = encoder;
69
+ this.decoderUrl = decoder;
70
+ }
71
+ /**
72
+ * Load both encoder and decoder models with progress callback
73
+ */
74
+ async loadModels(onProgress) {
75
+ if (this.modelsLoaded)
76
+ return;
77
+ // Load encoder
78
+ onProgress?.({ model: 'encoder', loaded: 0, total: 100, progress: 0 });
79
+ const encoderData = await this.fetchModelWithProgress(this.encoderUrl, (loaded, total) => {
80
+ onProgress?.({
81
+ model: 'encoder',
82
+ loaded,
83
+ total,
84
+ progress: Math.round((loaded / total) * 100),
85
+ });
86
+ });
87
+ this.encoderModel = await loadModelFromBuffer(encoderData, {
88
+ runtime: 'wasm', // Uses ONNXRuntime which auto-detects WebGPU internally
89
+ });
90
+ // Load decoder
91
+ onProgress?.({ model: 'decoder', loaded: 0, total: 100, progress: 0 });
92
+ const decoderData = await this.fetchModelWithProgress(this.decoderUrl, (loaded, total) => {
93
+ onProgress?.({
94
+ model: 'decoder',
95
+ loaded,
96
+ total,
97
+ progress: Math.round((loaded / total) * 100),
98
+ });
99
+ });
100
+ this.decoderModel = await loadModelFromBuffer(decoderData, {
101
+ runtime: 'wasm', // Uses ONNXRuntime which auto-detects WebGPU internally
102
+ });
103
+ this.modelsLoaded = true;
104
+ }
105
+ /**
106
+ * Fetch model with progress tracking
107
+ */
108
+ async fetchModelWithProgress(url, onProgress) {
109
+ const response = await fetch(url);
110
+ if (!response.ok) {
111
+ throw new Error(`Failed to fetch model: ${response.status} ${response.statusText}`);
112
+ }
113
+ const contentLength = response.headers.get('content-length');
114
+ const total = contentLength ? parseInt(contentLength, 10) : 0;
115
+ if (!response.body) {
116
+ // Fallback if no streaming support
117
+ const buffer = await response.arrayBuffer();
118
+ onProgress(buffer.byteLength, buffer.byteLength);
119
+ return buffer;
120
+ }
121
+ const reader = response.body.getReader();
122
+ const chunks = [];
123
+ let loaded = 0;
124
+ while (true) {
125
+ const { done, value } = await reader.read();
126
+ if (done)
127
+ break;
128
+ chunks.push(value);
129
+ loaded += value.length;
130
+ onProgress(loaded, total || loaded);
131
+ }
132
+ // Combine chunks into ArrayBuffer
133
+ const buffer = new Uint8Array(loaded);
134
+ let offset = 0;
135
+ for (const chunk of chunks) {
136
+ buffer.set(chunk, offset);
137
+ offset += chunk.length;
138
+ }
139
+ return buffer.buffer;
140
+ }
141
+ /**
142
+ * Initialize pipeline (override to skip default model loading)
143
+ */
144
+ async initialize() {
145
+ if (this.isReady)
146
+ return;
147
+ // Don't call super.initialize() - we handle model loading separately
148
+ this.isReady = true;
149
+ }
150
+ /**
151
+ * Load encoder model (processes the image once)
152
+ */
153
+ async loadEncoder(modelUrl) {
154
+ this.encoderModel = await loadModel(modelUrl, {
155
+ runtime: 'wasm',
156
+ });
157
+ }
158
+ /**
159
+ * Load decoder model (processes prompts to generate masks)
160
+ */
161
+ async loadDecoder(modelUrl) {
162
+ this.decoderModel = await loadModel(modelUrl, {
163
+ runtime: 'wasm',
164
+ });
165
+ }
166
+ /**
167
+ * Set and encode the image (call once per image)
168
+ */
169
+ async setImage(image) {
170
+ if (!this.modelsLoaded) {
171
+ throw new Error('Models not loaded. Call loadModels() first.');
172
+ }
173
+ // Get image data
174
+ const imageData = await this.loadImage(image);
175
+ this.currentImageSize = {
176
+ width: imageData.width,
177
+ height: imageData.height,
178
+ };
179
+ // Preprocess image for SAM
180
+ const { tensor: inputTensor, resizedSize } = this.preprocessImage(imageData);
181
+ this.resizedImageSize = resizedSize;
182
+ // Run encoder
183
+ if (this.encoderModel) {
184
+ const outputs = await runInference(this.encoderModel, [inputTensor]);
185
+ // SlimSAM encoder outputs: [image_embeddings, image_positional_embeddings]
186
+ this.imageEmbedding = outputs[0];
187
+ this.imagePositionalEmbedding = outputs[1];
188
+ console.log('[SAM] Encoder outputs:', outputs.length);
189
+ console.log('[SAM] image_embeddings shape:', this.imageEmbedding.shape);
190
+ if (this.imagePositionalEmbedding) {
191
+ console.log('[SAM] image_positional_embeddings shape:', this.imagePositionalEmbedding.shape);
192
+ }
193
+ }
194
+ else {
195
+ throw new Error('Encoder model not loaded');
196
+ }
197
+ }
198
+ /**
199
+ * Segment the image with given prompts
200
+ */
201
+ async segment(options = {}) {
202
+ if (!this.imageEmbedding || !this.currentImageSize || !this.resizedImageSize) {
203
+ throw new Error('No image set. Call setImage() first.');
204
+ }
205
+ if (!this.decoderModel) {
206
+ throw new Error('Decoder model not loaded');
207
+ }
208
+ const startTime = performance.now();
209
+ const { points = [], boxes = [], maskThreshold = 0.0, returnAllMasks = false } = options;
210
+ // Prepare inputs for decoder
211
+ const decoderInputs = this.prepareDecoderInputs(points, boxes);
212
+ // Add image embeddings to inputs
213
+ decoderInputs.set('image_embeddings', this.imageEmbedding);
214
+ // Add positional embeddings (required by SlimSAM)
215
+ if (this.imagePositionalEmbedding) {
216
+ decoderInputs.set('image_positional_embeddings', this.imagePositionalEmbedding);
217
+ }
218
+ else {
219
+ throw new Error('image_positional_embeddings not available from encoder');
220
+ }
221
+ // Run decoder model with named inputs
222
+ const outputs = await runInferenceNamed(this.decoderModel, decoderInputs);
223
+ // SAM decoder outputs: [masks, iou_predictions]
224
+ const masks = outputs[0];
225
+ const scores = outputs[1];
226
+ // Post-process masks
227
+ const result = this.postprocessMasks(masks, scores, maskThreshold, returnAllMasks);
228
+ result.processingTime = performance.now() - startTime;
229
+ return result;
230
+ }
231
+ /**
232
+ * Run segmentation (implements BasePipeline interface)
233
+ */
234
+ async run(input, options) {
235
+ await this.setImage(input);
236
+ return this.segment(options);
237
+ }
238
+ /**
239
+ * Load image from various sources
240
+ */
241
+ async loadImage(input) {
242
+ // Handle different input types
243
+ if (typeof input === 'string') {
244
+ // URL or base64
245
+ return this.loadImageFromUrl(input);
246
+ }
247
+ else if (input instanceof HTMLImageElement) {
248
+ return this.imageElementToImageData(input);
249
+ }
250
+ else if (input instanceof HTMLCanvasElement) {
251
+ return this.canvasToImageData(input);
252
+ }
253
+ else if (input instanceof ImageData) {
254
+ return input;
255
+ }
256
+ else if (typeof ImageBitmap !== 'undefined' && input instanceof ImageBitmap) {
257
+ return this.imageBitmapToImageData(input);
258
+ }
259
+ throw new Error('Unsupported image input type');
260
+ }
261
+ /**
262
+ * Load image from URL
263
+ */
264
+ async loadImageFromUrl(url) {
265
+ return new Promise((resolve, reject) => {
266
+ const img = new Image();
267
+ img.crossOrigin = 'anonymous';
268
+ img.onload = () => {
269
+ const canvas = document.createElement('canvas');
270
+ canvas.width = img.width;
271
+ canvas.height = img.height;
272
+ const ctx = canvas.getContext('2d');
273
+ ctx.drawImage(img, 0, 0);
274
+ resolve(ctx.getImageData(0, 0, img.width, img.height));
275
+ };
276
+ img.onerror = reject;
277
+ img.src = url;
278
+ });
279
+ }
280
+ /**
281
+ * Convert HTMLImageElement to ImageData
282
+ */
283
+ imageElementToImageData(img) {
284
+ const canvas = document.createElement('canvas');
285
+ canvas.width = img.naturalWidth || img.width;
286
+ canvas.height = img.naturalHeight || img.height;
287
+ const ctx = canvas.getContext('2d');
288
+ ctx.drawImage(img, 0, 0);
289
+ return ctx.getImageData(0, 0, canvas.width, canvas.height);
290
+ }
291
+ /**
292
+ * Convert canvas to ImageData
293
+ */
294
+ canvasToImageData(canvas) {
295
+ const ctx = canvas.getContext('2d');
296
+ return ctx.getImageData(0, 0, canvas.width, canvas.height);
297
+ }
298
+ /**
299
+ * Convert ImageBitmap to ImageData
300
+ */
301
+ imageBitmapToImageData(bitmap) {
302
+ const canvas = document.createElement('canvas');
303
+ canvas.width = bitmap.width;
304
+ canvas.height = bitmap.height;
305
+ const ctx = canvas.getContext('2d');
306
+ ctx.drawImage(bitmap, 0, 0);
307
+ return ctx.getImageData(0, 0, canvas.width, canvas.height);
308
+ }
309
+ /**
310
+ * Preprocess image for SAM
311
+ */
312
+ preprocessImage(imageData) {
313
+ const { width, height } = imageData;
314
+ // Calculate resize dimensions (longest side = inputSize)
315
+ const scale = this.inputSize / Math.max(width, height);
316
+ const newWidth = Math.round(width * scale);
317
+ const newHeight = Math.round(height * scale);
318
+ // Create resized canvas with padding
319
+ const canvas = document.createElement('canvas');
320
+ canvas.width = this.inputSize;
321
+ canvas.height = this.inputSize;
322
+ const ctx = canvas.getContext('2d');
323
+ // Fill with padding color (SAM uses pixel mean)
324
+ ctx.fillStyle = `rgb(123.675, 116.28, 103.53)`;
325
+ ctx.fillRect(0, 0, this.inputSize, this.inputSize);
326
+ // Draw resized image (top-left aligned)
327
+ const tempCanvas = document.createElement('canvas');
328
+ tempCanvas.width = width;
329
+ tempCanvas.height = height;
330
+ const tempCtx = tempCanvas.getContext('2d');
331
+ tempCtx.putImageData(imageData, 0, 0);
332
+ ctx.drawImage(tempCanvas, 0, 0, newWidth, newHeight);
333
+ // Get pixel data
334
+ const resizedData = ctx.getImageData(0, 0, this.inputSize, this.inputSize);
335
+ // Convert to tensor (NCHW format, normalized with ImageNet mean/std)
336
+ const tensorData = new Float32Array(3 * this.inputSize * this.inputSize);
337
+ const mean = [123.675, 116.28, 103.53];
338
+ const std = [58.395, 57.12, 57.375];
339
+ for (let i = 0; i < this.inputSize * this.inputSize; i++) {
340
+ const pixelIdx = i * 4;
341
+ tensorData[i] = (resizedData.data[pixelIdx] - mean[0]) / std[0]; // R
342
+ tensorData[this.inputSize * this.inputSize + i] =
343
+ (resizedData.data[pixelIdx + 1] - mean[1]) / std[1]; // G
344
+ tensorData[2 * this.inputSize * this.inputSize + i] =
345
+ (resizedData.data[pixelIdx + 2] - mean[2]) / std[2]; // B
346
+ }
347
+ return {
348
+ tensor: new EdgeFlowTensor(tensorData, [1, 3, this.inputSize, this.inputSize], 'float32'),
349
+ resizedSize: { width: newWidth, height: newHeight },
350
+ };
351
+ }
352
+ /**
353
+ * Prepare decoder inputs (prompts) for SlimSAM
354
+ *
355
+ * SlimSAM prompt_encoder_mask_decoder expects these named inputs:
356
+ * - image_embeddings: [1, 256, 64, 64]
357
+ * - point_coords: [batch, num_points, 2]
358
+ * - point_labels: [batch, num_points]
359
+ * - mask_input: [batch, 1, 256, 256]
360
+ * - has_mask_input: [batch, 1]
361
+ * - orig_im_size: [2]
362
+ * - position_ids: [batch, num_points]
363
+ */
364
+ prepareDecoderInputs(points, boxes) {
365
+ const { width: resizedW, height: resizedH } = this.resizedImageSize;
366
+ // Scale factors for converting normalized coords to resized image coords
367
+ const scaleX = resizedW;
368
+ const scaleY = resizedH;
369
+ const allPoints = [];
370
+ const allLabels = [];
371
+ // Add point prompts
372
+ for (const point of points) {
373
+ allPoints.push(point.x * scaleX, point.y * scaleY);
374
+ allLabels.push(point.label);
375
+ }
376
+ // Add box prompts (as two corner points)
377
+ for (const box of boxes) {
378
+ // Top-left corner (label 2)
379
+ allPoints.push(box.x1 * scaleX, box.y1 * scaleY);
380
+ allLabels.push(2);
381
+ // Bottom-right corner (label 3)
382
+ allPoints.push(box.x2 * scaleX, box.y2 * scaleY);
383
+ allLabels.push(3);
384
+ }
385
+ // Default point if no prompts (center of image)
386
+ if (allPoints.length === 0) {
387
+ allPoints.push(resizedW / 2, resizedH / 2);
388
+ allLabels.push(1);
389
+ }
390
+ const numPoints = allLabels.length;
391
+ const inputs = new Map();
392
+ // input_points: [1, 1, num_points, 2] - SlimSAM format (float32)
393
+ inputs.set('input_points', new EdgeFlowTensor(new Float32Array(allPoints), [1, 1, numPoints, 2], 'float32'));
394
+ // input_labels: [1, 1, num_points] - SlimSAM format (int64)
395
+ inputs.set('input_labels', new EdgeFlowTensor(BigInt64Array.from(allLabels.map(l => BigInt(l))), [1, 1, numPoints], 'int64'));
396
+ // Note: image_embeddings and image_positional_embeddings are added in segment()
397
+ // SlimSAM decoder only needs: image_embeddings, image_positional_embeddings, input_points, input_labels
398
+ return inputs;
399
+ }
400
+ /**
401
+ * Post-process masks from decoder output
402
+ */
403
+ postprocessMasks(masks, scores, threshold, returnAllMasks) {
404
+ const { width, height } = this.currentImageSize;
405
+ const scoresData = scores.toFloat32Array();
406
+ const masksData = masks.toFloat32Array();
407
+ // SAM outputs multiple masks (usually 3)
408
+ const numMasks = scoresData.length;
409
+ const maskShape = masks.shape; // [1, num_masks, H, W]
410
+ const maskH = maskShape[2] ?? height;
411
+ const maskW = maskShape[3] ?? width;
412
+ // Find best mask by score
413
+ let bestIdx = 0;
414
+ let bestScore = scoresData[0] ?? 0;
415
+ for (let i = 1; i < numMasks; i++) {
416
+ if ((scoresData[i] ?? 0) > bestScore) {
417
+ bestScore = scoresData[i] ?? 0;
418
+ bestIdx = i;
419
+ }
420
+ }
421
+ // Extract and resize the best mask to original image size
422
+ const outputMask = this.resizeMask(masksData, bestIdx, maskW, maskH, width, height, threshold);
423
+ const result = {
424
+ mask: outputMask,
425
+ width,
426
+ height,
427
+ score: bestScore,
428
+ };
429
+ if (returnAllMasks && numMasks > 1) {
430
+ result.allMasks = [];
431
+ for (let m = 0; m < numMasks; m++) {
432
+ const mask = this.resizeMask(masksData, m, maskW, maskH, width, height, threshold);
433
+ result.allMasks.push({
434
+ mask,
435
+ score: scoresData[m] ?? 0,
436
+ });
437
+ }
438
+ }
439
+ return result;
440
+ }
441
+ /**
442
+ * Resize mask from model output size to original image size
443
+ */
444
+ resizeMask(masksData, maskIdx, srcW, srcH, dstW, dstH, threshold) {
445
+ const outputMask = new Uint8Array(dstW * dstH);
446
+ const maskOffset = maskIdx * srcW * srcH;
447
+ // Bilinear interpolation for resizing
448
+ for (let y = 0; y < dstH; y++) {
449
+ for (let x = 0; x < dstW; x++) {
450
+ // Map to source coordinates
451
+ const srcX = (x / dstW) * srcW;
452
+ const srcY = (y / dstH) * srcH;
453
+ // Bilinear interpolation
454
+ const x0 = Math.floor(srcX);
455
+ const x1 = Math.min(x0 + 1, srcW - 1);
456
+ const y0 = Math.floor(srcY);
457
+ const y1 = Math.min(y0 + 1, srcH - 1);
458
+ const xFrac = srcX - x0;
459
+ const yFrac = srcY - y0;
460
+ const v00 = masksData[maskOffset + y0 * srcW + x0] ?? 0;
461
+ const v01 = masksData[maskOffset + y0 * srcW + x1] ?? 0;
462
+ const v10 = masksData[maskOffset + y1 * srcW + x0] ?? 0;
463
+ const v11 = masksData[maskOffset + y1 * srcW + x1] ?? 0;
464
+ const value = v00 * (1 - xFrac) * (1 - yFrac) +
465
+ v01 * xFrac * (1 - yFrac) +
466
+ v10 * (1 - xFrac) * yFrac +
467
+ v11 * xFrac * yFrac;
468
+ // Apply sigmoid and threshold
469
+ const sigmoid = 1 / (1 + Math.exp(-value));
470
+ outputMask[y * dstW + x] = sigmoid > threshold ? 255 : 0;
471
+ }
472
+ }
473
+ return outputMask;
474
+ }
475
+ /**
476
+ * Clear the current image embedding
477
+ */
478
+ clearImage() {
479
+ this.imageEmbedding = null;
480
+ this.imagePositionalEmbedding = null;
481
+ this.currentImageSize = null;
482
+ this.resizedImageSize = null;
483
+ }
484
+ /**
485
+ * Preprocess (required by BasePipeline)
486
+ */
487
+ async preprocess(input) {
488
+ const imageData = await this.loadImage(input);
489
+ const { tensor } = this.preprocessImage(imageData);
490
+ return [tensor];
491
+ }
492
+ /**
493
+ * Postprocess (required by BasePipeline)
494
+ */
495
+ async postprocess(_outputs, _options) {
496
+ // This is handled in segment() method
497
+ return {
498
+ mask: new Uint8Array(0),
499
+ width: 0,
500
+ height: 0,
501
+ score: 0,
502
+ };
503
+ }
504
+ /**
505
+ * Dispose resources
506
+ */
507
+ dispose() {
508
+ super.dispose();
509
+ this.encoderModel?.dispose();
510
+ this.decoderModel?.dispose();
511
+ this.imageEmbedding = null;
512
+ this.imagePositionalEmbedding = null;
513
+ this.currentImageSize = null;
514
+ this.resizedImageSize = null;
515
+ this.modelsLoaded = false;
516
+ }
517
+ }
518
+ // ============================================================================
519
+ // Factory Function
520
+ // ============================================================================
521
+ /**
522
+ * Create image segmentation pipeline
523
+ */
524
+ export function createImageSegmentationPipeline(config = {}) {
525
+ return new ImageSegmentationPipeline({
526
+ task: 'image-segmentation',
527
+ model: config.model ?? 'slimsam',
528
+ runtime: config.runtime,
529
+ cache: config.cache ?? true,
530
+ quantization: config.quantization,
531
+ });
532
+ }
533
+ // Register pipeline
534
+ registerPipeline('image-segmentation', (config) => new ImageSegmentationPipeline(config));
535
+ //# sourceMappingURL=image-segmentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-segmentation.js","sourceRoot":"","sources":["../../src/pipelines/image-segmentation.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ export { BasePipeline, registerPipeline, getPipelineFactory, SENTIMENT_LABELS, E
6
6
  export { TextClassificationPipeline, SentimentAnalysisPipeline, createTextClassificationPipeline, createSentimentAnalysisPipeline, type TextClassificationOptions, } from './text-classification.js';
7
7
  export { FeatureExtractionPipeline, createFeatureExtractionPipeline, type FeatureExtractionOptions, } from './feature-extraction.js';
8
8
  export { ImageClassificationPipeline, createImageClassificationPipeline, type ImageClassificationOptions, type ImageInput, } from './image-classification.js';
9
+ export { TextGenerationPipeline, createTextGenerationPipeline, type TextGenerationOptions, type TextGenerationResult, type GenerationStreamEvent, type ChatMessage, type ChatOptions, type ChatTemplateType, type LLMLoadProgress, } from './text-generation.js';
10
+ export { ObjectDetectionPipeline, createObjectDetectionPipeline, COCO_LABELS, type ObjectDetectionOptions, type Detection, type BoundingBox, } from './object-detection.js';
11
+ export { AutomaticSpeechRecognitionPipeline, createASRPipeline, type ASROptions, type ASRResult, type WordTimestamp, type ChunkTimestamp, } from './automatic-speech-recognition.js';
12
+ export { ZeroShotClassificationPipeline, createZeroShotClassificationPipeline, type ZeroShotClassificationOptions, type ZeroShotClassificationResult, } from './zero-shot-classification.js';
13
+ export { QuestionAnsweringPipeline, createQuestionAnsweringPipeline, type QuestionAnsweringOptions, type QuestionAnsweringResult, type QAInput, } from './question-answering.js';
14
+ export { ImageSegmentationPipeline, createImageSegmentationPipeline, type ImageSegmentationOptions, type ImageSegmentationResult, type PointPrompt, type BoxPrompt, type ModelLoadProgress, } from './image-segmentation.js';
9
15
  /**
10
16
  * Pipeline options for the factory function
11
17
  */
@@ -29,10 +35,22 @@ type PipelineTaskMap = {
29
35
  'sentiment-analysis': SentimentAnalysisPipeline;
30
36
  'feature-extraction': FeatureExtractionPipeline;
31
37
  'image-classification': ImageClassificationPipeline;
38
+ 'text-generation': TextGenerationPipeline;
39
+ 'object-detection': ObjectDetectionPipeline;
40
+ 'automatic-speech-recognition': AutomaticSpeechRecognitionPipeline;
41
+ 'zero-shot-classification': ZeroShotClassificationPipeline;
42
+ 'question-answering': QuestionAnsweringPipeline;
43
+ 'image-segmentation': ImageSegmentationPipeline;
32
44
  };
33
45
  import { TextClassificationPipeline, SentimentAnalysisPipeline } from './text-classification.js';
34
46
  import { FeatureExtractionPipeline } from './feature-extraction.js';
35
47
  import { ImageClassificationPipeline } from './image-classification.js';
48
+ import { TextGenerationPipeline } from './text-generation.js';
49
+ import { ObjectDetectionPipeline } from './object-detection.js';
50
+ import { AutomaticSpeechRecognitionPipeline } from './automatic-speech-recognition.js';
51
+ import { ZeroShotClassificationPipeline } from './zero-shot-classification.js';
52
+ import { QuestionAnsweringPipeline } from './question-answering.js';
53
+ import { ImageSegmentationPipeline } from './image-segmentation.js';
36
54
  /**
37
55
  * Create a pipeline for a specific task
38
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,UAAU,GAChB,MAAM,2BAA2B,CAAC;AAMnC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB,qBAAqB,EAAE,0BAA0B,CAAC;IAClD,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,oBAAoB,EAAE,yBAAyB,CAAC;IAChD,sBAAsB,EAAE,2BAA2B,CAAC;CACrD,CAAC;AAGF,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,eAAe,EAC5D,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAgC7B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,SAAS,CAAC,MAAM,eAAe,CAAC,EAAE,EACvE,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC;KAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;CAAE,CAAC,CAanD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipelines/index.ts"],"names":[],"mappings":"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"}