Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
Stable Diffusion Webui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
novelai-storage
Stable Diffusion Webui
Commits
00dfe27f
Commit
00dfe27f
authored
May 29, 2023
by
Aarni Koskela
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add & use modules.errors.print_error where currently printing exception info by hand
parent
b957dcfe
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
117 additions
and
153 deletions
+117
-153
extensions-builtin/LDSR/scripts/ldsr_model.py
extensions-builtin/LDSR/scripts/ldsr_model.py
+2
-5
extensions-builtin/ScuNET/scripts/scunet_model.py
extensions-builtin/ScuNET/scripts/scunet_model.py
+3
-3
modules/api/api.py
modules/api/api.py
+4
-3
modules/call_queue.py
modules/call_queue.py
+9
-13
modules/codeformer_model.py
modules/codeformer_model.py
+4
-6
modules/config_states.py
modules/config_states.py
+4
-8
modules/errors.py
modules/errors.py
+16
-0
modules/extensions.py
modules/extensions.py
+4
-6
modules/gfpgan_model.py
modules/gfpgan_model.py
+2
-4
modules/hypernetworks/hypernetwork.py
modules/hypernetworks/hypernetwork.py
+5
-9
modules/images.py
modules/images.py
+3
-6
modules/interrogate.py
modules/interrogate.py
+2
-3
modules/launch_utils.py
modules/launch_utils.py
+4
-3
modules/localization.py
modules/localization.py
+2
-4
modules/processing.py
modules/processing.py
+1
-1
modules/realesrgan_model.py
modules/realesrgan_model.py
+5
-9
modules/safe.py
modules/safe.py
+14
-12
modules/script_callbacks.py
modules/script_callbacks.py
+4
-5
modules/script_loading.py
modules/script_loading.py
+3
-4
modules/scripts.py
modules/scripts.py
+12
-23
modules/sd_hijack_optimizations.py
modules/sd_hijack_optimizations.py
+2
-4
modules/textual_inversion/textual_inversion.py
modules/textual_inversion/textual_inversion.py
+3
-6
modules/ui.py
modules/ui.py
+4
-6
modules/ui_extensions.py
modules/ui_extensions.py
+3
-6
scripts/prompts_from_file.py
scripts/prompts_from_file.py
+2
-4
No files found.
extensions-builtin/LDSR/scripts/ldsr_model.py
View file @
00dfe27f
import
os
import
sys
import
traceback
from
basicsr.utils.download_util
import
load_file_from_url
from
modules.errors
import
print_error
from
modules.upscaler
import
Upscaler
,
UpscalerData
from
ldsr_model_arch
import
LDSR
from
modules
import
shared
,
script_callbacks
...
...
@@ -51,10 +50,8 @@ class UpscalerLDSR(Upscaler):
try
:
return
LDSR
(
model
,
yaml
)
except
Exception
:
print
(
"Error importing LDSR:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error importing LDSR"
,
exc_info
=
True
)
return
None
def
do_upscale
(
self
,
img
,
path
):
...
...
extensions-builtin/ScuNET/scripts/scunet_model.py
View file @
00dfe27f
import
os.path
import
sys
import
traceback
import
PIL.Image
import
numpy
as
np
...
...
@@ -12,6 +11,8 @@ from basicsr.utils.download_util import load_file_from_url
import
modules.upscaler
from
modules
import
devices
,
modelloader
,
script_callbacks
from
scunet_model_arch
import
SCUNet
as
net
from
modules.errors
import
print_error
from
modules.shared
import
opts
...
...
@@ -38,8 +39,7 @@ class UpscalerScuNET(modules.upscaler.Upscaler):
scaler_data
=
modules
.
upscaler
.
UpscalerData
(
name
,
file
,
self
,
4
)
scalers
.
append
(
scaler_data
)
except
Exception
:
print
(
f
"Error loading ScuNET model: {file}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error loading ScuNET model: {file}"
,
exc_info
=
True
)
if
add_model2
:
scaler_data2
=
modules
.
upscaler
.
UpscalerData
(
self
.
model_name2
,
self
.
model_url2
,
self
)
scalers
.
append
(
scaler_data2
)
...
...
modules/api/api.py
View file @
00dfe27f
...
...
@@ -16,6 +16,7 @@ from secrets import compare_digest
import
modules.shared
as
shared
from
modules
import
sd_samplers
,
deepbooru
,
sd_hijack
,
images
,
scripts
,
ui
,
postprocessing
from
modules.api
import
models
from
modules.errors
import
print_error
from
modules.shared
import
opts
from
modules.processing
import
StableDiffusionProcessingTxt2Img
,
StableDiffusionProcessingImg2Img
,
process_images
from
modules.textual_inversion.textual_inversion
import
create_embedding
,
train_embedding
...
...
@@ -108,7 +109,6 @@ def api_middleware(app: FastAPI):
from
rich.console
import
Console
console
=
Console
()
except
Exception
:
import
traceback
rich_available
=
False
@
app
.
middleware
(
"http"
)
...
...
@@ -139,11 +139,12 @@ def api_middleware(app: FastAPI):
"errors"
:
str
(
e
),
}
if
not
isinstance
(
e
,
HTTPException
):
# do not print backtrace on known httpexceptions
print
(
f
"API error: {request.method}: {request.url} {err}"
)
message
=
f
"API error: {request.method}: {request.url} {err}"
if
rich_available
:
print
(
message
)
console
.
print_exception
(
show_locals
=
True
,
max_frames
=
2
,
extra_lines
=
1
,
suppress
=
[
anyio
,
starlette
],
word_wrap
=
False
,
width
=
min
([
console
.
width
,
200
]))
else
:
traceback
.
print_exc
(
)
print_error
(
message
,
exc_info
=
True
)
return
JSONResponse
(
status_code
=
vars
(
e
)
.
get
(
'status_code'
,
500
),
content
=
jsonable_encoder
(
err
))
@
app
.
middleware
(
"http"
)
...
...
modules/call_queue.py
View file @
00dfe27f
import
html
import
sys
import
threading
import
traceback
import
time
from
modules
import
shared
,
progress
from
modules.errors
import
print_error
queue_lock
=
threading
.
Lock
()
...
...
@@ -56,16 +55,14 @@ def wrap_gradio_call(func, extra_outputs=None, add_stats=False):
try
:
res
=
list
(
func
(
*
args
,
**
kwargs
))
except
Exception
as
e
:
# When printing out our debug argument list, do not print out more than a MB of text
max_debug_str_len
=
131072
# (1024*1024)/8
print
(
"Error completing request"
,
file
=
sys
.
stderr
)
argStr
=
f
"Arguments: {args} {kwargs}"
print
(
argStr
[:
max_debug_str_len
],
file
=
sys
.
stderr
)
if
len
(
argStr
)
>
max_debug_str_len
:
print
(
f
"(Argument list truncated at {max_debug_str_len}/{len(argStr)} characters)"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
# When printing out our debug argument list,
# do not print out more than a 100 KB of text
max_debug_str_len
=
131072
message
=
"Error completing request"
arg_str
=
f
"Arguments: {args} {kwargs}"
[:
max_debug_str_len
]
if
len
(
arg_str
)
>
max_debug_str_len
:
arg_str
+=
f
" (Argument list truncated at {max_debug_str_len}/{len(arg_str)} characters)"
print_error
(
f
"{message}
\n
{arg_str}"
,
exc_info
=
True
)
shared
.
state
.
job
=
""
shared
.
state
.
job_count
=
0
...
...
@@ -108,4 +105,3 @@ def wrap_gradio_call(func, extra_outputs=None, add_stats=False):
return
tuple
(
res
)
return
f
modules/codeformer_model.py
View file @
00dfe27f
import
os
import
sys
import
traceback
import
cv2
import
torch
...
...
@@ -8,6 +6,7 @@ import torch
import
modules.face_restoration
import
modules.shared
from
modules
import
shared
,
devices
,
modelloader
from
modules.errors
import
print_error
from
modules.paths
import
models_path
# codeformer people made a choice to include modified basicsr library to their project which makes
...
...
@@ -105,8 +104,8 @@ def setup_model(dirname):
restored_face
=
tensor2img
(
output
,
rgb2bgr
=
True
,
min_max
=
(
-
1
,
1
))
del
output
torch
.
cuda
.
empty_cache
()
except
Exception
as
error
:
print
(
f
'
\t
Failed inference for CodeFormer: {error}'
,
file
=
sys
.
stderr
)
except
Exception
:
print
_error
(
'Failed inference for CodeFormer'
,
exc_info
=
True
)
restored_face
=
tensor2img
(
cropped_face_t
,
rgb2bgr
=
True
,
min_max
=
(
-
1
,
1
))
restored_face
=
restored_face
.
astype
(
'uint8'
)
...
...
@@ -135,7 +134,6 @@ def setup_model(dirname):
shared
.
face_restorers
.
append
(
codeformer
)
except
Exception
:
print
(
"Error setting up CodeFormer:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error setting up CodeFormer"
,
exc_info
=
True
)
# sys.path = stored_sys_path
modules/config_states.py
View file @
00dfe27f
...
...
@@ -3,8 +3,6 @@ Supports saving and restoring webui and extensions from a known working set of c
"""
import
os
import
sys
import
traceback
import
json
import
time
import
tqdm
...
...
@@ -14,6 +12,7 @@ from collections import OrderedDict
import
git
from
modules
import
shared
,
extensions
from
modules.errors
import
print_error
from
modules.paths_internal
import
script_path
,
config_states_dir
...
...
@@ -53,8 +52,7 @@ def get_webui_config():
if
os
.
path
.
exists
(
os
.
path
.
join
(
script_path
,
".git"
)):
webui_repo
=
git
.
Repo
(
script_path
)
except
Exception
:
print
(
f
"Error reading webui git info from {script_path}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error reading webui git info from {script_path}"
,
exc_info
=
True
)
webui_remote
=
None
webui_commit_hash
=
None
...
...
@@ -134,8 +132,7 @@ def restore_webui_config(config):
if
os
.
path
.
exists
(
os
.
path
.
join
(
script_path
,
".git"
)):
webui_repo
=
git
.
Repo
(
script_path
)
except
Exception
:
print
(
f
"Error reading webui git info from {script_path}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error reading webui git info from {script_path}"
,
exc_info
=
True
)
return
try
:
...
...
@@ -143,8 +140,7 @@ def restore_webui_config(config):
webui_repo
.
git
.
reset
(
webui_commit_hash
,
hard
=
True
)
print
(
f
"* Restored webui to commit {webui_commit_hash}."
)
except
Exception
:
print
(
f
"Error restoring webui to commit {webui_commit_hash}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error restoring webui to commit{webui_commit_hash}"
)
def
restore_extension_config
(
config
):
...
...
modules/errors.py
View file @
00dfe27f
import
sys
import
textwrap
import
traceback
def
print_error
(
message
:
str
,
*
,
exc_info
:
bool
=
False
,
)
->
None
:
"""
Print an error message to stderr, with optional traceback.
"""
for
line
in
message
.
splitlines
():
print
(
"***"
,
line
,
file
=
sys
.
stderr
)
if
exc_info
:
print
(
textwrap
.
indent
(
traceback
.
format_exc
(),
" "
),
file
=
sys
.
stderr
)
print
(
"---"
)
def
print_error_explanation
(
message
):
lines
=
message
.
strip
()
.
split
(
"
\n
"
)
max_len
=
max
([
len
(
x
)
for
x
in
lines
])
...
...
modules/extensions.py
View file @
00dfe27f
import
os
import
sys
import
threading
import
traceback
import
git
from
modules
import
shared
from
modules.errors
import
print_error
from
modules.paths_internal
import
extensions_dir
,
extensions_builtin_dir
,
script_path
# noqa: F401
extensions
=
[]
...
...
@@ -56,8 +55,7 @@ class Extension:
if
os
.
path
.
exists
(
os
.
path
.
join
(
self
.
path
,
".git"
)):
repo
=
git
.
Repo
(
self
.
path
)
except
Exception
:
print
(
f
"Error reading github repository info from {self.path}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error reading github repository info from {self.path}"
,
exc_info
=
True
)
if
repo
is
None
or
repo
.
bare
:
self
.
remote
=
None
...
...
@@ -72,8 +70,8 @@ class Extension:
self
.
commit_hash
=
commit
.
hexsha
self
.
version
=
self
.
commit_hash
[:
8
]
except
Exception
as
ex
:
print
(
f
"Failed reading extension data from Git repository ({self.name}): {ex}"
,
file
=
sys
.
stderr
)
except
Exception
:
print
_error
(
f
"Failed reading extension data from Git repository ({self.name})"
,
exc_info
=
True
)
self
.
remote
=
None
self
.
have_info_from_repo
=
True
...
...
modules/gfpgan_model.py
View file @
00dfe27f
import
os
import
sys
import
traceback
import
facexlib
import
gfpgan
import
modules.face_restoration
from
modules
import
paths
,
shared
,
devices
,
modelloader
from
modules.errors
import
print_error
model_dir
=
"GFPGAN"
user_path
=
None
...
...
@@ -112,5 +111,4 @@ def setup_model(dirname):
shared
.
face_restorers
.
append
(
FaceRestorerGFPGAN
())
except
Exception
:
print
(
"Error setting up GFPGAN:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error setting up GFPGAN"
,
exc_info
=
True
)
modules/hypernetworks/hypernetwork.py
View file @
00dfe27f
...
...
@@ -2,8 +2,6 @@ import datetime
import
glob
import
html
import
os
import
sys
import
traceback
import
inspect
import
modules.textual_inversion.dataset
...
...
@@ -12,6 +10,7 @@ import tqdm
from
einops
import
rearrange
,
repeat
from
ldm.util
import
default
from
modules
import
devices
,
processing
,
sd_models
,
shared
,
sd_samplers
,
hashes
,
sd_hijack_checkpoint
from
modules.errors
import
print_error
from
modules.textual_inversion
import
textual_inversion
,
logging
from
modules.textual_inversion.learn_schedule
import
LearnRateScheduler
from
torch
import
einsum
...
...
@@ -325,17 +324,14 @@ def load_hypernetwork(name):
if
path
is
None
:
return
None
hypernetwork
=
Hypernetwork
()
try
:
hypernetwork
=
Hypernetwork
()
hypernetwork
.
load
(
path
)
return
hypernetwork
except
Exception
:
print
(
f
"Error loading hypernetwork {path}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error loading hypernetwork {path}"
,
exc_info
=
True
)
return
None
return
hypernetwork
def
load_hypernetworks
(
names
,
multipliers
=
None
):
already_loaded
=
{}
...
...
@@ -770,7 +766,7 @@ Last saved image: {html.escape(last_saved_image)}<br/>
</p>
"""
except
Exception
:
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print
_error
(
"Exception in training hypernetwork"
,
exc_info
=
True
)
finally
:
pbar
.
leave
=
False
pbar
.
close
()
...
...
modules/images.py
View file @
00dfe27f
import
datetime
import
sys
import
traceback
import
pytz
import
io
...
...
@@ -18,6 +16,7 @@ import json
import
hashlib
from
modules
import
sd_samplers
,
shared
,
script_callbacks
,
errors
from
modules.errors
import
print_error
from
modules.paths_internal
import
roboto_ttf_file
from
modules.shared
import
opts
...
...
@@ -464,8 +463,7 @@ class FilenameGenerator:
replacement
=
fun
(
self
,
*
pattern_args
)
except
Exception
:
replacement
=
None
print
(
f
"Error adding [{pattern}] to filename"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error adding [{pattern}] to filename"
,
exc_info
=
True
)
if
replacement
==
NOTHING_AND_SKIP_PREVIOUS_TEXT
:
continue
...
...
@@ -697,8 +695,7 @@ def read_info_from_image(image):
Negative prompt: {json_info["uc"]}
Steps: {json_info["steps"]}, Sampler: {sampler}, CFG scale: {json_info["scale"]}, Seed: {json_info["seed"]}, Size: {image.width}x{image.height}, Clip skip: 2, ENSD: 31337"""
except
Exception
:
print
(
"Error parsing NovelAI image generation parameters:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error parsing NovelAI image generation parameters"
,
exc_info
=
True
)
return
geninfo
,
items
...
...
modules/interrogate.py
View file @
00dfe27f
import
os
import
sys
import
traceback
from
collections
import
namedtuple
from
pathlib
import
Path
import
re
...
...
@@ -12,6 +11,7 @@ from torchvision import transforms
from
torchvision.transforms.functional
import
InterpolationMode
from
modules
import
devices
,
paths
,
shared
,
lowvram
,
modelloader
,
errors
from
modules.errors
import
print_error
blip_image_eval_size
=
384
clip_model_name
=
'ViT-L/14'
...
...
@@ -216,8 +216,7 @@ class InterrogateModels:
res
+=
f
", {match}"
except
Exception
:
print
(
"Error interrogating"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error interrogating"
,
exc_info
=
True
)
res
+=
"<error>"
self
.
unload
()
...
...
modules/launch_utils.py
View file @
00dfe27f
...
...
@@ -8,6 +8,7 @@ import json
from
functools
import
lru_cache
from
modules
import
cmd_args
from
modules.errors
import
print_error
from
modules.paths_internal
import
script_path
,
extensions_dir
args
,
_
=
cmd_args
.
parser
.
parse_known_args
()
...
...
@@ -188,7 +189,7 @@ def run_extension_installer(extension_dir):
print
(
run
(
f
'"{python}" "{path_installer}"'
,
errdesc
=
f
"Error running install.py for extension {extension_dir}"
,
custom_env
=
env
))
except
Exception
as
e
:
print
(
e
,
file
=
sys
.
stderr
)
print
_error
(
str
(
e
)
)
def
list_extensions
(
settings_file
):
...
...
@@ -198,8 +199,8 @@ def list_extensions(settings_file):
if
os
.
path
.
isfile
(
settings_file
):
with
open
(
settings_file
,
"r"
,
encoding
=
"utf8"
)
as
file
:
settings
=
json
.
load
(
file
)
except
Exception
as
e
:
print
(
e
,
file
=
sys
.
stderr
)
except
Exception
:
print
_error
(
"Could not load settings"
,
exc_info
=
True
)
disabled_extensions
=
set
(
settings
.
get
(
'disabled_extensions'
,
[]))
disable_all_extensions
=
settings
.
get
(
'disable_all_extensions'
,
'none'
)
...
...
modules/localization.py
View file @
00dfe27f
import
json
import
os
import
sys
import
traceback
from
modules.errors
import
print_error
localizations
=
{}
...
...
@@ -31,7 +30,6 @@ def localization_js(current_localization_name: str) -> str:
with
open
(
fn
,
"r"
,
encoding
=
"utf8"
)
as
file
:
data
=
json
.
load
(
file
)
except
Exception
:
print
(
f
"Error loading localization from {fn}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error loading localization from {fn}"
,
exc_info
=
True
)
return
f
"window.localization = {json.dumps(data)}"
modules/processing.py
View file @
00dfe27f
import
json
import
logging
import
math
import
os
import
sys
...
...
@@ -23,7 +24,6 @@ import modules.images as images
import
modules.styles
import
modules.sd_models
as
sd_models
import
modules.sd_vae
as
sd_vae
import
logging
from
ldm.data.util
import
AddMiDaS
from
ldm.models.diffusion.ddpm
import
LatentDepth2ImageDiffusion
...
...
modules/realesrgan_model.py
View file @
00dfe27f
import
os
import
sys
import
traceback
import
numpy
as
np
from
PIL
import
Image
from
basicsr.utils.download_util
import
load_file_from_url
from
realesrgan
import
RealESRGANer
from
modules.errors
import
print_error
from
modules.upscaler
import
Upscaler
,
UpscalerData
from
modules.shared
import
cmd_opts
,
opts
from
modules
import
modelloader
...
...
@@ -36,8 +35,7 @@ class UpscalerRealESRGAN(Upscaler):
self
.
scalers
.
append
(
scaler
)
except
Exception
:
print
(
"Error importing Real-ESRGAN:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error importing Real-ESRGAN"
,
exc_info
=
True
)
self
.
enable
=
False
self
.
scalers
=
[]
...
...
@@ -76,9 +74,8 @@ class UpscalerRealESRGAN(Upscaler):
info
.
local_data_path
=
load_file_from_url
(
url
=
info
.
data_path
,
model_dir
=
self
.
model_download_path
,
progress
=
True
)
return
info
except
Exception
as
e
:
print
(
f
"Error making Real-ESRGAN models list: {e}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
except
Exception
:
print_error
(
"Error making Real-ESRGAN models list"
,
exc_info
=
True
)
return
None
def
load_models
(
self
,
_
):
...
...
@@ -135,5 +132,4 @@ def get_realesrgan_models(scaler):
]
return
models
except
Exception
:
print
(
"Error making Real-ESRGAN models list:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error making Real-ESRGAN models list"
,
exc_info
=
True
)
modules/safe.py
View file @
00dfe27f
...
...
@@ -2,8 +2,6 @@
import
pickle
import
collections
import
sys
import
traceback
import
torch
import
numpy
...
...
@@ -11,6 +9,8 @@ import _codecs
import
zipfile
import
re
from
modules.errors
import
print_error
# PyTorch 1.13 and later have _TypedStorage renamed to TypedStorage
TypedStorage
=
torch
.
storage
.
TypedStorage
if
hasattr
(
torch
.
storage
,
'TypedStorage'
)
else
torch
.
storage
.
_TypedStorage
...
...
@@ -136,17 +136,20 @@ def load_with_extra(filename, extra_handler=None, *args, **kwargs):
check_pt
(
filename
,
extra_handler
)
except
pickle
.
UnpicklingError
:
print
(
f
"Error verifying pickled file from {filename}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print
(
"-----> !!!! The file is most likely corrupted !!!! <-----"
,
file
=
sys
.
stderr
)
print
(
"You can skip this check with --disable-safe-unpickle commandline argument, but that is not going to help you.
\n\n
"
,
file
=
sys
.
stderr
)
print_error
(
f
"Error verifying pickled file from {filename}
\n
"
"-----> !!!! The file is most likely corrupted !!!! <-----
\n
"
"You can skip this check with --disable-safe-unpickle commandline argument, but that is not going to help you.
\n\n
"
,
exc_info
=
True
,
)
return
None
except
Exception
:
print
(
f
"Error verifying pickled file from {filename}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print
(
"
\n
The file may be malicious, so the program is not going to read it."
,
file
=
sys
.
stderr
)
print
(
"You can skip this check with --disable-safe-unpickle commandline argument.
\n\n
"
,
file
=
sys
.
stderr
)
print_error
(
f
"Error verifying pickled file from {filename}
\n
"
f
"The file may be malicious, so the program is not going to read it.
\n
"
f
"You can skip this check with --disable-safe-unpickle commandline argument.
\n\n
"
,
exc_info
=
True
,
)
return
None
return
unsafe_torch_load
(
filename
,
*
args
,
**
kwargs
)
...
...
@@ -190,4 +193,3 @@ with safe.Extra(handler):
unsafe_torch_load
=
torch
.
load
torch
.
load
=
load
global_extra_handler
=
None
modules/script_callbacks.py
View file @
00dfe27f
import
sys
import
traceback
from
collections
import
namedtuple
import
inspect
from
collections
import
namedtuple
from
typing
import
Optional
,
Dict
,
Any
from
fastapi
import
FastAPI
from
gradio
import
Blocks
from
modules.errors
import
print_error
def
report_exception
(
c
,
job
):
print
(
f
"Error executing callback {job} for {c.script}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error executing callback {job} for {c.script}"
,
exc_info
=
True
)
class
ImageSaveParams
:
...
...
modules/script_loading.py
View file @
00dfe27f
import
os
import
sys
import
traceback
import
importlib.util
from
modules.errors
import
print_error
def
load_module
(
path
):
module_spec
=
importlib
.
util
.
spec_from_file_location
(
os
.
path
.
basename
(
path
),
path
)
...
...
@@ -27,5 +27,4 @@ def preload_extensions(extensions_dir, parser):
module
.
preload
(
parser
)
except
Exception
:
print
(
f
"Error running preload() for {preload_script}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running preload() for {preload_script}"
,
exc_info
=
True
)
modules/scripts.py
View file @
00dfe27f
import
os
import
re
import
sys
import
traceback
from
collections
import
namedtuple
import
gradio
as
gr
from
modules
import
shared
,
paths
,
script_callbacks
,
extensions
,
script_loading
,
scripts_postprocessing
from
modules.errors
import
print_error
AlwaysVisible
=
object
()
...
...
@@ -264,8 +264,7 @@ def load_scripts():
register_scripts_from_module
(
script_module
)
except
Exception
:
print
(
f
"Error loading script: {scriptfile.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error loading script: {scriptfile.filename}"
,
exc_info
=
True
)
finally
:
sys
.
path
=
syspath
...
...
@@ -280,11 +279,9 @@ def load_scripts():
def
wrap_call
(
func
,
filename
,
funcname
,
*
args
,
default
=
None
,
**
kwargs
):
try
:
res
=
func
(
*
args
,
**
kwargs
)
return
res
return
func
(
*
args
,
**
kwargs
)
except
Exception
:
print
(
f
"Error calling: {filename}/{funcname}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error calling: {filename}/{funcname}"
,
exc_info
=
True
)
return
default
...
...
@@ -450,8 +447,7 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
process
(
p
,
*
script_args
)
except
Exception
:
print
(
f
"Error running process: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running process: {script.filename}"
,
exc_info
=
True
)
def
before_process_batch
(
self
,
p
,
**
kwargs
):
for
script
in
self
.
alwayson_scripts
:
...
...
@@ -459,8 +455,7 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
before_process_batch
(
p
,
*
script_args
,
**
kwargs
)
except
Exception
:
print
(
f
"Error running before_process_batch: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running before_process_batch: {script.filename}"
,
exc_info
=
True
)
def
process_batch
(
self
,
p
,
**
kwargs
):
for
script
in
self
.
alwayson_scripts
:
...
...
@@ -468,8 +463,7 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
process_batch
(
p
,
*
script_args
,
**
kwargs
)
except
Exception
:
print
(
f
"Error running process_batch: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running process_batch: {script.filename}"
,
exc_info
=
True
)
def
postprocess
(
self
,
p
,
processed
):
for
script
in
self
.
alwayson_scripts
:
...
...
@@ -477,8 +471,7 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
postprocess
(
p
,
processed
,
*
script_args
)
except
Exception
:
print
(
f
"Error running postprocess: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running postprocess: {script.filename}"
,
exc_info
=
True
)
def
postprocess_batch
(
self
,
p
,
images
,
**
kwargs
):
for
script
in
self
.
alwayson_scripts
:
...
...
@@ -486,8 +479,7 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
postprocess_batch
(
p
,
*
script_args
,
images
=
images
,
**
kwargs
)
except
Exception
:
print
(
f
"Error running postprocess_batch: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running postprocess_batch: {script.filename}"
,
exc_info
=
True
)
def
postprocess_image
(
self
,
p
,
pp
:
PostprocessImageArgs
):
for
script
in
self
.
alwayson_scripts
:
...
...
@@ -495,24 +487,21 @@ class ScriptRunner:
script_args
=
p
.
script_args
[
script
.
args_from
:
script
.
args_to
]
script
.
postprocess_image
(
p
,
pp
,
*
script_args
)
except
Exception
:
print
(
f
"Error running postprocess_batch: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running postprocess_image: {script.filename}"
,
exc_info
=
True
)
def
before_component
(
self
,
component
,
**
kwargs
):
for
script
in
self
.
scripts
:
try
:
script
.
before_component
(
component
,
**
kwargs
)
except
Exception
:
print
(
f
"Error running before_component: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running before_component: {script.filename}"
,
exc_info
=
True
)
def
after_component
(
self
,
component
,
**
kwargs
):
for
script
in
self
.
scripts
:
try
:
script
.
after_component
(
component
,
**
kwargs
)
except
Exception
:
print
(
f
"Error running after_component: {script.filename}"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error running after_component: {script.filename}"
,
exc_info
=
True
)
def
reload_sources
(
self
,
cache
):
for
si
,
script
in
list
(
enumerate
(
self
.
scripts
)):
...
...
modules/sd_hijack_optimizations.py
View file @
00dfe27f
from
__future__
import
annotations
import
math
import
sys
import
traceback
import
psutil
import
torch
...
...
@@ -11,6 +9,7 @@ from ldm.util import default
from
einops
import
rearrange
from
modules
import
shared
,
errors
,
devices
,
sub_quadratic_attention
from
modules.errors
import
print_error
from
modules.hypernetworks
import
hypernetwork
import
ldm.modules.attention
...
...
@@ -140,8 +139,7 @@ if shared.cmd_opts.xformers or shared.cmd_opts.force_enable_xformers:
import
xformers.ops
shared
.
xformers_available
=
True
except
Exception
:
print
(
"Cannot import xformers"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Cannot import xformers"
,
exc_info
=
True
)
def
get_available_vram
():
...
...
modules/textual_inversion/textual_inversion.py
View file @
00dfe27f
import
os
import
sys
import
traceback
from
collections
import
namedtuple
import
torch
...
...
@@ -16,6 +14,7 @@ from torch.utils.tensorboard import SummaryWriter
from
modules
import
shared
,
devices
,
sd_hijack
,
processing
,
sd_models
,
images
,
sd_samplers
,
sd_hijack_checkpoint
import
modules.textual_inversion.dataset
from
modules.errors
import
print_error
from
modules.textual_inversion.learn_schedule
import
LearnRateScheduler
from
modules.textual_inversion.image_embedding
import
embedding_to_b64
,
embedding_from_b64
,
insert_image_data_embed
,
extract_image_data_embed
,
caption_image_overlay
...
...
@@ -207,8 +206,7 @@ class EmbeddingDatabase:
self
.
load_from_file
(
fullfn
,
fn
)
except
Exception
:
print
(
f
"Error loading embedding {fn}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error loading embedding {fn}"
,
exc_info
=
True
)
continue
def
load_textual_inversion_embeddings
(
self
,
force_reload
=
False
):
...
...
@@ -632,8 +630,7 @@ Last saved image: {html.escape(last_saved_image)}<br/>
filename
=
os
.
path
.
join
(
shared
.
cmd_opts
.
embeddings_dir
,
f
'{embedding_name}.pt'
)
save_embedding
(
embedding
,
optimizer
,
checkpoint
,
embedding_name
,
filename
,
remove_cached_checksum
=
True
)
except
Exception
:
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
pass
print_error
(
"Error training embedding"
,
exc_info
=
True
)
finally
:
pbar
.
leave
=
False
pbar
.
close
()
...
...
modules/ui.py
View file @
00dfe27f
...
...
@@ -2,7 +2,6 @@ import json
import
mimetypes
import
os
import
sys
import
traceback
from
functools
import
reduce
import
warnings
...
...
@@ -14,6 +13,7 @@ from PIL import Image, PngImagePlugin # noqa: F401
from
modules.call_queue
import
wrap_gradio_gpu_call
,
wrap_queued_call
,
wrap_gradio_call
from
modules
import
sd_hijack
,
sd_models
,
localization
,
script_callbacks
,
ui_extensions
,
deepbooru
,
sd_vae
,
extra_networks
,
ui_common
,
ui_postprocessing
,
progress
,
ui_loadsave
from
modules.errors
import
print_error
from
modules.ui_components
import
FormRow
,
FormGroup
,
ToolButton
,
FormHTML
from
modules.paths
import
script_path
,
data_path
...
...
@@ -231,9 +231,8 @@ def connect_reuse_seed(seed: gr.Number, reuse_seed: gr.Button, generation_info:
res
=
all_seeds
[
index
if
0
<=
index
<
len
(
all_seeds
)
else
0
]
except
json
.
decoder
.
JSONDecodeError
:
if
gen_info_string
!=
''
:
print
(
"Error parsing JSON generation info:"
,
file
=
sys
.
stderr
)
print
(
gen_info_string
,
file
=
sys
.
stderr
)
if
gen_info_string
:
print_error
(
f
"Error parsing JSON generation info: {gen_info_string}"
)
return
[
res
,
gr_show
(
False
)]
...
...
@@ -1753,8 +1752,7 @@ def create_ui():
try
:
results
=
modules
.
extras
.
run_modelmerger
(
*
args
)
except
Exception
as
e
:
print
(
"Error loading/saving model file:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
"Error loading/saving model file"
,
exc_info
=
True
)
modules
.
sd_models
.
list_models
()
# to remove the potentially missing models from the list
return
[
*
[
gr
.
Dropdown
.
update
(
choices
=
modules
.
sd_models
.
checkpoint_tiles
())
for
_
in
range
(
4
)],
f
"Error merging checkpoints: {e}"
]
return
results
...
...
modules/ui_extensions.py
View file @
00dfe27f
import
json
import
os.path
import
sys
import
threading
import
time
from
datetime
import
datetime
import
traceback
import
git
...
...
@@ -14,6 +12,7 @@ import shutil
import
errno
from
modules
import
extensions
,
shared
,
paths
,
config_states
from
modules.errors
import
print_error
from
modules.paths_internal
import
config_states_dir
from
modules.call_queue
import
wrap_gradio_gpu_call
...
...
@@ -46,8 +45,7 @@ def apply_and_restart(disable_list, update_list, disable_all):
try
:
ext
.
fetch_and_reset_hard
()
except
Exception
:
print
(
f
"Error getting updates for {ext.name}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error getting updates for {ext.name}"
,
exc_info
=
True
)
shared
.
opts
.
disabled_extensions
=
disabled
shared
.
opts
.
disable_all_extensions
=
disable_all
...
...
@@ -113,8 +111,7 @@ def check_updates(id_task, disable_list):
if
'FETCH_HEAD'
not
in
str
(
e
):
raise
except
Exception
:
print
(
f
"Error checking updates for {ext.name}:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error checking updates for {ext.name}"
,
exc_info
=
True
)
shared
.
state
.
nextjob
()
...
...
scripts/prompts_from_file.py
View file @
00dfe27f
import
copy
import
random
import
sys
import
traceback
import
shlex
import
modules.scripts
as
scripts
import
gradio
as
gr
from
modules
import
sd_samplers
from
modules.errors
import
print_error
from
modules.processing
import
Processed
,
process_images
from
modules.shared
import
state
...
...
@@ -136,8 +135,7 @@ class Script(scripts.Script):
try
:
args
=
cmdargs
(
line
)
except
Exception
:
print
(
f
"Error parsing line {line} as commandline:"
,
file
=
sys
.
stderr
)
print
(
traceback
.
format_exc
(),
file
=
sys
.
stderr
)
print_error
(
f
"Error parsing line {line} as commandline"
,
exc_info
=
True
)
args
=
{
"prompt"
:
line
}
else
:
args
=
{
"prompt"
:
line
}
...
...
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