1
0
mirror of https://github.com/upscayl/upscayl.git synced 2025-02-07 15:01:24 +01:00

Improved logging

This commit is contained in:
Feenix 2023-04-14 16:01:37 +05:30
parent 6fd1a46b37
commit f163685b8c
6 changed files with 77 additions and 47 deletions

View File

@ -20,6 +20,7 @@ const commands = {
SELECT_CUSTOM_MODEL_FOLDER: "Select a Custom Model Folder", SELECT_CUSTOM_MODEL_FOLDER: "Select a Custom Model Folder",
GET_MODELS_LIST: "Send models list from main to renderer", GET_MODELS_LIST: "Send models list from main to renderer",
CUSTOM_MODEL_FILES_LIST: "Send custom model files list to renderer", CUSTOM_MODEL_FILES_LIST: "Send custom model files list to renderer",
LOG: "Log",
}; };
export default commands; export default commands;

View File

@ -89,6 +89,11 @@ app.on("window-all-closed", app.quit);
log.log(app.getAppPath()); log.log(app.getAppPath());
const logit = (...args: any) => {
log.log(...args);
mainWindow.webContents.send(commands.LOG, args.join(" "));
};
// Path variables for file and folder selection // Path variables for file and folder selection
let imagePath: string | undefined = undefined; let imagePath: string | undefined = undefined;
let folderPath: string | undefined = undefined; let folderPath: string | undefined = undefined;
@ -113,10 +118,10 @@ ipcMain.handle(commands.SELECT_FILE, async () => {
}); });
if (canceled) { if (canceled) {
log.log("File Operation Cancelled"); logit("File Operation Cancelled");
return null; return null;
} else { } else {
log.log("Selected File Path: ", filePaths[0]); logit("Selected File Path: ", filePaths[0]);
let isValid = false; let isValid = false;
imagePath = filePaths[0]; imagePath = filePaths[0];
@ -162,7 +167,7 @@ ipcMain.handle(commands.SELECT_FOLDER, async (event, message) => {
if (canceled) { if (canceled) {
return null; return null;
} else { } else {
log.log("Selected Folder Path: ", folderPaths[0]); logit("Selected Folder Path: ", folderPaths[0]);
folderPath = folderPaths[0]; folderPath = folderPaths[0];
return folderPaths[0]; return folderPaths[0];
} }
@ -225,7 +230,7 @@ ipcMain.handle(commands.SELECT_CUSTOM_MODEL_FOLDER, async (event, message) => {
if (canceled) { if (canceled) {
return null; return null;
} else { } else {
log.log("Custom Folder Path: ", folderPaths[0]); logit("Custom Folder Path: ", folderPaths[0]);
customModelsFolderPath = folderPaths[0]; customModelsFolderPath = folderPaths[0];
if ( if (
@ -254,7 +259,7 @@ ipcMain.handle(commands.SELECT_CUSTOM_MODEL_FOLDER, async (event, message) => {
//------------------------Open Folder-----------------------------// //------------------------Open Folder-----------------------------//
ipcMain.on(commands.OPEN_FOLDER, async (event, payload) => { ipcMain.on(commands.OPEN_FOLDER, async (event, payload) => {
log.log(payload); logit(payload);
shell.openPath(payload); shell.openPath(payload);
}); });
@ -265,6 +270,7 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
let outputDir = payload.outputPath as string; let outputDir = payload.outputPath as string;
const gpuId = payload.gpuId as string; const gpuId = payload.gpuId as string;
const saveImageAs = payload.saveImageAs as string; const saveImageAs = payload.saveImageAs as string;
const scale = payload.scale as string;
const isDefaultModel = defaultModels.includes(model); const isDefaultModel = defaultModels.includes(model);
@ -289,7 +295,8 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath, isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath,
model, model,
gpuId, gpuId,
saveImageAs saveImageAs,
scale
) )
); );
@ -300,8 +307,6 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
const onData = (data) => { const onData = (data) => {
// CONVERT DATA TO STRING // CONVERT DATA TO STRING
data = data.toString(); data = data.toString();
// PRINT TO CONSOLE
log.log(data);
// SEND UPSCAYL PROGRESS TO RENDERER // SEND UPSCAYL PROGRESS TO RENDERER
mainWindow.webContents.send(commands.DOUBLE_UPSCAYL_PROGRESS, data); mainWindow.webContents.send(commands.DOUBLE_UPSCAYL_PROGRESS, data);
// IF PROGRESS HAS ERROR, UPSCAYL FAILED // IF PROGRESS HAS ERROR, UPSCAYL FAILED
@ -323,8 +328,6 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
const onData2 = (data) => { const onData2 = (data) => {
// CONVERT DATA TO STRING // CONVERT DATA TO STRING
data = data.toString(); data = data.toString();
// PRINT TO CONSOLE
log.log(data);
// SEND UPSCAYL PROGRESS TO RENDERER // SEND UPSCAYL PROGRESS TO RENDERER
mainWindow.webContents.send(commands.DOUBLE_UPSCAYL_PROGRESS, data); mainWindow.webContents.send(commands.DOUBLE_UPSCAYL_PROGRESS, data);
// IF PROGRESS HAS ERROR, UPSCAYL FAILED // IF PROGRESS HAS ERROR, UPSCAYL FAILED
@ -342,7 +345,7 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
}; };
const onClose2 = (code) => { const onClose2 = (code) => {
if (!failed2) { if (!failed2) {
log.log("Done upscaling"); logit("Done upscaling");
mainWindow.webContents.send( mainWindow.webContents.send(
commands.DOUBLE_UPSCAYL_DONE, commands.DOUBLE_UPSCAYL_DONE,
isAlpha ? outFile + ".png" : outFile isAlpha ? outFile + ".png" : outFile
@ -364,7 +367,8 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath, isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath,
model, model,
gpuId, gpuId,
saveImageAs saveImageAs,
scale
) )
); );
@ -378,7 +382,9 @@ ipcMain.on(commands.DOUBLE_UPSCAYL, async (event, payload) => {
//------------------------Image Upscayl-----------------------------// //------------------------Image Upscayl-----------------------------//
ipcMain.on(commands.UPSCAYL, async (event, payload) => { ipcMain.on(commands.UPSCAYL, async (event, payload) => {
const model = payload.model as string; const model = payload.model as string;
const scale = payload.scaleFactor; const scale = payload.scale as string;
console.log("🚀 => file: index.ts:385 => scale:", scale);
const gpuId = payload.gpuId as string; const gpuId = payload.gpuId as string;
const saveImageAs = payload.saveImageAs as string; const saveImageAs = payload.saveImageAs as string;
let inputDir = (payload.imagePath.match(/(.*)[\/\\]/)[1] || "") as string; let inputDir = (payload.imagePath.match(/(.*)[\/\\]/)[1] || "") as string;
@ -390,10 +396,10 @@ ipcMain.on(commands.UPSCAYL, async (event, payload) => {
const fullfileName = payload.imagePath.replace(/^.*[\\\/]/, "") as string; const fullfileName = payload.imagePath.replace(/^.*[\\\/]/, "") as string;
const fileName = parse(fullfileName).name; const fileName = parse(fullfileName).name;
log.log("🚀 => fileName", fileName); logit("🚀 => fileName", fileName);
const fileExt = parse(fullfileName).ext; const fileExt = parse(fullfileName).ext;
log.log("🚀 => fileExt", fileExt); logit("🚀 => fileExt", fileExt);
const outFile = const outFile =
outputDir + outputDir +
@ -429,14 +435,14 @@ ipcMain.on(commands.UPSCAYL, async (event, payload) => {
let failed = false; let failed = false;
const onData = (data: string) => { const onData = (data: string) => {
log.log("image upscayl: ", data.toString()); logit("image upscayl: ", data.toString());
data = data.toString(); data = data.toString();
mainWindow.webContents.send(commands.UPSCAYL_PROGRESS, data.toString()); mainWindow.webContents.send(commands.UPSCAYL_PROGRESS, data.toString());
if (data.includes("invalid gpu") || data.includes("failed")) { if (data.includes("invalid gpu") || data.includes("failed")) {
failed = true; failed = true;
} }
if (data.includes("has alpha channel")) { if (data.includes("has alpha channel")) {
log.log("INCLUDES ALPHA CHANNEL, CHANGING OUTFILE NAME!"); logit("INCLUDES ALPHA CHANNEL, CHANGING OUTFILE NAME!");
isAlpha = true; isAlpha = true;
} }
}; };
@ -447,7 +453,7 @@ ipcMain.on(commands.UPSCAYL, async (event, payload) => {
}; };
const onClose = () => { const onClose = () => {
if (failed !== true) { if (failed !== true) {
log.log("Done upscaling"); logit("Done upscaling");
mainWindow.webContents.send( mainWindow.webContents.send(
commands.UPSCAYL_DONE, commands.UPSCAYL_DONE,
isAlpha ? outFile + ".png" : outFile isAlpha ? outFile + ".png" : outFile
@ -467,6 +473,7 @@ ipcMain.on(commands.FOLDER_UPSCAYL, async (event, payload) => {
const model = payload.model; const model = payload.model;
const gpuId = payload.gpuId; const gpuId = payload.gpuId;
const saveImageAs = payload.saveImageAs; const saveImageAs = payload.saveImageAs;
const scale = payload.scale as string;
// GET THE IMAGE DIRECTORY // GET THE IMAGE DIRECTORY
let inputDir = payload.batchFolderPath; let inputDir = payload.batchFolderPath;
@ -489,13 +496,14 @@ ipcMain.on(commands.FOLDER_UPSCAYL, async (event, payload) => {
isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath, isDefaultModel ? modelsPath : customModelsFolderPath ?? modelsPath,
model, model,
gpuId, gpuId,
saveImageAs saveImageAs,
scale
) )
); );
let failed = false; let failed = false;
const onData = (data: any) => { const onData = (data: any) => {
log.log("🚀 => upscayl.stderr.on => stderr.toString()", data.toString()); logit("🚀 => upscayl.stderr.on => stderr.toString()", data.toString());
data = data.toString(); data = data.toString();
mainWindow.webContents.send( mainWindow.webContents.send(
commands.FOLDER_UPSCAYL_PROGRESS, commands.FOLDER_UPSCAYL_PROGRESS,
@ -515,7 +523,7 @@ ipcMain.on(commands.FOLDER_UPSCAYL, async (event, payload) => {
}; };
const onClose = () => { const onClose = () => {
if (failed !== true) { if (failed !== true) {
log.log("Done upscaling"); logit("Done upscaling");
mainWindow.webContents.send(commands.FOLDER_UPSCAYL_DONE, outputDir); mainWindow.webContents.send(commands.FOLDER_UPSCAYL_DONE, outputDir);
} }
}; };

View File

@ -14,7 +14,7 @@ export const getSingleImageArguments = (
"-o", "-o",
outFile, outFile,
"-s", "-s",
scale == "2" ? "4" : scale, scale,
"-m", "-m",
modelsPath, modelsPath,
"-n", "-n",
@ -58,7 +58,8 @@ export const getDoubleUpscaleArguments = (
modelsPath: string, modelsPath: string,
model: string, model: string,
gpuId: string, gpuId: string,
saveImageAs: string saveImageAs: string,
scale: string
) => { ) => {
return [ return [
"-i", "-i",
@ -66,7 +67,7 @@ export const getDoubleUpscaleArguments = (
"-o", "-o",
outFile, outFile,
"-s", "-s",
"4", scale,
"-m", "-m",
modelsPath, modelsPath,
"-n", "-n",
@ -83,7 +84,8 @@ export const getDoubleUpscaleSecondPassArguments = (
modelsPath: string, modelsPath: string,
model: string, model: string,
gpuId: string, gpuId: string,
saveImageAs: string saveImageAs: string,
scale: string
) => { ) => {
return [ return [
"-i", "-i",
@ -91,7 +93,7 @@ export const getDoubleUpscaleSecondPassArguments = (
"-o", "-o",
isAlpha ? outFile + ".png" : outFile, isAlpha ? outFile + ".png" : outFile,
"-s", "-s",
"4", scale,
"-m", "-m",
modelsPath, modelsPath,
"-n", "-n",
@ -108,7 +110,8 @@ export const getBatchArguments = (
modelsPath: string, modelsPath: string,
model: string, model: string,
gpuId: string, gpuId: string,
saveImageAs: string saveImageAs: string,
scale: string
) => { ) => {
return [ return [
"-i", "-i",
@ -116,7 +119,7 @@ export const getBatchArguments = (
"-o", "-o",
outputDir, outputDir,
"-s", "-s",
"4", scale,
"-m", "-m",
modelsPath, modelsPath,
"-n", "-n",
@ -127,13 +130,15 @@ export const getBatchArguments = (
]; ];
}; };
// ! REDUNDANT
export const getBatchSharpenArguments = ( export const getBatchSharpenArguments = (
inputDir: string, inputDir: string,
outputDir: string, outputDir: string,
modelsPath: string, modelsPath: string,
model: string, model: string,
gpuId: string, gpuId: string,
saveImageAs: string saveImageAs: string,
scale: string
) => { ) => {
return [ return [
"-i", "-i",
@ -141,7 +146,7 @@ export const getBatchSharpenArguments = (
"-o", "-o",
outputDir, outputDir,
"-s", "-s",
"4", scale,
"-x", "-x",
"-m", "-m",
modelsPath + "/" + model, modelsPath + "/" + model,

View File

@ -5,4 +5,4 @@ export const customModelsPathAtom = atomWithStorage<string | null>(
null null
); );
export const scaleAtom = atomWithStorage<number>("scale", 4); export const scaleAtom = atomWithStorage<"2" | "3" | "4">("scale", "4");

View File

@ -221,14 +221,19 @@ function SettingsTab({
</div> </div>
<div> <div>
<div>
<p className="badge-primary badge text-xs font-medium">
EXPERIMENTAL
</p>
<p className="text-sm font-medium">Custom Model Scale:</p> <p className="text-sm font-medium">Custom Model Scale:</p>
</div>
<input <input
type="range" type="range"
min="2" min="2"
max="4" max="4"
value={scale} value={scale}
onChange={(e: any) => { onChange={(e: any) => {
setScale(e.target.value); setScale(e.target.value.toString());
}} }}
step="1" step="1"
className="range range-primary mt-2" className="range range-primary mt-2"

View File

@ -12,7 +12,7 @@ import SettingsTab from "../components/SettingsTab";
import { useAtom } from "jotai"; import { useAtom } from "jotai";
import { logAtom } from "../atoms/logAtom"; import { logAtom } from "../atoms/logAtom";
import { modelsListAtom } from "../atoms/modelsListAtom"; import { modelsListAtom } from "../atoms/modelsListAtom";
import { customModelsPathAtom } from "../atoms/userSettingsAtom"; import { customModelsPathAtom, scaleAtom } from "../atoms/userSettingsAtom";
const Home = () => { const Home = () => {
// STATES // STATES
@ -44,6 +44,7 @@ const Home = () => {
const [logData, setLogData] = useAtom(logAtom); const [logData, setLogData] = useAtom(logAtom);
const [customModelsPath, setCustomModelsPath] = useAtom(customModelsPathAtom); const [customModelsPath, setCustomModelsPath] = useAtom(customModelsPathAtom);
const [modelOptions, setModelOptions] = useAtom(modelsListAtom); const [modelOptions, setModelOptions] = useAtom(modelsListAtom);
const [scale] = useAtom(scaleAtom);
// (function () { // (function () {
// let info = console.info; // let info = console.info;
@ -88,6 +89,11 @@ const Home = () => {
} }
}; };
// LOG
window.electron.on(commands.LOG, (_, data: string) => {
addToLog(data);
});
// UPSCAYL PROGRESS // UPSCAYL PROGRESS
window.electron.on(commands.UPSCAYL_PROGRESS, (_, data: string) => { window.electron.on(commands.UPSCAYL_PROGRESS, (_, data: string) => {
if (data.length > 0 && data.length < 10) { if (data.length > 0 && data.length < 10) {
@ -393,43 +399,48 @@ const Home = () => {
setProgress("Hold on..."); setProgress("Hold on...");
if (doubleUpscayl) { if (doubleUpscayl) {
await window.electron.send(commands.DOUBLE_UPSCAYL, { window.electron.send(commands.DOUBLE_UPSCAYL, {
imagePath, imagePath,
outputPath, outputPath,
model, model,
gpuId: gpuId.length === 0 ? null : gpuId, gpuId: gpuId.length === 0 ? null : gpuId,
saveImageAs, saveImageAs,
scale,
}); });
} else if (batchMode) { } else if (batchMode) {
setDoubleUpscayl(false); setDoubleUpscayl(false);
await window.electron.send(commands.FOLDER_UPSCAYL, { window.electron.send(commands.FOLDER_UPSCAYL, {
scaleFactor, scaleFactor,
batchFolderPath, batchFolderPath,
outputPath, outputPath,
model, model,
gpuId: gpuId.length === 0 ? null : gpuId, gpuId: gpuId.length === 0 ? null : gpuId,
saveImageAs, saveImageAs,
scale,
}); });
} else { } else {
await window.electron.send(commands.UPSCAYL, { window.electron.send(commands.UPSCAYL, {
scaleFactor, scaleFactor,
imagePath, imagePath,
outputPath, outputPath,
model, model,
gpuId: gpuId.length === 0 ? null : gpuId, gpuId: gpuId.length === 0 ? null : gpuId,
saveImageAs, saveImageAs,
scale,
}); });
} }
} else if (isVideo && videoPath !== "") { }
await window.electron.send(commands.UPSCAYL_VIDEO, { // else if (isVideo && videoPath !== "") {
scaleFactor, // window.electron.send(commands.UPSCAYL_VIDEO, {
videoPath, // scaleFactor,
outputPath, // videoPath,
model, // outputPath,
gpuId: gpuId.length === 0 ? null : gpuId, // model,
saveImageAs, // gpuId: gpuId.length === 0 ? null : gpuId,
}); // saveImageAs,
} else { // });
// }
else {
alert(`Please select ${isVideo ? "a video" : "an image"} to upscale`); alert(`Please select ${isVideo ? "a video" : "an image"} to upscale`);
} }
}; };