@camstack/addon-pipeline 1.2.292 → 1.2.294

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 (37) hide show
  1. package/dist/audio-analyzer/index.js +2 -2
  2. package/dist/audio-analyzer/index.mjs +2 -2
  3. package/dist/{default-detection-model-DcTy-nJl.mjs → default-detection-model-0dPKRKUD.mjs} +62 -80
  4. package/dist/{default-detection-model-jjdmKKr3.js → default-detection-model-D24AJOTn.js} +67 -79
  5. package/dist/detection-pipeline/index.js +6 -5
  6. package/dist/detection-pipeline/index.mjs +6 -5
  7. package/dist/{dist-D7FonEUB.js → dist-CJR259Xf.js} +426 -22
  8. package/dist/{dist-Bn6BQW8q.mjs → dist-RXbmRAwP.mjs} +426 -22
  9. package/dist/motion-wasm/index.js +1 -1
  10. package/dist/motion-wasm/index.mjs +1 -1
  11. package/dist/{node-D3C1krEi.js → node-DWg9zbY1.js} +1 -1
  12. package/dist/{node-BN0Na3HN.mjs → node-atmRSHPk.mjs} +1 -1
  13. package/dist/pipeline-runner/index.js +80 -5
  14. package/dist/pipeline-runner/index.mjs +80 -5
  15. package/dist/{process-memory-DI4jrCtX.js → process-memory-BJUXvTjd.js} +1 -1
  16. package/dist/{process-memory-CeZ8ms80.mjs → process-memory-BgFOHFnx.mjs} +1 -1
  17. package/dist/recorder/index.js +2 -2
  18. package/dist/recorder/index.mjs +2 -2
  19. package/dist/{segment-demux-js-COooJ-t0.js → segment-demux-js-C_fPJub3.js} +1 -1
  20. package/dist/{segment-demux-js-CNPzlcyO.mjs → segment-demux-js-G7wFpHzn.mjs} +1 -1
  21. package/dist/stream-broker/_stub.js +2 -2
  22. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BfrONGaR.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-6IyM-BIn.mjs} +2 -2
  23. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-6IHzlLJ_.mjs +26 -0
  24. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DhImOdbA.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DoyA71_q.mjs} +1 -1
  25. package/dist/stream-broker/demux-worker-child.js +1 -1
  26. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  27. package/dist/stream-broker/{hostInit-0k0JYZnk.mjs → hostInit-BBYHWS3M.mjs} +2 -2
  28. package/dist/stream-broker/index.js +3 -3
  29. package/dist/stream-broker/index.mjs +3 -3
  30. package/dist/stream-broker/remoteEntry.js +1 -1
  31. package/package.json +1 -1
  32. package/python/inference_pool.py +33 -10
  33. package/python/postprocessors/scrfd.py +21 -3
  34. package/python/postprocessors/test_scrfd.py +151 -0
  35. package/python/test_inference_pool_ov_ppp_scrfd.py +264 -0
  36. package/python/test_inference_pool_scrfd_normalization.py +142 -0
  37. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-pSFdAaR0.mjs +0 -26
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-D7FonEUB.js");
7
- const require_process_memory = require("../process-memory-DI4jrCtX.js");
6
+ const require_dist = require("../dist-CJR259Xf.js");
7
+ const require_process_memory = require("../process-memory-BJUXvTjd.js");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
10
10
  let node_path = require("node:path");
@@ -1,6 +1,6 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { $t as errMsg, A as PoolMemoryWatchdog, Ln as EventCategory, T as HF_BASE_URL, U as audioAnalysisCapability, Ut as resolvePoolMemoryPolicy, W as audioAnalyzerCapability, bn as nodePin, d as DEFAULT_AUDIO_ANALYZER_CONFIG, dn as audioChunkBytesPerSample, gn as hydrateSchema, hn as expandAudioChunkToF32le, n as AUDIO_BACKEND_CHOICES, on as BaseAddon, yt as mapAudioLabelToMacro } from "../dist-Bn6BQW8q.mjs";
3
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-CeZ8ms80.mjs";
2
+ import { $t as errMsg, A as PoolMemoryWatchdog, Ln as EventCategory, T as HF_BASE_URL, U as audioAnalysisCapability, Ut as resolvePoolMemoryPolicy, W as audioAnalyzerCapability, bn as nodePin, d as DEFAULT_AUDIO_ANALYZER_CONFIG, dn as audioChunkBytesPerSample, gn as hydrateSchema, hn as expandAudioChunkToF32le, n as AUDIO_BACKEND_CHOICES, on as BaseAddon, yt as mapAudioLabelToMacro } from "../dist-RXbmRAwP.mjs";
3
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BgFOHFnx.mjs";
4
4
  import * as fs from "node:fs";
5
5
  import * as path$1 from "node:path";
6
6
  import { downloadFile } from "@camstack/system/addon-utils";
@@ -1,4 +1,4 @@
1
- import { G as audioKindId, l as COCO_80_LABELS, mt as hfModelUrl, r as AUDIO_MACRO_LABELS, u as COCO_TO_MACRO } from "./dist-Bn6BQW8q.mjs";
1
+ import { G as audioKindId, l as COCO_80_LABELS, mt as hfModelUrl, r as AUDIO_MACRO_LABELS, u as COCO_TO_MACRO } from "./dist-RXbmRAwP.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  //#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
4
4
  /**
@@ -491,88 +491,68 @@ var OBJECT_DETECTION_MODELS = [
491
491
  ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "fp16", 112, true),
492
492
  ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "int8", 56, true)
493
493
  ];
494
- var FACE_DETECTION_MODELS = [
495
- {
496
- id: "scrfd-2.5g",
497
- name: "SCRFD 2.5G",
498
- description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
499
- inputSize: {
500
- width: 640,
501
- height: 640
502
- },
503
- labels: [{
504
- id: "face",
505
- name: "Face"
506
- }],
507
- preprocessMode: "letterbox",
508
- license: "InsightFace-NonCommercial-Research",
509
- formats: {
510
- onnx: {
511
- url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
512
- sizeMB: 3.1
513
- },
514
- coreml: {
515
- url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
516
- sizeMB: 1.7,
517
- isDirectory: true,
518
- files: [...MLPACKAGE_FILES],
519
- runtimes: ["python"]
520
- },
521
- openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
522
- }
523
- },
524
- {
525
- id: "scrypted-yolov9t-face",
526
- name: "YOLOv9t Face ReLU",
527
- description: "YOLOv9t face detection — YOLO-based, fast, 320x320 ReLU",
528
- inputSize: {
529
- width: 320,
530
- height: 320
531
- },
532
- labels: [{
533
- id: "face",
534
- name: "Face"
535
- }],
536
- preprocessMode: "letterbox",
537
- license: "UNKNOWN",
538
- formats: {
539
- onnx: {
540
- url: hfScrypted("onnx/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.onnx"),
541
- sizeMB: 8.1
542
- },
543
- coreml: {
544
- url: hfScrypted("coreml/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.mlpackage"),
545
- sizeMB: 4,
546
- isDirectory: true,
547
- files: [...MLPACKAGE_FILES],
548
- runtimes: ["python"]
549
- },
550
- openvino: ovFormat(hf("faceDetection/scrypted-yolov9-face/openvino/scrypted_yolov9t_relu_face.xml"), 6)
551
- }
494
+ /**
495
+ * Model ids REMOVED from a step's catalog, per step id (D643).
496
+ *
497
+ * Not the same as `legacy` (still in the catalog, still runnable when chosen):
498
+ * a retired id has nothing to download and nothing that can parse it. It is
499
+ * listed rather than simply deleted because `resolveModelForFormat` passes an
500
+ * id the catalog does not know through UNCHANGED — it reads as an operator's
501
+ * custom model — so a saved pin would keep naming a model no node can load.
502
+ * A retired id resolves to the step's format default instead.
503
+ */
504
+ var RETIRED_MODEL_IDS = { "face-detection": ["scrypted-yolov9t-face"] };
505
+ var FACE_DETECTION_MODELS = [{
506
+ id: "scrfd-2.5g",
507
+ name: "SCRFD 2.5G",
508
+ description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
509
+ inputSize: {
510
+ width: 640,
511
+ height: 640
552
512
  },
553
- {
554
- id: "ssd-mobilenet-v2-face-edgetpu",
555
- legacy: true,
556
- name: "SSD MobileNet V2 Face (Coral)",
557
- description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
558
- inputSize: {
559
- width: 320,
560
- height: 320
513
+ labels: [{
514
+ id: "face",
515
+ name: "Face"
516
+ }],
517
+ preprocessMode: "letterbox",
518
+ inputNormalization: "scrfd",
519
+ license: "InsightFace-NonCommercial-Research",
520
+ formats: {
521
+ onnx: {
522
+ url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
523
+ sizeMB: 3.1
561
524
  },
562
- labels: [{
563
- id: "face",
564
- name: "Face"
565
- }],
566
- preprocessMode: "letterbox",
567
- postprocessor: "ssd",
568
- license: "Apache-2.0",
569
- formats: { tflite: {
570
- url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
571
- sizeMB: 6.7,
525
+ coreml: {
526
+ url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
527
+ sizeMB: 1.7,
528
+ isDirectory: true,
529
+ files: [...MLPACKAGE_FILES],
572
530
  runtimes: ["python"]
573
- } }
531
+ },
532
+ openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
574
533
  }
575
- ];
534
+ }, {
535
+ id: "ssd-mobilenet-v2-face-edgetpu",
536
+ legacy: true,
537
+ name: "SSD MobileNet V2 Face (Coral)",
538
+ description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
539
+ inputSize: {
540
+ width: 320,
541
+ height: 320
542
+ },
543
+ labels: [{
544
+ id: "face",
545
+ name: "Face"
546
+ }],
547
+ preprocessMode: "letterbox",
548
+ postprocessor: "ssd",
549
+ license: "Apache-2.0",
550
+ formats: { tflite: {
551
+ url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
552
+ sizeMB: 6.7,
553
+ runtimes: ["python"]
554
+ } }
555
+ }];
576
556
  var FACE_EMBEDDING_MODELS = [
577
557
  {
578
558
  id: "arcface-r100",
@@ -1876,6 +1856,7 @@ function getDefaultModelForFormatFromDef(def, format) {
1876
1856
  * - chosen is a catalog model → keep it if it has a `format` build; else
1877
1857
  * the addon's default model for `format`
1878
1858
  * (a substitution — the caller surfaces it).
1859
+ * - chosen is RETIRED (`RETIRED_MODEL_IDS`) → the format default (D643).
1879
1860
  * - chosen is NOT in the catalog (custom/unknown) → returned unchanged; the
1880
1861
  * operator owns a custom model's format compat.
1881
1862
  * - unknown stepId → chosen returned unchanged (never throws).
@@ -1888,6 +1869,7 @@ function resolveModelForFormat(stepId, chosenModelId, format) {
1888
1869
  return chosenModelId ?? "";
1889
1870
  }
1890
1871
  if (chosenModelId === null) return getDefaultModelForFormat(stepId, format);
1872
+ if (RETIRED_MODEL_IDS[stepId]?.includes(chosenModelId) === true) return getDefaultModelForFormat(stepId, format);
1891
1873
  const entry = def.models.find((m) => m.id === chosenModelId);
1892
1874
  if (!entry) return chosenModelId;
1893
1875
  if (entry.formats[format]) return chosenModelId;
@@ -2225,4 +2207,4 @@ function resolveDefaultDetectionModel(backend, device, format, getStepDef = getS
2225
2207
  return getDefaultModelForFormatFromDef(def, format);
2226
2208
  }
2227
2209
  //#endregion
2228
- export { localFrameRegistry as a, ALL_STEPS as c, getStepDefinition as d, resolveModelForFormat as f, rootObjectGate as i, getDefaultModelForFormat as l, resolveDefaultDetectionModel as n, resolveFrameViewGeometry as o, landmarkPrecisionVerdict as p, macroGateVerdict as r, ALL_PIPELINE_STEPS as s, OBJECT_DETECTION_STEP_ID as t, getStep as u };
2210
+ export { localFrameRegistry as a, ALL_STEPS as c, getStepDefinition as d, resolveModelForFormat as f, rootObjectGate as i, getDefaultModelForFormat as l, landmarkPrecisionVerdict as m, resolveDefaultDetectionModel as n, resolveFrameViewGeometry as o, RETIRED_MODEL_IDS as p, macroGateVerdict as r, ALL_PIPELINE_STEPS as s, OBJECT_DETECTION_STEP_ID as t, getStep as u };
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-D7FonEUB.js");
1
+ const require_dist = require("./dist-CJR259Xf.js");
2
2
  let node_crypto = require("node:crypto");
3
3
  //#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
4
4
  /**
@@ -491,88 +491,68 @@ var OBJECT_DETECTION_MODELS = [
491
491
  ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "fp16", 112, true),
492
492
  ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "int8", 56, true)
493
493
  ];
494
- var FACE_DETECTION_MODELS = [
495
- {
496
- id: "scrfd-2.5g",
497
- name: "SCRFD 2.5G",
498
- description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
499
- inputSize: {
500
- width: 640,
501
- height: 640
502
- },
503
- labels: [{
504
- id: "face",
505
- name: "Face"
506
- }],
507
- preprocessMode: "letterbox",
508
- license: "InsightFace-NonCommercial-Research",
509
- formats: {
510
- onnx: {
511
- url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
512
- sizeMB: 3.1
513
- },
514
- coreml: {
515
- url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
516
- sizeMB: 1.7,
517
- isDirectory: true,
518
- files: [...MLPACKAGE_FILES],
519
- runtimes: ["python"]
520
- },
521
- openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
522
- }
523
- },
524
- {
525
- id: "scrypted-yolov9t-face",
526
- name: "YOLOv9t Face ReLU",
527
- description: "YOLOv9t face detection — YOLO-based, fast, 320x320 ReLU",
528
- inputSize: {
529
- width: 320,
530
- height: 320
531
- },
532
- labels: [{
533
- id: "face",
534
- name: "Face"
535
- }],
536
- preprocessMode: "letterbox",
537
- license: "UNKNOWN",
538
- formats: {
539
- onnx: {
540
- url: hfScrypted("onnx/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.onnx"),
541
- sizeMB: 8.1
542
- },
543
- coreml: {
544
- url: hfScrypted("coreml/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.mlpackage"),
545
- sizeMB: 4,
546
- isDirectory: true,
547
- files: [...MLPACKAGE_FILES],
548
- runtimes: ["python"]
549
- },
550
- openvino: ovFormat(hf("faceDetection/scrypted-yolov9-face/openvino/scrypted_yolov9t_relu_face.xml"), 6)
551
- }
494
+ /**
495
+ * Model ids REMOVED from a step's catalog, per step id (D643).
496
+ *
497
+ * Not the same as `legacy` (still in the catalog, still runnable when chosen):
498
+ * a retired id has nothing to download and nothing that can parse it. It is
499
+ * listed rather than simply deleted because `resolveModelForFormat` passes an
500
+ * id the catalog does not know through UNCHANGED — it reads as an operator's
501
+ * custom model — so a saved pin would keep naming a model no node can load.
502
+ * A retired id resolves to the step's format default instead.
503
+ */
504
+ var RETIRED_MODEL_IDS = { "face-detection": ["scrypted-yolov9t-face"] };
505
+ var FACE_DETECTION_MODELS = [{
506
+ id: "scrfd-2.5g",
507
+ name: "SCRFD 2.5G",
508
+ description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
509
+ inputSize: {
510
+ width: 640,
511
+ height: 640
552
512
  },
553
- {
554
- id: "ssd-mobilenet-v2-face-edgetpu",
555
- legacy: true,
556
- name: "SSD MobileNet V2 Face (Coral)",
557
- description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
558
- inputSize: {
559
- width: 320,
560
- height: 320
513
+ labels: [{
514
+ id: "face",
515
+ name: "Face"
516
+ }],
517
+ preprocessMode: "letterbox",
518
+ inputNormalization: "scrfd",
519
+ license: "InsightFace-NonCommercial-Research",
520
+ formats: {
521
+ onnx: {
522
+ url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
523
+ sizeMB: 3.1
561
524
  },
562
- labels: [{
563
- id: "face",
564
- name: "Face"
565
- }],
566
- preprocessMode: "letterbox",
567
- postprocessor: "ssd",
568
- license: "Apache-2.0",
569
- formats: { tflite: {
570
- url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
571
- sizeMB: 6.7,
525
+ coreml: {
526
+ url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
527
+ sizeMB: 1.7,
528
+ isDirectory: true,
529
+ files: [...MLPACKAGE_FILES],
572
530
  runtimes: ["python"]
573
- } }
531
+ },
532
+ openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
574
533
  }
575
- ];
534
+ }, {
535
+ id: "ssd-mobilenet-v2-face-edgetpu",
536
+ legacy: true,
537
+ name: "SSD MobileNet V2 Face (Coral)",
538
+ description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
539
+ inputSize: {
540
+ width: 320,
541
+ height: 320
542
+ },
543
+ labels: [{
544
+ id: "face",
545
+ name: "Face"
546
+ }],
547
+ preprocessMode: "letterbox",
548
+ postprocessor: "ssd",
549
+ license: "Apache-2.0",
550
+ formats: { tflite: {
551
+ url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
552
+ sizeMB: 6.7,
553
+ runtimes: ["python"]
554
+ } }
555
+ }];
576
556
  var FACE_EMBEDDING_MODELS = [
577
557
  {
578
558
  id: "arcface-r100",
@@ -1876,6 +1856,7 @@ function getDefaultModelForFormatFromDef(def, format) {
1876
1856
  * - chosen is a catalog model → keep it if it has a `format` build; else
1877
1857
  * the addon's default model for `format`
1878
1858
  * (a substitution — the caller surfaces it).
1859
+ * - chosen is RETIRED (`RETIRED_MODEL_IDS`) → the format default (D643).
1879
1860
  * - chosen is NOT in the catalog (custom/unknown) → returned unchanged; the
1880
1861
  * operator owns a custom model's format compat.
1881
1862
  * - unknown stepId → chosen returned unchanged (never throws).
@@ -1888,6 +1869,7 @@ function resolveModelForFormat(stepId, chosenModelId, format) {
1888
1869
  return chosenModelId ?? "";
1889
1870
  }
1890
1871
  if (chosenModelId === null) return getDefaultModelForFormat(stepId, format);
1872
+ if (RETIRED_MODEL_IDS[stepId]?.includes(chosenModelId) === true) return getDefaultModelForFormat(stepId, format);
1891
1873
  const entry = def.models.find((m) => m.id === chosenModelId);
1892
1874
  if (!entry) return chosenModelId;
1893
1875
  if (entry.formats[format]) return chosenModelId;
@@ -2243,6 +2225,12 @@ Object.defineProperty(exports, "OBJECT_DETECTION_STEP_ID", {
2243
2225
  return OBJECT_DETECTION_STEP_ID;
2244
2226
  }
2245
2227
  });
2228
+ Object.defineProperty(exports, "RETIRED_MODEL_IDS", {
2229
+ enumerable: true,
2230
+ get: function() {
2231
+ return RETIRED_MODEL_IDS;
2232
+ }
2233
+ });
2246
2234
  Object.defineProperty(exports, "getDefaultModelForFormat", {
2247
2235
  enumerable: true,
2248
2236
  get: function() {
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-D7FonEUB.js");
7
- const require_node = require("../node-D3C1krEi.js");
8
- const require_default_detection_model = require("../default-detection-model-jjdmKKr3.js");
6
+ const require_dist = require("../dist-CJR259Xf.js");
7
+ const require_node = require("../node-DWg9zbY1.js");
8
+ const require_default_detection_model = require("../default-detection-model-D24AJOTn.js");
9
9
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
10
- const require_process_memory = require("../process-memory-DI4jrCtX.js");
10
+ const require_process_memory = require("../process-memory-BJUXvTjd.js");
11
11
  let node_os = require("node:os");
12
12
  node_os = require_chunk.__toESM(node_os);
13
13
  let node_fs = require("node:fs");
@@ -5062,7 +5062,8 @@ function buildFrameResult(input) {
5062
5062
  ...embeddingModelId !== void 0 ? { embeddingModelId } : {}
5063
5063
  } : {},
5064
5064
  ...m.faceAlignedCrop !== void 0 ? { faceAlignedCrop: m.faceAlignedCrop } : {},
5065
- ...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {}
5065
+ ...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {},
5066
+ ...m.landmarks !== void 0 ? { landmarks: m.landmarks } : {}
5066
5067
  };
5067
5068
  if (input.debug) {
5068
5069
  const cleanDebug = pruneUndefined({
@@ -1,9 +1,9 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { $ as defaultDeviceFor$1, $t as errMsg, A as PoolMemoryWatchdog, En as array, Et as overlayClusterStepSettings, Fn as string, Gt as runtimeDevices$1, In as union, Ln as EventCategory, Mn as object, Mt as pipelineExecutorCapability, Ot as pickClusterStepModels, Ut as resolvePoolMemoryPolicy, V as YAMNET_TO_MACRO, Xt as supportedRuntimes$1, _t as loadContributionCapability, bn as nodePin, ct as evaluateZoneRules, f as DEFAULT_CLUSTER_STEP_MODELS, fn as createEvent, gn as hydrateSchema, ht as inferModelProvider, kt as pickClusterStepSettings, on as BaseAddon, ot as enumerateInferenceDevices, p as DEFAULT_CLUSTER_STEP_SETTINGS, rt as detectionPipelineCapability, t as APPLE_SA_TO_MACRO, v as DEVICE_BACKEND_TO_FORMAT, wn as sleep, xn as parseJsonUnknown, zt as resolveClusterStepModelId } from "../dist-Bn6BQW8q.mjs";
3
- import { s as readProcessCost } from "../node-BN0Na3HN.mjs";
4
- import { a as localFrameRegistry, c as ALL_STEPS, d as getStepDefinition, f as resolveModelForFormat, l as getDefaultModelForFormat, n as resolveDefaultDetectionModel, p as landmarkPrecisionVerdict, r as macroGateVerdict, s as ALL_PIPELINE_STEPS, u as getStep } from "../default-detection-model-DcTy-nJl.mjs";
2
+ import { $ as defaultDeviceFor$1, $t as errMsg, A as PoolMemoryWatchdog, En as array, Et as overlayClusterStepSettings, Fn as string, Gt as runtimeDevices$1, In as union, Ln as EventCategory, Mn as object, Mt as pipelineExecutorCapability, Ot as pickClusterStepModels, Ut as resolvePoolMemoryPolicy, V as YAMNET_TO_MACRO, Xt as supportedRuntimes$1, _t as loadContributionCapability, bn as nodePin, ct as evaluateZoneRules, f as DEFAULT_CLUSTER_STEP_MODELS, fn as createEvent, gn as hydrateSchema, ht as inferModelProvider, kt as pickClusterStepSettings, on as BaseAddon, ot as enumerateInferenceDevices, p as DEFAULT_CLUSTER_STEP_SETTINGS, rt as detectionPipelineCapability, t as APPLE_SA_TO_MACRO, v as DEVICE_BACKEND_TO_FORMAT, wn as sleep, xn as parseJsonUnknown, zt as resolveClusterStepModelId } from "../dist-RXbmRAwP.mjs";
3
+ import { s as readProcessCost } from "../node-atmRSHPk.mjs";
4
+ import { a as localFrameRegistry, c as ALL_STEPS, d as getStepDefinition, f as resolveModelForFormat, l as getDefaultModelForFormat, m as landmarkPrecisionVerdict, n as resolveDefaultDetectionModel, r as macroGateVerdict, s as ALL_PIPELINE_STEPS, u as getStep } from "../default-detection-model-0dPKRKUD.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-CeZ8ms80.mjs";
6
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BgFOHFnx.mjs";
7
7
  import * as os from "node:os";
8
8
  import * as fs from "node:fs";
9
9
  import * as path$1 from "node:path";
@@ -5055,7 +5055,8 @@ function buildFrameResult(input) {
5055
5055
  ...embeddingModelId !== void 0 ? { embeddingModelId } : {}
5056
5056
  } : {},
5057
5057
  ...m.faceAlignedCrop !== void 0 ? { faceAlignedCrop: m.faceAlignedCrop } : {},
5058
- ...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {}
5058
+ ...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {},
5059
+ ...m.landmarks !== void 0 ? { landmarks: m.landmarks } : {}
5059
5060
  };
5060
5061
  if (input.debug) {
5061
5062
  const cleanDebug = pruneUndefined({