Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
S
stable-diffusion-webui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
stable-diffusion-webui
Commits
f726df8a
Commit
f726df8a
authored
Jan 21, 2023
by
James Tolton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Compile and serve js from /statica instead of inline in html
parent
a2749ec6
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
5 deletions
+33
-5
ui.py
modules/ui.py
+30
-5
put-static-files-here.txt
statica/put-static-files-here.txt
+1
-0
webui.py
webui.py
+2
-0
No files found.
modules/ui.py
View file @
f726df8a
...
...
@@ -10,6 +10,7 @@ import sys
import
tempfile
import
time
import
traceback
from
collections
import
OrderedDict
from
functools
import
partial
,
reduce
import
warnings
...
...
@@ -1918,27 +1919,51 @@ def create_ui():
def
reload_javascript
():
javascript_files
=
OrderedDict
()
with
open
(
os
.
path
.
join
(
script_path
,
"script.js"
),
"r"
,
encoding
=
"utf8"
)
as
jsfile
:
javascript
=
f
'<script>{jsfile.read()}</script>'
contents
=
jsfile
.
read
()
javascript_files
[
"script.js"
]
=
[
contents
]
# javascript = f'<script>{contents}</script>'
scripts_list
=
modules
.
scripts
.
list_scripts
(
"javascript"
,
".js"
)
for
basedir
,
filename
,
path
in
scripts_list
:
with
open
(
path
,
"r"
,
encoding
=
"utf8"
)
as
jsfile
:
javascript
+=
f
"
\n
<!-- {filename} --><script>{jsfile.read()}</script>"
contents
=
jsfile
.
read
()
javascript_files
[
filename
]
=
[
contents
]
# javascript += f"\n<!-- {filename} --><script>{contents}</script>"
if
cmd_opts
.
theme
is
not
None
:
javascript
+=
f
"
\n
<script>set_theme('{cmd_opts.theme}');</script>
\n
"
javascript_files
[
"theme.js"
]
=
[
f
"set_theme('{cmd_opts.theme}');"
]
# javascript += f"\n<script>set_theme('{cmd_opts.theme}');</script>\n"
javascript
+=
f
"
\n
<script>{localization.localization_js(shared.opts.localization)}</script>"
# javascript += f"\n<script>{localization.localization_js(shared.opts.localization)}</script>"
javascript_files
[
"localization.js"
]
=
[
f
"{localization.localization_js(shared.opts.localization)}"
]
compiled_name
=
"webui-compiled.js"
head
=
f
"""
<script src=/statica/{compiled_name}?{int(time.time())} type="text/javascript"></script>
"""
def
template_response
(
*
args
,
**
kwargs
):
res
=
shared
.
GradioTemplateResponseOriginal
(
*
args
,
**
kwargs
)
res
.
body
=
res
.
body
.
replace
(
b
'</head>'
,
f
'{
javascript
}</head>'
.
encode
(
"utf8"
))
b
'</head>'
,
f
'{
head
}</head>'
.
encode
(
"utf8"
))
res
.
init_headers
()
return
res
for
k
in
javascript_files
:
javascript_files
[
k
]
=
"
\n
"
.
join
(
javascript_files
[
k
])
# make static_path if not exists
statica_path
=
os
.
path
.
join
(
script_path
,
'statica'
)
if
not
os
.
path
.
exists
(
statica_path
):
os
.
mkdir
(
statica_path
)
javascript_out
=
"
\n\n\n
"
.
join
([
f
"// <!-- {k} -->
\n\n
{v}"
for
k
,
v
in
javascript_files
.
items
()])
with
open
(
os
.
path
.
join
(
script_path
,
"statica"
,
compiled_name
),
"w"
,
encoding
=
"utf8"
)
as
jsfile
:
jsfile
.
write
(
javascript_out
)
gradio
.
routes
.
templates
.
TemplateResponse
=
template_response
...
...
statica/put-static-files-here.txt
0 → 100644
View file @
f726df8a
ayo
\ No newline at end of file
webui.py
View file @
f726df8a
...
...
@@ -8,6 +8,7 @@ import re
from
fastapi
import
FastAPI
from
fastapi.middleware.cors
import
CORSMiddleware
from
fastapi.middleware.gzip
import
GZipMiddleware
from
starlette.staticfiles
import
StaticFiles
from
modules
import
import_hook
,
errors
,
extra_networks
from
modules
import
extra_networks_hypernet
,
ui_extra_networks_hypernets
,
ui_extra_networks_textual_inversion
...
...
@@ -195,6 +196,7 @@ def webui():
setup_cors
(
app
)
app
.
add_middleware
(
GZipMiddleware
,
minimum_size
=
1000
)
app
.
mount
(
"/statica"
,
StaticFiles
(
directory
=
os
.
path
.
join
(
script_path
,
'statica'
)),
name
=
"statica"
)
modules
.
progress
.
setup_progress_api
(
app
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment