@webex/ladon-ts 4.0.0 → 4.2.1

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/CHANGELOG.md CHANGED
@@ -2,13 +2,45 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
- ## [4.0.0](https://github.com/beyonddunbar/ladon-ts/compare/v2.8.0...v4.0.0) (2023-02-11)
5
+ ### [4.2.1](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.0...v4.2.1) (2023-07-31)
6
6
 
7
-
8
- ### ⚠ BREAKING CHANGES
9
-
10
- * getConfig accepts model_url_resolver (#1)
11
-
12
- ### Features
13
-
14
- * getConfig accepts model_url_resolver ([#1](https://github.com/beyonddunbar/ladon-ts/issues/1)) ([a2699d6](https://github.com/beyonddunbar/ladon-ts/commit/a2699d67bd4d3efd8b1261ec5379d83554b90b6f))
7
+ ## [4.2.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.1.2...v4.2.0) (2023-07-27)
8
+
9
+
10
+ ### Features
11
+
12
+ * use local worker ([#5](https://github.com/beyonddunbar/ladon-ts/issues/5)) ([50c6f52](https://github.com/beyonddunbar/ladon-ts/commit/50c6f522dbd6ddbe016582a5cf247442a0e26377))
13
+
14
+ ### [4.1.2](https://github.com/beyonddunbar/ladon-ts/compare/v4.1.1...v4.1.2) (2023-07-20)
15
+
16
+ ### [4.1.1](https://github.com/beyonddunbar/ladon-ts/compare/v4.1.0...v4.1.1) (2023-07-19)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * lint ([4a42f88](https://github.com/beyonddunbar/ladon-ts/commit/4a42f882e74029569facf31e72ea2a78869ede95))
22
+ * version injection script (windows support) ([2316d1a](https://github.com/beyonddunbar/ladon-ts/commit/2316d1aaff3519e769389d31d86b7725b34dda35))
23
+
24
+ ## [4.1.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.0.0...v4.1.0) (2023-07-19)
25
+
26
+
27
+ ### Features
28
+
29
+ * initial implementation of the tiny model ([#4](https://github.com/beyonddunbar/ladon-ts/issues/4)) ([553d793](https://github.com/beyonddunbar/ladon-ts/commit/553d79361f9ba133b92fa7dcc62da61ec2d783a7))
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * lint, generate_relase for windows ([5ad039b](https://github.com/beyonddunbar/ladon-ts/commit/5ad039b060ce7a8e5b8bf169f50e4710156587a9))
35
+ * rename main file in package json ([#3](https://github.com/beyonddunbar/ladon-ts/issues/3)) ([d97d15f](https://github.com/beyonddunbar/ladon-ts/commit/d97d15f8a8be99901bcbb764fe1b6ca97bce5123))
36
+
37
+ ## [4.0.0](https://github.com/beyonddunbar/ladon-ts/compare/v2.8.0...v4.0.0) (2023-02-11)
38
+
39
+
40
+ ### ⚠ BREAKING CHANGES
41
+
42
+ * getConfig accepts model_url_resolver (#1)
43
+
44
+ ### Features
45
+
46
+ * getConfig accepts model_url_resolver ([#1](https://github.com/beyonddunbar/ladon-ts/issues/1)) ([a2699d6](https://github.com/beyonddunbar/ladon-ts/commit/a2699d67bd4d3efd8b1261ec5379d83554b90b6f))
package/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
- * Coded instructions, statements, and computer programs are the
2
- * copyrighted works and confidential proprietary information of Cisco, Inc.
3
- * They may not be modified, copied, reproduced, distributed, or disclosed to
4
- * third parties in any manner, medium, or form, in whole or in part, without
5
- * the prior written consent of Cisco, Inc.
1
+ * Coded instructions, statements, and computer programs are the
2
+ * copyrighted works and confidential proprietary information of Cisco, Inc.
3
+ * They may not be modified, copied, reproduced, distributed, or disclosed to
4
+ * third parties in any manner, medium, or form, in whole or in part, without
5
+ * the prior written consent of Cisco, Inc.
package/README.md CHANGED
@@ -1,36 +1,36 @@
1
- # Collaboration Video AI Client Library for Web
2
-
3
- ## Description
4
-
5
- The Video AI Client Library for Web is designed for TypeScript client-application developers. It offers simple, flexible, and powerful APIs for video AI.
6
-
7
- ## Features
8
-
9
- ### ML Annotations
10
-
11
- - Person segmentation
12
-
13
- ### Rendering Effects
14
-
15
- - Horizontal flip
16
- - Variable strength, high quality background blur
17
- - Static image background replacement
18
- - Dynamic video background replacement
19
-
20
- ### Input/Output
21
-
22
- The library supports a HTML canvas input and output interface.
23
-
24
-
25
- # Documentation
26
-
27
- - [Getting Started](docs/START.md)
28
- - [Self-Hosting](docs/HOSTING.md)
29
- - [Content Security Policy](docs/CSP.md)
30
- - [Development](docs/DEVELOPMENT.md)
31
-
32
- ## Links
33
-
34
- - [Live Example](https://models.intelligence.webex.com/ladon/3.0.2/example/index.html)
35
- - [Performance and Visual Tests](https://models.intelligence.webex.com/ladon/3.0.2/test/index.html)
36
- - [Typedocs](https://sqbu-github.cisco.com/pages/WebexIntelligence/ladon-ts/)
1
+ # Collaboration Video AI Client Library for Web
2
+
3
+ ## Description
4
+
5
+ The Video AI Client Library for Web is designed for TypeScript client-application developers. It offers simple, flexible, and powerful APIs for video AI.
6
+
7
+ ## Features
8
+
9
+ ### ML Annotations
10
+
11
+ - Person segmentation
12
+
13
+ ### Rendering Effects
14
+
15
+ - Horizontal flip
16
+ - Variable strength, high quality background blur
17
+ - Static image background replacement
18
+ - Dynamic video background replacement
19
+
20
+ ### Input/Output
21
+
22
+ The library supports a HTML canvas input and output interface.
23
+
24
+
25
+ # Documentation
26
+
27
+ - [Getting Started](docs/START.md)
28
+ - [Self-Hosting](docs/HOSTING.md)
29
+ - [Content Security Policy](docs/CSP.md)
30
+ - [Development](docs/DEVELOPMENT.md)
31
+
32
+ ## Links
33
+
34
+ - [Live Example](https://models.intelligence.webex.com/ladon/3.0.2/example/index.html)
35
+ - [Performance and Visual Tests](https://models.intelligence.webex.com/ladon/3.0.2/test/index.html)
36
+ - [Typedocs](https://sqbu-github.cisco.com/pages/WebexIntelligence/ladon-ts/)
@@ -1,6 +1,6 @@
1
- export * from './lib/config';
2
- export * from './lib/generator';
3
- export * from './lib/pipeline';
4
- export * from './lib/renderer';
5
- export * from './lib/util';
6
- export * from './lib/version';
1
+ export * from './lib/config';
2
+ export * from './lib/generator';
3
+ export * from './lib/pipeline';
4
+ export * from './lib/renderer';
5
+ export * from './lib/util';
6
+ export * from './lib/version';
@@ -1,7 +1,7 @@
1
- export * from './lib/config';
2
- export * from './lib/generator';
3
- export * from './lib/pipeline';
4
- export * from './lib/renderer';
5
- export * from './lib/util';
6
- export * from './lib/version';
1
+ export * from './lib/config';
2
+ export * from './lib/generator';
3
+ export * from './lib/pipeline';
4
+ export * from './lib/renderer';
5
+ export * from './lib/util';
6
+ export * from './lib/version';
7
7
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUMifQ==
@@ -1,61 +1,67 @@
1
- export declare type InputConfig = {
2
- readonly height: number;
3
- readonly width: number;
4
- };
5
- export declare type ModelUrlResolver = string | ((model_path: string) => Promise<string>);
6
- export interface RenderConfig {
7
- readonly type: 'blur' | 'passthrough' | 'replacement';
8
- readonly horizontal_mirror?: boolean;
9
- }
10
- export interface BlurConfig extends RenderConfig {
11
- readonly type: 'blur';
12
- readonly kernel_size: number;
13
- readonly sigma: number;
14
- }
15
- export interface ReplacementConfig extends RenderConfig {
16
- readonly type: 'replacement';
17
- background: HTMLCanvasElement;
18
- readonly static: boolean;
19
- }
20
- export declare type Generator = 'local' | 'worker';
21
- export declare type MaskConfig = {
22
- readonly generator: Generator;
23
- readonly generation_interval_ms: number;
24
- readonly model_url_resolver: ModelUrlResolver;
25
- readonly model_uri: string;
26
- readonly worker_uri: string;
27
- };
28
- export declare type PipelineConfig = {
29
- readonly base_url?: string;
30
- readonly wasm_uri?: string;
31
- readonly render: BlurConfig | RenderConfig | ReplacementConfig;
32
- readonly input: InputConfig;
33
- readonly mask: MaskConfig;
34
- };
35
- export declare enum Quality {
36
- LOW = "LOW",
37
- MEDIUM = "MEDIUM",
38
- HIGH = "HIGH",
39
- ULTRA = "ULTRA"
40
- }
41
- export declare enum BlurStrength {
42
- WEAK = "WEAK",
43
- MODERATE = "MODERATE",
44
- STRONG = "STRONG",
45
- STRONGER = "STRONGER",
46
- STRONGEST = "STRONGEST"
47
- }
48
- export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
49
- export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, render_config?: BlurConfig | RenderConfig | ReplacementConfig, model_url_resolver?: ModelUrlResolver, base_url?: string) => {
50
- mask: {
51
- generator: Generator;
52
- generation_interval_ms: number;
53
- model_url_resolver: ModelUrlResolver;
54
- model_uri: string;
55
- worker_uri: string;
56
- };
57
- base_url?: string | undefined;
58
- wasm_uri?: string | undefined;
59
- render: BlurConfig | RenderConfig | ReplacementConfig;
60
- input: InputConfig;
61
- };
1
+ export declare type SizeConfig = {
2
+ readonly height: number;
3
+ readonly width: number;
4
+ };
5
+ export declare type InputConfig = SizeConfig;
6
+ export declare type ModelUrlResolver = string | ((model_path: string) => Promise<string>);
7
+ export interface RenderConfig {
8
+ readonly type: 'blur' | 'passthrough' | 'replacement';
9
+ readonly horizontal_mirror?: boolean;
10
+ }
11
+ export interface BlurConfig extends RenderConfig {
12
+ readonly type: 'blur';
13
+ readonly kernel_size: number;
14
+ readonly sigma: number;
15
+ }
16
+ export interface ReplacementConfig extends RenderConfig {
17
+ readonly type: 'replacement';
18
+ background: HTMLCanvasElement;
19
+ readonly static: boolean;
20
+ }
21
+ export declare type Generator = 'local' | 'worker';
22
+ export declare type MaskConfig = {
23
+ readonly generator: Generator;
24
+ readonly generation_interval_ms: number;
25
+ readonly model_rank: number;
26
+ readonly model_url_resolver: ModelUrlResolver;
27
+ readonly model_uri: string;
28
+ readonly input_size: SizeConfig;
29
+ readonly output_size: SizeConfig;
30
+ };
31
+ export declare type PipelineConfig = {
32
+ readonly base_url?: string;
33
+ readonly wasm_uri?: string;
34
+ readonly render: BlurConfig | RenderConfig | ReplacementConfig;
35
+ readonly input: InputConfig;
36
+ readonly mask: MaskConfig;
37
+ };
38
+ export declare enum Quality {
39
+ TINY = "TINY",
40
+ LOW = "LOW",
41
+ MEDIUM = "MEDIUM",
42
+ HIGH = "HIGH",
43
+ ULTRA = "ULTRA"
44
+ }
45
+ export declare enum BlurStrength {
46
+ WEAK = "WEAK",
47
+ MODERATE = "MODERATE",
48
+ STRONG = "STRONG",
49
+ STRONGER = "STRONGER",
50
+ STRONGEST = "STRONGEST"
51
+ }
52
+ export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
53
+ export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, render_config?: BlurConfig | RenderConfig | ReplacementConfig, model_url_resolver?: ModelUrlResolver, base_url?: string) => {
54
+ mask: {
55
+ generator: Generator;
56
+ generation_interval_ms: number;
57
+ model_rank: number;
58
+ model_url_resolver: ModelUrlResolver;
59
+ model_uri: string;
60
+ input_size: SizeConfig;
61
+ output_size: SizeConfig;
62
+ };
63
+ base_url?: string | undefined;
64
+ wasm_uri?: string | undefined;
65
+ render: BlurConfig | RenderConfig | ReplacementConfig;
66
+ input: InputConfig;
67
+ };
@@ -1,109 +1,123 @@
1
- import { LIB_VERSION } from './version';
2
- export var Quality;
3
- (function (Quality) {
4
- Quality["LOW"] = "LOW";
5
- Quality["MEDIUM"] = "MEDIUM";
6
- Quality["HIGH"] = "HIGH";
7
- Quality["ULTRA"] = "ULTRA";
8
- })(Quality || (Quality = {}));
9
- export var BlurStrength;
10
- (function (BlurStrength) {
11
- BlurStrength["WEAK"] = "WEAK";
12
- BlurStrength["MODERATE"] = "MODERATE";
13
- BlurStrength["STRONG"] = "STRONG";
14
- BlurStrength["STRONGER"] = "STRONGER";
15
- BlurStrength["STRONGEST"] = "STRONGEST";
16
- })(BlurStrength || (BlurStrength = {}));
17
- export const getBlurConfig = (blur_strength, horizontal_mirror) => {
18
- let kernel_size = 25;
19
- let sigma = 11;
20
- switch (blur_strength) {
21
- case BlurStrength.WEAK:
22
- kernel_size = 9;
23
- sigma = 2;
24
- break;
25
- case BlurStrength.MODERATE:
26
- kernel_size = 15;
27
- sigma = 6;
28
- break;
29
- case BlurStrength.STRONG:
30
- kernel_size = 25;
31
- sigma = 11;
32
- break;
33
- case BlurStrength.STRONGER:
34
- kernel_size = 37;
35
- sigma = 17;
36
- break;
37
- case BlurStrength.STRONGEST:
38
- kernel_size = 49;
39
- sigma = 23;
40
- break;
41
- default:
42
- break;
43
- }
44
- return {
45
- type: 'blur',
46
- horizontal_mirror,
47
- kernel_size,
48
- sigma,
49
- };
50
- };
51
- export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', render_config = {
52
- type: 'blur',
53
- horizontal_mirror: false,
54
- kernel_size: 37,
55
- sigma: 17,
56
- }, model_url_resolver = (model_path) => {
57
- return new Promise((resolve) => {
58
- resolve(model_path);
59
- });
60
- }, base_url = '') => {
61
- const model_version = '1.0.0';
62
- const base_config = {
63
- base_url,
64
- wasm_uri: '/wasm/1.13.1/',
65
- render: render_config,
66
- input: {
67
- height,
68
- width,
69
- },
70
- mask: {
71
- generation_interval_ms: 48,
72
- generator,
73
- model_url_resolver,
74
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
75
- worker_uri: `/${LIB_VERSION}/worker/segmentation.js`,
76
- },
77
- };
78
- let mask_quality_config = {};
79
- switch (quality) {
80
- case Quality.LOW:
81
- mask_quality_config = {
82
- generation_interval_ms: 48,
83
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
84
- };
85
- break;
86
- case Quality.MEDIUM:
87
- mask_quality_config = {
88
- generation_interval_ms: 24,
89
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
90
- };
91
- break;
92
- case Quality.HIGH:
93
- mask_quality_config = {
94
- generation_interval_ms: 36,
95
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
96
- };
97
- break;
98
- case Quality.ULTRA:
99
- mask_quality_config = {
100
- generation_interval_ms: 0,
101
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
102
- };
103
- break;
104
- default:
105
- throw new Error('[ladon-ts] - unknown quality option: ' + quality);
106
- }
107
- return Object.assign(Object.assign({}, base_config), { mask: Object.assign(Object.assign({}, base_config.mask), mask_quality_config) });
108
- };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQStDeEMsTUFBTSxDQUFOLElBQVksT0FLWDtBQUxELFdBQVksT0FBTztJQUNmLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDekIsYUFBMkIsRUFDM0IsaUJBQTJCLEVBQ2pCLEVBQUU7SUFDWixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsUUFBUSxhQUFhLEVBQUU7UUFDbkIsS0FBSyxZQUFZLENBQUMsSUFBSTtZQUNsQixXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsUUFBUTtZQUN0QixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsTUFBTTtZQUNwQixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsUUFBUTtZQUN0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
1
+ import { toAbsoluteURI } from './util';
2
+ export var Quality;
3
+ (function (Quality) {
4
+ Quality["TINY"] = "TINY";
5
+ Quality["LOW"] = "LOW";
6
+ Quality["MEDIUM"] = "MEDIUM";
7
+ Quality["HIGH"] = "HIGH";
8
+ Quality["ULTRA"] = "ULTRA";
9
+ })(Quality || (Quality = {}));
10
+ export var BlurStrength;
11
+ (function (BlurStrength) {
12
+ BlurStrength["WEAK"] = "WEAK";
13
+ BlurStrength["MODERATE"] = "MODERATE";
14
+ BlurStrength["STRONG"] = "STRONG";
15
+ BlurStrength["STRONGER"] = "STRONGER";
16
+ BlurStrength["STRONGEST"] = "STRONGEST";
17
+ })(BlurStrength || (BlurStrength = {}));
18
+ export const getBlurConfig = (blur_strength, horizontal_mirror) => {
19
+ let kernel_size = 25;
20
+ let sigma = 11;
21
+ switch (blur_strength) {
22
+ case BlurStrength.WEAK:
23
+ kernel_size = 9;
24
+ sigma = 2;
25
+ break;
26
+ case BlurStrength.MODERATE:
27
+ kernel_size = 15;
28
+ sigma = 6;
29
+ break;
30
+ case BlurStrength.STRONG:
31
+ kernel_size = 25;
32
+ sigma = 11;
33
+ break;
34
+ case BlurStrength.STRONGER:
35
+ kernel_size = 37;
36
+ sigma = 17;
37
+ break;
38
+ case BlurStrength.STRONGEST:
39
+ kernel_size = 49;
40
+ sigma = 23;
41
+ break;
42
+ default:
43
+ break;
44
+ }
45
+ return {
46
+ type: 'blur',
47
+ horizontal_mirror,
48
+ kernel_size,
49
+ sigma,
50
+ };
51
+ };
52
+ export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', render_config = {
53
+ type: 'blur',
54
+ horizontal_mirror: false,
55
+ kernel_size: 37,
56
+ sigma: 17,
57
+ }, model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, `https://models.intelligence.webex.com/ladon`)), base_url = 'https://models.intelligence.webex.com/ladon') => {
58
+ const model_version = '1.0.0';
59
+ const base_config = {
60
+ base_url,
61
+ wasm_uri: '/wasm/1.15.1b/',
62
+ render: render_config,
63
+ input: {
64
+ height,
65
+ width,
66
+ },
67
+ mask: {
68
+ generation_interval_ms: 48,
69
+ generator,
70
+ model_url_resolver,
71
+ model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
72
+ model_rank: 3,
73
+ input_size: {
74
+ height,
75
+ width,
76
+ },
77
+ output_size: {
78
+ height,
79
+ width,
80
+ },
81
+ },
82
+ };
83
+ let mask_quality_config = {};
84
+ switch (quality) {
85
+ case Quality.TINY:
86
+ mask_quality_config = {
87
+ generation_interval_ms: 48,
88
+ model_uri: `/models/${model_version}/tiny_model.onnx`,
89
+ input_size: { height: 144, width: 256 },
90
+ output_size: { height: 360, width: 640 },
91
+ model_rank: 4,
92
+ };
93
+ break;
94
+ case Quality.LOW:
95
+ mask_quality_config = {
96
+ generation_interval_ms: 48,
97
+ model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
98
+ };
99
+ break;
100
+ case Quality.MEDIUM:
101
+ mask_quality_config = {
102
+ generation_interval_ms: 24,
103
+ model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
104
+ };
105
+ break;
106
+ case Quality.HIGH:
107
+ mask_quality_config = {
108
+ generation_interval_ms: 36,
109
+ model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
110
+ };
111
+ break;
112
+ case Quality.ULTRA:
113
+ mask_quality_config = {
114
+ generation_interval_ms: 0,
115
+ model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
116
+ };
117
+ break;
118
+ default:
119
+ throw new Error('[ladon-ts] - unknown quality option: ' + quality);
120
+ }
121
+ return Object.assign(Object.assign({}, base_config), { mask: Object.assign(Object.assign({}, base_config.mask), mask_quality_config) });
122
+ };
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQWlEdkMsTUFBTSxDQUFOLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNmLHdCQUFhLENBQUE7SUFDYixzQkFBVyxDQUFBO0lBQ1gsNEJBQWlCLENBQUE7SUFDakIsd0JBQWEsQ0FBQTtJQUNiLDBCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLE9BQU8sS0FBUCxPQUFPLFFBTWxCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUNwQiw2QkFBYSxDQUFBO0lBQ2IscUNBQXFCLENBQUE7SUFDckIsaUNBQWlCLENBQUE7SUFDakIscUNBQXFCLENBQUE7SUFDckIsdUNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVmLFFBQVEsYUFBYSxFQUFFO1FBQ25CLEtBQUssWUFBWSxDQUFDLElBQUk7WUFDbEIsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLFFBQVE7WUFDdEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsTUFBTTtRQUNWLEtBQUssWUFBWSxDQUFDLE1BQU07WUFDcEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNWLEtBQUssWUFB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