@@ -159,6 +159,24 @@ def create_settings_menus(default_preset):
159
159
shared .gradio ['softprompts_menu' ].change (load_soft_prompt , [shared .gradio ['softprompts_menu' ]], [shared .gradio ['softprompts_menu' ]], show_progress = True )
160
160
shared .gradio ['upload_softprompt' ].upload (upload_soft_prompt , [shared .gradio ['upload_softprompt' ]], [shared .gradio ['softprompts_menu' ]])
161
161
162
+ def set_interface_arguments (interface_mode , extensions , cmd_active ):
163
+ modes = ["default" , "notebook" , "chat" , "cai_chat" ]
164
+ cmd_list = vars (shared .args )
165
+ cmd_list = [k for k in cmd_list if type (cmd_list [k ]) is bool and k not in modes ]
166
+
167
+ shared .args .extensions = extensions
168
+ for k in modes [1 :]:
169
+ exec (f"shared.args.{ k } = False" )
170
+ if interface_mode != "default" :
171
+ exec (f"shared.args.{ interface_mode } = True" )
172
+
173
+ for k in cmd_list :
174
+ exec (f"shared.args.{ k } = False" )
175
+ for k in cmd_active :
176
+ exec (f"shared.args.{ k } = True" )
177
+
178
+ shared .need_restart = True
179
+
162
180
available_models = get_available_models ()
163
181
available_presets = get_available_presets ()
164
182
available_characters = get_available_characters ()
@@ -384,31 +402,24 @@ def create_interface():
384
402
shared .gradio ['interface' ].load (None , None , None , _js = f"() => {{{ ui .main_js } }}" )
385
403
386
404
with gr .Tab ("Interface mode" , elem_id = "interface-mode" ):
387
- def set_interface_mode (mode , choices , stream ):
388
- shared .args .extensions = choices
389
- shared .args .no_stream = stream
390
- for k in ["notebook" , "chat" , "cai_chat" ]:
391
- exec (f"shared.args.{ k } = False" )
392
- if mode != "default" :
393
- exec (f"shared.args.{ mode } = True" )
394
- shared .need_restart = True
395
-
396
- extensions = get_available_extensions ()
397
405
modes = ["default" , "notebook" , "chat" , "cai_chat" ]
398
406
current_mode = "default"
399
- for mode in modes :
400
- if hasattr ( shared . args , mode ) and eval (f"shared.args.{ mode } " ):
407
+ for mode in modes [ 1 :] :
408
+ if eval (f"shared.args.{ mode } " ):
401
409
current_mode = mode
410
+ break
411
+ cmd_list = vars (shared .args )
412
+ cmd_list = [k for k in cmd_list if type (cmd_list [k ]) is bool and k not in modes ]
413
+ active_cmd_list = [k for k in cmd_list if vars (shared .args )[k ]]
402
414
403
415
gr .Markdown ("*Experimental*" )
404
- modes_menu = gr .Dropdown (choices = modes , value = current_mode , label = "Mode" )
405
- group = gr .CheckboxGroup (choices = extensions , value = shared .args .extensions , label = "Available extensions" )
416
+ shared .gradio ['interface_modes_menu' ] = gr .Dropdown (choices = modes , value = current_mode , label = "Mode" )
417
+ shared .gradio ['extensions_menu' ] = gr .CheckboxGroup (choices = get_available_extensions (), value = shared .args .extensions , label = "Available extensions" )
418
+ shared .gradio ['cmd_arguments_menu' ] = gr .CheckboxGroup (choices = cmd_list , value = active_cmd_list , label = "Boolean command-line flags" )
419
+ shared .gradio ['reset_interface' ] = gr .Button ("Apply and restart the interface" , type = "primary" )
406
420
407
- with gr .Box ():
408
- stream = gr .Checkbox (label = 'no-stream' , value = shared .args .no_stream )
409
- kill = gr .Button ("Apply and restart the interface" )
410
- kill .click (set_interface_mode , [modes_menu , group , stream ], None )
411
- kill .click (lambda : None , None , None , _js = '() => {document.body.innerHTML=\' <h1 style="font-family:monospace;margin-top:20%;color:lightgray;text-align:center;">Reloading...</h1>\' ; setTimeout(function(){location.reload()},2500)}' )
421
+ shared .gradio ['reset_interface' ].click (set_interface_arguments , [shared .gradio [k ] for k in ['interface_modes_menu' , 'extensions_menu' , 'cmd_arguments_menu' ]], None )
422
+ shared .gradio ['reset_interface' ].click (lambda : None , None , None , _js = '() => {document.body.innerHTML=\' <h1 style="font-family:monospace;margin-top:20%;color:lightgray;text-align:center;">Reloading...</h1>\' ; setTimeout(function(){location.reload()},2500)}' )
412
423
413
424
if shared .args .extensions is not None :
414
425
extensions_module .create_extensions_block ()
0 commit comments