mirror of
				https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
				synced 2025-11-04 03:55:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
import gradio as gr
 | 
						|
 | 
						|
from modules import localization, shared, scripts, util
 | 
						|
from modules.paths import script_path, data_path
 | 
						|
 | 
						|
 | 
						|
def webpath(fn):
 | 
						|
    return f'file={util.truncate_path(fn)}?{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
 |