@webex/ladon-ts 4.2.4 → 4.4.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/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
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.4.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.3.0...v4.4.0) (2024-09-03)
6
+
7
+
8
+ ### Features
9
+
10
+ * 0.7.7.1 model updates and mask edge fix ([#12](https://github.com/beyonddunbar/ladon-ts/issues/12)) ([00c5584](https://github.com/beyonddunbar/ladon-ts/commit/00c5584b6f2f86803ddb70027c010d2ef00f79db))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * lint ([e19d2de](https://github.com/beyonddunbar/ladon-ts/commit/e19d2de5146da979dcba82b659ab2802b9c8ea49))
16
+
17
+ ## [4.3.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.4...v4.3.0) (2024-03-25)
18
+
19
+
20
+ ### Features
21
+
22
+ * preload model and dependencies ([#9](https://github.com/beyonddunbar/ladon-ts/issues/9)) ([14fa92c](https://github.com/beyonddunbar/ladon-ts/commit/14fa92cb44d47100ff95da3abd2c763fcc87376d))
23
+
5
24
  ### [4.2.4](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.3...v4.2.4) (2023-09-08)
6
25
 
7
26
  ### [4.2.3](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.2...v4.2.3) (2023-08-10)
@@ -4,3 +4,4 @@ export * from './lib/pipeline';
4
4
  export * from './lib/renderer';
5
5
  export * from './lib/util';
6
6
  export * from './lib/version';
7
+ export * from './lib/shared-resource-manager';
@@ -4,4 +4,5 @@ export * from './lib/pipeline';
4
4
  export * from './lib/renderer';
5
5
  export * from './lib/util';
6
6
  export * from './lib/version';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUMifQ==
7
+ export * from './lib/shared-resource-manager';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywrQkFBK0IsQ0FBQyJ9
@@ -1,3 +1,23 @@
1
+ export declare const BASE_URL = "https://models.intelligence.webex.com/ladon";
2
+ export declare const LOCAL_BASE_URL = "https://localhost";
3
+ export declare const LOCAL_WORKER_URI = "/segmentation.js";
4
+ export declare const LOCAL_PORT = 1235;
5
+ export declare const MODEL_VERSION = "0.7.7.1";
6
+ export declare const WASM_URI = "/wasm/1.15.1b/";
7
+ export declare enum Quality {
8
+ TINY = "TINY",
9
+ LOW = "LOW",
10
+ MEDIUM = "MEDIUM",
11
+ HIGH = "HIGH",
12
+ ULTRA = "ULTRA"
13
+ }
14
+ export declare enum BlurStrength {
15
+ WEAK = "WEAK",
16
+ MODERATE = "MODERATE",
17
+ STRONG = "STRONG",
18
+ STRONGER = "STRONGER",
19
+ STRONGEST = "STRONGEST"
20
+ }
1
21
  export declare type SizeConfig = {
2
22
  readonly height: number;
3
23
  readonly width: number;
@@ -19,15 +39,26 @@ export interface ReplacementConfig extends RenderConfig {
19
39
  readonly static: boolean;
20
40
  }
21
41
  export declare type Generator = 'local' | 'worker';
22
- export declare type MaskConfig = {
42
+ export declare type BaseMaskConfig = {
23
43
  readonly generator: Generator;
24
44
  readonly generation_interval_ms: number;
25
45
  readonly model_rank: number;
26
46
  readonly model_url_resolver: ModelUrlResolver;
27
47
  readonly model_uri: string;
28
48
  readonly worker_uri: string;
49
+ readonly input_size?: SizeConfig;
50
+ readonly output_size?: SizeConfig;
51
+ readonly upscaled_size?: SizeConfig;
52
+ };
53
+ export declare type MaskConfig = BaseMaskConfig & {
29
54
  readonly input_size: SizeConfig;
30
55
  readonly output_size: SizeConfig;
56
+ readonly upscaled_size: SizeConfig;
57
+ };
58
+ export declare type PreloadConfig = {
59
+ readonly base_url?: string;
60
+ readonly wasm_uri?: string;
61
+ readonly mask: BaseMaskConfig;
31
62
  };
32
63
  export declare type PipelineConfig = {
33
64
  readonly base_url?: string;
@@ -36,22 +67,8 @@ export declare type PipelineConfig = {
36
67
  readonly input: InputConfig;
37
68
  readonly mask: MaskConfig;
38
69
  };
39
- export declare enum Quality {
40
- TINY = "TINY",
41
- LOW = "LOW",
42
- MEDIUM = "MEDIUM",
43
- HIGH = "HIGH",
44
- ULTRA = "ULTRA"
45
- }
46
- export declare enum BlurStrength {
47
- WEAK = "WEAK",
48
- MODERATE = "MODERATE",
49
- STRONG = "STRONG",
50
- STRONGER = "STRONGER",
51
- STRONGEST = "STRONGEST"
52
- }
53
70
  export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
54
- export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, render_config?: BlurConfig | RenderConfig | ReplacementConfig, model_url_resolver?: ModelUrlResolver, base_url?: string) => {
71
+ export declare const getPreloadConfig: (quality?: Quality, generator?: Generator, model_url_resolver?: ModelUrlResolver, base_url?: string, useLocalWorker?: boolean) => {
55
72
  mask: {
56
73
  generator: Generator;
57
74
  generation_interval_ms: number;
@@ -59,11 +76,30 @@ export declare const getConfig: (height: number, width: number, quality?: Qualit
59
76
  model_url_resolver: ModelUrlResolver;
60
77
  model_uri: string;
61
78
  worker_uri: string;
79
+ input_size?: SizeConfig | undefined;
80
+ output_size?: SizeConfig | undefined;
81
+ upscaled_size?: SizeConfig | undefined;
82
+ };
83
+ base_url?: string | undefined;
84
+ wasm_uri?: string | undefined;
85
+ };
86
+ export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, renderConfig?: BlurConfig | RenderConfig | ReplacementConfig, modelUrlResolver?: ModelUrlResolver, baseUrl?: string, useLocalWorker?: boolean) => {
87
+ render: RenderConfig | BlurConfig | ReplacementConfig;
88
+ input: {
89
+ height: number;
90
+ width: number;
91
+ };
92
+ mask: {
62
93
  input_size: SizeConfig;
63
94
  output_size: SizeConfig;
95
+ upscaled_size: SizeConfig;
96
+ generator: Generator;
97
+ generation_interval_ms: number;
98
+ model_rank: number;
99
+ model_url_resolver: ModelUrlResolver;
100
+ model_uri: string;
101
+ worker_uri: string;
64
102
  };
65
103
  base_url?: string | undefined;
66
104
  wasm_uri?: string | undefined;
67
- render: BlurConfig | RenderConfig | ReplacementConfig;
68
- input: InputConfig;
69
105
  };
@@ -1,5 +1,11 @@
1
1
  import { toAbsoluteURI } from './util';
2
2
  import { LIB_VERSION } from './version';
3
+ export const BASE_URL = 'https://models.intelligence.webex.com/ladon';
4
+ export const LOCAL_BASE_URL = 'https://localhost';
5
+ export const LOCAL_WORKER_URI = '/segmentation.js';
6
+ export const LOCAL_PORT = 1235;
7
+ export const MODEL_VERSION = '0.7.7.1';
8
+ export const WASM_URI = '/wasm/1.15.1b/';
3
9
  export var Quality;
4
10
  (function (Quality) {
5
11
  Quality["TINY"] = "TINY";
@@ -50,36 +56,27 @@ export const getBlurConfig = (blur_strength, horizontal_mirror) => {
50
56
  sigma,
51
57
  };
52
58
  };
53
- export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', render_config = {
54
- type: 'blur',
55
- horizontal_mirror: false,
56
- kernel_size: 37,
57
- sigma: 17,
58
- }, model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, `https://models.intelligence.webex.com/ladon`)), base_url = 'https://models.intelligence.webex.com/ladon') => {
59
- const model_version = '1.0.0';
59
+ export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), base_url = BASE_URL, useLocalWorker = false) => {
60
+ const model_version = MODEL_VERSION;
61
+ const localBaseUrl = `${LOCAL_BASE_URL}:${LOCAL_PORT}`;
62
+ const workerBaseUrl = useLocalWorker ? localBaseUrl : base_url;
63
+ const workerScriptPath = useLocalWorker
64
+ ? LOCAL_WORKER_URI
65
+ : `/${LIB_VERSION}/worker/segmentation.js`;
66
+ const worker_uri = toAbsoluteURI(workerScriptPath, workerBaseUrl);
60
67
  const base_config = {
61
68
  base_url,
62
- wasm_uri: '/wasm/1.15.1b/',
63
- render: render_config,
64
- input: {
65
- height,
66
- width,
67
- },
69
+ wasm_uri: WASM_URI,
68
70
  mask: {
69
- generation_interval_ms: 48,
70
71
  generator,
72
+ generation_interval_ms: 48,
73
+ model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
74
+ input_size: { height: 144, width: 256 },
75
+ output_size: { height: 144, width: 256 },
76
+ upscaled_size: { height: 360, width: 640 },
77
+ model_rank: 4,
71
78
  model_url_resolver,
72
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
73
- worker_uri: `/${LIB_VERSION}/worker/segmentation.js`,
74
- model_rank: 3,
75
- input_size: {
76
- height,
77
- width,
78
- },
79
- output_size: {
80
- height,
81
- width,
82
- },
79
+ worker_uri,
83
80
  },
84
81
  };
85
82
  let mask_quality_config = {};
@@ -87,34 +84,51 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
87
84
  case Quality.TINY:
88
85
  mask_quality_config = {
89
86
  generation_interval_ms: 48,
90
- model_uri: `/models/${model_version}/tiny_model.onnx`,
87
+ model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
91
88
  input_size: { height: 144, width: 256 },
92
- output_size: { height: 360, width: 640 },
89
+ output_size: { height: 144, width: 256 },
90
+ upscaled_size: { height: 360, width: 640 },
93
91
  model_rank: 4,
94
92
  };
95
93
  break;
96
94
  case Quality.LOW:
97
95
  mask_quality_config = {
98
96
  generation_interval_ms: 48,
99
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
97
+ model_uri: `/models/${model_version}/low-256x144-256x144.onnx`,
98
+ input_size: { height: 144, width: 256 },
99
+ output_size: { height: 144, width: 256 },
100
+ upscaled_size: { height: 360, width: 640 },
101
+ model_rank: 4,
100
102
  };
101
103
  break;
102
104
  case Quality.MEDIUM:
103
105
  mask_quality_config = {
104
106
  generation_interval_ms: 24,
105
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
107
+ model_uri: `/models/${model_version}/medium-256x144-256x144.onnx`,
108
+ input_size: { height: 144, width: 256 },
109
+ output_size: { height: 144, width: 256 },
110
+ upscaled_size: { height: 360, width: 640 },
111
+ model_rank: 4,
106
112
  };
107
113
  break;
108
114
  case Quality.HIGH:
109
115
  mask_quality_config = {
110
116
  generation_interval_ms: 36,
111
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
117
+ model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
118
+ input_size: { height: 360, width: 640 },
119
+ output_size: { height: 360, width: 640 },
120
+ upscaled_size: { height: 360, width: 640 },
121
+ model_rank: 4,
112
122
  };
113
123
  break;
114
124
  case Quality.ULTRA:
115
125
  mask_quality_config = {
116
126
  generation_interval_ms: 0,
117
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
127
+ model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
128
+ input_size: { height: 360, width: 640 },
129
+ output_size: { height: 360, width: 640 },
130
+ upscaled_size: { height: 360, width: 640 },
131
+ model_rank: 4,
118
132
  };
119
133
  break;
120
134
  default:
@@ -122,4 +136,16 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
122
136
  }
123
137
  return Object.assign(Object.assign({}, base_config), { mask: Object.assign(Object.assign({}, base_config.mask), mask_quality_config) });
124
138
  };
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBa0R4QyxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDekIsYUFBMkIsRUFDM0IsaUJBQTJCLEVBQ2pCLEVBQUU7SUFDWixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsUUFBUSxhQUFhLEVBQUU7UUFDbkIsS0FBSyxZQUFZLENBQUMsSUFBSTtZQUNsQixXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsUUFBUTtZQUN0QixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixNQUFNO1FBQ1YsS0FBSyxZQUFZLENBQUMsTUFBTTtZQUNwQixXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLEtB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
139
+ export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', renderConfig = {
140
+ type: 'blur',
141
+ horizontal_mirror: false,
142
+ kernel_size: 37,
143
+ sigma: 17,
144
+ }, modelUrlResolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), baseUrl = BASE_URL, useLocalWorker = false) => {
145
+ const basePreloadConfig = getPreloadConfig(quality, generator, modelUrlResolver, baseUrl, useLocalWorker);
146
+ const maskConfig = basePreloadConfig.mask;
147
+ return Object.assign(Object.assign({}, basePreloadConfig), { render: renderConfig, input: { height, width }, mask: Object.assign(Object.assign({}, maskConfig), {
148
+ // Need to ensure we don't override the tiny model's input and output sizes.
149
+ input_size: maskConfig.input_size || { height, width }, output_size: maskConfig.output_size || { height, width }, upscaled_size: maskConfig.upscaled_size || { height, width } }) });
150
+ };
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFrRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FB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
@@ -4,12 +4,19 @@ declare global {
4
4
  url: string;
5
5
  }
6
6
  }
7
- export interface MaskResult {
7
+ export interface FacesAndLandmarks {
8
8
  data: Float32Array;
9
+ dims: readonly number[];
10
+ }
11
+ export interface LadonOutput {
12
+ data: Float32Array;
13
+ facesAndLandmarks: FacesAndLandmarks;
14
+ gesture: Float32Array;
15
+ motion: number;
9
16
  warm: boolean;
10
17
  }
11
18
  export interface MaskGenerator {
12
- getMask(input: Uint8ClampedArray): Promise<MaskResult>;
19
+ getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
13
20
  load(): Promise<void>;
14
21
  isLoaded(): boolean;
15
22
  postRender(input: Uint8ClampedArray): Promise<void>;
@@ -17,8 +24,9 @@ export interface MaskGenerator {
17
24
  }
18
25
  export declare class LocalGenerator implements MaskGenerator {
19
26
  readonly config: PipelineConfig;
20
- private last_mask;
21
- private mask_model?;
27
+ private lastResult;
28
+ private lastMask;
29
+ private maskModel?;
22
30
  private last_mask_generation;
23
31
  private output?;
24
32
  constructor(config: PipelineConfig);
@@ -32,7 +40,7 @@ export declare class LocalGenerator implements MaskGenerator {
32
40
  * @returns {Float32Array} - The processed data
33
41
  */
34
42
  private preprocess;
35
- getMask(input: Uint8ClampedArray): Promise<MaskResult>;
43
+ getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
36
44
  load(): Promise<void>;
37
45
  isLoaded(): boolean;
38
46
  postRender(_: Uint8ClampedArray): Promise<void>;
@@ -40,9 +48,9 @@ export declare class LocalGenerator implements MaskGenerator {
40
48
  }
41
49
  export declare class NullGenerator implements MaskGenerator {
42
50
  readonly config: PipelineConfig;
43
- private last_mask;
51
+ private lastMask;
44
52
  constructor(config: PipelineConfig);
45
- getMask(_: Uint8ClampedArray): Promise<MaskResult>;
53
+ getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
46
54
  load(): Promise<void>;
47
55
  isLoaded(): boolean;
48
56
  postRender(_: Uint8ClampedArray): Promise<void>;
@@ -50,11 +58,12 @@ export declare class NullGenerator implements MaskGenerator {
50
58
  }
51
59
  export declare class WorkerGenerator implements MaskGenerator {
52
60
  readonly config: PipelineConfig;
53
- private last_mask;
61
+ private lastMask;
62
+ private newMask;
54
63
  private worker?;
55
- private new_mask;
64
+ private lastResult;
56
65
  constructor(config: PipelineConfig);
57
- getMask(_: Uint8ClampedArray): Promise<MaskResult>;
66
+ getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
58
67
  load(): Promise<void>;
59
68
  isLoaded(): boolean;
60
69
  postRender(input: Uint8ClampedArray): Promise<void>;