(self, is_img2img)
| 25 | return scripts.AlwaysVisible |
| 26 | |
| 27 | def ui(self, is_img2img): |
| 28 | with gr.Row(elem_id=self.elem_id("seed_row")): |
| 29 | if cmd_opts.use_textbox_seed: |
| 30 | self.seed = gr.Textbox(label='Seed', value="", elem_id=self.elem_id("seed"), min_width=100) |
| 31 | else: |
| 32 | self.seed = gr.Number(label='Seed', value=-1, elem_id=self.elem_id("seed"), min_width=100, precision=0) |
| 33 | |
| 34 | random_seed = ToolButton(ui.random_symbol, elem_id=self.elem_id("random_seed"), tooltip="Set seed to -1, which will cause a new random number to be used every time") |
| 35 | reuse_seed = ToolButton(ui.reuse_symbol, elem_id=self.elem_id("reuse_seed"), tooltip="Reuse seed from last generation, mostly useful if it was randomized") |
| 36 | |
| 37 | seed_checkbox = gr.Checkbox(label='Extra', elem_id=self.elem_id("subseed_show"), value=False) |
| 38 | |
| 39 | with gr.Group(visible=False, elem_id=self.elem_id("seed_extras")) as seed_extras: |
| 40 | with gr.Row(elem_id=self.elem_id("subseed_row")): |
| 41 | subseed = gr.Number(label='Variation seed', value=-1, elem_id=self.elem_id("subseed"), precision=0) |
| 42 | random_subseed = ToolButton(ui.random_symbol, elem_id=self.elem_id("random_subseed")) |
| 43 | reuse_subseed = ToolButton(ui.reuse_symbol, elem_id=self.elem_id("reuse_subseed")) |
| 44 | subseed_strength = gr.Slider(label='Variation strength', value=0.0, minimum=0, maximum=1, step=0.01, elem_id=self.elem_id("subseed_strength")) |
| 45 | |
| 46 | with gr.Row(elem_id=self.elem_id("seed_resize_from_row")): |
| 47 | seed_resize_from_w = gr.Slider(minimum=0, maximum=2048, step=8, label="Resize seed from width", value=0, elem_id=self.elem_id("seed_resize_from_w")) |
| 48 | seed_resize_from_h = gr.Slider(minimum=0, maximum=2048, step=8, label="Resize seed from height", value=0, elem_id=self.elem_id("seed_resize_from_h")) |
| 49 | |
| 50 | random_seed.click(fn=None, _js="function(){setRandomSeed('" + self.elem_id("seed") + "')}", show_progress=False, inputs=[], outputs=[]) |
| 51 | random_subseed.click(fn=None, _js="function(){setRandomSeed('" + self.elem_id("subseed") + "')}", show_progress=False, inputs=[], outputs=[]) |
| 52 | |
| 53 | seed_checkbox.change(lambda x: gr.update(visible=x), show_progress=False, inputs=[seed_checkbox], outputs=[seed_extras]) |
| 54 | |
| 55 | self.infotext_fields = [ |
| 56 | PasteField(self.seed, "Seed", api="seed"), |
| 57 | PasteField(seed_checkbox, lambda d: "Variation seed" in d or "Seed resize from-1" in d), |
| 58 | PasteField(subseed, "Variation seed", api="subseed"), |
| 59 | PasteField(subseed_strength, "Variation seed strength", api="subseed_strength"), |
| 60 | PasteField(seed_resize_from_w, "Seed resize from-1", api="seed_resize_from_h"), |
| 61 | PasteField(seed_resize_from_h, "Seed resize from-2", api="seed_resize_from_w"), |
| 62 | ] |
| 63 | |
| 64 | self.on_after_component(lambda x: connect_reuse_seed(self.seed, reuse_seed, x.component, False), elem_id=f'generation_info_{self.tabname}') |
| 65 | self.on_after_component(lambda x: connect_reuse_seed(subseed, reuse_subseed, x.component, True), elem_id=f'generation_info_{self.tabname}') |
| 66 | |
| 67 | return self.seed, seed_checkbox, subseed, subseed_strength, seed_resize_from_w, seed_resize_from_h |
| 68 | |
| 69 | def setup(self, p, seed, seed_checkbox, subseed, subseed_strength, seed_resize_from_w, seed_resize_from_h): |
| 70 | p.seed = seed |
no test coverage detected