Skip to content

Commit

Permalink
Merge pull request AUTOMATIC1111#7571 from mezotaken/int_loop
Browse files Browse the repository at this point in the history
Optionally append interrogated prompt in loopback script
  • Loading branch information
AUTOMATIC1111 authored Feb 19, 2023
2 parents d84f3cf + 7dd2397 commit 7202213
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions scripts/loopback.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from modules.processing import Processed
from modules.sd_samplers import samplers
from modules.shared import opts, cmd_opts, state
from modules import deepbooru


class Script(scripts.Script):
Expand All @@ -20,10 +21,11 @@ def show(self, is_img2img):
def ui(self, is_img2img):
loops = gr.Slider(minimum=1, maximum=32, step=1, label='Loops', value=4, elem_id=self.elem_id("loops"))
denoising_strength_change_factor = gr.Slider(minimum=0.9, maximum=1.1, step=0.01, label='Denoising strength change factor', value=1, elem_id=self.elem_id("denoising_strength_change_factor"))
append_interrogation = gr.Dropdown(label="Append interrogated prompt at each iteration", choices=["None", "CLIP", "DeepBooru"], value="None")

return [loops, denoising_strength_change_factor]
return [loops, denoising_strength_change_factor, append_interrogation]

def run(self, p, loops, denoising_strength_change_factor):
def run(self, p, loops, denoising_strength_change_factor, append_interrogation):
processing.fix_seed(p)
batch_count = p.n_iter
p.extra_generation_params = {
Expand All @@ -40,6 +42,7 @@ def run(self, p, loops, denoising_strength_change_factor):
grids = []
all_images = []
original_init_image = p.init_images
original_prompt = p.prompt
state.job_count = loops * batch_count

initial_color_corrections = [processing.setup_color_correction(p.init_images[0])]
Expand All @@ -58,6 +61,13 @@ def run(self, p, loops, denoising_strength_change_factor):
if opts.img2img_color_correction:
p.color_corrections = initial_color_corrections

if append_interrogation != "None":
p.prompt = original_prompt + ", " if original_prompt != "" else ""
if append_interrogation == "CLIP":
p.prompt += shared.interrogator.interrogate(p.init_images[0])
elif append_interrogation == "DeepBooru":
p.prompt += deepbooru.model.tag(p.init_images[0])

state.job = f"Iteration {i + 1}/{loops}, batch {n + 1}/{batch_count}"

processed = processing.process_images(p)
Expand Down

0 comments on commit 7202213

Please sign in to comment.