diff options
author | Yuta Hayashibe <yuta@hayashibe.jp> | 2022-10-27 13:00:28 +0000 |
---|---|---|
committer | Yuta Hayashibe <yuta@hayashibe.jp> | 2022-10-27 13:00:28 +0000 |
commit | c4b5ca5778340b21288d84dfb8fe1d5773c886a8 (patch) | |
tree | 4cdcb0064a554ea1e6e0f219b74bea76b28a8789 /modules/images.py | |
parent | 737eb28faca8be2bb996ee0930ec77d1f7ebd939 (diff) | |
download | stable-diffusion-webui-gfx803-c4b5ca5778340b21288d84dfb8fe1d5773c886a8.tar.gz stable-diffusion-webui-gfx803-c4b5ca5778340b21288d84dfb8fe1d5773c886a8.tar.bz2 stable-diffusion-webui-gfx803-c4b5ca5778340b21288d84dfb8fe1d5773c886a8.zip |
Truncate too long filename
Diffstat (limited to 'modules/images.py')
-rw-r--r-- | modules/images.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/modules/images.py b/modules/images.py index 7870b5b7..42363ed3 100644 --- a/modules/images.py +++ b/modules/images.py @@ -416,6 +416,14 @@ def get_next_sequence_number(path, basename): return result + 1
+def truncate_fullpath(full_path, encoding='utf-8'): + dir_name, full_name = os.path.split(full_path) + file_name, file_ext = os.path.splitext(full_name) + max_length = os.statvfs(dir_name).f_namemax + file_name_truncated = file_name.encode(encoding)[:max_length - len(file_ext)].decode(encoding, 'ignore') + return os.path.join(dir_name , file_name_truncated + file_ext) + + def save_image(image, path, basename, seed=None, prompt=None, extension='png', info=None, short_filename=False, no_prompt=False, grid=False, pnginfo_section_name='parameters', p=None, existing_info=None, forced_filename=None, suffix="", save_to_dirs=None):
"""Save an image.
@@ -456,7 +464,7 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i if save_to_dirs:
dirname = namegen.apply(opts.directories_filename_pattern or "[prompt_words]").lstrip(' ').rstrip('\\ /')
- path = os.path.join(path, dirname)
+ path = truncate_fullpath(os.path.join(path, dirname))
os.makedirs(path, exist_ok=True)
@@ -480,13 +488,13 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i fullfn = None
for i in range(500):
fn = f"{basecount + i:05}" if basename == '' else f"{basename}-{basecount + i:04}"
- fullfn = os.path.join(path, f"{fn}{file_decoration}.{extension}")
+ fullfn = truncate_fullpath(os.path.join(path, f"{fn}{file_decoration}.{extension}"))
if not os.path.exists(fullfn):
break
else:
- fullfn = os.path.join(path, f"{file_decoration}.{extension}")
+ fullfn = truncate_fullpath(os.path.join(path, f"{file_decoration}.{extension}"))
else:
- fullfn = os.path.join(path, f"{forced_filename}.{extension}")
+ fullfn = truncate_fullpath(os.path.join(path, f"{forced_filename}.{extension}"))
pnginfo = existing_info or {}
if info is not None:
|