mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
Return sorted filenames in path_utils (#340)
Linux does not guarantee filenames are returned in any specific order. This leads to exporting frames in random order, sorting them here makes the export run sequentially. Other portions of the program should remain unaffected, if not behave more consistently (E.G. get_first_file_by_stem). This mostly helpful during exporting. Say you are expecting to not have faces for frames 1000-2000, during your export all the "no faces for..." messages will appear in random order. Since you are expecting to see this you ignore them. If you are also (unexpectedly) missing a face for frame 3000 you will not head the warning since it's mixed up in all the warnings that you are expecting. With this patch export runs in sequential order, you'll see the messages all in a row for frames 1000-2000, then again at 3000. The user is much more likely to see and head the warning this way. This also allows you to force stop the export midway though and have a contiguous set of frames to encode and preview.
This commit is contained in:
parent
d16759bcd3
commit
625bcc212d
1 changed files with 7 additions and 7 deletions
|
@ -11,7 +11,7 @@ def get_image_paths(dir_path, image_extensions=image_extensions):
|
||||||
for x in list(scandir(str(dir_path))):
|
for x in list(scandir(str(dir_path))):
|
||||||
if any([x.name.lower().endswith(ext) for ext in image_extensions]):
|
if any([x.name.lower().endswith(ext) for ext in image_extensions]):
|
||||||
result.append(x.path)
|
result.append(x.path)
|
||||||
return result
|
return sorted(result)
|
||||||
|
|
||||||
def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
||||||
result = get_image_paths(dir_path)
|
result = get_image_paths(dir_path)
|
||||||
|
@ -26,7 +26,7 @@ def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
||||||
continue
|
continue
|
||||||
result_dup.add(f_stem)
|
result_dup.add(f_stem)
|
||||||
|
|
||||||
return result
|
return sorted(result)
|
||||||
|
|
||||||
def get_file_paths(dir_path):
|
def get_file_paths(dir_path):
|
||||||
dir_path = Path (dir_path)
|
dir_path = Path (dir_path)
|
||||||
|
@ -34,7 +34,7 @@ def get_file_paths(dir_path):
|
||||||
result = []
|
result = []
|
||||||
if dir_path.exists():
|
if dir_path.exists():
|
||||||
return [ x.path for x in list(scandir(str(dir_path))) if x.is_file() ]
|
return [ x.path for x in list(scandir(str(dir_path))) if x.is_file() ]
|
||||||
return result
|
return sorted(result)
|
||||||
|
|
||||||
def get_all_dir_names (dir_path):
|
def get_all_dir_names (dir_path):
|
||||||
dir_path = Path (dir_path)
|
dir_path = Path (dir_path)
|
||||||
|
@ -43,7 +43,7 @@ def get_all_dir_names (dir_path):
|
||||||
if dir_path.exists():
|
if dir_path.exists():
|
||||||
return [ x.name for x in list(scandir(str(dir_path))) if x.is_dir() ]
|
return [ x.name for x in list(scandir(str(dir_path))) if x.is_dir() ]
|
||||||
|
|
||||||
return result
|
return sorted(result)
|
||||||
|
|
||||||
def get_all_dir_names_startswith (dir_path, startswith):
|
def get_all_dir_names_startswith (dir_path, startswith):
|
||||||
dir_path = Path (dir_path)
|
dir_path = Path (dir_path)
|
||||||
|
@ -54,14 +54,14 @@ def get_all_dir_names_startswith (dir_path, startswith):
|
||||||
for x in list(scandir(str(dir_path))):
|
for x in list(scandir(str(dir_path))):
|
||||||
if x.name.lower().startswith(startswith):
|
if x.name.lower().startswith(startswith):
|
||||||
result.append ( x.name[len(startswith):] )
|
result.append ( x.name[len(startswith):] )
|
||||||
return result
|
return sorted(result)
|
||||||
|
|
||||||
def get_first_file_by_stem (dir_path, stem, exts=None):
|
def get_first_file_by_stem (dir_path, stem, exts=None):
|
||||||
dir_path = Path (dir_path)
|
dir_path = Path (dir_path)
|
||||||
stem = stem.lower()
|
stem = stem.lower()
|
||||||
|
|
||||||
if dir_path.exists():
|
if dir_path.exists():
|
||||||
for x in list(scandir(str(dir_path))):
|
for x in sorted(list(scandir(str(dir_path)))):
|
||||||
if not x.is_file():
|
if not x.is_file():
|
||||||
continue
|
continue
|
||||||
xp = Path(x.path)
|
xp = Path(x.path)
|
||||||
|
@ -80,4 +80,4 @@ def delete_all_files (dir_path):
|
||||||
paths = get_file_paths(dir_path)
|
paths = get_file_paths(dir_path)
|
||||||
for p in paths:
|
for p in paths:
|
||||||
p = Path(p)
|
p = Path(p)
|
||||||
p.unlink()
|
p.unlink()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue