nykadamec commited on
Commit
6d8bed1
·
1 Parent(s): 2c479a4

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +17 -39
server.js CHANGED
@@ -1,12 +1,17 @@
1
- const express = require('express');
2
- const multer = require('multer');
3
- const cors = require('cors');
4
- const tf = require('@tensorflow/tfjs');
5
- require('@tensorflow/tfjs-backend-wasm');
6
- require('@tensorflow/tfjs-backend-cpu');
 
 
7
 
8
- // Setup Canvas for Node.js environment
9
- const { createCanvas, loadImage } = require('canvas');
 
 
 
10
 
11
  // Import Upscaler using dynamic import
12
  let Upscaler;
@@ -40,55 +45,29 @@ const upload = multer({
40
  // Global upscaler instance
41
  let upscalerInstance = null;
42
 
43
- // Initialize TensorFlow.js backend
44
- async function initializeTensorFlow() {
45
- try {
46
- console.log('Initializing TensorFlow.js...');
47
-
48
- // Try to set WASM backend first, fallback to CPU
49
- try {
50
- await tf.setBackend('wasm');
51
- await tf.ready();
52
- console.log('TensorFlow.js initialized with WASM backend');
53
- } catch (wasmError) {
54
- console.warn('WASM backend failed, falling back to CPU:', wasmError.message);
55
- await tf.setBackend('cpu');
56
- await tf.ready();
57
- console.log('TensorFlow.js initialized with CPU backend');
58
- }
59
-
60
- console.log('Current backend:', tf.getBackend());
61
- return true;
62
- } catch (error) {
63
- console.error('Failed to initialize TensorFlow.js:', error);
64
- return false;
65
- }
66
- }
67
-
68
  // Get model for scale and type
69
  async function getModelForScaleAndType(scale, modelType) {
70
  switch (modelType) {
71
  case 'esrgan-slim':
72
- const { x2: slimX2, x3: slimX3, x4: slimX4 } = require('@upscalerjs/esrgan-slim');
73
  if (scale === 2) return slimX2;
74
  if (scale === 3) return slimX3;
75
  return slimX4;
76
 
77
  case 'esrgan-medium':
78
- const { x2: mediumX2, x3: mediumX3, x4: mediumX4 } = require('@upscalerjs/esrgan-medium');
79
  if (scale === 2) return mediumX2;
80
  if (scale === 3) return mediumX3;
81
  return mediumX4;
82
 
83
  case 'esrgan-thick':
84
- const { x2: thickX2, x3: thickX3, x4: thickX4 } = require('@upscalerjs/esrgan-thick');
85
  if (scale === 2) return thickX2;
86
  if (scale === 3) return thickX3;
87
  return thickX4;
88
 
89
  default:
90
- // Default to esrgan-slim
91
- const { x2: defaultX2, x3: defaultX3, x4: defaultX4 } = require('@upscalerjs/esrgan-slim');
92
  if (scale === 2) return defaultX2;
93
  if (scale === 3) return defaultX3;
94
  return defaultX4;
@@ -100,7 +79,6 @@ async function initializeUpscaler(scale = 2, modelType = 'esrgan-slim') {
100
  try {
101
  console.log(`Initializing upscaler with scale ${scale}x and model ${modelType}...`);
102
 
103
- // Dynamic import of Upscaler
104
  if (!Upscaler) {
105
  const upscalerModule = await import('upscaler');
106
  Upscaler = upscalerModule.default;
 
1
+ import express from 'express';
2
+ import multer from 'multer';
3
+ import cors from 'cors';
4
+ import * as tf from '@tensorflow/tfjs';
5
+ import '@tensorflow/tfjs-backend-wasm';
6
+ import '@tensorflow/tfjs-backend-cpu';
7
+ import { createCanvas, loadImage } from 'canvas';
8
+ import { createRequire } from 'module';
9
 
10
+ // Pro importy CommonJS balíčků
11
+ const require = createRequire(import.meta.url);
12
+
13
+ // Pokud některé balíčky nefungují s ES import
14
+ const somePackage = require('package-name');
15
 
16
  // Import Upscaler using dynamic import
17
  let Upscaler;
 
45
  // Global upscaler instance
46
  let upscalerInstance = null;
47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  // Get model for scale and type
49
  async function getModelForScaleAndType(scale, modelType) {
50
  switch (modelType) {
51
  case 'esrgan-slim':
52
+ const { x2: slimX2, x3: slimX3, x4: slimX4 } = await import('@upscalerjs/esrgan-slim');
53
  if (scale === 2) return slimX2;
54
  if (scale === 3) return slimX3;
55
  return slimX4;
56
 
57
  case 'esrgan-medium':
58
+ const { x2: mediumX2, x3: mediumX3, x4: mediumX4 } = await import('@upscalerjs/esrgan-medium');
59
  if (scale === 2) return mediumX2;
60
  if (scale === 3) return mediumX3;
61
  return mediumX4;
62
 
63
  case 'esrgan-thick':
64
+ const { x2: thickX2, x3: thickX3, x4: thickX4 } = await import('@upscalerjs/esrgan-thick');
65
  if (scale === 2) return thickX2;
66
  if (scale === 3) return thickX3;
67
  return thickX4;
68
 
69
  default:
70
+ const { x2: defaultX2, x3: defaultX3, x4: defaultX4 } = await import('@upscalerjs/esrgan-slim');
 
71
  if (scale === 2) return defaultX2;
72
  if (scale === 3) return defaultX3;
73
  return defaultX4;
 
79
  try {
80
  console.log(`Initializing upscaler with scale ${scale}x and model ${modelType}...`);
81
 
 
82
  if (!Upscaler) {
83
  const upscalerModule = await import('upscaler');
84
  Upscaler = upscalerModule.default;