diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-31 04:38:34 +0000 |
---|---|---|
committer | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-31 04:38:34 +0000 |
commit | 5ef669de080814067961f28357256e8fe27544f4 (patch) | |
tree | 655f4582e692f0fc3667b3b668ad365ac3ab92ae /modules/processing_scripts/refiner.py | |
parent | c9c8485bc1e8720aba70f029d25cba1c4abf2b5c (diff) | |
parent | e7965a5eb804a51e949df07c66c0b7c61ab7fa7b (diff) | |
download | stable-diffusion-webui-gfx803-5ef669de080814067961f28357256e8fe27544f4.tar.gz stable-diffusion-webui-gfx803-5ef669de080814067961f28357256e8fe27544f4.tar.bz2 stable-diffusion-webui-gfx803-5ef669de080814067961f28357256e8fe27544f4.zip |
Merge branch 'release_candidate'
Diffstat (limited to 'modules/processing_scripts/refiner.py')
-rw-r--r-- | modules/processing_scripts/refiner.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/processing_scripts/refiner.py b/modules/processing_scripts/refiner.py new file mode 100644 index 00000000..29ccb78f --- /dev/null +++ b/modules/processing_scripts/refiner.py @@ -0,0 +1,49 @@ +import gradio as gr
+
+from modules import scripts, sd_models
+from modules.ui_common import create_refresh_button
+from modules.ui_components import InputAccordion
+
+
+class ScriptRefiner(scripts.ScriptBuiltinUI):
+ section = "accordions"
+ create_group = False
+
+ def __init__(self):
+ pass
+
+ def title(self):
+ return "Refiner"
+
+ def show(self, is_img2img):
+ return scripts.AlwaysVisible
+
+ def ui(self, is_img2img):
+ with InputAccordion(False, label="Refiner", elem_id=self.elem_id("enable")) as enable_refiner:
+ with gr.Row():
+ refiner_checkpoint = gr.Dropdown(label='Checkpoint', elem_id=self.elem_id("checkpoint"), choices=sd_models.checkpoint_tiles(), value='', tooltip="switch to another model in the middle of generation")
+ create_refresh_button(refiner_checkpoint, sd_models.list_models, lambda: {"choices": sd_models.checkpoint_tiles()}, self.elem_id("checkpoint_refresh"))
+
+ refiner_switch_at = gr.Slider(value=0.8, label="Switch at", minimum=0.01, maximum=1.0, step=0.01, elem_id=self.elem_id("switch_at"), tooltip="fraction of sampling steps when the switch to refiner model should happen; 1=never, 0.5=switch in the middle of generation")
+
+ def lookup_checkpoint(title):
+ info = sd_models.get_closet_checkpoint_match(title)
+ return None if info is None else info.title
+
+ self.infotext_fields = [
+ (enable_refiner, lambda d: 'Refiner' in d),
+ (refiner_checkpoint, lambda d: lookup_checkpoint(d.get('Refiner'))),
+ (refiner_switch_at, 'Refiner switch at'),
+ ]
+
+ return enable_refiner, refiner_checkpoint, refiner_switch_at
+
+ def setup(self, p, enable_refiner, refiner_checkpoint, refiner_switch_at):
+ # the actual implementation is in sd_samplers_common.py, apply_refiner
+
+ if not enable_refiner or refiner_checkpoint in (None, "", "None"):
+ p.refiner_checkpoint = None
+ p.refiner_switch_at = None
+ else:
+ p.refiner_checkpoint = refiner_checkpoint
+ p.refiner_switch_at = refiner_switch_at
|