diff --git a/CHANGELOG.md b/CHANGELOG.md index f52290e..c4f3358 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - Add options for `crop/pad` node - to determine the order of [crop/pad] -> upscale -> [crop/pad]. - Add node for auto-detecting USDU-padding from initial res. +# v1.1.5 + +- ... and another one. + # v1.1.4 - ... and an immediate bugfix. diff --git a/README.md b/README.md index 2312c83..f523d75 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,8 @@ A small modular pack — nodes for semi-automatic calculation of the best (most [šŸ”„ Updates ChangeLog](CHANGELOG.md) -![image](img/screenshot1.png) - > [!NOTE] -> Nodes from this pack do **nothing** with actual images on their own — they only calculate the optimal **values** for the resolution. +> Almost all the nodes from this pack do **nothing** with actual images on their own — they only calculate the optimal **values** for the resolution. Read any further only if you feel you need to. @@ -30,6 +28,8 @@ This pack lets you forget about crunching numbers and handles the calculation of ## 3 main nodes +![screenshot1](img/screenshot1.png) + ### Simple Just rounds width/height to the given step, ensuring the image **CAN** be converted to latent - both in initial generation and after some upscales. @@ -47,9 +47,34 @@ All you need to know is a size (one side) of square images the model was trained - match the total resolution (i.e., image area, number of pixels) as close to the training one as possible, - ... while still respecting aspect ratio, image orientation and step size. +## Helper node - `Upscale Image By (with Model)` + +![screenshot_upscale_model_by](img/screenshot_upscale_model_by.png) + +This is the **only** node in the pack which does more than some resolution calculation, and actually scales an image. But it's nothing more than a wrapper over the built-in `Upscale Image (using Model)` and `Upscale Image By` nodes used in sequence. + +Like the built-in `Upscale Image (using Model)` node, this one scales with a specialized model, **but also** does it to a desired upscale factor, like `Upscale Image By` does. This factor should be below the model's native one. And, depending on the value you set this factor to, you get different results. + +For a `x4` model, you could expect the following: + +| Target `scale` factor | Resulting image | +|-----------------------|------------------------------------------------------------------------------------------------------------------------------------| +| Below `x0.5` | ā” Perfect, crisp, but... šŸ¤” the model-upscale won't even be performed. Why using this node at all and not just `Upscale Image By`? | +| `x0.5+` - `x1.0` | šŸ‘šŸ» Perfect, downscale-only, but the result might be slightly different (and crisper) from using just `Upscale Image By`. | +| `x1.0+` - `x3.5` | šŸ‘šŸ» **Perfect. The upscale range this node was made for.** | +| `x3.5+` - `x4.0` | āš ļø **Image starts getting blurry, but still better than just using `Upscale Image By`.** | +| `x4.0` exactly | šŸ‘šŸ» Perfect. Just the same result as from `Upscale Image (using Model)`. Second scaling isn't even performed. | +| `x4.0+` | ā€¼ļø **VERY** blurry | + +For a `x2` model, the middle two ranges (the most important ones, with **bold text**) would be, respectively: +- `x1.0+` - `x1.5` +- `x1.5+` - `x2.0` + +So, to get the best result, your upscale factor should be between `1.0` and `(model_scale - 0.5)`. The node won't stop you from getting a subpar result, but it will warn you (if the `show_status` toggle is enabled). + ## Advanced: Upscale support (aka "HD-fix") -![image](img/screenshot2.png) +![screenshot2](img/screenshot2.png) `Best-Res` nodes have a special version _(currently, only `area` node has one)_, which also account for very first upscale aka HD-fix - to ensure the upscaled resolution is also divisible by the step value. diff --git a/img/screenshot_upscale_model_by.png b/img/screenshot_upscale_model_by.png new file mode 100644 index 0000000..b57d458 Binary files /dev/null and b/img/screenshot_upscale_model_by.png differ diff --git a/pyproject.toml b/pyproject.toml index c6a3d7b..d850c55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "best-resolution" description = "QoL nodes for semi-automatic calculation of the best (most optimal) sampling resolution \n• compatible with ANY model (from now or the future), \n• accounting for upscale... \n• ...and pixel-step." -version = "1.1.4" +version = "1.1.5" authors = [ {name = "Lex Darlog"} ]