@workglow/ai 0.2.17 → 0.2.18

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 (33) hide show
  1. package/dist/browser.js +19 -86
  2. package/dist/browser.js.map +4 -4
  3. package/dist/bun.js +19 -86
  4. package/dist/bun.js.map +4 -4
  5. package/dist/node.js +19 -86
  6. package/dist/node.js.map +4 -4
  7. package/dist/task/BackgroundRemovalTask.d.ts +3 -83
  8. package/dist/task/BackgroundRemovalTask.d.ts.map +1 -1
  9. package/dist/task/FaceDetectorTask.d.ts +3 -83
  10. package/dist/task/FaceDetectorTask.d.ts.map +1 -1
  11. package/dist/task/FaceLandmarkerTask.d.ts +3 -83
  12. package/dist/task/FaceLandmarkerTask.d.ts.map +1 -1
  13. package/dist/task/GestureRecognizerTask.d.ts +3 -83
  14. package/dist/task/GestureRecognizerTask.d.ts.map +1 -1
  15. package/dist/task/HandLandmarkerTask.d.ts +3 -83
  16. package/dist/task/HandLandmarkerTask.d.ts.map +1 -1
  17. package/dist/task/ImageClassificationTask.d.ts +3 -83
  18. package/dist/task/ImageClassificationTask.d.ts.map +1 -1
  19. package/dist/task/ImageEmbeddingTask.d.ts +6 -166
  20. package/dist/task/ImageEmbeddingTask.d.ts.map +1 -1
  21. package/dist/task/ImageSegmentationTask.d.ts +3 -83
  22. package/dist/task/ImageSegmentationTask.d.ts.map +1 -1
  23. package/dist/task/ImageToTextTask.d.ts +3 -83
  24. package/dist/task/ImageToTextTask.d.ts.map +1 -1
  25. package/dist/task/ObjectDetectionTask.d.ts +3 -83
  26. package/dist/task/ObjectDetectionTask.d.ts.map +1 -1
  27. package/dist/task/PoseLandmarkerTask.d.ts +3 -83
  28. package/dist/task/PoseLandmarkerTask.d.ts.map +1 -1
  29. package/dist/task/base/AiTaskSchemas.d.ts +4 -84
  30. package/dist/task/base/AiTaskSchemas.d.ts.map +1 -1
  31. package/dist/task/base/AiVisionTask.d.ts +2 -5
  32. package/dist/task/base/AiVisionTask.d.ts.map +1 -1
  33. package/package.json +11 -11
package/dist/browser.js CHANGED
@@ -884,80 +884,11 @@ function TypeSingleOrArray(type) {
884
884
  };
885
885
  }
886
886
  var TypeImageInput = {
887
- oneOf: [
888
- {
889
- type: "string",
890
- title: "Image Data",
891
- description: "Image as data-uri",
892
- format: "image:data-uri"
893
- },
894
- {
895
- type: "object",
896
- additionalProperties: false,
897
- properties: {
898
- data: {
899
- oneOf: [
900
- {
901
- type: "object",
902
- format: "image:ImageBitmap",
903
- title: "ImageBitmap"
904
- },
905
- {
906
- type: "object",
907
- format: "image:OffscreenCanvas",
908
- title: "OffscreenCanvas"
909
- },
910
- {
911
- type: "object",
912
- format: "image:VideoFrame",
913
- title: "VideoFrame"
914
- },
915
- {
916
- type: "object",
917
- properties: {
918
- data: {
919
- type: "array",
920
- items: { type: "number", format: "Uint8Clamped" },
921
- format: "Uint8ClampedArray",
922
- title: "Data",
923
- description: "Data of the image"
924
- },
925
- width: { type: "number", title: "Width", description: "Width of the image" },
926
- height: { type: "number", title: "Height", description: "Height of the image" },
927
- channels: {
928
- type: "number",
929
- title: "Channels",
930
- description: "Channels of the image"
931
- },
932
- rawChannels: {
933
- type: "number",
934
- title: "Raw Channels",
935
- description: "Raw channels of the image"
936
- }
937
- },
938
- additionalProperties: false,
939
- required: ["data", "width", "height", "channels"],
940
- format: "image:ImageBinary",
941
- title: "ImageBinary"
942
- }
943
- ]
944
- },
945
- width: { type: "number", title: "Width", description: "Width of the image" },
946
- height: { type: "number", title: "Height", description: "Height of the image" },
947
- channels: {
948
- type: "number",
949
- title: "Channels",
950
- description: "Channels of the image",
951
- minimum: 1,
952
- maximum: 4
953
- }
954
- },
955
- required: ["data", "width", "height", "channels"]
956
- }
957
- ],
887
+ type: "object",
888
+ properties: {},
958
889
  title: "Image",
959
- format: "image",
960
- description: "Image as URL or base64-encoded data"
890
+ description: "Image as data URI, Blob, ImageBitmap, ImageBinary, or GpuImage — hydrated to GpuImage by the runner",
891
+ format: "image"
961
892
  };
962
893
  var TypeAudioInput = {
963
894
  type: "string",
@@ -1577,23 +1508,25 @@ class AiChatTask extends StreamingAiTask {
1577
1508
  import { CreateWorkflow, Workflow } from "@workglow/task-graph";
1578
1509
 
1579
1510
  // src/task/base/AiVisionTask.ts
1580
- import { Image } from "@workglow/util/media";
1581
1511
  class AiVisionTask extends AiTask {
1582
1512
  static type = "AiVisionTask";
1583
1513
  async getJobInput(input) {
1584
1514
  const jobInput = await super.getJobInput(input);
1585
- const providerName = input.model.provider;
1586
- const supports = ["Blob"];
1587
- if (input.image) {
1588
- if (typeof providerName === "string" && providerName.startsWith("TENSORFLOW_MEDIAPIPE") && "ImageBitmap" in globalThis) {
1589
- supports.push("ImageBitmap");
1590
- } else if (typeof providerName === "string" && providerName.startsWith("TENSORFLOW_MEDIAPIPE") && "VideoFrame" in globalThis) {
1591
- supports.push("VideoFrame");
1515
+ if (!input.image)
1516
+ return jobInput;
1517
+ const provider = input.model.provider;
1518
+ const wantsBitmap = typeof provider === "string" && provider.startsWith("TENSORFLOW_MEDIAPIPE") && typeof ImageBitmap !== "undefined";
1519
+ const materializeOne = async (img) => {
1520
+ if (wantsBitmap) {
1521
+ const bin = await img.materialize();
1522
+ const id = new ImageData(bin.data, bin.width, bin.height);
1523
+ return createImageBitmap(id);
1592
1524
  }
1593
- const toSupported = (img) => Image.from(img).toFirstSupported(supports);
1594
- const image = Array.isArray(input.image) ? await Promise.all(input.image.map(toSupported)) : await toSupported(input.image);
1595
- jobInput.taskInput.image = image;
1596
- }
1525
+ return img.materialize();
1526
+ };
1527
+ const value = input.image;
1528
+ const materialized = Array.isArray(value) ? await Promise.all(value.map(materializeOne)) : await materializeOne(value);
1529
+ jobInput.taskInput.image = materialized;
1597
1530
  return jobInput;
1598
1531
  }
1599
1532
  }
@@ -7277,4 +7210,4 @@ export {
7277
7210
  AiChatInputSchema
7278
7211
  };
7279
7212
 
7280
- //# debugId=CCC95F44BED9528464756E2164756E21
7213
+ //# debugId=F74372035BAF50F964756E2164756E21