oidn-web 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/oidn.js CHANGED
@@ -2329,7 +2329,7 @@ class Mn {
2329
2329
  /**
2330
2330
  * Initializes a backend by looking up the backend name in the factory
2331
2331
  * registry and calling the factory method. Returns a boolean representing
2332
- * whether the initialization of the backend succeeded. Throws an error if
2332
+ * whether the initialization of the backend suceeded. Throws an error if
2333
2333
  * there is no backend in the factory registry.
2334
2334
  */
2335
2335
  initializeBackend(t) {
@@ -12846,7 +12846,7 @@ function Ko(n, t) {
12846
12846
  }
12847
12847
  }
12848
12848
  /** @license See the LICENSE file. */
12849
- const wh = "4.22.0";
12849
+ const wh = "4.20.0";
12850
12850
  /**
12851
12851
  * @license
12852
12852
  * Copyright 2022 Google LLC
@@ -16883,7 +16883,7 @@ class xx {
16883
16883
  return e = this._createConv("enc_conv5a", i, "relu"), e = this._addUpsamplingLayer(this._createConv("enc_conv5b", e, "relu")), e = this._createConcatConv("dec_conv4a", e, o), e = this._addUpsamplingLayer(this._createConv("dec_conv4b", e, "relu")), e = this._createConcatConv("dec_conv3a", e, r), e = this._addUpsamplingLayer(this._createConv("dec_conv3b", e, "relu")), e = this._createConcatConv("dec_conv2a", e, s), e = this._addUpsamplingLayer(this._createConv("dec_conv2b", e, "relu")), e = this._createConcatConv("dec_conv1a", e, t), e = this._createConv("dec_conv1b", e, "relu"), e = this._createConv("dec_conv1c", e, "relu"), e;
16884
16884
  }
16885
16885
  _updateModel(t, e) {
16886
- const s = this._tensors.has("enc_conv1b.weight"), r = this._maxTileSize;
16886
+ const s = this._hostTensors.has("enc_conv1b.weight"), r = this._maxTileSize;
16887
16887
  let o = r, i = r, a = s ? Al : Qs, l = s ? Al : Qs;
16888
16888
  t < r + Qs * 2 && (o = ys(t, r / 2), t <= r && (a = 0)), e < r + Qs * 2 && (i = ys(e, r / 2), e <= r && (l = 0));
16889
16889
  const u = Math.max(o, i), c = Math.max(a, l);
@@ -18350,7 +18350,7 @@ rf() && Xp(
18350
18350
  maxComputeWorkgroupSizeX: r.maxComputeWorkgroupSizeX,
18351
18351
  maxComputeInvocationsPerWorkgroup: r.maxComputeInvocationsPerWorkgroup
18352
18352
  };
18353
- const o = await t.requestDevice(e), i = "info" in t ? t.info : "requestAdapterInfo" in t ? await t.requestAdapterInfo() : void 0;
18353
+ const o = await t.requestDevice(e), i = await t.requestAdapterInfo();
18354
18354
  return new Fs(o, i);
18355
18355
  },
18356
18356
  3
package/dist/oidn.umd.cjs CHANGED
@@ -2965,7 +2965,7 @@
2965
2965
  * license that can be found in the LICENSE file or at
2966
2966
  * https://opensource.org/licenses/MIT.
2967
2967
  * =============================================================================
2968
- */function Oc(n,t,e){return(n==="inboundNodes"||n==="outputLayers"||n==="inputLayers")&&t===0&&typeof e=="string"}function Di(n,t){if(n===null)return null;if(typeof n=="string")return pn(n);if(typeof n=="number"||typeof n=="boolean")return n;if(n instanceof Array){const e=[],s=n.length;for(let r=0;r<s;++r){const o=n[r];Oc(t,r,o)?e.push(o):e.push(Di(o,t))}return e}else{const e={};for(const s of Object.keys(n)){const r=n[s];if(s==="name"&&typeof r=="string")e[s]=r;else{const o=pn(s);e[o]=Di(r,o)}}return e}}function Pi(n,t){if(n==null)return null;if(typeof n=="string")return Oe(n);if(typeof n=="number"||typeof n=="boolean")return n;if(n instanceof Array){const e=[],s=n.length;for(let r=0;r<s;++r){const o=n[r];Oc(t,r,o)?e.push(o):e.push(Pi(o,t))}return e}else{const e={};for(const s of Object.keys(n)){const r=n[s],o=Oe(s);(s==="name"||s==="className")&&typeof r=="string"?e[o]=r:e[o]=Pi(r,s)}return e}}/** @license See the LICENSE file. */const Mc="4.22.0";/**
2968
+ */function Oc(n,t,e){return(n==="inboundNodes"||n==="outputLayers"||n==="inputLayers")&&t===0&&typeof e=="string"}function Di(n,t){if(n===null)return null;if(typeof n=="string")return pn(n);if(typeof n=="number"||typeof n=="boolean")return n;if(n instanceof Array){const e=[],s=n.length;for(let r=0;r<s;++r){const o=n[r];Oc(t,r,o)?e.push(o):e.push(Di(o,t))}return e}else{const e={};for(const s of Object.keys(n)){const r=n[s];if(s==="name"&&typeof r=="string")e[s]=r;else{const o=pn(s);e[o]=Di(r,o)}}return e}}function Pi(n,t){if(n==null)return null;if(typeof n=="string")return Oe(n);if(typeof n=="number"||typeof n=="boolean")return n;if(n instanceof Array){const e=[],s=n.length;for(let r=0;r<s;++r){const o=n[r];Oc(t,r,o)?e.push(o):e.push(Pi(o,t))}return e}else{const e={};for(const s of Object.keys(n)){const r=n[s],o=Oe(s);(s==="name"||s==="className")&&typeof r=="string"?e[o]=r:e[o]=Pi(r,s)}return e}}/** @license See the LICENSE file. */const Mc="4.20.0";/**
2969
2969
  * @license
2970
2970
  * Copyright 2022 Google LLC
2971
2971
  *
@@ -3131,7 +3131,7 @@ else if (${s}) {
3131
3131
  else {
3132
3132
  out_color[outIdx] = vec4f(col.rgb, raw.a);
3133
3133
  }
3134
- `})}setImageSize(t,e){this._inputPassAux.setUniform("inputSize",new Float32Array([t,e])),this._inputPassColor.setUniform("inputSize",new Float32Array([t,e])),this._outputPass.setUniform("imageSize",new Float32Array([t,e])),this._outputPass.setSize(t,e),this._copyPass.setSize(t,e),this._copyPass.setUniform("size",new Float32Array([t,e]))}setInputTile(t){const e=new Float32Array([t.width,t.height]);[this._inputPassAux,this._inputPassColor].forEach(s=>{s.setUniform("inputOffset",new Float32Array([t.x,t.y])),s.setUniform("outputSize",e),s.setSize(e[0],e[1])}),this._outputPass.setUniform("inputSize",e)}setOutputTile(t,e){const s=this._outputPass,r=new Float32Array([t.width,t.height]),o=t.x-e.x,i=t.y-e.y;s.setUniform("outputSize",r),s.setUniform("inputOffset",new Float32Array([o,i])),s.setUniform("outputOffset",new Float32Array([t.x,t.y])),s.setExecuteSize(r[0],r[1])}forward(t,e,s,r){const o=t instanceof GPUTexture;this._updatePasses(o,r);const i=this._inputPassAux,a=this._inputPassColor,l=this._device.createCommandEncoder();function u(c){return c instanceof GPUTexture?{texture:c,channels:4}:{buffer:c,channels:4}}return e&&s?i.createPass(l,{color:u(t),albedo:u(e),normal:u(s)}):a.createPass(l,{color:u(t)}),this._device.queue.submit([l.finish()]),e&&s?{color:i.getOutput("color"),albedo:i.getOutput("albedo"),normal:i.getOutput("normal")}:{color:a.getOutput("color")}}inverse(t,e){const r=this._device.createCommandEncoder(),o=this._outputPass;return o.createPass(r,{color:{buffer:t,channels:4},raw:e instanceof GPUBuffer?{buffer:e,channels:4}:{texture:e,channels:4}}),this._device.queue.submit([r.finish()]),o.getOutput("color")}copyInputDataToOutput(t){const e=this._device.createCommandEncoder(),r=this._outputPass.getOutput("color"),o=this._copyPass;t instanceof GPUTexture?(o.setOutputBuffers({color:r}),o.createPass(e,{color:{texture:t,channels:4}})):e.copyBufferToBuffer(t,0,r,0,r.size),this._device.queue.submit([e.finish()])}dispose(){this._outputPass.dispose(),this._inputPassAux.dispose()}}function qh(n,t){const e=n.buffer;if(t==="Float32")return new Float32Array(n.buffer);const s=new ft(e),r=new Float32Array(s.length);for(let o=0;o<r.length;++o)r[o]=s[o];return r}function fx(n,t){const[e,s,r,o]=t,i=new Float32Array(n.length);for(let a=0;a<e;++a)for(let l=0;l<s;++l)for(let u=0;u<r;++u)for(let c=0;c<o;++c){const h=a*s*r*o+l*r*o+u*o+c,f=u*o*s*e+c*s*e+l*e+a;i[f]=n[h]}return i}function Bs(n,t){return Math.ceil(n/t)*t}function eo(n){return n.data instanceof GPUBuffer||n.data instanceof GPUTexture}const dx=174,px=202,jh=16,no=Bs(dx/2,jh),Hh=Bs(px/2,jh);class Kh{constructor(t,e,s={}){V(this,"_tfModel");V(this,"_device");V(this,"_tileWidth",0);V(this,"_tileHeight",0);V(this,"_tileOverlapX",0);V(this,"_tileOverlapY",0);V(this,"_aux");V(this,"_hdr");V(this,"_dataProcessGPU");V(this,"_maxTileSize");V(this,"_tensors",new Map);V(this,"_modelsCache",new Map);this._hostTensors=t,this._backend=e,this._aux=s.aux||!1,this._hdr=s.hdr||!1,this._maxTileSize=Bs(s.maxTileSize??512,2),this._device=this._backend.device}getDevice(){return this._device}_buildModel(t){const s=3+(this._aux?6:0),r=this._getTileSizeWithOverlap(),o=this._modelsCache,i=[r.width,r.height].join(",");if(o.has(i)){this._tfModel=o.get(i);return}const a=Yw({name:"input",shape:[r.height,r.width,s],dtype:"float32"});this._tfModel=new Mr({inputs:[a],outputs:t?this._addNetLarge(a):this._addNet(a)}),o.set(i,this._tfModel)}_createConv(t,e,s){const r=t+".weight",o=t+".bias",i=this._tensors;let a=i.get(r),l=i.get(o);const u=this._hostTensors.get(r);if(!a){const h=u.desc.dims;a=nr(fx(qh(u.data,u.desc.dataType),h),[h[2],h[3],h[1],h[0]],"float32"),i.set(r,a)}if(!l){const h=this._hostTensors.get(t+".bias");l=Pt(qh(h.data,h.desc.dataType),"float32"),i.set(o,l)}return new Yn({name:t,filters:u.desc.dims[0],kernelSize:u.desc.dims.slice(2,4),useBias:!0,activation:s,padding:"same",weights:[a,l],trainable:!1}).apply(e)}_createConcatConv(t,e,s){const r=new Ti({name:t+"/concat",trainable:!1,axis:3});return this._createConv(t,r.apply([e,s]),"relu")}_createPooling(t){return new Ei({name:t.name+"/pooling",poolSize:[2,2],strides:[2,2],padding:"same",trainable:!1}).apply(t)}_addUpsamplingLayer(t){return new Ai({name:t.name+"/upsampling",size:[2,2],trainable:!1}).apply(t)}_addNet(t){let e=this._createConv("enc_conv0",t,"relu");const s=e=this._createPooling(this._createConv("enc_conv1",e,"relu")),r=e=this._createPooling(this._createConv("enc_conv2",e,"relu")),o=e=this._createPooling(this._createConv("enc_conv3",e,"relu")),i=e=this._createPooling(this._createConv("enc_conv4",e,"relu"));return e=this._createConv("enc_conv5a",i,"relu"),e=this._addUpsamplingLayer(this._createConv("enc_conv5b",e,"relu")),e=this._createConcatConv("dec_conv4a",e,o),e=this._addUpsamplingLayer(this._createConv("dec_conv4b",e,"relu")),e=this._createConcatConv("dec_conv3a",e,r),e=this._addUpsamplingLayer(this._createConv("dec_conv3b",e,"relu")),e=this._createConcatConv("dec_conv2a",e,s),e=this._addUpsamplingLayer(this._createConv("dec_conv2b",e,"relu")),e=this._createConcatConv("dec_conv1a",e,t),e=this._createConv("dec_conv1b",e,"relu"),e=this._createConv("dec_conv0",e,"relu"),e}_addNetLarge(t){let e=this._createConv("enc_conv1a",t,"relu");const s=e=this._createPooling(this._createConv("enc_conv1b",e,"relu"));e=this._createConv("enc_conv2a",e,"relu");const r=e=this._createPooling(this._createConv("enc_conv2b",e,"relu"));e=this._createConv("enc_conv3a",e,"relu");const o=e=this._createPooling(this._createConv("enc_conv3b",e,"relu"));e=this._createConv("enc_conv4a",e,"relu");const i=e=this._createPooling(this._createConv("enc_conv4b",e,"relu"));return e=this._createConv("enc_conv5a",i,"relu"),e=this._addUpsamplingLayer(this._createConv("enc_conv5b",e,"relu")),e=this._createConcatConv("dec_conv4a",e,o),e=this._addUpsamplingLayer(this._createConv("dec_conv4b",e,"relu")),e=this._createConcatConv("dec_conv3a",e,r),e=this._addUpsamplingLayer(this._createConv("dec_conv3b",e,"relu")),e=this._createConcatConv("dec_conv2a",e,s),e=this._addUpsamplingLayer(this._createConv("dec_conv2b",e,"relu")),e=this._createConcatConv("dec_conv1a",e,t),e=this._createConv("dec_conv1b",e,"relu"),e=this._createConv("dec_conv1c",e,"relu"),e}_updateModel(t,e){const s=this._tensors.has("enc_conv1b.weight"),r=this._maxTileSize;let o=r,i=r,a=s?Hh:no,l=s?Hh:no;t<r+no*2&&(o=Bs(t,r/2),t<=r&&(a=0)),e<r+no*2&&(i=Bs(e,r/2),e<=r&&(l=0));const u=Math.max(o,i),c=Math.max(a,l);o=u,i=u,a=c,l=c,(o!==this._tileWidth||i!==this._tileHeight||a!==this._tileOverlapX||l!==this._tileOverlapY||!this._tfModel)&&(this._tileWidth=o,this._tileHeight=i,this._tileOverlapX=a,this._tileOverlapY=l,this._buildModel(s))}_getTileSizeWithOverlap(){return{width:this._tileWidth+2*this._tileOverlapX,height:this._tileHeight+2*this._tileOverlapY}}_processImageData(t,e,s,r){const o=t.data,i=o.length/4,a=this._aux?9:3,l=new Float32Array(i*a);if(e&&!s||s&&!e)throw new Error("Normal map and albedo map are both required");if(e&&s&&(e.width!==s.width||e.height!==s.height||t.width!==e.width||t.height!==e.height))throw new Error("Image size mismatch");const u=e==null?void 0:e.data,c=s==null?void 0:s.data;for(let h=0;h<o.length;h+=4){const f=h/4*a;for(let d=0;d<3;d++)r?l[f+d]=o[h+d]:l[f+d]=o[h+d]/255,u&&(l[f+d+3]=u[h+d]/255),c&&(l[f+d+6]=c[h+d]/255)}return l}_readTile(t,e,s,r){const o=new Float32Array(s.width*s.height*e);for(let i=0;i<s.height;i++)for(let a=0;a<s.width;a++){const l=((i+s.y)*r+(a+s.x))*e,u=(i*s.width+a)*e;for(let c=0;c<e;c++)o[u+c]=t[l+c]}return o}_writeTile(t,e,s,r,o,i){const{data:a,width:l}=t,u=s.x-e.x,c=s.y-e.y;for(let h=0;h<s.height;h++)for(let f=0;f<s.width;f++){const d=((h+c)*o+f+u)*3,p=((h+s.y)*l+(f+s.x))*4;for(let g=0;g<3;g++)i?a[p+g]=r[d+g]:a[p+g]=Math.min(Math.max(r[d+g]*255,0),255);t.data[p+3]=i?1:255}}_executeTile(t,e,s,r,o,i,a,l,u){const c=this._aux?9:3,h=this._tileOverlapX,f=this._tileOverlapY;let d=this._getTileSizeWithOverlap(),p={width:this._tileWidth,height:this._tileHeight},g=r>0?r*p.width-h:0,m=Math.min(g+d.width,i);g=Math.max(m-d.width,0);let b=o>0?o*p.height-f:0,y=Math.min(b+d.height,a);b=Math.max(y-d.height,0);const S=d.width,x=d.height,v=new ca(g,b,S,x);let E,D=1;const k=this._device;let T=this._dataProcessGPU;if(t instanceof Float32Array){let U=this._readTile(t,c,v,i);l&&(D=lx({data:U,channels:c}),U=ux({data:U,channels:c,inputScale:D})),E=nr(U,[1,x,S,c],"float32")}else{T||(T=this._dataProcessGPU=new hx(k,l)),T.setImageSize(i,a),T.setInputTile(v),r===0&&o===0&&T.copyInputDataToOutput(t.color);const{color:U,albedo:j,normal:Zt}=T.forward(t.color,this._aux?t.albedo:void 0,this._aux?t.normal:void 0,u),qt=xe=>{const jt=nr({buffer:xe,zeroCopy:!0},[1,x,S,4]);return cs(jt,[0,0,0,0],[1,x,S,3])};if(this._aux){const xe=[U,j,Zt].map(jt=>qt(jt));E=qp(xe,3)}else E=qt(U)}let R;const B=this._tfModel.predict(E),K=Math.min(p.width,i),Z=Math.min(p.height,a),W=new ca(r*K,o*Z,K,Z);if(W.width=Math.min(W.width,i-W.x),W.height=Math.min(W.height,a-W.y),t instanceof Float32Array){let U=B.dataSync();l&&(U=cx({data:U,channels:3,inputScale:D})),this._writeTile(s,v,W,U,d.width,l);for(let j=0;j<Z;j++)for(let Zt=0;Zt<K;Zt++){const qt=(j*K+Zt)*4,xe=((j+W.y)*i+(Zt+W.x))*4;for(let jt=0;jt<4;jt++)e.data[qt+jt]=s.data[xe+jt]}}else{T.setOutputTile(W,v);const U=Fp(B,[[0,0],[0,0],[0,0],[0,1]]);R=T.inverse(U.dataToGPU().buffer,t.color)}return R}tileExecute({color:t,albedo:e,normal:s,done:r,progress:o,denoiseAlpha:i}){if(this._aux&&(!e||!s))throw new Error("Normal map and albedo map are both required");if(!this._aux&&(e||s))throw new Error("Normal map and albedo map are not required");const a=t.width,l=t.height;this._updateModel(a,l);const u=this._hdr||!1;let c;eo(t)||(c=this._processImageData(t,e,s,u));const h=this._tileWidth,f=this._tileHeight,d=Math.ceil(l/f),p=Math.ceil(a/h);function g(x,v){return u?{data:new Float32Array(x*v*4),width:x,height:v}:new ImageData(x,v)}const m=eo(t)?void 0:g(a,l),b=eo(t)?void 0:g(Math.min(h,a),Math.min(f,l));let y=!1;const S=(x,v)=>{if(y)return;let E;A.startScope(),E=this._executeTile(eo(t)?{color:t.data,albedo:e==null?void 0:e.data,normal:s==null?void 0:s.data}:c,b,m,x,v,a,l,u,i),A.endScope();const D=m||{data:E,width:a,height:l};o==null||o(D,b,new ca(x*h,v*f,h,f),x+v*p,p*d),x+1<p||v+1<d?requestAnimationFrame(()=>{x+1<p?S(x+1,v):v+1<d&&S(0,v+1)}):r(D)};return S(0,0),()=>{y=!0}}dispose(){var t,e;(t=this._tfModel)==null||t.dispose(),(e=this._dataProcessGPU)==null||e.dispose(),this._tensors.forEach(s=>s.dispose())}}/**
3134
+ `})}setImageSize(t,e){this._inputPassAux.setUniform("inputSize",new Float32Array([t,e])),this._inputPassColor.setUniform("inputSize",new Float32Array([t,e])),this._outputPass.setUniform("imageSize",new Float32Array([t,e])),this._outputPass.setSize(t,e),this._copyPass.setSize(t,e),this._copyPass.setUniform("size",new Float32Array([t,e]))}setInputTile(t){const e=new Float32Array([t.width,t.height]);[this._inputPassAux,this._inputPassColor].forEach(s=>{s.setUniform("inputOffset",new Float32Array([t.x,t.y])),s.setUniform("outputSize",e),s.setSize(e[0],e[1])}),this._outputPass.setUniform("inputSize",e)}setOutputTile(t,e){const s=this._outputPass,r=new Float32Array([t.width,t.height]),o=t.x-e.x,i=t.y-e.y;s.setUniform("outputSize",r),s.setUniform("inputOffset",new Float32Array([o,i])),s.setUniform("outputOffset",new Float32Array([t.x,t.y])),s.setExecuteSize(r[0],r[1])}forward(t,e,s,r){const o=t instanceof GPUTexture;this._updatePasses(o,r);const i=this._inputPassAux,a=this._inputPassColor,l=this._device.createCommandEncoder();function u(c){return c instanceof GPUTexture?{texture:c,channels:4}:{buffer:c,channels:4}}return e&&s?i.createPass(l,{color:u(t),albedo:u(e),normal:u(s)}):a.createPass(l,{color:u(t)}),this._device.queue.submit([l.finish()]),e&&s?{color:i.getOutput("color"),albedo:i.getOutput("albedo"),normal:i.getOutput("normal")}:{color:a.getOutput("color")}}inverse(t,e){const r=this._device.createCommandEncoder(),o=this._outputPass;return o.createPass(r,{color:{buffer:t,channels:4},raw:e instanceof GPUBuffer?{buffer:e,channels:4}:{texture:e,channels:4}}),this._device.queue.submit([r.finish()]),o.getOutput("color")}copyInputDataToOutput(t){const e=this._device.createCommandEncoder(),r=this._outputPass.getOutput("color"),o=this._copyPass;t instanceof GPUTexture?(o.setOutputBuffers({color:r}),o.createPass(e,{color:{texture:t,channels:4}})):e.copyBufferToBuffer(t,0,r,0,r.size),this._device.queue.submit([e.finish()])}dispose(){this._outputPass.dispose(),this._inputPassAux.dispose()}}function qh(n,t){const e=n.buffer;if(t==="Float32")return new Float32Array(n.buffer);const s=new ft(e),r=new Float32Array(s.length);for(let o=0;o<r.length;++o)r[o]=s[o];return r}function fx(n,t){const[e,s,r,o]=t,i=new Float32Array(n.length);for(let a=0;a<e;++a)for(let l=0;l<s;++l)for(let u=0;u<r;++u)for(let c=0;c<o;++c){const h=a*s*r*o+l*r*o+u*o+c,f=u*o*s*e+c*s*e+l*e+a;i[f]=n[h]}return i}function Bs(n,t){return Math.ceil(n/t)*t}function eo(n){return n.data instanceof GPUBuffer||n.data instanceof GPUTexture}const dx=174,px=202,jh=16,no=Bs(dx/2,jh),Hh=Bs(px/2,jh);class Kh{constructor(t,e,s={}){V(this,"_tfModel");V(this,"_device");V(this,"_tileWidth",0);V(this,"_tileHeight",0);V(this,"_tileOverlapX",0);V(this,"_tileOverlapY",0);V(this,"_aux");V(this,"_hdr");V(this,"_dataProcessGPU");V(this,"_maxTileSize");V(this,"_tensors",new Map);V(this,"_modelsCache",new Map);this._hostTensors=t,this._backend=e,this._aux=s.aux||!1,this._hdr=s.hdr||!1,this._maxTileSize=Bs(s.maxTileSize??512,2),this._device=this._backend.device}getDevice(){return this._device}_buildModel(t){const s=3+(this._aux?6:0),r=this._getTileSizeWithOverlap(),o=this._modelsCache,i=[r.width,r.height].join(",");if(o.has(i)){this._tfModel=o.get(i);return}const a=Yw({name:"input",shape:[r.height,r.width,s],dtype:"float32"});this._tfModel=new Mr({inputs:[a],outputs:t?this._addNetLarge(a):this._addNet(a)}),o.set(i,this._tfModel)}_createConv(t,e,s){const r=t+".weight",o=t+".bias",i=this._tensors;let a=i.get(r),l=i.get(o);const u=this._hostTensors.get(r);if(!a){const h=u.desc.dims;a=nr(fx(qh(u.data,u.desc.dataType),h),[h[2],h[3],h[1],h[0]],"float32"),i.set(r,a)}if(!l){const h=this._hostTensors.get(t+".bias");l=Pt(qh(h.data,h.desc.dataType),"float32"),i.set(o,l)}return new Yn({name:t,filters:u.desc.dims[0],kernelSize:u.desc.dims.slice(2,4),useBias:!0,activation:s,padding:"same",weights:[a,l],trainable:!1}).apply(e)}_createConcatConv(t,e,s){const r=new Ti({name:t+"/concat",trainable:!1,axis:3});return this._createConv(t,r.apply([e,s]),"relu")}_createPooling(t){return new Ei({name:t.name+"/pooling",poolSize:[2,2],strides:[2,2],padding:"same",trainable:!1}).apply(t)}_addUpsamplingLayer(t){return new Ai({name:t.name+"/upsampling",size:[2,2],trainable:!1}).apply(t)}_addNet(t){let e=this._createConv("enc_conv0",t,"relu");const s=e=this._createPooling(this._createConv("enc_conv1",e,"relu")),r=e=this._createPooling(this._createConv("enc_conv2",e,"relu")),o=e=this._createPooling(this._createConv("enc_conv3",e,"relu")),i=e=this._createPooling(this._createConv("enc_conv4",e,"relu"));return e=this._createConv("enc_conv5a",i,"relu"),e=this._addUpsamplingLayer(this._createConv("enc_conv5b",e,"relu")),e=this._createConcatConv("dec_conv4a",e,o),e=this._addUpsamplingLayer(this._createConv("dec_conv4b",e,"relu")),e=this._createConcatConv("dec_conv3a",e,r),e=this._addUpsamplingLayer(this._createConv("dec_conv3b",e,"relu")),e=this._createConcatConv("dec_conv2a",e,s),e=this._addUpsamplingLayer(this._createConv("dec_conv2b",e,"relu")),e=this._createConcatConv("dec_conv1a",e,t),e=this._createConv("dec_conv1b",e,"relu"),e=this._createConv("dec_conv0",e,"relu"),e}_addNetLarge(t){let e=this._createConv("enc_conv1a",t,"relu");const s=e=this._createPooling(this._createConv("enc_conv1b",e,"relu"));e=this._createConv("enc_conv2a",e,"relu");const r=e=this._createPooling(this._createConv("enc_conv2b",e,"relu"));e=this._createConv("enc_conv3a",e,"relu");const o=e=this._createPooling(this._createConv("enc_conv3b",e,"relu"));e=this._createConv("enc_conv4a",e,"relu");const i=e=this._createPooling(this._createConv("enc_conv4b",e,"relu"));return e=this._createConv("enc_conv5a",i,"relu"),e=this._addUpsamplingLayer(this._createConv("enc_conv5b",e,"relu")),e=this._createConcatConv("dec_conv4a",e,o),e=this._addUpsamplingLayer(this._createConv("dec_conv4b",e,"relu")),e=this._createConcatConv("dec_conv3a",e,r),e=this._addUpsamplingLayer(this._createConv("dec_conv3b",e,"relu")),e=this._createConcatConv("dec_conv2a",e,s),e=this._addUpsamplingLayer(this._createConv("dec_conv2b",e,"relu")),e=this._createConcatConv("dec_conv1a",e,t),e=this._createConv("dec_conv1b",e,"relu"),e=this._createConv("dec_conv1c",e,"relu"),e}_updateModel(t,e){const s=this._hostTensors.has("enc_conv1b.weight"),r=this._maxTileSize;let o=r,i=r,a=s?Hh:no,l=s?Hh:no;t<r+no*2&&(o=Bs(t,r/2),t<=r&&(a=0)),e<r+no*2&&(i=Bs(e,r/2),e<=r&&(l=0));const u=Math.max(o,i),c=Math.max(a,l);o=u,i=u,a=c,l=c,(o!==this._tileWidth||i!==this._tileHeight||a!==this._tileOverlapX||l!==this._tileOverlapY||!this._tfModel)&&(this._tileWidth=o,this._tileHeight=i,this._tileOverlapX=a,this._tileOverlapY=l,this._buildModel(s))}_getTileSizeWithOverlap(){return{width:this._tileWidth+2*this._tileOverlapX,height:this._tileHeight+2*this._tileOverlapY}}_processImageData(t,e,s,r){const o=t.data,i=o.length/4,a=this._aux?9:3,l=new Float32Array(i*a);if(e&&!s||s&&!e)throw new Error("Normal map and albedo map are both required");if(e&&s&&(e.width!==s.width||e.height!==s.height||t.width!==e.width||t.height!==e.height))throw new Error("Image size mismatch");const u=e==null?void 0:e.data,c=s==null?void 0:s.data;for(let h=0;h<o.length;h+=4){const f=h/4*a;for(let d=0;d<3;d++)r?l[f+d]=o[h+d]:l[f+d]=o[h+d]/255,u&&(l[f+d+3]=u[h+d]/255),c&&(l[f+d+6]=c[h+d]/255)}return l}_readTile(t,e,s,r){const o=new Float32Array(s.width*s.height*e);for(let i=0;i<s.height;i++)for(let a=0;a<s.width;a++){const l=((i+s.y)*r+(a+s.x))*e,u=(i*s.width+a)*e;for(let c=0;c<e;c++)o[u+c]=t[l+c]}return o}_writeTile(t,e,s,r,o,i){const{data:a,width:l}=t,u=s.x-e.x,c=s.y-e.y;for(let h=0;h<s.height;h++)for(let f=0;f<s.width;f++){const d=((h+c)*o+f+u)*3,p=((h+s.y)*l+(f+s.x))*4;for(let g=0;g<3;g++)i?a[p+g]=r[d+g]:a[p+g]=Math.min(Math.max(r[d+g]*255,0),255);t.data[p+3]=i?1:255}}_executeTile(t,e,s,r,o,i,a,l,u){const c=this._aux?9:3,h=this._tileOverlapX,f=this._tileOverlapY;let d=this._getTileSizeWithOverlap(),p={width:this._tileWidth,height:this._tileHeight},g=r>0?r*p.width-h:0,m=Math.min(g+d.width,i);g=Math.max(m-d.width,0);let b=o>0?o*p.height-f:0,y=Math.min(b+d.height,a);b=Math.max(y-d.height,0);const S=d.width,x=d.height,v=new ca(g,b,S,x);let E,D=1;const k=this._device;let T=this._dataProcessGPU;if(t instanceof Float32Array){let U=this._readTile(t,c,v,i);l&&(D=lx({data:U,channels:c}),U=ux({data:U,channels:c,inputScale:D})),E=nr(U,[1,x,S,c],"float32")}else{T||(T=this._dataProcessGPU=new hx(k,l)),T.setImageSize(i,a),T.setInputTile(v),r===0&&o===0&&T.copyInputDataToOutput(t.color);const{color:U,albedo:j,normal:Zt}=T.forward(t.color,this._aux?t.albedo:void 0,this._aux?t.normal:void 0,u),qt=xe=>{const jt=nr({buffer:xe,zeroCopy:!0},[1,x,S,4]);return cs(jt,[0,0,0,0],[1,x,S,3])};if(this._aux){const xe=[U,j,Zt].map(jt=>qt(jt));E=qp(xe,3)}else E=qt(U)}let R;const B=this._tfModel.predict(E),K=Math.min(p.width,i),Z=Math.min(p.height,a),W=new ca(r*K,o*Z,K,Z);if(W.width=Math.min(W.width,i-W.x),W.height=Math.min(W.height,a-W.y),t instanceof Float32Array){let U=B.dataSync();l&&(U=cx({data:U,channels:3,inputScale:D})),this._writeTile(s,v,W,U,d.width,l);for(let j=0;j<Z;j++)for(let Zt=0;Zt<K;Zt++){const qt=(j*K+Zt)*4,xe=((j+W.y)*i+(Zt+W.x))*4;for(let jt=0;jt<4;jt++)e.data[qt+jt]=s.data[xe+jt]}}else{T.setOutputTile(W,v);const U=Fp(B,[[0,0],[0,0],[0,0],[0,1]]);R=T.inverse(U.dataToGPU().buffer,t.color)}return R}tileExecute({color:t,albedo:e,normal:s,done:r,progress:o,denoiseAlpha:i}){if(this._aux&&(!e||!s))throw new Error("Normal map and albedo map are both required");if(!this._aux&&(e||s))throw new Error("Normal map and albedo map are not required");const a=t.width,l=t.height;this._updateModel(a,l);const u=this._hdr||!1;let c;eo(t)||(c=this._processImageData(t,e,s,u));const h=this._tileWidth,f=this._tileHeight,d=Math.ceil(l/f),p=Math.ceil(a/h);function g(x,v){return u?{data:new Float32Array(x*v*4),width:x,height:v}:new ImageData(x,v)}const m=eo(t)?void 0:g(a,l),b=eo(t)?void 0:g(Math.min(h,a),Math.min(f,l));let y=!1;const S=(x,v)=>{if(y)return;let E;A.startScope(),E=this._executeTile(eo(t)?{color:t.data,albedo:e==null?void 0:e.data,normal:s==null?void 0:s.data}:c,b,m,x,v,a,l,u,i),A.endScope();const D=m||{data:E,width:a,height:l};o==null||o(D,b,new ca(x*h,v*f,h,f),x+v*p,p*d),x+1<p||v+1<d?requestAnimationFrame(()=>{x+1<p?S(x+1,v):v+1<d&&S(0,v+1)}):r(D)};return S(0,0),()=>{y=!0}}dispose(){var t,e;(t=this._tfModel)==null||t.dispose(),(e=this._dataProcessGPU)==null||e.dispose(),this._tensors.forEach(s=>s.dispose())}}/**
3135
3135
  * @license
3136
3136
  * Copyright 2019 Google LLC. All Rights Reserved.
3137
3137
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -3493,7 +3493,7 @@ else {
3493
3493
  * See the License for the specific language governing permissions and
3494
3494
  * limitations under the License.
3495
3495
  * =============================================================================
3496
- */sf()&&Yp("webgpu",async()=>{const n={powerPreference:G().get("WEBGPU_USE_LOW_POWER_GPU")?"low-power":"high-performance"},t=await navigator.gpu.requestAdapter(n),e={},s=[];t.features.has("timestamp-query")&&s.push("timestamp-query"),t.features.has("bgra8unorm-storage")&&s.push(["bgra8unorm-storage"]),e.requiredFeatures=s;const r=t.limits;e.requiredLimits={maxComputeWorkgroupStorageSize:r.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.maxStorageBufferBindingSize,maxBufferSize:r.maxBufferSize,maxComputeWorkgroupSizeX:r.maxComputeWorkgroupSizeX,maxComputeInvocationsPerWorkgroup:r.maxComputeInvocationsPerWorkgroup};const o=await t.requestDevice(e),i="info"in t?t.info:"requestAdapterInfo"in t?await t.requestAdapterInfo():void 0;return new Fs(o,i)},3);/**
3496
+ */sf()&&Yp("webgpu",async()=>{const n={powerPreference:G().get("WEBGPU_USE_LOW_POWER_GPU")?"low-power":"high-performance"},t=await navigator.gpu.requestAdapter(n),e={},s=[];t.features.has("timestamp-query")&&s.push("timestamp-query"),t.features.has("bgra8unorm-storage")&&s.push(["bgra8unorm-storage"]),e.requiredFeatures=s;const r=t.limits;e.requiredLimits={maxComputeWorkgroupStorageSize:r.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.maxStorageBufferBindingSize,maxBufferSize:r.maxBufferSize,maxComputeWorkgroupSizeX:r.maxComputeWorkgroupSizeX,maxComputeInvocationsPerWorkgroup:r.maxComputeInvocationsPerWorkgroup};const o=await t.requestDevice(e),i=await t.requestAdapterInfo();return new Fs(o,i)},3);/**
3497
3497
  * @license
3498
3498
  * Copyright 2020 Google LLC. All Rights Reserved.
3499
3499
  * Licensed under the Apache License, Version 2.0 (the "License");
package/lib/UNet.js CHANGED
@@ -213,7 +213,7 @@ class UNet {
213
213
  return x;
214
214
  }
215
215
  _updateModel(width, height) {
216
- const isLarge = this._tensors.has('enc_conv1b.weight');
216
+ const isLarge = this._hostTensors.has('enc_conv1b.weight');
217
217
  const maxTileSize = this._maxTileSize;
218
218
  let tileWidth = maxTileSize;
219
219
  let tileHeight = maxTileSize;
package/lib/UNet.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"UNet.js","sourceRoot":"","sources":["../src/UNet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UNet.js","sourceRoot":"","sources":["../src/UNet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oidn-web",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Run Open Image Denoiser on the Web",
5
5
  "main": "lib/main.js",
6
6
  "types": "lib/main.d.ts",
@@ -17,8 +17,8 @@
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
19
  "@petamoriken/float16": "^3.8.7",
20
- "@tensorflow/tfjs": "^4.22.0",
21
- "@tensorflow/tfjs-backend-webgpu": "^4.22.0"
20
+ "@tensorflow/tfjs": "4.20.0",
21
+ "@tensorflow/tfjs-backend-webgpu": "4.20.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^5.7.3",
package/src/UNet.ts CHANGED
@@ -343,7 +343,7 @@ class UNet {
343
343
  }
344
344
 
345
345
  private _updateModel(width: number, height: number) {
346
- const isLarge = this._tensors.has('enc_conv1b.weight');
346
+ const isLarge = this._hostTensors.has('enc_conv1b.weight');
347
347
  const maxTileSize = this._maxTileSize;
348
348
 
349
349
  let tileWidth = maxTileSize;