|
|
|
import math |
|
import os |
|
import sys |
|
import traceback |
|
import random |
|
|
|
import modules.scripts as scripts |
|
import modules.images as images |
|
import gradio as gr |
|
|
|
from modules.processing import Processed, process_images |
|
from PIL import Image |
|
from modules.shared import opts, cmd_opts, state |
|
|
|
class Script(scripts.Script): |
|
def title(self): |
|
return "Lanczos quick upscale" |
|
|
|
def ui(self, is_img2img): |
|
upscale_factor = gr.Slider(minimum=1, maximum=4, step=0.1, label='Upscale factor', value=2) |
|
return [upscale_factor] |
|
|
|
def run(self, p, upscale_factor): |
|
infotexts = [] |
|
def simple_upscale(img, upscale_factor): |
|
w, h = img.size |
|
w = int(w * upscale_factor) |
|
h = int(h * upscale_factor) |
|
return img.resize((w, h), Image.Resampling.LANCZOS) |
|
|
|
state.job_count = p.n_iter |
|
p.n_iter = 1 |
|
p.do_not_save_samples = True |
|
output_images = [] |
|
for batch_no in range(state.job_count): |
|
|
|
proc = process_images(p) |
|
infotexts.append(proc.info) |
|
proc.images[0] = simple_upscale(proc.images[0], upscale_factor) |
|
images.save_image(proc.images[0], p.outpath_samples, "", proc.seed, proc.prompt, opts.samples_format, info= proc.info, p=p) |
|
output_images += proc.images |
|
p.seed = proc.seed + 1 |
|
|
|
return Processed(p, images, infotexts=infotexts,index_of_first_image=0) |
|
|