stable-diffusion-webui-hires-fix-progressive

November 4, 2023 · View on GitHub

A progressive upscaling-img2img version of hires.fix, extension script for AUTOMATIC1111/stable-diffusion-webui.

Highres.fix pipline gives us an inspirable way to sketch-and-refine an image, we could make it even further~

⚠ This is possibly obsolete, try use multidiffusion-upscaler-for-automatic1111 for img2img upscale instead :)

Examples

⚪ progressive vs. official

officialstd_10std_20std_30std_60std_90std_120
hires steps1020306090120
progressivepg_4x3pg_4x5pg_4x8pg_4x15pg_4x23pg_4x30
iter * step4*3=124*5=204*8=324*15=604*23=924*30=120

ℹ It is found that original hires.fix sometimes suffers from color red-shift, on the contratry, the progressive version suffers from blue-shift. I don't know why though...

⚪ balancing iter and step

progressivepg_1x120pg_2x60pg_3x40pg_4x30pg_6x20pg_8x15pg_10x12
iter * step = 1201 * 1202 * 603 * 404 * 306 * 208 * 1510 * 12

1x120:

pg_1x120

2x60:

pg_2x60

3x40:

pg_3x40

4x30:

pg_4x30

6x20:

pg_6x20

8x15:

pg_8x15

10x12:

pg_10x12

raw lowres (txt2img ouput)raw highres (upscale only)
lowreshighres

Commom parameters for above demo images:

Steps: 20
Sampler: Euler a
CFG scale: 7
Seed: 1919810                 
Size: 512 x 512
Target size: 1024 x 1024
Upscaler: Lanczos
Denoising strength: 0.5

How it works

⚪ How the original hires.fix works?

It takes three steps:

  • Several steps of txt2img to sketch a low resolution image
  • One step upscale the low resolution image to a higher target resoultion
  • Yet another several steps of img2img to refine the high resolution image

⚪ How a progressive hires.fix works?

Just make the upscale & img2img step repeatible and progressive:

  • Several steps of txt2img to sketch a low resolution image
  • Repeat the follwing steps until reaching the target resoultion
    • Upscale low resolution image to some higher itermediate resoultion
    • Small steps of img2img on the higher resolution image

Options

  • upscale_*
    • upscaler: (categorical), upscaleing method same as in hires.fix
    • resize_mode:
    • target_(width|height): (int), final image resolution
  • img2img_*
    • iter: (int), the repeated upscale-img2img iteration
    • step: (int), img2img steps per iteration
    • denoise_strength: (float), denoise strength for img2img
    • prompt: (string), use another prompt for img2img, default to the main prompt box

Installation

Easiest way to install it is to:

  1. Go to the "Extensions" tab in the webui, switch to the "Install from URL" tab
  2. Paste https://github.com/Kahsolt/stable-diffusion-webui-hires-fix-progressive.git into "URL for extension's git repository" and click install

Manual install:

  1. Copy this repo folder to the 'extensions' folder of https://github.com/AUTOMATIC1111/stable-diffusion-webui

by Armit 2023/01/12