using string.format for filename formatting

This commit is contained in:
plucked 2022-10-07 09:24:39 +00:00
parent 89c6c11214
commit 395445e7b0
2 changed files with 14 additions and 20 deletions

View File

@ -562,9 +562,9 @@ class Args(object):
) )
render_group.add_argument( render_group.add_argument(
'--fnformat', '--fnformat',
default='%(prefix)s.%(seed)s.png', default='{prefix}.{seed}.png',
type=str, type=str,
help='Specify the template of the generated files names.', help='Overwrite the filename format. You can use any argument as wildcard enclosed in curly braces. Default is {prefix}.{seed}.png',
) )
render_group.add_argument( render_group.add_argument(
'--grid', '--grid',

View File

@ -356,7 +356,7 @@ def main_loop(gen, opt, infile):
grid_img = make_grid(list(grid_images.values())) grid_img = make_grid(list(grid_images.values()))
grid_seeds = list(grid_images.keys()) grid_seeds = list(grid_images.keys())
first_seed = last_results[0][1] first_seed = last_results[0][1]
filename = f'{prefix}.{first_seed}.png' filename = f'{prefix}.png'
formatted_dream_prompt = opt.dream_prompt_str(seed=first_seed,grid=True,iterations=len(grid_images)) formatted_dream_prompt = opt.dream_prompt_str(seed=first_seed,grid=True,iterations=len(grid_images))
formatted_dream_prompt += f' # {grid_seeds}' formatted_dream_prompt += f' # {grid_seeds}'
metadata = metadata_dumps( metadata = metadata_dumps(
@ -458,23 +458,17 @@ def prepare_image_metadata(
if postprocessed and opt.save_original: if postprocessed and opt.save_original:
filename = choose_postprocess_name(opt,prefix,seed) filename = choose_postprocess_name(opt,prefix,seed)
else: else:
filename = opt.fnformat % { wildcards = dict(opt.__dict__)
'prefix': prefix, wildcards['prefix'] = prefix
'seed': seed, wildcards['seed'] = seed
'steps': opt.steps, try:
'prompt': opt.prompt, filename = opt.fnformat.format(**wildcards)
'width': opt.width, except KeyError as e:
'height': opt.height, print(f'The filename format contains an unknown key \'{e.args[0]}\'. Will use \'{{prefix}}.{{seed}}.png\' instead')
'cfg_scale': opt.cfg_scale, filename = f'{prefix}.{seed}.png'
'perlin': opt.perlin, except IndexError as e:
'threshold': opt.threshold, print(f'The filename format is broken or complete. Will use \'{{prefix}}.{{seed}}.png\' instead')
'gfpgan_strength': opt.gfpgan_strength, filename = f'{prefix}.{seed}.png'
'outcrop': opt.outcrop,
'upscale': opt.upscale,
'embiggen': opt.embiggen,
'embiggen_tiles': opt.embiggen_tiles,
'out_direction': opt.out_direction
}
if opt.variation_amount > 0: if opt.variation_amount > 0:
first_seed = first_seed or seed first_seed = first_seed or seed