From dfd8ec9c4992f801304fc7efb89e7e47355fd18e Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Sat, 4 Apr 2026 20:13:20 -0700 Subject: [PATCH] UI: Make accordion outline styling global --- css/main.css | 4 ++-- modules/training.py | 4 ++-- modules/ui_model_menu.py | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/css/main.css b/css/main.css index 43e9684f..459c9fab 100644 --- a/css/main.css +++ b/css/main.css @@ -1443,12 +1443,12 @@ audio { stroke: rgb(209 213 219); } -.tgw-accordion { +.block:has(> .label-wrap) { padding: 10px 12px !important; border: 1px solid #d2d2d8; } -.dark .tgw-accordion { +.dark .block:has(> .label-wrap) { border: 1px solid var(--border-color-dark); } diff --git a/modules/training.py b/modules/training.py index 145353c6..bca4f02e 100644 --- a/modules/training.py +++ b/modules/training.py @@ -52,7 +52,7 @@ def create_ui(): with gr.Column(): always_override = gr.Checkbox(label='Override Existing Files', value=False, info='If the name is the same, checking will replace the existing file, and unchecking will load and continue from it (the rank must be the same).', elem_classes=['no-background']) - with gr.Accordion(label='Target Modules', open=False, elem_classes='tgw-accordion'): + with gr.Accordion(label='Target Modules', open=False): gr.Markdown("Selects which modules to target in training. Targeting more modules is closer to a full fine-tune at the cost of increased VRAM and adapter size.") all_linear = gr.Checkbox(label='Target all linear layers', value=True, info='Targets every nn.Linear layer except lm_head. Works for any model architecture. When checked, the individual module checkboxes below are ignored.', elem_classes=['no-background']) with gr.Row(): @@ -87,7 +87,7 @@ def create_ui(): with gr.Row(): lr_scheduler_type = gr.Dropdown(label='LR Scheduler', value='cosine', choices=['linear', 'constant', 'constant_with_warmup', 'cosine', 'cosine_with_restarts', 'polynomial', 'inverse_sqrt'], info='Learning rate scheduler - defines how the learning rate changes over time. "Constant" means never change, "linear" means to go in a straight line from the learning rate down to 0, cosine follows a curve, etc.', elem_classes=['slim-dropdown']) - with gr.Accordion(label='Advanced Options', open=False, elem_classes='tgw-accordion'): + with gr.Accordion(label='Advanced Options', open=False): with gr.Row(): with gr.Column(): optimizer = gr.Dropdown(label='Optimizer', value='adamw_torch', choices=['adamw_hf', 'adamw_torch', 'adamw_torch_fused', 'adamw_torch_xla', 'adamw_apex_fused', 'adafactor', 'adamw_bnb_8bit', 'adamw_anyprecision', 'sgd', 'adagrad'], info='Optimizer algorithm. adamw_torch is the standard choice. adamw_bnb_8bit uses less VRAM. adafactor is memory-efficient for large models.', elem_classes=['slim-dropdown']) diff --git a/modules/ui_model_menu.py b/modules/ui_model_menu.py index 16505afa..243079a0 100644 --- a/modules/ui_model_menu.py +++ b/modules/ui_model_menu.py @@ -67,13 +67,13 @@ def create_ui(): ) # Multimodal - with gr.Accordion("Multimodal (vision)", open=False, elem_classes='tgw-accordion') as shared.gradio['mmproj_accordion']: + with gr.Accordion("Multimodal (vision)", open=False) as shared.gradio['mmproj_accordion']: with gr.Row(): shared.gradio['mmproj'] = gr.Dropdown(label="mmproj file", choices=utils.get_available_mmproj(), value=lambda: shared.args.mmproj or 'None', elem_classes='slim-dropdown', info=f'Select a file that matches your model. Must be placed in {shared.user_data_dir}/mmproj/', interactive=not mu) ui.create_refresh_button(shared.gradio['mmproj'], lambda: None, lambda: {'choices': utils.get_available_mmproj()}, 'refresh-button', interactive=not mu) # Speculative decoding - with gr.Accordion("Speculative decoding", open=False, elem_classes='tgw-accordion') as shared.gradio['speculative_decoding_accordion']: + with gr.Accordion("Speculative decoding", open=False) as shared.gradio['speculative_decoding_accordion']: shared.gradio['draft_max'] = gr.Number(label="draft-max", precision=0, step=1, value=shared.args.draft_max, info='Maximum number of tokens to draft for speculative decoding. Recommended: 4 for draft model, 64 for n-gram.') gr.Markdown('#### Draft model') @@ -92,7 +92,7 @@ def create_ui(): shared.gradio['spec_ngram_min_hits'] = gr.Number(label="spec-ngram-min-hits", precision=0, step=1, value=shared.args.spec_ngram_min_hits, info='Minimum n-gram hits for ngram-map speculative decoding.', visible=shared.args.spec_type != 'none') gr.Markdown("## Other options") - with gr.Accordion("See more options", open=False, elem_classes='tgw-accordion'): + with gr.Accordion("See more options", open=False): with gr.Row(): with gr.Column(): shared.gradio['parallel'] = gr.Slider(label="parallel", minimum=1, step=1, maximum=64, value=shared.args.parallel, info='Number of parallel request slots for the API. The context size is divided equally among slots. For example, to have 4 slots with 8192 context each, set ctx_size to 32768.')