@kongyo2/kongyo2x 0.1.0 → 0.2.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/README.md CHANGED
@@ -8,7 +8,7 @@ Image super-resolution in TypeScript. MLPconv networks, trained from scratch and
8
8
  npm install @kongyo2/kongyo2x
9
9
  ```
10
10
 
11
- Requires Node.js 20+. Installing also pulls a transitive native module `gl` (headless-gl), via brain.js's `gpu.js` peer dependency that builds at install time and can fail the whole install if its native build can't complete. Install with `--ignore-scripts` to skip that build; kongyo2x then runs on the CPU via brain.js and uses GPU acceleration only when `gl` is available.
11
+ Requires Node.js 20+. For GPU acceleration kongyo2x uses brain.js and its `gpu.js` peer, which compile a native module (`gl`, headless-gl) at install time. That build needs X11/OpenGL system libraries and can't complete in a headless environment, so brain.js is an optional dependency: when the native build fails npm skips it and the install still succeeds. kongyo2x then upscales on its built-in TypeScript CPU backend, and automatically uses brain.js or `gl`-backed GPU acceleration whenever they are present.
12
12
 
13
13
  ## CLI
14
14
 
@@ -14,6 +14,15 @@ function installGlStub() {
14
14
  };
15
15
  }
16
16
  let cached;
17
+ function brainInstalled() {
18
+ try {
19
+ require.resolve("brain.js");
20
+ return true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
17
26
  export function loadBrain() {
18
27
  if (cached) {
19
28
  return cached;
@@ -21,7 +30,14 @@ export function loadBrain() {
21
30
  try {
22
31
  cached = require("brain.js");
23
32
  }
24
- catch {
33
+ catch (error) {
34
+ // brain.js loads gl eagerly; the stub lets it run on the CPU when the gl
35
+ // native build is missing. When brain.js itself is absent the retry can't
36
+ // succeed, so skip the stub rather than shadow `gl` process-wide for code
37
+ // that has nothing to do with kongyo2x.
38
+ if (!brainInstalled()) {
39
+ throw error;
40
+ }
25
41
  installGlStub();
26
42
  cached = require("brain.js");
27
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/brain/loader.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoC5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,aAAa;IACpB,MAAM,SAAS,GAAG,MAAwC,CAAC;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,SAAS,CAAC,KAAK,GAAG,CAAC,OAAe,EAAE,MAAe,EAAE,MAAe,EAAW,EAAE;QAC/E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,SAAS,aAAa;gBAC3B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,MAA+B,CAAC;AAEpC,MAAM,UAAU,SAAS;IACvB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,UAAU,CAAgB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,EAAE,CAAC;QAChB,MAAM,GAAG,OAAO,CAAC,UAAU,CAAgB,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/brain/loader.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoC5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,aAAa;IACpB,MAAM,SAAS,GAAG,MAAwC,CAAC;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,SAAS,CAAC,KAAK,GAAG,CAAC,OAAe,EAAE,MAAe,EAAE,MAAe,EAAW,EAAE;QAC/E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,SAAS,aAAa;gBAC3B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,MAA+B,CAAC;AAEpC,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,UAAU,CAAgB,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,wCAAwC;QACxC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,aAAa,EAAE,CAAC;QAChB,MAAM,GAAG,OAAO,CAAC,UAAU,CAAgB,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Tensor } from "../core/tensor.js";
2
+ import type { ConvLayer } from "../model/types.js";
3
+ export declare function cpuConvForward(input: Tensor, layer: ConvLayer, weights: Float32Array, bias: Float32Array, alpha: number): Tensor;
@@ -0,0 +1,48 @@
1
+ import { createTensor } from "../core/tensor.js";
2
+ import { convOutputSize } from "./conv.js";
3
+ export function cpuConvForward(input, layer, weights, bias, alpha) {
4
+ if (input.channels !== layer.inputPlanes) {
5
+ throw new Error(`conv expected ${layer.inputPlanes} input planes, received ${input.channels}`);
6
+ }
7
+ const { kernelWidth: kW, kernelHeight: kH, strideX, strideY, padX, padY, inputPlanes, outputPlanes } = layer;
8
+ const inH = input.height;
9
+ const inW = input.width;
10
+ const outH = convOutputSize(inH, kH, strideY, padY);
11
+ const outW = convOutputSize(inW, kW, strideX, padX);
12
+ const out = createTensor(outputPlanes, outH, outW);
13
+ const outData = out.data;
14
+ const inData = input.data;
15
+ const weightStride = inputPlanes * kH * kW;
16
+ const planeSize = outH * outW;
17
+ for (let o = 0; o < outputPlanes; o++) {
18
+ const biasValue = bias[o];
19
+ const wBase = o * weightStride;
20
+ const outPlane = o * planeSize;
21
+ for (let oy = 0; oy < outH; oy++) {
22
+ const baseY = oy * strideY - padY;
23
+ for (let ox = 0; ox < outW; ox++) {
24
+ const baseX = ox * strideX - padX;
25
+ let sum = biasValue;
26
+ let w = wBase;
27
+ for (let i = 0; i < inputPlanes; i++) {
28
+ const planeBase = i * inH * inW;
29
+ for (let ky = 0; ky < kH; ky++) {
30
+ const iy = baseY + ky;
31
+ const rowInRange = iy >= 0 && iy < inH;
32
+ const rowBase = planeBase + iy * inW;
33
+ for (let kx = 0; kx < kW; kx++) {
34
+ const ix = baseX + kx;
35
+ if (rowInRange && ix >= 0 && ix < inW) {
36
+ sum += inData[rowBase + ix] * weights[w];
37
+ }
38
+ w++;
39
+ }
40
+ }
41
+ }
42
+ outData[outPlane + oy * outW + ox] = Math.max(sum, alpha * sum);
43
+ }
44
+ }
45
+ }
46
+ return out;
47
+ }
48
+ //# sourceMappingURL=cpuConv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpuConv.js","sourceRoot":"","sources":["../../src/engine/cpuConv.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { spatialFullConvolution } from "./deconv.js";
2
2
  import { brainConvForward } from "./brainConv.js";
3
+ import { cpuConvForward } from "./cpuConv.js";
3
4
  import { gpuConvForward, isGpuAvailable, disableGpu } from "./gpuConv.js";
4
5
  export function runModel(model, input) {
5
6
  let useGpu = isGpuAvailable();
@@ -24,10 +25,16 @@ export function runModel(model, input) {
24
25
  }
25
26
  }
26
27
  const net = model.convNetwork(index);
27
- if (!net) {
28
- throw new Error(`missing brain.js network for conv layer ${index}`);
28
+ if (net) {
29
+ current = brainConvForward(current, layer, net);
30
+ continue;
31
+ }
32
+ const params = model.convParams(index);
33
+ if (params) {
34
+ current = cpuConvForward(current, layer, params.weights, params.bias, params.alpha);
35
+ continue;
29
36
  }
30
- current = brainConvForward(current, layer, net);
37
+ throw new Error(`conv layer ${index} has no runnable backend: neither brain.js nor CPU parameters are available`);
31
38
  }
32
39
  return current;
33
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runModel.js","sourceRoot":"","sources":["../../src/engine/runModel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,KAAa;IAC1D,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACpF,SAAS;gBACX,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,EAAE,CAAC;oBACb,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"runModel.js","sourceRoot":"","sources":["../../src/engine/runModel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,UAAU,QAAQ,CAAC,KAAoB,EAAE,KAAa;IAC1D,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACpF,SAAS;gBACX,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,EAAE,CAAC;oBACb,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,6EAA6E,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,4 +1,12 @@
1
1
  import { buildNetwork } from "../brain/network.js";
2
+ function tryBuildNetwork(json) {
3
+ try {
4
+ return buildNetwork(json);
5
+ }
6
+ catch {
7
+ return undefined;
8
+ }
9
+ }
2
10
  function convFromJSON(layer) {
3
11
  const sizes = layer.network.sizes;
4
12
  const inputSize = sizes[0] ?? 0;
@@ -79,7 +87,7 @@ export class Kongyo2xModel {
79
87
  }
80
88
  else {
81
89
  layers.push(convFromJSON(layer));
82
- convNets.push(buildNetwork(layer.network));
90
+ convNets.push(tryBuildNetwork(layer.network));
83
91
  convJSON.push(layer);
84
92
  }
85
93
  }
@@ -113,11 +121,11 @@ export class Kongyo2xModel {
113
121
  return this.convNets[index];
114
122
  }
115
123
  convParams(index) {
116
- const net = this.convNets[index];
117
- if (!net) {
124
+ const stored = this.convJSON[index];
125
+ if (!stored) {
118
126
  return undefined;
119
127
  }
120
- const network = net.toJSON();
128
+ const network = this.convNets[index]?.toJSON() ?? stored.network;
121
129
  if (network.options.activation !== "leaky-relu" || network.trainOpts.activation !== "leaky-relu") {
122
130
  return undefined;
123
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kongyo2/kongyo2x",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Image super-resolution in TypeScript: MLPconv networks trained from scratch and run through brain.js.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -61,10 +61,12 @@
61
61
  "train": "tsx scripts/train.ts"
62
62
  },
63
63
  "dependencies": {
64
- "brain.js": "2.0.0-beta.24",
65
64
  "jpeg-js": "0.4.4",
66
65
  "pngjs": "7.0.0"
67
66
  },
67
+ "optionalDependencies": {
68
+ "brain.js": "2.0.0-beta.24"
69
+ },
68
70
  "devDependencies": {
69
71
  "@types/node": "22.10.2",
70
72
  "@types/pngjs": "6.0.5",