react-native-executorch 0.11.0-nightly-5c521a5-20261027 → 0.11.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.
- package/cpp/extensions/cv/image_ops.cpp +77 -0
- package/cpp/extensions/cv/image_ops.h +1 -0
- package/cpp/extensions/cv/install.cpp +1 -0
- package/lib/module/extensions/cv/ops/image.js +31 -0
- package/lib/module/extensions/cv/ops/image.js.map +1 -1
- package/lib/module/extensions/cv/tasks/inpainting.js +178 -0
- package/lib/module/extensions/cv/tasks/inpainting.js.map +1 -0
- package/lib/module/extensions/llm/llmRunner.js.map +1 -1
- package/lib/module/extensions/llm/tasks/llmChatSession.js +16 -12
- package/lib/module/extensions/llm/tasks/llmChatSession.js.map +1 -1
- package/lib/module/extensions/llm/utils/chatPreprocessor.js +3 -1
- package/lib/module/extensions/llm/utils/chatPreprocessor.js.map +1 -1
- package/lib/module/hooks/useInpainter.js +43 -0
- package/lib/module/hooks/useInpainter.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models.js +115 -0
- package/lib/module/models.js.map +1 -1
- package/lib/typescript/src/extensions/cv/ops/image.d.ts +37 -0
- package/lib/typescript/src/extensions/cv/ops/image.d.ts.map +1 -1
- package/lib/typescript/src/extensions/cv/tasks/inpainting.d.ts +100 -0
- package/lib/typescript/src/extensions/cv/tasks/inpainting.d.ts.map +1 -0
- package/lib/typescript/src/extensions/llm/llmRunner.d.ts +2 -0
- package/lib/typescript/src/extensions/llm/llmRunner.d.ts.map +1 -1
- package/lib/typescript/src/extensions/llm/tasks/llmChatSession.d.ts.map +1 -1
- package/lib/typescript/src/extensions/llm/utils/chatPreprocessor.d.ts +4 -0
- package/lib/typescript/src/extensions/llm/utils/chatPreprocessor.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useInpainter.d.ts +28 -0
- package/lib/typescript/src/hooks/useInpainter.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/models.d.ts +51 -0
- package/lib/typescript/src/models.d.ts.map +1 -1
- package/package.json +2 -2
- package/scripts/download-libs.js +3 -1
- package/src/extensions/cv/ops/image.ts +51 -0
- package/src/extensions/cv/tasks/inpainting.ts +269 -0
- package/src/extensions/llm/llmRunner.ts +2 -0
- package/src/extensions/llm/tasks/llmChatSession.ts +10 -4
- package/src/extensions/llm/utils/chatPreprocessor.ts +8 -5
- package/src/hooks/useInpainter.ts +34 -0
- package/src/index.ts +2 -0
- package/src/models.ts +110 -0
|
@@ -510,4 +510,81 @@ void install_rectifyQuad(jsi::Runtime &rt, jsi::Object &module) {
|
|
|
510
510
|
module.setProperty(rt, name, jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, name), 4, error::guarded(fnBody)));
|
|
511
511
|
}
|
|
512
512
|
|
|
513
|
+
// Composite `overlay` over `src` where `mask` is non-zero, with the masked
|
|
514
|
+
// region eroded by `shrink` px and its edge feathered by a `feather`-wide
|
|
515
|
+
// Gaussian, so the seam blends instead of cutting: dst = src*(1-w) + overlay*w.
|
|
516
|
+
void install_blendMasked(jsi::Runtime &rt, jsi::Object &module) {
|
|
517
|
+
const auto *name = "blendMasked";
|
|
518
|
+
auto fnBody = [](jsi::Runtime &rt, const jsi::Value & /*thisVal*/, const jsi::Value *args, size_t count) -> jsi::Value {
|
|
519
|
+
if (count != 5) {
|
|
520
|
+
throw error::InvalidArgument("blendMasked: Usage: blendMasked(src, overlay, mask, dst, options)");
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
auto src = tensor::fromJs(rt, "blendMasked: src", args[0], DType::uint8, {"H", "W", "C"});
|
|
524
|
+
auto overlay = tensor::fromJs(rt, "blendMasked: overlay", args[1], DType::uint8, src->shape_);
|
|
525
|
+
auto mask = tensor::fromJs(rt, "blendMasked: mask", args[2], DType::uint8, {src->shape_[0], src->shape_[1], 1});
|
|
526
|
+
auto dst = tensor::fromJs(rt, "blendMasked: dst", args[3], DType::uint8, src->shape_);
|
|
527
|
+
|
|
528
|
+
tensor::checkNotSameTensor(rt, "blendMasked: src", src, "blendMasked: dst", dst);
|
|
529
|
+
tensor::checkNotSameTensor(rt, "blendMasked: overlay", overlay, "blendMasked: dst", dst);
|
|
530
|
+
auto srcLock = tensor::tryLockShared(rt, "blendMasked: src", src);
|
|
531
|
+
auto overlayLock = tensor::tryLockShared(rt, "blendMasked: overlay", overlay);
|
|
532
|
+
auto maskLock = tensor::tryLockShared(rt, "blendMasked: mask", mask);
|
|
533
|
+
auto dstLock = tensor::tryLockUnique(rt, "blendMasked: dst", dst);
|
|
534
|
+
|
|
535
|
+
const auto opts = conversions::asType<jsi::Object>(rt, "blendMasked: options", args[4]);
|
|
536
|
+
const auto shrink = conversions::getRequiredProperty<int32_t>(rt, "blendMasked: options", opts, "shrink");
|
|
537
|
+
const auto feather = conversions::getRequiredProperty<int32_t>(rt, "blendMasked: options", opts, "feather");
|
|
538
|
+
if (shrink < 0) {
|
|
539
|
+
throw error::InvalidArgument(std::format("blendMasked: shrink must be >= 0 (got {})", shrink));
|
|
540
|
+
}
|
|
541
|
+
if (feather < 0 || (feather > 0 && feather % 2 == 0)) {
|
|
542
|
+
throw error::InvalidArgument(std::format("blendMasked: feather must be 0 or an odd kernel size (got {})", feather));
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
const int32_t h = src->shape_[0];
|
|
546
|
+
const int32_t w = src->shape_[1];
|
|
547
|
+
const int cvType = CV_MAKETYPE(CV_8U, src->shape_[2]);
|
|
548
|
+
|
|
549
|
+
try {
|
|
550
|
+
const ::cv::Mat srcMat(h, w, cvType, src->data_.get());
|
|
551
|
+
const ::cv::Mat overlayMat(h, w, cvType, overlay->data_.get());
|
|
552
|
+
const ::cv::Mat maskMat(h, w, CV_8UC1, mask->data_.get());
|
|
553
|
+
::cv::Mat dstMat(h, w, cvType, dst->data_.get());
|
|
554
|
+
|
|
555
|
+
// Weight of the overlay: 1 inside the (eroded, feathered) mask, 0 outside.
|
|
556
|
+
::cv::Mat hole;
|
|
557
|
+
::cv::threshold(maskMat, hole, 0, 255, ::cv::THRESH_BINARY);
|
|
558
|
+
::cv::Mat region = hole;
|
|
559
|
+
if (shrink > 0) {
|
|
560
|
+
const int k = 2 * shrink + 1;
|
|
561
|
+
::cv::Mat eroded;
|
|
562
|
+
::cv::erode(region, eroded, ::cv::getStructuringElement(::cv::MORPH_RECT, ::cv::Size(k, k)));
|
|
563
|
+
// A region thinner than the kernel erodes to nothing, which would
|
|
564
|
+
// silently leave `src` untouched; keep the full region instead.
|
|
565
|
+
if (::cv::countNonZero(eroded) > 0) {
|
|
566
|
+
region = eroded;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
::cv::Mat weight;
|
|
570
|
+
region.convertTo(weight, CV_32F, 1.0 / 255.0);
|
|
571
|
+
if (feather > 0) {
|
|
572
|
+
::cv::GaussianBlur(weight, weight, ::cv::Size(feather, feather), 0);
|
|
573
|
+
// The blur spreads both ways; keep the ramp inside the mask so
|
|
574
|
+
// pixels outside it are returned exactly as in `src`.
|
|
575
|
+
weight.setTo(::cv::Scalar::all(0), hole == 0);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
::cv::Mat ones = ::cv::Mat::ones(h, w, CV_32F);
|
|
579
|
+
::cv::blendLinear(srcMat, overlayMat, ones - weight, weight, dstMat);
|
|
580
|
+
} catch (const std::exception &e) {
|
|
581
|
+
throw error::Unknown("blendMasked: " + std::string(e.what()));
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
return jsi::Value(rt, args[3]);
|
|
585
|
+
};
|
|
586
|
+
|
|
587
|
+
module.setProperty(rt, name, jsi::Function::createFromHostFunction(rt, jsi::PropNameID::forAscii(rt, name), 5, error::guarded(fnBody)));
|
|
588
|
+
}
|
|
589
|
+
|
|
513
590
|
} // namespace rnexecutorch::extensions::cv::image_ops
|
|
@@ -10,4 +10,5 @@ void install_toChannelsLast(facebook::jsi::Runtime &rt, facebook::jsi::Object &m
|
|
|
10
10
|
void install_normalize(facebook::jsi::Runtime &rt, facebook::jsi::Object &module);
|
|
11
11
|
void install_applyColormap(facebook::jsi::Runtime &rt, facebook::jsi::Object &module);
|
|
12
12
|
void install_rectifyQuad(facebook::jsi::Runtime &rt, facebook::jsi::Object &module);
|
|
13
|
+
void install_blendMasked(facebook::jsi::Runtime &rt, facebook::jsi::Object &module);
|
|
13
14
|
} // namespace rnexecutorch::extensions::cv::image_ops
|
|
@@ -16,6 +16,7 @@ void install(facebook::jsi::Runtime &rt, facebook::jsi::Object &module) {
|
|
|
16
16
|
image_ops::install_normalize(rt, cvModule);
|
|
17
17
|
image_ops::install_applyColormap(rt, cvModule);
|
|
18
18
|
image_ops::install_rectifyQuad(rt, cvModule);
|
|
19
|
+
image_ops::install_blendMasked(rt, cvModule);
|
|
19
20
|
|
|
20
21
|
box_ops::install_nms(rt, cvModule);
|
|
21
22
|
box_ops::install_restrictToBox(rt, cvModule);
|
|
@@ -254,4 +254,35 @@ export function applyColormap(src, dst, colormap) {
|
|
|
254
254
|
|
|
255
255
|
return rnexecutorchJsi.cv.applyColormap(src, dst, colormap);
|
|
256
256
|
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Options softening the mask edge in {@link blendMasked}.
|
|
260
|
+
* @category CV / Types
|
|
261
|
+
*/
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Composites `overlay` over `src` where `mask` is non-zero, writing
|
|
265
|
+
* `src * (1 - w) + overlay * w` into `dst`, where `w` is the mask eroded and
|
|
266
|
+
* feathered per `options`. Pixels outside the mask come from `src` unchanged.
|
|
267
|
+
* @category CV / Functions
|
|
268
|
+
* @param src The base image tensor in HWC layout, `[H, W, C]`, data type `uint8`.
|
|
269
|
+
* @param overlay The image tensor to composite, `[H, W, C]`, data type `uint8`.
|
|
270
|
+
* @param mask The region to take from `overlay`, `[H, W, 1]`, data type `uint8`;
|
|
271
|
+
* any non-zero value marks a masked pixel.
|
|
272
|
+
* @param dst The pre-allocated destination image tensor, `[H, W, C]`, data type
|
|
273
|
+
* `uint8`. Must not alias `src` or `overlay`.
|
|
274
|
+
* @param options Edge erosion and feathering. See {@link BlendMaskedOptions}.
|
|
275
|
+
* @returns The destination image tensor `dst`.
|
|
276
|
+
* @throws {RnExecuTorchError} With code `INVALID_ARGUMENT` if tensor shapes,
|
|
277
|
+
* layouts, or data types are invalid, or `feather` is even, `RESOURCE_BUSY` if
|
|
278
|
+
* a tensor is in use, or `RESOURCE_DISPOSED` if any tensor was disposed.
|
|
279
|
+
*/
|
|
280
|
+
export function blendMasked(src, overlay, mask, dst, options) {
|
|
281
|
+
'worklet';
|
|
282
|
+
|
|
283
|
+
return rnexecutorchJsi.cv.blendMasked(src, overlay, mask, dst, {
|
|
284
|
+
shrink: options?.shrink ?? 0,
|
|
285
|
+
feather: options?.feather ?? 0
|
|
286
|
+
});
|
|
287
|
+
}
|
|
257
288
|
//# sourceMappingURL=image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["rnexecutorchJsi","FORMAT_CONVERSION","rgb","rgba","bgr","bgra","gray","FORMAT_CHANNELS","resize","src","dst","options","cv","mode","interpolation","padValue","cvtColor","code","toChannelsFirst","toChannelsLast","normalize","defaultNormalizeOptions","alpha","beta","applyColormap","colormap"],"sourceRoot":"../../../../../src","sources":["extensions/cv/ops/image.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,2BAAwB;;AAIxD;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAGZ,GAAG;EACFC,GAAG,EAAE;IAAEA,GAAG,EAAE,IAAI;IAAEC,IAAI,EAAE,UAAU;IAAEC,GAAG,EAAE,SAAS;IAAEC,IAAI,EAAE,UAAU;IAAEC,IAAI,EAAE;EAAW,CAAC;EACxFF,GAAG,EAAE;IAAEF,GAAG,EAAE,SAAS;IAAEC,IAAI,EAAE,UAAU;IAAEC,GAAG,EAAE,IAAI;IAAEC,IAAI,EAAE,UAAU;IAAEC,IAAI,EAAE;EAAW,CAAC;EACxFH,IAAI,EAAE;IAAED,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,IAAI;IAAEC,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,WAAW;IAAEC,IAAI,EAAE;EAAY,CAAC;EAC5FD,IAAI,EAAE;IAAEH,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,WAAW;IAAEC,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,IAAI;IAAEC,IAAI,EAAE;EAAY,CAAC;EAC5FA,IAAI,EAAE;IAAEJ,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,WAAW;IAAEC,GAAG,EAAE,UAAU;IAAEC,IAAI,EAAE,WAAW;IAAEC,IAAI,EAAE;EAAK;AAC7F,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAA4C,GAAG;EAC1DL,GAAG,EAAE,CAAC;EACNE,GAAG,EAAE,CAAC;EACND,IAAI,EAAE,CAAC;EACPE,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE;AACR,CAAC;;AAED;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,MAAMA,CAACC,GAAW,EAAEC,GAAW,EAAEC,OAAuB,EAAU;EAChF,SAAS;;EACT,OAAOX,eAAe,CAACY,EAAE,CAACJ,MAAM,CAACC,GAAG,EAAEC,GAAG,EAAE;IACzCG,IAAI,EAAEF,OAAO,EAAEE,IAAI,IAAI,SAAS;IAChCC,aAAa,EAAEH,OAAO,EAAEG,aAAa,IAAI,SAAS;IAClDC,QAAQ,EAAEJ,OAAO,EAAEI,QAAQ,IAAI;EACjC,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACP,GAAW,EAAEC,GAAW,EAAEO,IAAyB,EAAU;EACpF,SAAS;;EACT,OAAOjB,eAAe,CAACY,EAAE,CAACI,QAAQ,CAACP,GAAG,EAAEC,GAAG,EAAEO,IAAI,CAAC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAACT,GAAW,EAAEC,GAAW,EAAU;EAChE,SAAS;;EACT,OAAOV,eAAe,CAACY,EAAE,CAACM,eAAe,CAACT,GAAG,EAAEC,GAAG,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,cAAcA,CAACV,GAAW,EAAEC,GAAW,EAAU;EAC/D,SAAS;;EACT,OAAOV,eAAe,CAACY,EAAE,CAACO,cAAc,CAACV,GAAG,EAAEC,GAAG,CAAC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,SAASA,CAACX,GAAW,EAAEC,GAAW,EAAEC,OAA0B,EAAU;EACtF,SAAS;;EACT,MAAMU,uBAAuB,GAAG;IAC9BC,KAAK,EAAE,CAAC,GAAG,KAAK;IAChBC,IAAI,EAAE;EACR,CAAU;EACV,OAAOvB,eAAe,CAACY,EAAE,CAACQ,SAAS,CAACX,GAAG,EAAEC,GAAG,EAAE;IAAE,GAAGW,uBAAuB;IAAE,GAAGV;EAAQ,CAAC,CAAC;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASa,aAAaA,CAC3Bf,GAAW,EACXC,GAAW,EACXe,QAA4C,EACpC;EACR,SAAS;;EACT,OAAOzB,eAAe,CAACY,EAAE,CAACY,aAAa,CAACf,GAAG,EAAEC,GAAG,EAAEe,QAAQ,CAAC;AAC7D","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["rnexecutorchJsi","FORMAT_CONVERSION","rgb","rgba","bgr","bgra","gray","FORMAT_CHANNELS","resize","src","dst","options","cv","mode","interpolation","padValue","cvtColor","code","toChannelsFirst","toChannelsLast","normalize","defaultNormalizeOptions","alpha","beta","applyColormap","colormap","blendMasked","overlay","mask","shrink","feather"],"sourceRoot":"../../../../../src","sources":["extensions/cv/ops/image.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Image inpainting task pipeline: fills a masked region of a photo with
|
|
5
|
+
* plausible content (object removal, blemish cleanup). The whole frame is
|
|
6
|
+
* resized to the model input, and the output is resized back and blended into
|
|
7
|
+
* the original pixels through the mask, so only the hole changes.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { tensor } from "../../../core/tensor.js";
|
|
11
|
+
import { loadModel } from "../../../core/model.js";
|
|
12
|
+
import { validateSpec, method, f32 } from "../../../core/schema.js";
|
|
13
|
+
import { wrapAsync } from "../../../core/runtime.js";
|
|
14
|
+
import { createResourceScope } from "../../../core/lifetime.js";
|
|
15
|
+
import { RnExecuTorchError } from "../../../core/error.js";
|
|
16
|
+
import { threshold } from "../../math.js";
|
|
17
|
+
import { FORMAT_CHANNELS, FORMAT_CONVERSION, resize, cvtColor, toChannelsFirst, toChannelsLast, normalize, blendMasked } from "../ops/image.js";
|
|
18
|
+
import { createImagePreprocessor } from "../utils/imagePreprocessor.js";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Options for configuring the inpainting preprocessor and postprocessor. The
|
|
22
|
+
* image goes through the shared image preprocessor; the mask is always
|
|
23
|
+
* area-resized and re-binarized, so a model pixel is part of the hole when any
|
|
24
|
+
* of the photo pixels it covers is.
|
|
25
|
+
* @category CV / Types
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Model configuration required to instantiate an inpainting task runner.
|
|
30
|
+
* @category CV / Types
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The hole to fill, as a single-channel buffer: any non-zero pixel is part of
|
|
35
|
+
* the hole.
|
|
36
|
+
* @category CV / Types
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Image inpainting task runner.
|
|
41
|
+
* @category CV / Types
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Creates an image inpainting runner for executing local inpainting models.
|
|
46
|
+
*
|
|
47
|
+
* It validates the model inputs and outputs requirements, pre-allocates the
|
|
48
|
+
* necessary static execution tensors, and registers clean disposal hooks to
|
|
49
|
+
* clear all native memory. The model is expected to take an RGB image in
|
|
50
|
+
* `[0, 1]` and a mask with `1` for known pixels and `0` for the hole, and to
|
|
51
|
+
* return the filled RGB image in `[0, 1]`, all at a fixed resolution.
|
|
52
|
+
* @category CV / Tasks
|
|
53
|
+
* @param config Inpainting task configuration containing path and options.
|
|
54
|
+
* See {@link InpainterModel}.
|
|
55
|
+
* @param runtime Optional worklet runtime thread on which to run the model execution.
|
|
56
|
+
* @returns A promise resolving to the instantiated {@link Inpainter} runner.
|
|
57
|
+
* @throws {RnExecuTorchError} With code `LOAD_FAILED` if model fails to load,
|
|
58
|
+
* or `SCHEMA_MISMATCH` if model schema does not match the inpainting spec.
|
|
59
|
+
*/
|
|
60
|
+
export async function createInpainter(config, runtime) {
|
|
61
|
+
const scope = createResourceScope();
|
|
62
|
+
const dispose = scope.dispose;
|
|
63
|
+
try {
|
|
64
|
+
const {
|
|
65
|
+
modelPath,
|
|
66
|
+
modelOpts
|
|
67
|
+
} = config;
|
|
68
|
+
const model = scope.track(await wrapAsync(loadModel, runtime)(modelPath));
|
|
69
|
+
const {
|
|
70
|
+
variant,
|
|
71
|
+
dims
|
|
72
|
+
} = validateSpec(model.schema, {
|
|
73
|
+
batched: method('forward',
|
|
74
|
+
// prettier-ignore
|
|
75
|
+
[f32(1, 3, 'H', 'W'), f32(1, 1, 'H', 'W')], [f32(1, 3, 'H', 'W')]),
|
|
76
|
+
unbatched: method('forward',
|
|
77
|
+
// prettier-ignore
|
|
78
|
+
[f32(3, 'H', 'W'), f32(1, 'H', 'W')], [f32(3, 'H', 'W')])
|
|
79
|
+
});
|
|
80
|
+
const [H, W] = dims.constant('H', 'W');
|
|
81
|
+
const imageShape = {
|
|
82
|
+
batched: [1, 3, H, W],
|
|
83
|
+
unbatched: [3, H, W]
|
|
84
|
+
}[variant];
|
|
85
|
+
const maskShape = {
|
|
86
|
+
batched: [1, 1, H, W],
|
|
87
|
+
unbatched: [1, H, W]
|
|
88
|
+
}[variant];
|
|
89
|
+
const preprocessor = scope.track(createImagePreprocessor(modelOpts, imageShape));
|
|
90
|
+
const tensors = [
|
|
91
|
+
// Model I/O; the image input is owned by the preprocessor.
|
|
92
|
+
tensor('float32', maskShape), tensor('float32', imageShape),
|
|
93
|
+
// Mask: resized -> CHW -> float (1 = known, < 1 = hole) -> binarized.
|
|
94
|
+
tensor('uint8', [H, W, 1]), tensor('uint8', [1, H, W]), tensor('float32', [1, H, W]), tensor('float32', [1, H, W]),
|
|
95
|
+
// Output: CHW float -> uint8 -> HWC -> RGBA.
|
|
96
|
+
tensor('float32', [3, H, W]), tensor('uint8', [3, H, W]), tensor('uint8', [H, W, 3]), tensor('uint8', [H, W, 4])];
|
|
97
|
+
tensors.forEach(scope.track);
|
|
98
|
+
const [tModelMask, tModelOutput, tMaskResized, tMaskChw, tMaskScaled, tMaskKnown, tOutChw, tOutU8, tOutHwc, tOutRgba] = tensors;
|
|
99
|
+
const {
|
|
100
|
+
outNormalizeOpts,
|
|
101
|
+
outInterpolation,
|
|
102
|
+
blendOpts
|
|
103
|
+
} = modelOpts;
|
|
104
|
+
const inpaintWorklet = (image, mask) => {
|
|
105
|
+
'worklet';
|
|
106
|
+
|
|
107
|
+
if (mask.format !== 'gray') {
|
|
108
|
+
throw RnExecuTorchError('INVALID_ARGUMENT', `inpaint: mask must be a 'gray' buffer (got '${mask.format}')`);
|
|
109
|
+
}
|
|
110
|
+
if (mask.width !== image.width || mask.height !== image.height) {
|
|
111
|
+
throw RnExecuTorchError('INVALID_ARGUMENT', `inpaint: mask is ${mask.width}x${mask.height} but image is ${image.width}x${image.height}`);
|
|
112
|
+
}
|
|
113
|
+
const {
|
|
114
|
+
width,
|
|
115
|
+
height
|
|
116
|
+
} = image;
|
|
117
|
+
const imageChannels = FORMAT_CHANNELS[image.format];
|
|
118
|
+
const toRgba = FORMAT_CONVERSION[image.format].rgba;
|
|
119
|
+
|
|
120
|
+
// Per-call buffers at the frame's resolution: the input as given, the
|
|
121
|
+
// mask, the upsampled fill, the blended result and, only when the input
|
|
122
|
+
// needs converting, the frame as RGBA.
|
|
123
|
+
const auxTensors = [tensor('uint8', [height, width, imageChannels]), tensor('uint8', [height, width, 1]), tensor('uint8', [height, width, 4]), tensor('uint8', [height, width, 4]), ...(toRgba !== null ? [tensor('uint8', [height, width, 4])] : [])];
|
|
124
|
+
const [tImage, tMask, tFilled, tResult, tRgba] = auxTensors;
|
|
125
|
+
try {
|
|
126
|
+
// The full-resolution RGBA frame the filled region is blended into.
|
|
127
|
+
const tFrame = tImage.setData(image.data).throughIf(toRgba !== null, cvtColor, tRgba, toRgba);
|
|
128
|
+
tMask.setData(mask.data);
|
|
129
|
+
|
|
130
|
+
// Whole frame -> model input.
|
|
131
|
+
const tModelImage = preprocessor.process(image);
|
|
132
|
+
|
|
133
|
+
// Mask -> model input. Area resizing keeps strokes thinner than the
|
|
134
|
+
// downscale factor as non-zero values, so binarizing at any non-zero
|
|
135
|
+
// value never drops part of the hole. The scaling maps 0 (known) to 1
|
|
136
|
+
// and every non-zero value below 1, so a threshold just under 1 yields
|
|
137
|
+
// the model's 1 = known / 0 = hole mask in one step; the copy reshapes
|
|
138
|
+
// it to the model's rank.
|
|
139
|
+
tMask.through(resize, tMaskResized, {
|
|
140
|
+
mode: 'stretch',
|
|
141
|
+
interpolation: 'area'
|
|
142
|
+
}).through(toChannelsFirst, tMaskChw).through(normalize, tMaskScaled, {
|
|
143
|
+
alpha: -1 / 255,
|
|
144
|
+
beta: 1
|
|
145
|
+
}).through(threshold, tMaskKnown, 1 - 0.5 / 255).copyTo(tModelMask);
|
|
146
|
+
model.execute('forward', [tModelImage, tModelMask], [tModelOutput]);
|
|
147
|
+
|
|
148
|
+
// Model output -> RGBA at the frame's size, blended over the original
|
|
149
|
+
// pixels through the full-resolution mask.
|
|
150
|
+
tModelOutput.copyTo(tOutChw).through(normalize, tOutU8, outNormalizeOpts).through(toChannelsLast, tOutHwc).through(cvtColor, tOutRgba, 'RGB2RGBA').through(resize, tFilled, {
|
|
151
|
+
mode: 'stretch',
|
|
152
|
+
interpolation: outInterpolation
|
|
153
|
+
});
|
|
154
|
+
blendMasked(tFrame, tFilled, tMask, tResult, blendOpts);
|
|
155
|
+
const data = tResult.getData(new Uint8Array(width * height * 4));
|
|
156
|
+
return {
|
|
157
|
+
data,
|
|
158
|
+
width,
|
|
159
|
+
height,
|
|
160
|
+
format: 'rgba',
|
|
161
|
+
layout: 'hwc'
|
|
162
|
+
};
|
|
163
|
+
} finally {
|
|
164
|
+
auxTensors.forEach(t => t.dispose());
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const inpaint = wrapAsync(inpaintWorklet, runtime);
|
|
168
|
+
return {
|
|
169
|
+
inpaint,
|
|
170
|
+
inpaintWorklet,
|
|
171
|
+
dispose
|
|
172
|
+
};
|
|
173
|
+
} catch (error) {
|
|
174
|
+
dispose();
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=inpainting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["tensor","loadModel","validateSpec","method","f32","wrapAsync","createResourceScope","RnExecuTorchError","threshold","FORMAT_CHANNELS","FORMAT_CONVERSION","resize","cvtColor","toChannelsFirst","toChannelsLast","normalize","blendMasked","createImagePreprocessor","createInpainter","config","runtime","scope","dispose","modelPath","modelOpts","model","track","variant","dims","schema","batched","unbatched","H","W","constant","imageShape","maskShape","preprocessor","tensors","forEach","tModelMask","tModelOutput","tMaskResized","tMaskChw","tMaskScaled","tMaskKnown","tOutChw","tOutU8","tOutHwc","tOutRgba","outNormalizeOpts","outInterpolation","blendOpts","inpaintWorklet","image","mask","format","width","height","imageChannels","toRgba","rgba","auxTensors","tImage","tMask","tFilled","tResult","tRgba","tFrame","setData","data","throughIf","tModelImage","process","through","mode","interpolation","alpha","beta","copyTo","execute","getData","Uint8Array","layout","t","inpaint","error"],"sourceRoot":"../../../../../src","sources":["extensions/cv/tasks/inpainting.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,MAAM,QAAQ,yBAAsB;AAC7C,SAASC,SAAS,QAAQ,wBAAqB;AAC/C,SAASC,YAAY,EAAEC,MAAM,EAAEC,GAAG,QAAQ,yBAAsB;AAChE,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,SAAS,QAAQ,eAAY;AAGtC,SACEC,eAAe,EACfC,iBAAiB,EACjBC,MAAM,EACNC,QAAQ,EACRC,eAAe,EACfC,cAAc,EACdC,SAAS,EACTC,WAAW,QAIN,iBAAc;AACrB,SAASC,uBAAuB,QAAuC,+BAA4B;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,eAAeA,CACnCC,MAAsB,EACtBC,OAAwB,EACJ;EACpB,MAAMC,KAAK,GAAGf,mBAAmB,CAAC,CAAC;EACnC,MAAMgB,OAAO,GAAGD,KAAK,CAACC,OAAO;EAE7B,IAAI;IACF,MAAM;MAAEC,SAAS;MAAEC;IAAU,CAAC,GAAGL,MAAM;IACvC,MAAMM,KAAK,GAAGJ,KAAK,CAACK,KAAK,CAAC,MAAMrB,SAAS,CAACJ,SAAS,EAAEmB,OAAO,CAAC,CAACG,SAAS,CAAC,CAAC;IAEzE,MAAM;MAAEI,OAAO;MAAEC;IAAK,CAAC,GAAG1B,YAAY,CAACuB,KAAK,CAACI,MAAM,EAAE;MACnDC,OAAO,EAAE3B,MAAM,CACb,SAAS;MAAE;MACX,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC1C,CAACA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CACtB,CAAC;MACD2B,SAAS,EAAE5B,MAAM,CACf,SAAS;MAAE;MACX,CAACC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEA,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACpC,CAACA,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CACnB;IACF,CAAC,CAAC;IAEF,MAAM,CAAC4B,CAAC,EAAEC,CAAC,CAAC,GAAGL,IAAI,CAACM,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IACtC,MAAMC,UAAU,GAAG;MAAEL,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEE,CAAC,EAAEC,CAAC,CAAC;MAAEF,SAAS,EAAE,CAAC,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAE,CAAC,CAACN,OAAO,CAAC;IAC3E,MAAMS,SAAS,GAAG;MAAEN,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEE,CAAC,EAAEC,CAAC,CAAC;MAAEF,SAAS,EAAE,CAAC,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAE,CAAC,CAACN,OAAO,CAAC;IAE1E,MAAMU,YAAY,GAAGhB,KAAK,CAACK,KAAK,CAACT,uBAAuB,CAACO,SAAS,EAAEW,UAAU,CAAC,CAAC;IAEhF,MAAMG,OAAO,GAAG;IACd;IACAtC,MAAM,CAAC,SAAS,EAAEoC,SAAS,CAAC,EAC5BpC,MAAM,CAAC,SAAS,EAAEmC,UAAU,CAAC;IAC7B;IACAnC,MAAM,CAAC,OAAO,EAAE,CAACgC,CAAC,EAAEC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC1BjC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEgC,CAAC,EAAEC,CAAC,CAAC,CAAC,EAC1BjC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAEgC,CAAC,EAAEC,CAAC,CAAC,CAAC,EAC5BjC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAEgC,CAAC,EAAEC,CAAC,CAAC,CAAC;IAC5B;IACAjC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAEgC,CAAC,EAAEC,CAAC,CAAC,CAAC,EAC5BjC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAEgC,CAAC,EAAEC,CAAC,CAAC,CAAC,EAC1BjC,MAAM,CAAC,OAAO,EAAE,CAACgC,CAAC,EAAEC,CAAC,EAAE,CAAC,CAAC,CAAC,EAC1BjC,MAAM,CAAC,OAAO,EAAE,CAACgC,CAAC,EAAEC,CAAC,EAAE,CAAC,CAAC,CAAC,CAClB;IAEVK,OAAO,CAACC,OAAO,CAAClB,KAAK,CAACK,KAAK,CAAC;IAE5B,MAAM,CACJc,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,QAAQ,CACT,GAAGX,OAAO;IAEX,MAAM;MAAEY,gBAAgB;MAAEC,gBAAgB;MAAEC;IAAU,CAAC,GAAG5B,SAAS;IAEnE,MAAM6B,cAAc,GAAGA,CAACC,KAAkB,EAAEC,IAAgB,KAAkB;MAC5E,SAAS;;MACT,IAAIA,IAAI,CAACC,MAAM,KAAK,MAAM,EAAE;QAC1B,MAAMjD,iBAAiB,CACrB,kBAAkB,EAClB,+CAA+CgD,IAAI,CAACC,MAAM,IAC5D,CAAC;MACH;MACA,IAAID,IAAI,CAACE,KAAK,KAAKH,KAAK,CAACG,KAAK,IAAIF,IAAI,CAACG,MAAM,KAAKJ,KAAK,CAACI,MAAM,EAAE;QAC9D,MAAMnD,iBAAiB,CACrB,kBAAkB,EAClB,oBAAoBgD,IAAI,CAACE,KAAK,IAAIF,IAAI,CAACG,MAAM,iBAAiBJ,KAAK,CAACG,KAAK,IAAIH,KAAK,CAACI,MAAM,EAC3F,CAAC;MACH;MAEA,MAAM;QAAED,KAAK;QAAEC;MAAO,CAAC,GAAGJ,KAAK;MAC/B,MAAMK,aAAa,GAAGlD,eAAe,CAAC6C,KAAK,CAACE,MAAM,CAAC;MACnD,MAAMI,MAAM,GAAGlD,iBAAiB,CAAC4C,KAAK,CAACE,MAAM,CAAC,CAACK,IAAI;;MAEnD;MACA;MACA;MACA,MAAMC,UAAU,GAAG,CACjB9D,MAAM,CAAC,OAAO,EAAE,CAAC0D,MAAM,EAAED,KAAK,EAAEE,aAAa,CAAC,CAAC,EAC/C3D,MAAM,CAAC,OAAO,EAAE,CAAC0D,MAAM,EAAED,KAAK,EAAE,CAAC,CAAC,CAAC,EACnCzD,MAAM,CAAC,OAAO,EAAE,CAAC0D,MAAM,EAAED,KAAK,EAAE,CAAC,CAAC,CAAC,EACnCzD,MAAM,CAAC,OAAO,EAAE,CAAC0D,MAAM,EAAED,KAAK,EAAE,CAAC,CAAC,CAAC,EACnC,IAAIG,MAAM,KAAK,IAAI,GAAG,CAAC5D,MAAM,CAAC,OAAO,EAAE,CAAC0D,MAAM,EAAED,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CACzD;MACV,MAAM,CAACM,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC,GAAGL,UAAU;MAE3D,IAAI;QACF;QACA,MAAMM,MAAM,GAAGL,MAAM,CAClBM,OAAO,CAACf,KAAK,CAACgB,IAAI,CAAC,CACnBC,SAAS,CAACX,MAAM,KAAK,IAAI,EAAEhD,QAAQ,EAAEuD,KAAK,EAAGP,MAAO,CAAC;QACxDI,KAAK,CAACK,OAAO,CAACd,IAAI,CAACe,IAAI,CAAC;;QAExB;QACA,MAAME,WAAW,GAAGnC,YAAY,CAACoC,OAAO,CAACnB,KAAK,CAAC;;QAE/C;QACA;QACA;QACA;QACA;QACA;QACAU,KAAK,CACFU,OAAO,CAAC/D,MAAM,EAAE+B,YAAY,EAAE;UAAEiC,IAAI,EAAE,SAAS;UAAEC,aAAa,EAAE;QAAO,CAAC,CAAC,CACzEF,OAAO,CAAC7D,eAAe,EAAE8B,QAAQ,CAAC,CAClC+B,OAAO,CAAC3D,SAAS,EAAE6B,WAAW,EAAE;UAAEiC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG;UAAEC,IAAI,EAAE;QAAE,CAAC,CAAC,CAC7DJ,OAAO,CAAClE,SAAS,EAAEqC,UAAU,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAC7CkC,MAAM,CAACvC,UAAU,CAAC;QAErBf,KAAK,CAACuD,OAAO,CAAC,SAAS,EAAE,CAACR,WAAW,EAAEhC,UAAU,CAAC,EAAE,CAACC,YAAY,CAAC,CAAC;;QAEnE;QACA;QACAA,YAAY,CACTsC,MAAM,CAACjC,OAAO,CAAC,CACf4B,OAAO,CAAC3D,SAAS,EAAEgC,MAAM,EAAEG,gBAAgB,CAAC,CAC5CwB,OAAO,CAAC5D,cAAc,EAAEkC,OAAO,CAAC,CAChC0B,OAAO,CAAC9D,QAAQ,EAAEqC,QAAQ,EAAE,UAAU,CAAC,CACvCyB,OAAO,CAAC/D,MAAM,EAAEsD,OAAO,EAAE;UAAEU,IAAI,EAAE,SAAS;UAAEC,aAAa,EAAEzB;QAAiB,CAAC,CAAC;QACjFnC,WAAW,CAACoD,MAAM,EAAEH,OAAO,EAAED,KAAK,EAAEE,OAAO,EAAEd,SAAS,CAAC;QAEvD,MAAMkB,IAAI,GAAGJ,OAAO,CAACe,OAAO,CAAC,IAAIC,UAAU,CAACzB,KAAK,GAAGC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO;UAAEY,IAAI;UAAEb,KAAK;UAAEC,MAAM;UAAEF,MAAM,EAAE,MAAM;UAAE2B,MAAM,EAAE;QAAM,CAAC;MAC/D,CAAC,SAAS;QACRrB,UAAU,CAACvB,OAAO,CAAE6C,CAAC,IAAKA,CAAC,CAAC9D,OAAO,CAAC,CAAC,CAAC;MACxC;IACF,CAAC;IAED,MAAM+D,OAAO,GAAGhF,SAAS,CAACgD,cAAc,EAAEjC,OAAO,CAAC;IAElD,OAAO;MAAEiE,OAAO;MAAEhC,cAAc;MAAE/B;IAAQ,CAAC;EAC7C,CAAC,CAAC,OAAOgE,KAAK,EAAE;IACdhE,OAAO,CAAC,CAAC;IACT,MAAMgE,KAAK;EACb;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["wrapAsync","loadModel","RnExecuTorchError","createResourceScope","validateSpec","loadTokenizer","createLLMTextRunner","LLM_TEXT_SPEC","createLLMMultimodalRunner","LLM_MULTIMODAL_SPEC","createLLMGemmaRunner","LLM_GEMMA_SPEC","createLLMRunner","modelPath","tokenizerPath","modalities","runtime","scope","model","track","tokenizer","variant","schema","text","vision","gemma","e","dispose"],"sourceRoot":"../../../../src","sources":["extensions/llm/llmRunner.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,iBAAiB,QAAQ,qBAAkB;AACpD,SAASC,mBAAmB,QAAQ,wBAAqB;AACzD,SAASC,YAAY,QAAQ,sBAAmB;AAEhD,SAASC,aAAa,QAAQ,iBAAQ;AAGtC,SAASC,mBAAmB,EAAEC,aAAa,QAAQ,4BAAyB;AAC5E,SAASC,yBAAyB,EAAEC,mBAAmB,QAAQ,kCAA+B;AAC9F,SAASC,oBAAoB,EAAEC,cAAc,QAAQ,6BAA0B;;AAE/E;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["wrapAsync","loadModel","RnExecuTorchError","createResourceScope","validateSpec","loadTokenizer","createLLMTextRunner","LLM_TEXT_SPEC","createLLMMultimodalRunner","LLM_MULTIMODAL_SPEC","createLLMGemmaRunner","LLM_GEMMA_SPEC","createLLMRunner","modelPath","tokenizerPath","modalities","runtime","scope","model","track","tokenizer","variant","schema","text","vision","gemma","e","dispose"],"sourceRoot":"../../../../src","sources":["extensions/llm/llmRunner.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,iBAAiB,QAAQ,qBAAkB;AACpD,SAASC,mBAAmB,QAAQ,wBAAqB;AACzD,SAASC,YAAY,QAAQ,sBAAmB;AAEhD,SAASC,aAAa,QAAQ,iBAAQ;AAGtC,SAASC,mBAAmB,EAAEC,aAAa,QAAQ,4BAAyB;AAC5E,SAASC,yBAAyB,EAAEC,mBAAmB,QAAQ,kCAA+B;AAC9F,SAASC,oBAAoB,EAAEC,cAAc,QAAQ,6BAA0B;;AAE/E;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,eAAeA,CACnCC,SAAiB,EACjBC,aAAqB,EACrBC,UAAgC,EAChCC,OAAwB,EACJ;EACpB,MAAMC,KAAK,GAAGd,mBAAmB,CAAC,CAAC;EACnC,IAAI;IACF,MAAMe,KAAK,GAAGD,KAAK,CAACE,KAAK,CAAC,MAAMnB,SAAS,CAACC,SAAS,EAAEe,OAAO,CAAC,CAACH,SAAS,CAAC,CAAC;IACzE,MAAMO,SAAS,GAAGH,KAAK,CAACE,KAAK,CAAC,MAAMnB,SAAS,CAACK,aAAa,EAAEW,OAAO,CAAC,CAACF,aAAa,CAAC,CAAC;IAErF,MAAM;MAAEO;IAAQ,CAAC,GAAGjB,YAAY,CAACc,KAAK,CAACI,MAAM,EAAE;MAC7CC,IAAI,EAAEhB,aAAa;MACnBiB,MAAM,EAAEf,mBAAmB;MAC3BgB,KAAK,EAAEd;IACT,CAAC,CAAC;IAEF,QAAQU,OAAO;MACb,KAAK,MAAM;QACT,OAAOf,mBAAmB,CAACY,KAAK,EAAEE,SAAS,EAAEL,UAAU,CAAC;MAC1D,KAAK,QAAQ;QACX,OAAOP,yBAAyB,CAACU,KAAK,EAAEE,SAAS,EAAEL,UAAU,CAAC;MAChE,KAAK,OAAO;QACV,OAAOL,oBAAoB,CAACQ,KAAK,EAAEE,SAAS,EAAEL,UAAU,CAAC;MAC3D;QACE,MAAMb,iBAAiB,CAAC,aAAa,EAAE,mCAAmCmB,OAAO,EAAE,CAAC;IACxF;EACF,CAAC,CAAC,OAAOK,CAAC,EAAE;IACVT,KAAK,CAACU,OAAO,CAAC,CAAC;IACf,MAAMD,CAAC;EACT;AACF","ignoreList":[]}
|
|
@@ -131,9 +131,11 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
131
131
|
// Prefill initial messages if provided
|
|
132
132
|
if (initialMessages.length > 0) {
|
|
133
133
|
history.push(...initialMessages);
|
|
134
|
-
const
|
|
135
|
-
addGenPrompt: false
|
|
136
|
-
|
|
134
|
+
const prefillOptions = {
|
|
135
|
+
addGenPrompt: false,
|
|
136
|
+
enableThinking: defaultGenerationConfig?.enableThinking
|
|
137
|
+
};
|
|
138
|
+
const prompt = chatPreprocessor.process(history, history.length, prefillOptions);
|
|
137
139
|
await prefill(prompt, defaultGenerationConfig);
|
|
138
140
|
chatPreprocessor.clear();
|
|
139
141
|
committed = history.length;
|
|
@@ -152,6 +154,14 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
152
154
|
...defaultGenerationConfig,
|
|
153
155
|
...genConfig
|
|
154
156
|
};
|
|
157
|
+
const prefillOptions = {
|
|
158
|
+
enableThinking: turnGenConfig.enableThinking,
|
|
159
|
+
addGenPrompt: false
|
|
160
|
+
};
|
|
161
|
+
const renderOptions = {
|
|
162
|
+
...prefillOptions,
|
|
163
|
+
addGenPrompt: true
|
|
164
|
+
};
|
|
155
165
|
const generationOpts = {
|
|
156
166
|
genConfig: turnGenConfig,
|
|
157
167
|
stopTokens,
|
|
@@ -185,9 +195,7 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
185
195
|
|
|
186
196
|
// Prefill newly committed messages up to current user message without generation prompt
|
|
187
197
|
const toCommit = history.length - committed;
|
|
188
|
-
const userPrompt = chatPreprocessor.process(history, toCommit,
|
|
189
|
-
addGenPrompt: false
|
|
190
|
-
});
|
|
198
|
+
const userPrompt = chatPreprocessor.process(history, toCommit, prefillOptions);
|
|
191
199
|
const prefillStats = await prefill(userPrompt, turnGenConfig);
|
|
192
200
|
chatPreprocessor.clear();
|
|
193
201
|
if (isCancelled) {
|
|
@@ -213,9 +221,7 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
213
221
|
};
|
|
214
222
|
}
|
|
215
223
|
const uncommitted = history.length - committed;
|
|
216
|
-
const prompt = chatPreprocessor.process(history, uncommitted,
|
|
217
|
-
addGenPrompt: true
|
|
218
|
-
});
|
|
224
|
+
const prompt = chatPreprocessor.process(history, uncommitted, renderOptions);
|
|
219
225
|
const {
|
|
220
226
|
response,
|
|
221
227
|
stats
|
|
@@ -273,9 +279,7 @@ export async function createLLMChatSession(config, options = {}, runtime) {
|
|
|
273
279
|
// full closed conversation
|
|
274
280
|
const uncommitted = history.length - committed;
|
|
275
281
|
if (uncommitted > 0) {
|
|
276
|
-
const prompt = chatPreprocessor.process(history, uncommitted,
|
|
277
|
-
addGenPrompt: false
|
|
278
|
-
});
|
|
282
|
+
const prompt = chatPreprocessor.process(history, uncommitted, prefillOptions);
|
|
279
283
|
await prefill(prompt, turnGenConfig);
|
|
280
284
|
chatPreprocessor.clear();
|
|
281
285
|
committed = history.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scheduleOnRN","RNBlobUtil","wrapAsync","RnExecuTorchError","createResourceScope","createLLMRunner","parseTokenizerConfig","createChatPreprocessor","generateChatTurnWorklet","runner","prompt","options","genConfig","stopTokens","stopRegex","onToken","response","callback","token","includes","test","stop","stats","generate","DEFAULT_MAX_TURNS","createLLMChatSession","config","runtime","scope","dispose","generationConfig","defaultGenerationConfig","initialMessages","toolOpts","resetOnTurn","modelPath","tokenizerPath","tokenizerConfigPath","modalities","preprocessorConfig","tools","parseToolCalls","maxToolTurns","tokenizerConfigStr","fs","readFile","tokenizerConfig","JSON","parse","chatTemplate","bosToken","eosToken","chatPreprocessorConfig","chatPreprocessor","track","prefill","history","committed","isCancelled","isGenerating","length","push","
|
|
1
|
+
{"version":3,"names":["scheduleOnRN","RNBlobUtil","wrapAsync","RnExecuTorchError","createResourceScope","createLLMRunner","parseTokenizerConfig","createChatPreprocessor","generateChatTurnWorklet","runner","prompt","options","genConfig","stopTokens","stopRegex","onToken","response","callback","token","includes","test","stop","stats","generate","DEFAULT_MAX_TURNS","createLLMChatSession","config","runtime","scope","dispose","generationConfig","defaultGenerationConfig","initialMessages","toolOpts","resetOnTurn","modelPath","tokenizerPath","tokenizerConfigPath","modalities","preprocessorConfig","tools","parseToolCalls","maxToolTurns","tokenizerConfigStr","fs","readFile","tokenizerConfig","JSON","parse","chatTemplate","bosToken","eosToken","chatPreprocessorConfig","chatPreprocessor","track","prefill","history","committed","isCancelled","isGenerating","length","push","prefillOptions","addGenPrompt","enableThinking","process","clear","generateChatTurn","sendMessage","message","turnGenConfig","renderOptions","generationOpts","initialCommitted","initialPos","getKVCacheState","pos","turnStartIdx","generationStatsList","rollback","reset","role","content","toCommit","userPrompt","prefillStats","messages","finishReason","posAtEndOfUser","currentTurn","uncommitted","cumPrefillStats","parsedTools","toolCalls","textContent","toolCall","tool","find","t","function","name","toolContent","execute","arguments","err","String","toolCallId","id","slice","getHistory","error"],"sourceRoot":"../../../../../src","sources":["extensions/llm/tasks/llmChatSession.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -271,7 +271,8 @@ export function createChatPreprocessor(config) {
|
|
|
271
271
|
function: t.function
|
|
272
272
|
})),
|
|
273
273
|
messages: stringMessages,
|
|
274
|
-
add_generation_prompt: addGenPrompt
|
|
274
|
+
add_generation_prompt: addGenPrompt,
|
|
275
|
+
enable_thinking: options?.enableThinking
|
|
275
276
|
});
|
|
276
277
|
/* eslint-enable camelcase */
|
|
277
278
|
|
|
@@ -295,6 +296,7 @@ export function createChatPreprocessor(config) {
|
|
|
295
296
|
const {
|
|
296
297
|
text: prevText
|
|
297
298
|
} = render(previous, {
|
|
299
|
+
...options,
|
|
298
300
|
addGenPrompt: false
|
|
299
301
|
});
|
|
300
302
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Template","tensor","RnExecuTorchError","createImagePreprocessor","MEDIA_SENTINEL_PREFIX","MEDIA_SENTINEL_REGEX","chatContentToString","content","options","text","mediaMap","Map","mediaIdx","startMediaIdx","item","modalities","includes","kind","token","tokenName","visionToken","audioToken","start","end","set","prepareStringMessages","messages","formattedMessages","mediaCounter","msg","opts","msgMedia","size","k","v","textMsg","role","toolCalls","tool_calls","toolCallId","tool_call_id","name","push","createChatPreprocessor","config","chatTemplate","bosToken","eosToken","preprocessorConfig","tools","template","imgPreprocessor","imgShape","image","undefined","targetShape","preprocessorOpts","tensors","dispose","forEach","t","clear","length","buildPrompt","regex","RegExp","source","prompt","match","lastIndex","exec","textChunk","slice","index","parseInt","media","get","tImage","process","copyTo","tAudio","audio","tail","render","addGenPrompt","stringMessages","bos_token","eos_token","map","type","function","add_generation_prompt","history","lastKMessages","fullRenderedText","previous","prevText","currText","startsWith","diffText"],"sourceRoot":"../../../../../src","sources":["extensions/llm/utils/chatPreprocessor.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,oBAAoB;AAE7C,SAASC,MAAM,QAAqB,yBAAsB;AAC1D,SAASC,iBAAiB,QAAQ,wBAAqB;AAEvD,SACEC,uBAAuB,QAElB,qCAAkC;;AAKzC;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["Template","tensor","RnExecuTorchError","createImagePreprocessor","MEDIA_SENTINEL_PREFIX","MEDIA_SENTINEL_REGEX","chatContentToString","content","options","text","mediaMap","Map","mediaIdx","startMediaIdx","item","modalities","includes","kind","token","tokenName","visionToken","audioToken","start","end","set","prepareStringMessages","messages","formattedMessages","mediaCounter","msg","opts","msgMedia","size","k","v","textMsg","role","toolCalls","tool_calls","toolCallId","tool_call_id","name","push","createChatPreprocessor","config","chatTemplate","bosToken","eosToken","preprocessorConfig","tools","template","imgPreprocessor","imgShape","image","undefined","targetShape","preprocessorOpts","tensors","dispose","forEach","t","clear","length","buildPrompt","regex","RegExp","source","prompt","match","lastIndex","exec","textChunk","slice","index","parseInt","media","get","tImage","process","copyTo","tAudio","audio","tail","render","addGenPrompt","stringMessages","bos_token","eos_token","map","type","function","add_generation_prompt","enable_thinking","enableThinking","history","lastKMessages","fullRenderedText","previous","prevText","currText","startsWith","diffText"],"sourceRoot":"../../../../../src","sources":["extensions/llm/utils/chatPreprocessor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useModel } from "./useModel.js";
|
|
4
|
+
import { useResourceDownload } from "./useResourceDownload.js";
|
|
5
|
+
import { createInpainter } from "../extensions/cv/tasks/inpainting.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* React hook to load and run an image inpainting model.
|
|
9
|
+
*
|
|
10
|
+
* This hook manages downloading (if remote URLs are provided) and loading the
|
|
11
|
+
* model assets, compiling them, tracking download progress and load errors, and
|
|
12
|
+
* releasing native memory when the component unmounts or the configuration
|
|
13
|
+
* changes.
|
|
14
|
+
*
|
|
15
|
+
* For imperative usage, see {@link createInpainter}.
|
|
16
|
+
* @category Hooks
|
|
17
|
+
* @param config The inpainting model configuration.
|
|
18
|
+
* See {@link InpainterModel}.
|
|
19
|
+
* @param options Load and caching options. See {@link ResourceOptions}.
|
|
20
|
+
* @returns The same object as {@link Inpainter} (without `dispose`),
|
|
21
|
+
* combined with loading state and download progress.
|
|
22
|
+
* @see {@link Inpainter}
|
|
23
|
+
*/
|
|
24
|
+
export function useInpainter(config, options) {
|
|
25
|
+
const {
|
|
26
|
+
resource,
|
|
27
|
+
downloadProgress,
|
|
28
|
+
downloadError
|
|
29
|
+
} = useResourceDownload(config, options);
|
|
30
|
+
const {
|
|
31
|
+
model,
|
|
32
|
+
error
|
|
33
|
+
} = useModel(createInpainter, resource);
|
|
34
|
+
return {
|
|
35
|
+
isReady: !!model,
|
|
36
|
+
error: downloadError || error,
|
|
37
|
+
downloadProgress,
|
|
38
|
+
resource,
|
|
39
|
+
inpaint: model?.inpaint,
|
|
40
|
+
inpaintWorklet: model?.inpaintWorklet
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=useInpainter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useModel","useResourceDownload","createInpainter","useInpainter","config","options","resource","downloadProgress","downloadError","model","error","isReady","inpaint","inpaintWorklet"],"sourceRoot":"../../../src","sources":["hooks/useInpainter.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,eAAY;AACrC,SAASC,mBAAmB,QAA8B,0BAAuB;AACjF,SAASC,eAAe,QAA6B,sCAAmC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,MAAsB,EAAEC,OAAyB,EAAE;EAC9E,MAAM;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAc,CAAC,GAAGP,mBAAmB,CAACG,MAAM,EAAEC,OAAO,CAAC;EAC1F,MAAM;IAAEI,KAAK;IAAEC;EAAM,CAAC,GAAGV,QAAQ,CAACE,eAAe,EAAEI,QAAQ,CAAC;EAE5D,OAAO;IACLK,OAAO,EAAE,CAAC,CAACF,KAAK;IAChBC,KAAK,EAAEF,aAAa,IAAIE,KAAK;IAC7BH,gBAAgB;IAChBD,QAAQ;IACRM,OAAO,EAAEH,KAAK,EAAEG,OAAO;IACvBC,cAAc,EAAEJ,KAAK,EAAEI;EACzB,CAAC;AACH","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
export * from "./hooks/useClassifier.js";
|
|
50
50
|
export * from "./hooks/useStyleTransfer.js";
|
|
51
51
|
export * from "./hooks/useDepthEstimator.js";
|
|
52
|
+
export * from "./hooks/useInpainter.js";
|
|
52
53
|
export * from "./hooks/useSemanticSegmenter.js";
|
|
53
54
|
export * from "./hooks/useInstanceSegmenter.js";
|
|
54
55
|
export * from "./hooks/useKeypointDetector.js";
|
|
@@ -78,6 +79,7 @@ export * from "./constants.js";
|
|
|
78
79
|
export * from "./extensions/cv/tasks/classification.js";
|
|
79
80
|
export * from "./extensions/cv/tasks/styleTransfer.js";
|
|
80
81
|
export * from "./extensions/cv/tasks/depthEstimation.js";
|
|
82
|
+
export * from "./extensions/cv/tasks/inpainting.js";
|
|
81
83
|
export * from "./extensions/cv/tasks/semanticSegmentation.js";
|
|
82
84
|
export * from "./extensions/cv/tasks/instanceSegmentation.js";
|
|
83
85
|
export * from "./extensions/cv/tasks/keypointDetection.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["models","_profiler","profiler","_schema","schema","_math","math","_cv","cv","_llm","llm","_nlp","nlp","_speech","speech"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,8BAA2B;AACzC,cAAc,iCAA8B;AAC5C,cAAc,iCAA8B;AAC5C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,yBAAsB;AACpC,cAAc,8BAA2B;AACzC,cAAc,4BAAyB;AACvC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,0CAAuC;AACrD,cAAc,gCAA6B;AAC3C,cAAc,qBAAkB;;AAEhC;AACA,cAAc,oBAAW;;AAEzB;AACA,SAASA,MAAM,QAAQ,aAAU;AACjC,cAAc,gBAAa;;AAE3B;AACA,cAAc,yCAAsC;AACpD,cAAc,wCAAqC;AACnD,cAAc,0CAAuC;AACrD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAC1D,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,yCAAsC;AACpD,cAAc,0CAAuC;AACrD,cAAc,oCAAiC;AAC/C,cAAc,0CAAuC;AACrD,cAAc,wCAAqC;AACnD,cAAc,yCAAsC;AACpD,cAAc,4CAAyC;AACvD,cAAc,yCAAsC;AACpD,cAAc,yDAAsD;AACpE,cAAc,kDAA+C;AAC7D,cAAc,qDAAkD;AAChE,cAAc,iDAA8C;;AAE5D;AACA,cAAc,6BAA0B;;AAExC;AACA,cAAc,iBAAc;AAC5B,cAAc,iBAAc;AAC5B,cAAc,kBAAe;AAC7B,cAAc,mBAAgB;AAC9B,cAAc,oBAAiB;;AAE/B;AACA;AACA;AACA;AAHA,YAAAC,SAAA,MAI0B,oBAAiB;AAAA,SAAAA,SAAA,IAA/BC,QAAQ;AAEpB;AACA;AACA;AACA;AAHA,YAAAC,OAAA,MAIwB,kBAAe;AAAA,SAAAA,OAAA,IAA3BC,MAAM;AAElB;AACA;AACA;AACA;AAHA,YAAAC,KAAA,MAIsB,sBAAmB;AAAA,SAAAA,KAAA,IAA7BC,IAAI;AAEhB;AACA;AACA;AACA;AAHA,YAAAC,GAAA,MAIoB,0BAAiB;AAAA,SAAAA,GAAA,IAAzBC,EAAE;AAEd;AACA;AACA;AACA;AAHA,YAAAC,IAAA,MAIqB,2BAAkB;AAAA,SAAAA,IAAA,IAA3BC,GAAG;AAEf;AACA;AACA;AACA;AAHA,YAAAC,IAAA,MAIqB,2BAAkB;AAAA,SAAAA,IAAA,IAA3BC,GAAG;AAEf;AACA;AACA;AACA;AAHA,YAAAC,OAAA,MAIwB,8BAAqB;AAAA,SAAAA,OAAA,IAAjCC,MAAM,IAElB;AACA,cAAc,YAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["models","_profiler","profiler","_schema","schema","_math","math","_cv","cv","_llm","llm","_nlp","nlp","_speech","speech"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,8BAA2B;AACzC,cAAc,yBAAsB;AACpC,cAAc,iCAA8B;AAC5C,cAAc,iCAA8B;AAC5C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,yBAAsB;AACpC,cAAc,8BAA2B;AACzC,cAAc,4BAAyB;AACvC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,0CAAuC;AACrD,cAAc,gCAA6B;AAC3C,cAAc,qBAAkB;;AAEhC;AACA,cAAc,oBAAW;;AAEzB;AACA,SAASA,MAAM,QAAQ,aAAU;AACjC,cAAc,gBAAa;;AAE3B;AACA,cAAc,yCAAsC;AACpD,cAAc,wCAAqC;AACnD,cAAc,0CAAuC;AACrD,cAAc,qCAAkC;AAChD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAC1D,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,yCAAsC;AACpD,cAAc,0CAAuC;AACrD,cAAc,oCAAiC;AAC/C,cAAc,0CAAuC;AACrD,cAAc,wCAAqC;AACnD,cAAc,yCAAsC;AACpD,cAAc,4CAAyC;AACvD,cAAc,yCAAsC;AACpD,cAAc,yDAAsD;AACpE,cAAc,kDAA+C;AAC7D,cAAc,qDAAkD;AAChE,cAAc,iDAA8C;;AAE5D;AACA,cAAc,6BAA0B;;AAExC;AACA,cAAc,iBAAc;AAC5B,cAAc,iBAAc;AAC5B,cAAc,kBAAe;AAC7B,cAAc,mBAAgB;AAC9B,cAAc,oBAAiB;;AAE/B;AACA;AACA;AACA;AAHA,YAAAC,SAAA,MAI0B,oBAAiB;AAAA,SAAAA,SAAA,IAA/BC,QAAQ;AAEpB;AACA;AACA;AACA;AAHA,YAAAC,OAAA,MAIwB,kBAAe;AAAA,SAAAA,OAAA,IAA3BC,MAAM;AAElB;AACA;AACA;AACA;AAHA,YAAAC,KAAA,MAIsB,sBAAmB;AAAA,SAAAA,KAAA,IAA7BC,IAAI;AAEhB;AACA;AACA;AACA;AAHA,YAAAC,GAAA,MAIoB,0BAAiB;AAAA,SAAAA,GAAA,IAAzBC,EAAE;AAEd;AACA;AACA;AACA;AAHA,YAAAC,IAAA,MAIqB,2BAAkB;AAAA,SAAAA,IAAA,IAA3BC,GAAG;AAEf;AACA;AACA;AACA;AAHA,YAAAC,IAAA,MAIqB,2BAAkB;AAAA,SAAAA,IAAA,IAA3BC,GAAG;AAEf;AACA;AACA;AACA;AAHA,YAAAC,OAAA,MAIwB,8BAAqB;AAAA,SAAAA,OAAA,IAAjCC,MAAM,IAElB;AACA,cAAc,YAAS","ignoreList":[]}
|