Acly / krita-ai-diffusion

Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required.
https://www.interstice.cloud
GNU General Public License v3.0
6.82k stars 334 forks source link

Upscale issue #9: the ‘Refine upscaled image’ feature inadequate, needs UI customization #1300

Open valery016 opened 2 weeks ago

valery016 commented 2 weeks ago

I have spent a few days testing the latest Refine functionality in Upscale and had a hard time actually achieving any essential refinement in the images tested. Eventually, I found ways to achieve some visible refinement but the combination of settings that worked wasn’t within the standard choices in the UI.

Image refinement after upscaling is oftentimes a sophisticated operation and just cannot be reduced to the 20% to 50% Strength slider and 2-3 Unblur settings (the Off option is practically never useful). While going below 20% Strength is indeed pointless when refining, the best results can actually be achieved with the 100% Strength (1.0 denoise) having the CFG set to 1 or 1.5, for certain checkpoints and samplers and LoRas that excel at refining.

At the same time, we don’t want to unnecessarily burden the UI with more controls. I suggest the following solution: create two basic Refine modes in Upscale, similarly to how it’s done in the Generate part, that is, Refine and Refine (Custom). The basic Refine will use some default config of settings good enough for most use cases and with (almost) no user control, while the Custom refine will enable usage of the Strength and Unblur controls, in their full range as in Generate / Refine.

For the basic Refine, some additional work will have to be done to find the best default config; I am prepared to do that. For the Custom Refine, it might make sense to introduce a few standard, user-friendly Refine style presets to the plugin; here too I am prepared to work on creating those.

To argue my suggestions, I am posting here results of a refinement comparison test I performed using Krita AI options (Upscale / Refine as well as Generate / Refine) and a number of other SD tools with similar functionality. The 1st image below is an enlarged 3x with the basic Lanczos method and slightly sharpened AI-generated image, it is the base (reference) picture for this test. In the image grid below it labeled from 2 to 8 are the versions of the same fragment from the base image refined with various AI-generators, some are done with Krita AI, some with other SD tools (numbered as 1 is the fragment from the basis (unrefined) image).

An Asian girl wearing black - downscaled   Lanczos-upscaled 3x

An Asian girl wearing black - Krita AI upscale blind test

I have posted these yesterday on the Krita AI Discord server as a blind test, it’s still ongoing (if insufficient number of reactions receivied, I'll be tempted to repost it on SD subreddit.) I will of course disclose which refinement is done by which tool, with the full list of settings used. But first, I want to challenge the developer or anyone who is reading this to beat the best, in your opinion, version among the 7 in the refinement batch with your own effort using the Krita AI plugin’s Upscale / Refine UI options. If you can demonstrate that with a refined version of the base image, along with description of the settings used, that will be a “I stand corrected” case on my part.

caseyotaku commented 2 days ago

It would be cool, otherwise I have to do the upscale in other programs