mirror of
				https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
				synced 2025-10-31 01:54:44 +00:00 
			
		
		
		
	
		
			
	
	
		
			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 |