Unverified Commit fab73f2e authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #11325 from stablegeniusdiffuser/dev-batch-grid-metadata

Add parameter to differentiate between batch run grids or ordinary images to write proper metadata
parents 1bf01b73 27e9e3f6
Loading
Loading
Loading
Loading
+7 −6
Original line number Original line Diff line number Diff line
@@ -551,7 +551,7 @@ def program_version():
    return res
    return res




def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iteration=0, position_in_batch=0):
def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iteration=0, position_in_batch=0, use_main_prompt=False):
    index = position_in_batch + iteration * p.batch_size
    index = position_in_batch + iteration * p.batch_size


    clip_skip = getattr(p, 'clip_skip', opts.CLIP_stop_at_last_layers)
    clip_skip = getattr(p, 'clip_skip', opts.CLIP_stop_at_last_layers)
@@ -592,9 +592,10 @@ def create_infotext(p, all_prompts, all_seeds, all_subseeds, comments=None, iter


    generation_params_text = ", ".join([k if k == v else f'{k}: {generation_parameters_copypaste.quote(v)}' for k, v in generation_params.items() if v is not None])
    generation_params_text = ", ".join([k if k == v else f'{k}: {generation_parameters_copypaste.quote(v)}' for k, v in generation_params.items() if v is not None])


    prompt_text = p.prompt if use_main_prompt else all_prompts[index]
    negative_prompt_text = f"\nNegative prompt: {p.all_negative_prompts[index]}" if p.all_negative_prompts[index] else ""
    negative_prompt_text = f"\nNegative prompt: {p.all_negative_prompts[index]}" if p.all_negative_prompts[index] else ""


    return f"{all_prompts[index]}{negative_prompt_text}\n{generation_params_text}".strip()
    return f"{prompt_text}{negative_prompt_text}\n{generation_params_text}".strip()




def process_images(p: StableDiffusionProcessing) -> Processed:
def process_images(p: StableDiffusionProcessing) -> Processed:
@@ -666,8 +667,8 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
    else:
    else:
        p.all_subseeds = [int(subseed) + x for x in range(len(p.all_prompts))]
        p.all_subseeds = [int(subseed) + x for x in range(len(p.all_prompts))]


    def infotext(iteration=0, position_in_batch=0):
    def infotext(iteration=0, position_in_batch=0, use_main_prompt=False):
        return create_infotext(p, p.all_prompts, p.all_seeds, p.all_subseeds, comments, iteration, position_in_batch)
        return create_infotext(p, p.all_prompts, p.all_seeds, p.all_subseeds, comments, iteration, position_in_batch, use_main_prompt)


    if os.path.exists(cmd_opts.embeddings_dir) and not p.do_not_reload_embeddings:
    if os.path.exists(cmd_opts.embeddings_dir) and not p.do_not_reload_embeddings:
        model_hijack.embedding_db.load_textual_inversion_embeddings()
        model_hijack.embedding_db.load_textual_inversion_embeddings()
@@ -827,7 +828,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
            grid = images.image_grid(output_images, p.batch_size)
            grid = images.image_grid(output_images, p.batch_size)


            if opts.return_grid:
            if opts.return_grid:
                text = infotext()
                text = infotext(use_main_prompt=True)
                infotexts.insert(0, text)
                infotexts.insert(0, text)
                if opts.enable_pnginfo:
                if opts.enable_pnginfo:
                    grid.info["parameters"] = text
                    grid.info["parameters"] = text
@@ -835,7 +836,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
                index_of_first_image = 1
                index_of_first_image = 1


            if opts.grid_save:
            if opts.grid_save:
                images.save_image(grid, p.outpath_grids, "grid", p.all_seeds[0], p.all_prompts[0], opts.grid_format, info=infotext(), short_filename=not opts.grid_extended_filename, p=p, grid=True)
                images.save_image(grid, p.outpath_grids, "grid", p.all_seeds[0], p.all_prompts[0], opts.grid_format, info=infotext(use_main_prompt=True), short_filename=not opts.grid_extended_filename, p=p, grid=True)


    if not p.disable_extra_networks and p.extra_network_data:
    if not p.disable_extra_networks and p.extra_network_data:
        extra_networks.deactivate(p, p.extra_network_data)
        extra_networks.deactivate(p, p.extra_network_data)