import { useState, useEffect, useRef } from "react"; import commands from "../../constants/commands"; import { ReactCompareSlider, ReactCompareSliderImage, } from "react-compare-slider"; const Home = () => { const [imagePath, SetImagePath] = useState(""); const [upscaledImagePath, setUpscaledImagePath] = useState(""); const [outputPath, SetOutputPath] = useState(""); const [scaleFactor, setScaleFactor] = useState(4); const [progress, setProgress] = useState(""); const [model, setModel] = useState("realesrgan-x4plus"); const [loaded, setLoaded] = useState(false); useEffect(() => { setLoaded(true); window.electron.on(commands.UPSCAYL_PROGRESS, (_, data) => { if (data.length > 0 && data.length < 10) setProgress(data); }); window.electron.on(commands.UPSCAYL_DONE, (_, data) => { setUpscaledImagePath(data); }); }, []); const selectImageHandler = async () => { SetImagePath(""); setUpscaledImagePath(""); setProgress(""); var path = await window.electron.invoke(commands.SELECT_FILE); if (path !== "cancelled") { SetImagePath(path); var dirname = path.match(/(.*)[\/\\]/)[1] || ""; SetOutputPath(dirname); } }; const handleModelChange = (e) => { setModel(e.target.value); }; const outputHandler = async () => { var path = await window.electron.invoke(commands.SELECT_FOLDER); if (path !== "cancelled") { SetOutputPath(path); } else { console.log("Getting output path from input file"); } }; const upscaylHandler = async () => { setProgress("0.00%"); await window.electron.send(commands.UPSCAYL, { scaleFactor, imagePath, outputPath, model, }); }; return (
AI Image Upscaler
{/* LEFT PANE */}Step 1
Step 2
Select Upscaling Type
Step 3
Select Scale Factor
Step 4
Defaults to Image's path
Step 5
Copyright © 2022 -{" "} Upscayl
Made by{" "} TGS963 {" "} and{" "} Nayam Amarshe
{progress}
Select an Image to Upscale
) : upscaledImagePath.length === 0 ? (