mirror of
				https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
				synced 2025-10-31 10:03:40 +00:00 
			
		
		
		
	 df02498d03
			
		
	
	
		df02498d03
		
	
	
	
	
		
			
			split some code from ui.py into ui_settings.py ui_gradio_edxtensions.py add before_process callback for scripts add ability for alwayson scripts to specify section and let user reorder those sections
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import gradio as gr
 | |
| 
 | |
| from modules import localization, shared, scripts
 | |
| from modules.paths import script_path, data_path
 | |
| 
 | |
| 
 | |
| def webpath(fn):
 | |
|     if fn.startswith(script_path):
 | |
|         web_path = os.path.relpath(fn, script_path).replace('\\', '/')
 | |
|     else:
 | |
|         web_path = os.path.abspath(fn)
 | |
| 
 | |
|     return f'file={web_path}?{os.path.getmtime(fn)}'
 | |
| 
 | |
| 
 | |
| def javascript_html():
 | |
|     # Ensure localization is in `window` before scripts
 | |
|     head = f'<script type="text/javascript">{localization.localization_js(shared.opts.localization)}</script>\n'
 | |
| 
 | |
|     script_js = os.path.join(script_path, "script.js")
 | |
|     head += f'<script type="text/javascript" src="{webpath(script_js)}"></script>\n'
 | |
| 
 | |
|     for script in scripts.list_scripts("javascript", ".js"):
 | |
|         head += f'<script type="text/javascript" src="{webpath(script.path)}"></script>\n'
 | |
| 
 | |
|     for script in scripts.list_scripts("javascript", ".mjs"):
 | |
|         head += f'<script type="module" src="{webpath(script.path)}"></script>\n'
 | |
| 
 | |
|     if shared.cmd_opts.theme:
 | |
|         head += f'<script type="text/javascript">set_theme(\"{shared.cmd_opts.theme}\");</script>\n'
 | |
| 
 | |
|     return head
 | |
| 
 | |
| 
 | |
| def css_html():
 | |
|     head = ""
 | |
| 
 | |
|     def stylesheet(fn):
 | |
|         return f'<link rel="stylesheet" property="stylesheet" href="{webpath(fn)}">'
 | |
| 
 | |
|     for cssfile in scripts.list_files_with_name("style.css"):
 | |
|         if not os.path.isfile(cssfile):
 | |
|             continue
 | |
| 
 | |
|         head += stylesheet(cssfile)
 | |
| 
 | |
|     if os.path.exists(os.path.join(data_path, "user.css")):
 | |
|         head += stylesheet(os.path.join(data_path, "user.css"))
 | |
| 
 | |
|     return head
 | |
| 
 | |
| 
 | |
| def reload_javascript():
 | |
|     js = javascript_html()
 | |
|     css = css_html()
 | |
| 
 | |
|     def template_response(*args, **kwargs):
 | |
|         res = shared.GradioTemplateResponseOriginal(*args, **kwargs)
 | |
|         res.body = res.body.replace(b'</head>', f'{js}</head>'.encode("utf8"))
 | |
|         res.body = res.body.replace(b'</body>', f'{css}</body>'.encode("utf8"))
 | |
|         res.init_headers()
 | |
|         return res
 | |
| 
 | |
|     gr.routes.templates.TemplateResponse = template_response
 | |
| 
 | |
| 
 | |
| if not hasattr(shared, 'GradioTemplateResponseOriginal'):
 | |
|     shared.GradioTemplateResponseOriginal = gr.routes.templates.TemplateResponse
 |