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

Method ui

scripts/xyz_grid.py:419–536  ·  view source on GitHub ↗
(self, is_img2img)

Source from the content-addressed store, hash-verified

417 return "X/Y/Z plot"
418
419 def ui(self, is_img2img):
420 self.current_axis_options = [x for x in axis_options if type(x) == AxisOption or x.is_img2img == is_img2img]
421
422 with gr.Row():
423 with gr.Column(scale=19):
424 with gr.Row():
425 x_type = gr.Dropdown(label="X type", choices=[x.label for x in self.current_axis_options], value=self.current_axis_options[1].label, type="index", elem_id=self.elem_id("x_type"))
426 x_values = gr.Textbox(label="X values", lines=1, elem_id=self.elem_id("x_values"))
427 x_values_dropdown = gr.Dropdown(label="X values", visible=False, multiselect=True, interactive=True)
428 fill_x_button = ToolButton(value=fill_values_symbol, elem_id="xyz_grid_fill_x_tool_button", visible=False)
429
430 with gr.Row():
431 y_type = gr.Dropdown(label="Y type", choices=[x.label for x in self.current_axis_options], value=self.current_axis_options[0].label, type="index", elem_id=self.elem_id("y_type"))
432 y_values = gr.Textbox(label="Y values", lines=1, elem_id=self.elem_id("y_values"))
433 y_values_dropdown = gr.Dropdown(label="Y values", visible=False, multiselect=True, interactive=True)
434 fill_y_button = ToolButton(value=fill_values_symbol, elem_id="xyz_grid_fill_y_tool_button", visible=False)
435
436 with gr.Row():
437 z_type = gr.Dropdown(label="Z type", choices=[x.label for x in self.current_axis_options], value=self.current_axis_options[0].label, type="index", elem_id=self.elem_id("z_type"))
438 z_values = gr.Textbox(label="Z values", lines=1, elem_id=self.elem_id("z_values"))
439 z_values_dropdown = gr.Dropdown(label="Z values", visible=False, multiselect=True, interactive=True)
440 fill_z_button = ToolButton(value=fill_values_symbol, elem_id="xyz_grid_fill_z_tool_button", visible=False)
441
442 with gr.Row(variant="compact", elem_id="axis_options"):
443 with gr.Column():
444 draw_legend = gr.Checkbox(label='Draw legend', value=True, elem_id=self.elem_id("draw_legend"))
445 no_fixed_seeds = gr.Checkbox(label='Keep -1 for seeds', value=False, elem_id=self.elem_id("no_fixed_seeds"))
446 with gr.Row():
447 vary_seeds_x = gr.Checkbox(label='Vary seeds for X', value=False, min_width=80, elem_id=self.elem_id("vary_seeds_x"), tooltip="Use different seeds for images along X axis.")
448 vary_seeds_y = gr.Checkbox(label='Vary seeds for Y', value=False, min_width=80, elem_id=self.elem_id("vary_seeds_y"), tooltip="Use different seeds for images along Y axis.")
449 vary_seeds_z = gr.Checkbox(label='Vary seeds for Z', value=False, min_width=80, elem_id=self.elem_id("vary_seeds_z"), tooltip="Use different seeds for images along Z axis.")
450 with gr.Column():
451 include_lone_images = gr.Checkbox(label='Include Sub Images', value=False, elem_id=self.elem_id("include_lone_images"))
452 include_sub_grids = gr.Checkbox(label='Include Sub Grids', value=False, elem_id=self.elem_id("include_sub_grids"))
453 csv_mode = gr.Checkbox(label='Use text inputs instead of dropdowns', value=False, elem_id=self.elem_id("csv_mode"))
454 with gr.Column():
455 margin_size = gr.Slider(label="Grid margins (px)", minimum=0, maximum=500, value=0, step=2, elem_id=self.elem_id("margin_size"))
456
457 with gr.Row(variant="compact", elem_id="swap_axes"):
458 swap_xy_axes_button = gr.Button(value="Swap X/Y axes", elem_id="xy_grid_swap_axes_button")
459 swap_yz_axes_button = gr.Button(value="Swap Y/Z axes", elem_id="yz_grid_swap_axes_button")
460 swap_xz_axes_button = gr.Button(value="Swap X/Z axes", elem_id="xz_grid_swap_axes_button")
461
462 def swap_axes(axis1_type, axis1_values, axis1_values_dropdown, axis2_type, axis2_values, axis2_values_dropdown):
463 return self.current_axis_options[axis2_type].label, axis2_values, axis2_values_dropdown, self.current_axis_options[axis1_type].label, axis1_values, axis1_values_dropdown
464
465 xy_swap_args = [x_type, x_values, x_values_dropdown, y_type, y_values, y_values_dropdown]
466 swap_xy_axes_button.click(swap_axes, inputs=xy_swap_args, outputs=xy_swap_args)
467 yz_swap_args = [y_type, y_values, y_values_dropdown, z_type, z_values, z_values_dropdown]
468 swap_yz_axes_button.click(swap_axes, inputs=yz_swap_args, outputs=yz_swap_args)
469 xz_swap_args = [x_type, x_values, x_values_dropdown, z_type, z_values, z_values_dropdown]
470 swap_xz_axes_button.click(swap_axes, inputs=xz_swap_args, outputs=xz_swap_args)
471
472 def fill(axis_type, csv_mode):
473 axis = self.current_axis_options[axis_type]
474 if axis.choices:
475 if csv_mode:
476 return list_to_csv_string(axis.choices()), gr.update()

Callers

nothing calls this directly

Calls 2

elem_idMethod · 0.95
ToolButtonClass · 0.90

Tested by

no test coverage detected