| import gradio as gr | |
| from .class_gui_config import KohyaSSGUIConfig | |
| class SDXLParameters: | |
| def __init__( | |
| self, | |
| sdxl_checkbox: gr.Checkbox, | |
| show_sdxl_cache_text_encoder_outputs: bool = True, | |
| config: KohyaSSGUIConfig = {}, | |
| ): | |
| self.sdxl_checkbox = sdxl_checkbox | |
| self.show_sdxl_cache_text_encoder_outputs = show_sdxl_cache_text_encoder_outputs | |
| self.config = config | |
| self.initialize_accordion() | |
| def initialize_accordion(self): | |
| with gr.Accordion( | |
| visible=False, open=True, label="SDXL Specific Parameters" | |
| ) as self.sdxl_row: | |
| with gr.Row(): | |
| self.sdxl_cache_text_encoder_outputs = gr.Checkbox( | |
| label="Cache text encoder outputs", | |
| info="Cache the outputs of the text encoders. This option is useful to reduce the GPU memory usage. This option cannot be used with options for shuffling or dropping the captions.", | |
| value=self.config.get("sdxl.sdxl_cache_text_encoder_outputs", False), | |
| visible=self.show_sdxl_cache_text_encoder_outputs, | |
| ) | |
| self.sdxl_no_half_vae = gr.Checkbox( | |
| label="No half VAE", | |
| info="Disable the half-precision (mixed-precision) VAE. VAE for SDXL seems to produce NaNs in some cases. This option is useful to avoid the NaNs.", | |
| value=self.config.get("sdxl.sdxl_no_half_vae", False), | |
| ) | |
| self.sdxl_checkbox.change( | |
| lambda sdxl_checkbox: gr.Accordion(visible=sdxl_checkbox), | |
| inputs=[self.sdxl_checkbox], | |
| outputs=[self.sdxl_row], | |
| ) | |