(self, is_img2img)
| 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() |
nothing calls this directly
no test coverage detected