diff --git a/.gitignore b/.gitignore
index a255e18..fd99892 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,6 @@ node_modules
# ignore build & dist folders
build
-dist
\ No newline at end of file
+dist
+
+target
\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..9886a9c
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "simple_media_upscale_lite_cli"
+version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..ee21fb9
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "simple_media_upscale_lite_cli"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[lib]
+name = "lib"
+path = "src/lib.rs"
+
+[dependencies]
diff --git a/README.md b/README.md
index f4094a2..2c9d9c8 100755
--- a/README.md
+++ b/README.md
@@ -22,15 +22,20 @@
-smuL (pronounced like "small") is an Electron App with Python CLI to upscale images and videos using multiple different upscaling engines.
+smuL (pronounced like "small") is an Electron App that can be used to upscale images and videos using multiple different upscaling engines.
+
+# Ongoing change:
+We are abandoning the CLI in favour of tighter integration with the frontend and to provide you with more information on the upscaling process.
+
+WE ARE LOOKING TO ALSO SUPPORT MacOS IN THE FUTURE. IF YOU USE OR KNOW SOMEBODY THAT USES MacOS and who'd be willing to run smuL to test, please let us know through an issue or the [contact form on my website](https://janishutz.com/support/contact)
# Functionality
-This app allows you to fully automatically upscale a single file or a full on folder with one of many different engines.
+This app allows you to upscale a single file or (in the future) a full on folder with one of many different engines that can be added as plugins.
- Choose an input & output file from a GUI filemanager.
-- Choose from different quality presets or set your own multiplier
+- Set your own scaling multiplier
- You may upscale Images (currently .png, .jpg and .jpeg) or Videos (currently .mp4 and .mkv)
- Choose from one of many different upscaling algorithms.
-- Add plugins to add even more upscaling engines to it
+- Add plugins to add even more upscaling engines to it (will now have to be written in JS, see wiki for more info)
## Engines
- AMD Fidelity FX Super Resolution
@@ -39,39 +44,9 @@ This app allows you to fully automatically upscale a single file or a full on fo
- Real-ESGRAN
- more to come!
-This App also features a CLI interface.
-```
-usage: SimpleMediaUpscalerLite-cli.py [-h] [-i INPUTFILE] [-o OUTPUTFILE] [-s SCALEFACTOR] [-S SHARPENING] [-T THREADS] [-E ENGINE] [-M MODE] [-F FILETYPE] [-d DETAILS] [-p] [-v]
-
-SimpleMediaUpscalerLite - CLI, a CLI application to upscale videos and images using different upscaling engines.
-
-options:
- -h, --help show this help message and exit
- -i INPUTFILE, --inputfile INPUTFILE
- File path for the video / image to be upscaled
- -o OUTPUTFILE, --outputfile OUTPUTFILE
- Output file path for the video / image that was upscaled
- -s SCALEFACTOR, --scalefactor SCALEFACTOR
- Scale factor for the video / image. Can be a integer from -4 to 4
- -S SHARPENING, --sharpening SHARPENING
- Sharpening factor (between 0 and 1 whereas 0 means no sharpening, 1 the most sharpening. Recommendation: Do not exceed 0.25, as it often looks bad)
- -T THREADS, --threads THREADS
- Thread count to use. Cannot exceed CPU thread count. Scaling non-linear (using 2 threads is not exactly 2x the speed of 1 thread). Scales well with FSR, barely with
- Real-ESRGAN, as it uses mostly the GPU to upscale
- -E ENGINE, --engine ENGINE
- Upscaling engine. By default can be fsr or ss. Use the -p option to see all installed engines
- -M MODE, --mode MODE Specify a special mode for a specific engine. Might not be available in every engine. Use the -d option to find out more
- -F FILETYPE, --filetype FILETYPE
- Change the file type of the temporary image files. Supports png, jpg. Video quality: png > jpg. PNG is default, if not specified.
- -d DETAILS, --details DETAILS
- Get details on usage of a particular engine and exit. Reads the config.json file of that engine and displays it in a HR manner
- -p, --printengines Print all engines and exit
- -v, --version Print version and exit
-```
-
# Supported OS
- Windows 10, 11 (officially)
-- Windows XP, Vista, 7, 8 (unofficially through python directly, may cause problems)
+- Windows XP, Vista, 7, 8 might or might not work
- Any modern Linux distro with wine installed
# Contributing
@@ -81,8 +56,8 @@ If you have any suggestions or features you'd like to have implemented, you may
--> We will add a linter that will then run on circleci to ensure code quality is high
### Current Contributers
-- simplePCBuilding (Maintainer) [Core (CLI), Docs, Website, Frontend, Linux packages]
-- ThatPlasma (Testing, Packager) [Testing]
+- simplePCBuilding (Maintainer) [Docs, Website, Frontend, Linux packages]
+- ThatPlasma (Testing) [Testing]
# Roadmap
@@ -94,17 +69,16 @@ V2.0.0:
- Refactor backend to add plugin support -- ✅
V2.1.0:
-- Add more scaling engines
-- Expand Wiki to feature documentation on how to create a plugin (and maybe add a project website)
+- Remove CLI and make tighter integration with GUI
+- Add more scaling engines (as plugins, currently planning on adding the mpv-player cli)
+- Expand Wiki to feature documentation on how to create a plugin and maybe add a project website
- Show progress of scaling
# Issues
If you encounter any problems with this app, please don't hesitate to open an issue on GitHub.
## Known issues
-- Electron App is not available yet
- Electron App shows that it is out of date if running in the development version
-- GTK version only runs on Linux
# FAQ
**Q: Can you add upscaling engine [upscaling engine here]?**
diff --git a/frontend/package.json b/frontend/package.json
index 34ff067..1d7a326 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "SimpleMediaUpscalerLite",
- "version": "2.0.0-dev2",
+ "version": "2.0.0",
"maintainers": [
"Janis Hutz "
],
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 8e8ecaa..e7ae4b9 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -1,8 +1,9 @@
diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png
old mode 100644
new mode 100755
index f3d2503..3cfa8b3
Binary files a/frontend/src/assets/logo.png and b/frontend/src/assets/logo.png differ
diff --git a/frontend/src/upscalingHandler.js b/frontend/src/upscalingHandler.js
index 4195da9..101e197 100644
--- a/frontend/src/upscalingHandler.js
+++ b/frontend/src/upscalingHandler.js
@@ -32,15 +32,25 @@ class UpscalingHandler {
let args = []
args.push( '-i' + options.InputFile );
- args.push( '-o ' + options.OutputFile );
-
- args.push( '-s ' + options.scale )
+ args.push( '-o' + options.OutputFile );
+ if ( options.scale != 0 ) {
+ args.push( '-s' + options.scale );
+ }
+
+ if ( options.sharpening != 0 ) {
+ args.push( '-S' + options.sharpening );
+ }
+
+ args.push( '-M' + options.algorithm );
+ args.push( '-E' + options.engine );
// add additional options
// baseCommand += + ' -S ' + options.sharpening
// baseCommand += ' -E ' + options.engine + ' -M ' + options.algorithm
console.log( 'upscaling' );
+
+ console.log( args );
let child = child_process.spawn( baseCommand, args );
@@ -51,6 +61,7 @@ class UpscalingHandler {
child.stderr.on( 'data', ( data ) => {
console.error(`stderr: ${ data }`);
+ win.send( 'progress', '\n' + data );
} );
child.on( 'error', ( error ) => {
diff --git a/frontend/src/views/AboutView.vue b/frontend/src/views/AboutView.vue
index 4956d0b..6cd015a 100644
--- a/frontend/src/views/AboutView.vue
+++ b/frontend/src/views/AboutView.vue
@@ -1,6 +1,6 @@
-
+
About SimpleMediaUpscalerLite
SimpleMediaUpscalerLite is an application that allows you to upscale your videos and / or images. It uses an Electron GUI (Graphical User Interface) and a Python CLI (Command Line Interface).