diff --git a/electron/constants/commands.ts b/common/commands.ts similarity index 100% rename from electron/constants/commands.ts rename to common/commands.ts diff --git a/common/models-list.ts b/common/models-list.ts new file mode 100644 index 0000000..96ce947 --- /dev/null +++ b/common/models-list.ts @@ -0,0 +1,13 @@ +export const defaultModelsList = [ + { label: "General Photo (Real-ESRGAN)", value: "realesrgan-x4plus" }, + { + label: "General Photo (Fast Real-ESRGAN)", + value: "RealESRGAN_General_x4_v3", + }, + { label: "General Photo (Remacri)", value: "remacri" }, + { label: "General Photo (Ultramix Balanced)", value: "ultramix_balanced" }, + { label: "General Photo (Ultrasharp)", value: "ultrasharp" }, + { label: "Digital Art", value: "realesrgan-x4plus-anime" }, +]; + +export const DEFAULT_MODELS = defaultModelsList.map((model) => model.value); diff --git a/electron/commands/batch-upscayl.ts b/electron/commands/batch-upscayl.ts index e1de7e0..970d506 100644 --- a/electron/commands/batch-upscayl.ts +++ b/electron/commands/batch-upscayl.ts @@ -15,14 +15,14 @@ import { spawnUpscayl } from "../utils/spawn-upscayl"; import { getBatchArguments } from "../utils/get-arguments"; import slash from "../utils/slash"; import { modelsPath } from "../utils/get-resource-paths"; -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import convertAndScale from "../utils/convert-and-scale"; -import DEFAULT_MODELS from "../constants/models"; import { BatchUpscaylPayload } from "../../common/types/types"; import { ImageFormat } from "../utils/types"; import getModelScale from "../../common/check-model-scale"; import removeFileExtension from "../utils/remove-file-extension"; import showNotification from "../utils/show-notification"; +import { DEFAULT_MODELS } from "../../common/models-list"; const batchUpscayl = async (event, payload: BatchUpscaylPayload) => { const mainWindow = getMainWindow(); @@ -67,7 +67,6 @@ const batchUpscayl = async (event, payload: BatchUpscaylPayload) => { // UPSCALE const upscayl = spawnUpscayl( - "realesrgan", getBatchArguments( inputDir, outputFolderPath, diff --git a/electron/commands/custom-models-select.ts b/electron/commands/custom-models-select.ts index 09b942d..8fe6d2e 100644 --- a/electron/commands/custom-models-select.ts +++ b/electron/commands/custom-models-select.ts @@ -5,7 +5,7 @@ import { } from "../utils/config-variables"; import logit from "../utils/logit"; import slash from "../utils/slash"; -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import getModels from "../utils/get-models"; import { getMainWindow } from "../main-window"; import settings from "electron-settings"; diff --git a/electron/commands/double-upscayl.ts b/electron/commands/double-upscayl.ts index cde4235..32815e9 100644 --- a/electron/commands/double-upscayl.ts +++ b/electron/commands/double-upscayl.ts @@ -11,7 +11,6 @@ import { setStopped, stopped, } from "../utils/config-variables"; -import DEFAULT_MODELS from "../constants/models"; import slash from "../utils/slash"; import { spawnUpscayl } from "../utils/spawn-upscayl"; import { @@ -20,13 +19,14 @@ import { } from "../utils/get-arguments"; import { modelsPath } from "../utils/get-resource-paths"; import logit from "../utils/logit"; -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import convertAndScale from "../utils/convert-and-scale"; import { DoubleUpscaylPayload } from "../../common/types/types"; import { ImageFormat } from "../utils/types"; import getModelScale from "../../common/check-model-scale"; import showNotification from "../utils/show-notification"; import { unlinkSync } from "fs"; +import { DEFAULT_MODELS } from "../../common/models-list"; const doubleUpscayl = async (event, payload: DoubleUpscaylPayload) => { const mainWindow = getMainWindow(); @@ -72,7 +72,6 @@ const doubleUpscayl = async (event, payload: DoubleUpscaylPayload) => { // UPSCALE let upscayl = spawnUpscayl( - "realesrgan", getDoubleUpscaleArguments( inputDir, fullfileName, @@ -193,7 +192,6 @@ const doubleUpscayl = async (event, payload: DoubleUpscaylPayload) => { if (!failed && !stopped) { // UPSCALE let upscayl2 = spawnUpscayl( - "realesrgan", getDoubleUpscaleSecondPassArguments( isAlpha, outFile, diff --git a/electron/commands/get-models-list.ts b/electron/commands/get-models-list.ts index e174a14..7d19115 100644 --- a/electron/commands/get-models-list.ts +++ b/electron/commands/get-models-list.ts @@ -1,4 +1,4 @@ -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import { getMainWindow } from "../main-window"; import { customModelsFolderPath, diff --git a/electron/commands/image-upscayl.ts b/electron/commands/image-upscayl.ts index eb3310e..6cc3a5f 100644 --- a/electron/commands/image-upscayl.ts +++ b/electron/commands/image-upscayl.ts @@ -1,6 +1,6 @@ import fs from "fs"; import { modelsPath } from "../utils/get-resource-paths"; -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import { compression, customModelsFolderPath, @@ -20,13 +20,13 @@ import logit from "../utils/logit"; import slash from "../utils/slash"; import { spawnUpscayl } from "../utils/spawn-upscayl"; import { parse } from "path"; -import DEFAULT_MODELS from "../constants/models"; import { getMainWindow } from "../main-window"; import { ImageUpscaylPayload } from "../../common/types/types"; import { ImageFormat } from "../utils/types"; import getModelScale from "../../common/check-model-scale"; import removeFileExtension from "../utils/remove-file-extension"; import showNotification from "../utils/show-notification"; +import { DEFAULT_MODELS } from "../../common/models-list"; const imageUpscayl = async (event, payload: ImageUpscaylPayload) => { const mainWindow = getMainWindow(); @@ -55,7 +55,7 @@ const imageUpscayl = async (event, payload: ImageUpscaylPayload) => { } const isDefaultModel = DEFAULT_MODELS.includes(model); - + logit("Is Default Model? : ", isDefaultModel); const fullfileName = payload.imagePath.replace(/^.*[\\\/]/, "") as string; const fileName = parse(fullfileName).name; const fileExt = parse(fullfileName).ext; @@ -104,7 +104,6 @@ const imageUpscayl = async (event, payload: ImageUpscaylPayload) => { }) ); const upscayl = spawnUpscayl( - "realesrgan", getSingleImageArguments( inputDir, fullfileName, diff --git a/electron/constants/models.ts b/electron/constants/models.ts deleted file mode 100644 index cb78142..0000000 --- a/electron/constants/models.ts +++ /dev/null @@ -1,9 +0,0 @@ -const DEFAULT_MODELS = [ - "realesrgan-x4plus", - "remacri", - "ultramix_balanced", - "ultrasharp", - "realesrgan-x4plus-anime", -]; - -export default DEFAULT_MODELS; diff --git a/electron/index.ts b/electron/index.ts index 4cce432..f15edd6 100644 --- a/electron/index.ts +++ b/electron/index.ts @@ -2,7 +2,7 @@ import prepareNext from "electron-next"; import { autoUpdater } from "electron-updater"; import log from "electron-log"; import { app, ipcMain, protocol } from "electron"; -import COMMAND from "./constants/commands"; +import COMMAND from "../common/commands"; import logit from "./utils/logit"; import openFolder from "./commands/open-folder"; import stop from "./commands/stop"; @@ -42,7 +42,7 @@ app.on("ready", async () => { autoUpdater.checkForUpdates(); } - log.info("🚀 UPSCAYL EXEC PATH: ", execPath("bin")); + log.info("🚀 UPSCAYL EXEC PATH: ", execPath); log.info("🚀 MODELS PATH: ", modelsPath); let closeAccess; diff --git a/electron/main-window.ts b/electron/main-window.ts index 26493ed..05d3b62 100644 --- a/electron/main-window.ts +++ b/electron/main-window.ts @@ -1,7 +1,7 @@ import { BrowserWindow, shell } from "electron"; import { getPlatform } from "./utils/get-device-specs"; import { join } from "path"; -import COMMAND from "./constants/commands"; +import COMMAND from "../common/commands"; import { fetchLocalStorage } from "./utils/config-variables"; import electronIsDev from "electron-is-dev"; import { format } from "url"; diff --git a/electron/utils/get-arguments.ts b/electron/utils/get-arguments.ts index 0f90c6a..6423995 100644 --- a/electron/utils/get-arguments.ts +++ b/electron/utils/get-arguments.ts @@ -136,5 +136,5 @@ export const getBatchArguments = ( gpuId ? gpuId : "", "-f", saveImageAs, - ]; + ].filter((arg) => arg !== ""); }; diff --git a/electron/utils/get-resource-paths.ts b/electron/utils/get-resource-paths.ts index 65aa82d..3e856af 100644 --- a/electron/utils/get-resource-paths.ts +++ b/electron/utils/get-resource-paths.ts @@ -15,7 +15,7 @@ const binariesPath = isDev ? join(appRootDir, "resources", getPlatform()!, "bin") : join(dirname(appRootDir), "bin"); -const execPath = (execName) => resolve(join(binariesPath, `./upscayl-bin`)); +const execPath = resolve(join(binariesPath, `./upscayl-bin`)); const modelsPath = isDev ? resolve(join(appRootDir, "resources", "models")) diff --git a/electron/utils/logit.ts b/electron/utils/logit.ts index 14bb572..23b4c64 100644 --- a/electron/utils/logit.ts +++ b/electron/utils/logit.ts @@ -1,5 +1,5 @@ import log from "electron-log"; -import COMMAND from "../constants/commands"; +import COMMAND from "../../common/commands"; import { getMainWindow } from "../main-window"; const logit = (...args: any) => { diff --git a/electron/utils/spawn-upscayl.ts b/electron/utils/spawn-upscayl.ts index 11caae2..696db64 100644 --- a/electron/utils/spawn-upscayl.ts +++ b/electron/utils/spawn-upscayl.ts @@ -2,13 +2,12 @@ import { spawn } from "child_process"; import { execPath } from "./get-resource-paths"; export const spawnUpscayl = ( - binaryName: string, command: string[], logit: (...args: any) => void ) => { logit("📢 Upscayl Command: ", command); - const spawnedProcess = spawn(execPath("bin"), command, { + const spawnedProcess = spawn(execPath, command, { cwd: undefined, detached: false, }); diff --git a/package.json b/package.json index 329db20..2ddfa70 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "upscayl", "private": true, - "version": "2.9.7", + "version": "2.9.8", "productName": "Upscayl", "author": { "name": "Nayam Amarshe", diff --git a/renderer/atoms/modelsListAtom.ts b/renderer/atoms/modelsListAtom.ts index 36402b7..df79de0 100644 --- a/renderer/atoms/modelsListAtom.ts +++ b/renderer/atoms/modelsListAtom.ts @@ -1,3 +1,4 @@ +import { defaultModelsList } from "@common/models-list"; import { atom } from "jotai"; export type TModelsList = { @@ -5,16 +6,4 @@ export type TModelsList = { value: string; }[]; -export const defaultModelsList = [ - { label: "General Photo (Real-ESRGAN)", value: "realesrgan-x4plus" }, - { - label: "General Photo (Fast Real-ESRGAN)", - value: "RealESRGAN_General_x4_v3", - }, - { label: "General Photo (Remacri)", value: "remacri" }, - { label: "General Photo (Ultramix Balanced)", value: "ultramix_balanced" }, - { label: "General Photo (Ultrasharp)", value: "ultrasharp" }, - { label: "Digital Art", value: "realesrgan-x4plus-anime" }, -]; - export const modelsListAtom = atom(defaultModelsList);