oidn-web 0.3.5 → 0.5.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.md +208 -8
  3. package/dist/oidn.js +4699 -22516
  4. package/dist/oidn.umd.cjs +989 -5796
  5. package/lib/UNet.d.ts +111 -26
  6. package/lib/UNet.js +310 -329
  7. package/lib/UNet.js.map +1 -1
  8. package/lib/WGPUComputePass.d.ts +1 -1
  9. package/lib/WGPUComputePass.js +6 -4
  10. package/lib/WGPUComputePass.js.map +1 -1
  11. package/lib/backend.d.ts +1 -4
  12. package/lib/backend.js +28 -44
  13. package/lib/backend.js.map +1 -1
  14. package/lib/finalRgbShader.d.ts +13 -0
  15. package/lib/finalRgbShader.js +160 -0
  16. package/lib/finalRgbShader.js.map +1 -0
  17. package/lib/graphOptimizer.d.ts +54 -0
  18. package/lib/graphOptimizer.js +215 -0
  19. package/lib/graphOptimizer.js.map +1 -0
  20. package/lib/hdrTransfer.d.ts +14 -0
  21. package/lib/hdrTransfer.js +61 -0
  22. package/lib/hdrTransfer.js.map +1 -0
  23. package/lib/main.d.ts +43 -11
  24. package/lib/main.js +9 -5
  25. package/lib/main.js.map +1 -1
  26. package/lib/modelSpec.d.ts +80 -0
  27. package/lib/modelSpec.js +270 -0
  28. package/lib/modelSpec.js.map +1 -0
  29. package/lib/nativeUNet.d.ts +103 -0
  30. package/lib/nativeUNet.js +2064 -0
  31. package/lib/nativeUNet.js.map +1 -0
  32. package/lib/process.d.ts +5 -11
  33. package/lib/process.js +38 -49
  34. package/lib/process.js.map +1 -1
  35. package/lib/resourceTracker.d.ts +26 -0
  36. package/lib/resourceTracker.js +65 -0
  37. package/lib/resourceTracker.js.map +1 -0
  38. package/lib/tileScheduler.d.ts +61 -0
  39. package/lib/tileScheduler.js +199 -0
  40. package/lib/tileScheduler.js.map +1 -0
  41. package/lib/webnnUNet.d.ts +52 -0
  42. package/lib/webnnUNet.js +535 -0
  43. package/lib/webnnUNet.js.map +1 -0
  44. package/package.json +16 -5
  45. package/src/UNet.ts +463 -437
  46. package/src/WGPUComputePass.ts +6 -4
  47. package/src/backend.ts +33 -59
  48. package/src/finalRgbShader.ts +186 -0
  49. package/src/graphOptimizer.ts +300 -0
  50. package/src/hdrTransfer.ts +88 -0
  51. package/src/main.ts +95 -20
  52. package/src/modelSpec.ts +414 -0
  53. package/src/nativeUNet.ts +2655 -0
  54. package/src/process.ts +46 -71
  55. package/src/resourceTracker.ts +94 -0
  56. package/src/tileScheduler.ts +330 -0
  57. package/src/webnnUNet.ts +812 -0
  58. package/lib/helper.d.ts +0 -4
  59. package/lib/helper.js +0 -33
  60. package/lib/helper.js.map +0 -1
  61. package/lib/kernels.d.ts +0 -1
  62. package/lib/kernels.js +0 -26
  63. package/lib/kernels.js.map +0 -1
  64. package/src/helper.ts +0 -43
  65. package/src/kernels.ts +0 -31
package/lib/helper.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import * as tfjs from '@tensorflow/tfjs-core';
2
- export declare function profileAndLogKernelCode(execute: () => void, disabled?: boolean): void;
3
- export declare function memory(): tfjs.MemoryInfo;
4
- export declare function tidy(f: () => void): void;
package/lib/helper.js DELETED
@@ -1,33 +0,0 @@
1
- import * as tfjs from '@tensorflow/tfjs-core';
2
- export function profileAndLogKernelCode(execute, disabled = true) {
3
- if (disabled) {
4
- execute();
5
- return;
6
- }
7
- tfjs
8
- .profile(() => {
9
- execute();
10
- })
11
- .then((res) => {
12
- const kernelNames = Array.from(new Set(res.kernels.map((k) => k.name).filter((name) => !name.endsWith('_op'))));
13
- function nameToConfig(name) {
14
- return `${name[0].toLowerCase()}${name.slice(1)}Config`;
15
- }
16
- const importCode = kernelNames.map((name) => `import { ${nameToConfig(name)} } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/${name}';`);
17
- const configCode = kernelNames.map((name) => `${nameToConfig(name)},`);
18
- const code = `
19
- ${importCode.join('\n')}
20
- const kernelConfigs: KernelConfig[] = [
21
- ${configCode.join('\n')}
22
- ]
23
- `;
24
- console.log(code);
25
- });
26
- }
27
- export function memory() {
28
- return tfjs.memory();
29
- }
30
- export function tidy(f) {
31
- return tfjs.tidy(f);
32
- }
33
- //# sourceMappingURL=helper.js.map
package/lib/helper.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,MAAM,UAAU,uBAAuB,CAAC,OAAmB,EAAE,QAAQ,GAAG,IAAI;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,IAAI;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACvE,CACF,CAAC;QACF,SAAS,YAAY,CAAC,IAAY;YAChC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1D,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,YAAY,CACtB,IAAI,CACL,yDAAyD,IAAI,IAAI,CACrE,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG;IACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAErB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;GAEtB,CAAC;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAa;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
package/lib/kernels.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/lib/kernels.js DELETED
@@ -1,26 +0,0 @@
1
- import { registerKernel } from '@tensorflow/tfjs-core/dist/kernel_registry';
2
- import { mirrorPadConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/MirrorPad';
3
- import { padV2Config } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/PadV2';
4
- import { sliceConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Slice';
5
- import { fusedConv2DConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/FusedConv2D';
6
- import { maxPoolConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/MaxPool';
7
- import { resizeNearestNeighborConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/ResizeNearestNeighbor';
8
- import { concatConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Concat';
9
- import { identityConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Identity';
10
- const kernelConfigs = [
11
- mirrorPadConfig,
12
- padV2Config,
13
- sliceConfig,
14
- fusedConv2DConfig,
15
- maxPoolConfig,
16
- resizeNearestNeighborConfig,
17
- concatConfig,
18
- identityConfig
19
- ];
20
- for (const kernelConfig of kernelConfigs) {
21
- registerKernel({
22
- ...kernelConfig,
23
- backendName: 'webgpu-oidn'
24
- });
25
- }
26
- //# sourceMappingURL=kernels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kernels.js","sourceRoot":"","sources":["../src/kernels.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACf,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oEAAoE,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAEvF,MAAM,aAAa,GAAmB;IACpC,eAAe;IACf,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,2BAA2B;IAC3B,YAAY;IACZ,cAAc;CACf,CAAC;AAEF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;IACzC,cAAc,CAAC;QACb,GAAG,YAAY;QACf,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAC;AACL,CAAC"}
package/src/helper.ts DELETED
@@ -1,43 +0,0 @@
1
- import * as tfjs from '@tensorflow/tfjs-core';
2
- export function profileAndLogKernelCode(execute: () => void, disabled = true) {
3
- if (disabled) {
4
- execute();
5
- return;
6
- }
7
- tfjs
8
- .profile(() => {
9
- execute();
10
- })
11
- .then((res) => {
12
- const kernelNames = Array.from(
13
- new Set(
14
- res.kernels.map((k) => k.name).filter((name) => !name.endsWith('_op'))
15
- )
16
- );
17
- function nameToConfig(name: string) {
18
- return `${name[0].toLowerCase()}${name.slice(1)}Config`;
19
- }
20
- const importCode = kernelNames.map(
21
- (name) =>
22
- `import { ${nameToConfig(
23
- name
24
- )} } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/${name}';`
25
- );
26
- const configCode = kernelNames.map((name) => `${nameToConfig(name)},`);
27
- const code = `
28
- ${importCode.join('\n')}
29
- const kernelConfigs: KernelConfig[] = [
30
- ${configCode.join('\n')}
31
- ]
32
- `;
33
- console.log(code);
34
- });
35
- }
36
-
37
- export function memory() {
38
- return tfjs.memory();
39
- }
40
-
41
- export function tidy(f: () => void) {
42
- return tfjs.tidy(f);
43
- }
package/src/kernels.ts DELETED
@@ -1,31 +0,0 @@
1
- import {
2
- KernelConfig,
3
- registerKernel
4
- } from '@tensorflow/tfjs-core/dist/kernel_registry';
5
-
6
- import { mirrorPadConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/MirrorPad';
7
- import { padV2Config } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/PadV2';
8
- import { sliceConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Slice';
9
- import { fusedConv2DConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/FusedConv2D';
10
- import { maxPoolConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/MaxPool';
11
- import { resizeNearestNeighborConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/ResizeNearestNeighbor';
12
- import { concatConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Concat';
13
- import { identityConfig } from '@tensorflow/tfjs-backend-webgpu/dist/kernels/Identity';
14
-
15
- const kernelConfigs: KernelConfig[] = [
16
- mirrorPadConfig,
17
- padV2Config,
18
- sliceConfig,
19
- fusedConv2DConfig,
20
- maxPoolConfig,
21
- resizeNearestNeighborConfig,
22
- concatConfig,
23
- identityConfig
24
- ];
25
-
26
- for (const kernelConfig of kernelConfigs) {
27
- registerKernel({
28
- ...kernelConfig,
29
- backendName: 'webgpu-oidn'
30
- });
31
- }