Info-icon.png We have moved to https://openmodeldb.info/. This new site has a tag and search system, which will make finding the right models for you much easier! If you have any questions, ask here: https://discord.gg/cpAUpDK

Difference between revisions of "Using ESRGAN, Links, And Other Information"

From Upscale Wiki
Jump to navigation Jump to search
m (Remove unneeded Download Link)
(Cupscale Wiki Link)
Line 16: Line 16:
 
=== GUI Tools ===
 
=== GUI Tools ===
 
----
 
----
==== [https://github.com/n00mkrad/cupscale nmkd's Cupscale] ====
+
==== Cupscale [https://upscale.wiki/wiki/Cupscale_Tutorial (Tutorial)][https://github.com/n00mkrad/cupscale (GitHub)] ====
 
----
 
----
 
Cupscale is a young ESRGAN GUI that's built with usability in mind.
 
Cupscale is a young ESRGAN GUI that's built with usability in mind.

Revision as of 20:54, 17 September 2021

Make sure that you have followed the installation guide carefully (Windows, Arch Linux, MacOS). We support BlueAmulets fork offically, not the current ESRGAN branch from xinntao, if you use that one, you will get errors.

Now that you have installed ESRGAN you can upscale images. There are a few different ways of using ESRGAN. Below I will document the official one. This should work for everyone, but there are a few different applications designed to make the life of the users easier as well as to prevent common pitfalls of using ESRGAN.

Things you need to know before you use ESRGAN

  • ESRGAN supports only RGB images, that means it will remove alpha / transparency channels if present and it won't work with grayscale images.
  • ESRGAN is limited by the amount of VRAM you have.

But there are ways around both. At the time of writing this there are some popular tools used by a lot of us to solve this:

Tools / Ways to use ESRGAN

GUI Tools


Cupscale (Tutorial)(GitHub)


Cupscale is a young ESRGAN GUI that's built with usability in mind.

Advantages:
  • Run ESRGAN on CPU, Nvidia GPU or even AMD GPUs using Vulkan
  • Interpolate models on-the-fly (no need to create extra model files)
  • Create multiple types of comparisons
  • Batch upscale entire folders
  • Upscale GIFs and even videos
  • Multiple seamless modis are available
  • Supports many image formats including JPEG, PNG, WEBP, DDS, and more
Disadvantages
  • No cross platform support

ptrsuder's IEU (Image Enhancement Utility)


IEU has been used by many people and is considered mature, but if you encounter bugs or have feature requests, feel free to report them on Discord, or on GitHub repository by creating an issue. The Download is under the IEU.Winforms Releases tab. Please take a bit of your time to read IEU wiki first.

Advantages:
  • Process any amount of images with all models you select via check-boxes
  • Control over the output format and naming scheme
  • Can use a different model for the alpha channel
  • Can upscale each channel separately (Red, Green, Blue and Alpha)
    This is useful for non diffuse textures, so normal maps (_n.dds typically), specular maps, ...
  • Can interpolate different models right in the GUI
Disadvantages
  • No cross platform support

CLI Tools


Joey's ESRGAN fork


Advantages
  • Cross-Platform
  • Works on headless systems
  • Auto splits and merges images in memory
  • Multiple seamless modis are available
  • It can chain models
  • As with any CLI tool, you can easily script around it to add further features.
Disadvantages
  • You have to enter the full model names if you don't wrap a script around it
  • CLIs can feel intimidating to those unused to them
How to use it
  1. Put the pictures or textures you want to upscale into the input folder
  2. Open a terminal window and navigate to the esrgan folder (the folder you cloned the fork into in the install guide)
    • For Windows Shift right click in your esrgan folder and select Git Bash Here.
    • For Linux / MacOS users the process is similar. File managers like Nautilus for example allow you to open a terminal in a folder. If that isn't an option for you can can also navigate using commands. cd allows you to navigate and pwd shows you the current folder. cd .. goes one directory down (for example from /home/combi/code/git/ctp to /home/combi/code/git). Use cd /path/to/whatever to navigate to absolute (full) paths or cd some-folder-in-the-current-folder to navigate to a folder in the current open folder. (pwd = print working directory; cd = change directory) If you want to find out more about a command you can just type man the command-you-want-to-know-about or use the internet
  3. Enter:
    1. For Nvidia GPUs
      python upscale.py models/${theModelYouWantToUse}
    2. For other GPUs / integrated Graphic
      python upscale.py --cpu models/${theModelYouWantToUse}
  4. Don't enter ${theModelYouWantToUse} Instead replace that with the name of a model of course As an example, for the default model it would be: python test.py models/RRDB_ESRGAN_x4.pth
  5. That was it, the results will be in the results folder

Other useful Command line switches are:

  • --input ./input - Your Input folder
  • --seamless - For seamless textures (Textures that repeat without seams)
  • --output ./output - Your Output folder
  • --skip_existing - Skipps already upscaled images that are in your output and input folder
  • --tile_size 512 - The tile size, if you run out of VRAM, decrease that value
  • --binary_alpha - If the alpha / transparency channel should be only black or white
  • --alpha_threshold 0.5 Sets tha point at which alpha will be white instead of black if using binary alpha
  • --alpha_mode 1 Different implementation for how Alpha works, if you use binary alpha, it must be 1 otherwise you can try 2.

Tips when using ESRGAN

  1. When upscaling compressed textures use a 1x decompression model for the format first and or downscale them first by at least 50% with ,code>nearest neighbor or box filtering first, before upscaling them in ESRGAN
  2. ESRGAN runs much faster on Nvidia GPUs, you can compile pytorch yourself for AMD GPUs but at the moment that is quite difficult to do
  3. If you run out of VRAM, use Deorder’s scripts or IEU, which will split the texture in smaller parts first
  4. If you have textures in sub-folders, use Deorder’s scripts or IEU with "Preserve folder structure" mode selected
  5. If your textures contain an alpha channel (transparency), use Deorder’s scripts or IEU
  6. Try out different models. In our Model Database you will find a lot of different models, that we trained ourself
  7. If you are still not happy with the results despite having tried out different models, consider training your own and sharing it with us later

Additional Notices

Windows

  • When upscaling large images (depending on your GPU for example 1000x1000px images) on Windows, it's possible for the operating system to kill the ESRGAN process if it takes too long. This can be fixed using the Nvidia Nsight Monitor app that is installed alongside the CUDA toolkit. Here are Instructions for doing so