@workglow/huggingface-transformers 0.2.36 → 0.2.37
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/dist/ai/HuggingFaceTransformersProvider.d.ts +1 -1
- package/dist/ai/HuggingFaceTransformersProvider.d.ts.map +1 -1
- package/dist/ai/HuggingFaceTransformersQueuedProvider.d.ts +1 -1
- package/dist/ai/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
- package/dist/ai/common/HFT_Chat.d.ts.map +1 -1
- package/dist/ai/common/HFT_ImageEmbedding.d.ts.map +1 -1
- package/dist/ai/common/HFT_ImageSegmentation.d.ts.map +1 -1
- package/dist/ai/registerHuggingFaceTransformersWorker.d.ts.map +1 -1
- package/dist/ai-runtime.js +47 -24
- package/dist/ai-runtime.js.map +15 -15
- package/dist/ai.js +46 -23
- package/dist/ai.js.map +14 -14
- package/package.json +11 -11
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AiProvider } from "@workglow/ai/worker";
|
|
7
6
|
import type { AiProviderPreviewRunFn, AiProviderRunFnRegistration, Capability, ModelConfig, ModelRecord } from "@workglow/ai/worker";
|
|
7
|
+
import { AiProvider } from "@workglow/ai/worker";
|
|
8
8
|
import type { HfTransformersOnnxModelConfig } from "./common/HFT_ModelSchema";
|
|
9
9
|
/**
|
|
10
10
|
* AI provider for HuggingFace Transformers ONNX models.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HuggingFaceTransformersProvider.d.ts","sourceRoot":"","sources":["../../src/ai/HuggingFaceTransformersProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"HuggingFaceTransformersProvider.d.ts","sourceRoot":"","sources":["../../src/ai/HuggingFaceTransformersProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,UAAU,EACV,WAAW,EACX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAG9E;;;;;;GAMG;AACH,qBAAa,+BAAgC,SAAQ,UAAU,CAAC,6BAA6B,CAAC;IAC5F,QAAQ,CAAC,IAAI,0BAAwB;IACrC,QAAQ,CAAC,WAAW,sCAAsC;IAC1D,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,YACE,aAAa,CAAC,EAAE,SAAS,2BAA2B,CAElD,GAAG,EAEH,GAAG,EACH,6BAA6B,CAC9B,EAAE,EACH,YAAY,CAAC,EAAE,MAAM,CACnB,MAAM,EAEN,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAChE,EAGF;IAEQ,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,UAAU,EAAE,CAEpE;IAED,UAAmB,gBAAgB,IAAI,SAAS;QAAE,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,EAAE,CAElF;IAEQ,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAElD;IAEc,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;CACF"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { QueuedAiProvider } from "@workglow/ai";
|
|
7
6
|
import type { AiProviderPreviewRunFn, AiProviderRegisterOptions, AiProviderRunFnRegistration, Capability, IAiExecutionStrategy, ModelConfig, ModelRecord } from "@workglow/ai";
|
|
7
|
+
import { QueuedAiProvider } from "@workglow/ai";
|
|
8
8
|
import type { HfTransformersOnnxModelConfig } from "./common/HFT_ModelSchema";
|
|
9
9
|
/**
|
|
10
10
|
* Main-thread registration (inline or worker-backed) for the HFT provider.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HuggingFaceTransformersQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/ai/HuggingFaceTransformersQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"HuggingFaceTransformersQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/ai/HuggingFaceTransformersQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,sBAAsB,EAEtB,yBAAyB,EACzB,2BAA2B,EAC3B,UAAU,EACV,oBAAoB,EACpB,WAAW,EACX,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAsC9E;;;;;GAKG;AACH,qBAAa,qCAAsC,SAAQ,gBAAgB,CAAC,6BAA6B,CAAC;IACxG,QAAQ,CAAC,IAAI,0BAAwB;IACrC,QAAQ,CAAC,WAAW,sCAAsC;IAC1D,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,OAAO,CAAC,WAAW,CAAmC;IAEtD,YACE,aAAa,CAAC,EAAE,SAAS,2BAA2B,CAElD,GAAG,EAEH,GAAG,EACH,6BAA6B,CAC9B,EAAE,EACH,YAAY,CAAC,EAAE,MAAM,CACnB,MAAM,EAEN,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,6BAA6B,CAAC,CAChE,EAGF;IAEQ,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,UAAU,EAAE,CAEpE;IAED,UAAmB,gBAAgB,IAAI,SAAS;QAAE,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,EAAE,CAElF;IAEQ,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAElD;IAEc,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;IAED,UAAyB,aAAa,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxF;IAED,UAAmB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAM/E;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HFT_Chat.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_Chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"HFT_Chat.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_Chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AA4IvE,eAAO,MAAM,QAAQ,EAAE,eAAe,CACpC,mBAAmB,EACnB,oBAAoB,EACpB,6BAA6B,CAM9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HFT_ImageEmbedding.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_ImageEmbedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"HFT_ImageEmbedding.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_ImageEmbedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAGvE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,CAgC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HFT_ImageSegmentation.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_ImageSegmentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"HFT_ImageSegmentation.d.ts","sourceRoot":"","sources":["../../../src/ai/common/HFT_ImageSegmentation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAiCvE;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAAe,CACjD,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,CAyB9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerHuggingFaceTransformersWorker.d.ts","sourceRoot":"","sources":["../../src/ai/registerHuggingFaceTransformersWorker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,wBAAsB,qCAAqC,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"registerHuggingFaceTransformersWorker.d.ts","sourceRoot":"","sources":["../../src/ai/registerHuggingFaceTransformersWorker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,wBAAsB,qCAAqC,IAAI,OAAO,CAAC,IAAI,CAAC,CAc3E"}
|
package/dist/ai-runtime.js
CHANGED
|
@@ -866,21 +866,6 @@ var HFT_BackgroundRemoval = async (input, model, signal, emit) => {
|
|
|
866
866
|
// src/ai/common/HFT_Chat.ts
|
|
867
867
|
init_HFT_Pipeline();
|
|
868
868
|
|
|
869
|
-
// src/ai/common/HFT_ToolCalling.ts
|
|
870
|
-
init_HFT_Pipeline();
|
|
871
|
-
import {
|
|
872
|
-
buildToolDescription,
|
|
873
|
-
filterValidToolCalls,
|
|
874
|
-
toTextFlatMessages
|
|
875
|
-
} from "@workglow/ai/worker";
|
|
876
|
-
import {
|
|
877
|
-
adaptParserResult,
|
|
878
|
-
forcedToolSelection,
|
|
879
|
-
getAvailableParsers,
|
|
880
|
-
getGenerationPrefix,
|
|
881
|
-
parseToolCalls
|
|
882
|
-
} from "@workglow/ai/provider-utils";
|
|
883
|
-
|
|
884
869
|
// src/ai/common/HFT_Streaming.ts
|
|
885
870
|
function createStreamingTextStreamer(tokenizer, onText, textStreamer) {
|
|
886
871
|
return new textStreamer(tokenizer, {
|
|
@@ -904,6 +889,19 @@ function createTextStreamer(tokenizer, updateProgress, textStreamer) {
|
|
|
904
889
|
}
|
|
905
890
|
|
|
906
891
|
// src/ai/common/HFT_ToolCalling.ts
|
|
892
|
+
init_HFT_Pipeline();
|
|
893
|
+
import {
|
|
894
|
+
adaptParserResult,
|
|
895
|
+
forcedToolSelection,
|
|
896
|
+
getAvailableParsers,
|
|
897
|
+
getGenerationPrefix,
|
|
898
|
+
parseToolCalls
|
|
899
|
+
} from "@workglow/ai/provider-utils";
|
|
900
|
+
import {
|
|
901
|
+
buildToolDescription,
|
|
902
|
+
filterValidToolCalls,
|
|
903
|
+
toTextFlatMessages
|
|
904
|
+
} from "@workglow/ai/worker";
|
|
907
905
|
function getModelTextCandidates(model) {
|
|
908
906
|
return [model.model_id, model.title, model.description, model.provider_config.model_path].filter((value) => typeof value === "string" && value.length > 0).map((value) => value.toLowerCase());
|
|
909
907
|
}
|
|
@@ -1323,8 +1321,8 @@ var HFT_ImageClassification = async (input, model, signal, emit) => {
|
|
|
1323
1321
|
|
|
1324
1322
|
// src/ai/common/HFT_ImageEmbedding.ts
|
|
1325
1323
|
init_HFT_Pipeline();
|
|
1326
|
-
import { getLogger as getLogger4 } from "@workglow/util/worker";
|
|
1327
1324
|
import { imageValueToBlob as imageValueToBlob3 } from "@workglow/ai/provider-utils";
|
|
1325
|
+
import { getLogger as getLogger4 } from "@workglow/util/worker";
|
|
1328
1326
|
var HFT_ImageEmbedding = async (input, model, signal, emit) => {
|
|
1329
1327
|
const logger = getLogger4();
|
|
1330
1328
|
const timerLabel = `hft:ImageEmbedding:${model?.provider_config.model_path}`;
|
|
@@ -1356,6 +1354,29 @@ var HFT_ImageEmbedding = async (input, model, signal, emit) => {
|
|
|
1356
1354
|
// src/ai/common/HFT_ImageSegmentation.ts
|
|
1357
1355
|
init_HFT_Pipeline();
|
|
1358
1356
|
import { imageValueToBlob as imageValueToBlob4 } from "@workglow/ai/provider-utils";
|
|
1357
|
+
import { imageValueFromBuffer } from "@workglow/util/media";
|
|
1358
|
+
function rawImageToImageValue(image) {
|
|
1359
|
+
const raw = image;
|
|
1360
|
+
const pixelCount = raw.width * raw.height;
|
|
1361
|
+
const rgba = new Uint8Array(pixelCount * 4);
|
|
1362
|
+
for (let pixel = 0;pixel < pixelCount; pixel++) {
|
|
1363
|
+
const sourceOffset = pixel * raw.channels;
|
|
1364
|
+
const targetOffset = pixel * 4;
|
|
1365
|
+
if (raw.channels === 1) {
|
|
1366
|
+
const value = raw.data[sourceOffset] ?? 0;
|
|
1367
|
+
rgba[targetOffset] = value;
|
|
1368
|
+
rgba[targetOffset + 1] = value;
|
|
1369
|
+
rgba[targetOffset + 2] = value;
|
|
1370
|
+
rgba[targetOffset + 3] = 255;
|
|
1371
|
+
} else {
|
|
1372
|
+
rgba[targetOffset] = raw.data[sourceOffset] ?? 0;
|
|
1373
|
+
rgba[targetOffset + 1] = raw.data[sourceOffset + 1] ?? raw.data[sourceOffset] ?? 0;
|
|
1374
|
+
rgba[targetOffset + 2] = raw.data[sourceOffset + 2] ?? raw.data[sourceOffset] ?? 0;
|
|
1375
|
+
rgba[targetOffset + 3] = raw.channels >= 4 ? raw.data[sourceOffset + 3] ?? 255 : 255;
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
return imageValueFromBuffer(Buffer.from(rgba), "raw-rgba", raw.width, raw.height);
|
|
1379
|
+
}
|
|
1359
1380
|
var HFT_ImageSegmentation = async (input, model, signal, emit) => {
|
|
1360
1381
|
const segmenter = await getPipeline(model, emit, {}, signal);
|
|
1361
1382
|
const imageArg = await imageValueToBlob4(input.image);
|
|
@@ -1364,11 +1385,13 @@ var HFT_ImageSegmentation = async (input, model, signal, emit) => {
|
|
|
1364
1385
|
mask_threshold: input.maskThreshold
|
|
1365
1386
|
});
|
|
1366
1387
|
const masks = Array.isArray(result) ? result : [result];
|
|
1367
|
-
const processedMasks =
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1388
|
+
const processedMasks = masks.map((mask) => {
|
|
1389
|
+
return {
|
|
1390
|
+
label: mask.label || "",
|
|
1391
|
+
score: mask.score || 0,
|
|
1392
|
+
mask: rawImageToImageValue(mask.mask)
|
|
1393
|
+
};
|
|
1394
|
+
});
|
|
1372
1395
|
emit({
|
|
1373
1396
|
type: "finish",
|
|
1374
1397
|
data: {
|
|
@@ -1495,7 +1518,7 @@ var HFT_ModelInfo = async (input, model, _signal, emit) => {
|
|
|
1495
1518
|
};
|
|
1496
1519
|
|
|
1497
1520
|
// src/ai/common/HFT_ModelSearch.ts
|
|
1498
|
-
import {
|
|
1521
|
+
import { mapHfModelResult, searchHfModels } from "@workglow/ai/provider-utils";
|
|
1499
1522
|
var HFT_ModelSearch = async (input, _model, signal, emit) => {
|
|
1500
1523
|
const entries = await searchHfModels(input.query?.trim() ?? "", { filter: "onnx" }, ["siblings"], signal);
|
|
1501
1524
|
const results = entries.map((entry) => {
|
|
@@ -2105,6 +2128,7 @@ async function registerHuggingFaceTransformersInline(options) {
|
|
|
2105
2128
|
|
|
2106
2129
|
// src/ai/registerHuggingFaceTransformersWorker.ts
|
|
2107
2130
|
import { registerProviderWorker } from "@workglow/ai/provider-utils";
|
|
2131
|
+
init_HFT_Pipeline();
|
|
2108
2132
|
|
|
2109
2133
|
// src/ai/HuggingFaceTransformersProvider.ts
|
|
2110
2134
|
import { AiProvider } from "@workglow/ai/worker";
|
|
@@ -2133,7 +2157,6 @@ class HuggingFaceTransformersProvider extends AiProvider {
|
|
|
2133
2157
|
}
|
|
2134
2158
|
|
|
2135
2159
|
// src/ai/registerHuggingFaceTransformersWorker.ts
|
|
2136
|
-
init_HFT_Pipeline();
|
|
2137
2160
|
async function registerHuggingFaceTransformersWorker() {
|
|
2138
2161
|
const sdk = await loadTransformersSDK();
|
|
2139
2162
|
globalThis.__HFT__ = sdk;
|
|
@@ -2172,4 +2195,4 @@ export {
|
|
|
2172
2195
|
HFT_NULL_PROCESSOR_PREFIX
|
|
2173
2196
|
};
|
|
2174
2197
|
|
|
2175
|
-
//# debugId=
|
|
2198
|
+
//# debugId=54B26D0D2015DF8E64756E2164756E21
|