MCPcopy
hub / github.com/AUTOMATIC1111/stable-diffusion-webui / ui

Method ui

modules/processing_scripts/seed.py:27–67  ·  view source on GitHub ↗
(self, is_img2img)

Source from the content-addressed store, hash-verified

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

Callers 1

Calls 6

ToolButtonClass · 0.90
PasteFieldClass · 0.90
connect_reuse_seedFunction · 0.85
on_after_componentMethod · 0.80
elem_idMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected