diff --git a/CHANGELOG.md b/CHANGELOG.md index 398481614..d1bff2e54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,9 @@ - https://github.com/huggingface/diffusers/pull/8566 - https://github.com/huggingface/diffusers/pull/8584 -## Update for 2024-06-18 +## Update for 2024-06-19 -### Highlights for 2024-06-18 +### Highlights for 2024-06-19 Following zero-day **SD3** release, a week later here's a refresh with more than a few improvements. But there's more than SD3: @@ -65,6 +65,7 @@ But there's more than SD3: - fix sdxl "has been incorrectly initialized" - fix api face-hires - fix api ip-adapter +- cleanup image metadata - restructure api examples: `cli/api-*` - handle theme fallback when invalid theme is specified - remove obsolete training code leftovers diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index b9448cc38..dca8e0a71 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -105,7 +105,6 @@ def process_diffusers(p: processing.StableDiffusionProcessing): desc='Base', ) shared.state.sampling_steps = base_args.get('prior_num_inference_steps', None) or base_args.get('num_inference_steps', None) or p.steps - p.extra_generation_params['Pipeline'] = shared.sd_model.__class__.__name__ if shared.opts.scheduler_eta is not None and shared.opts.scheduler_eta > 0 and shared.opts.scheduler_eta < 1: p.extra_generation_params["Sampler Eta"] = shared.opts.scheduler_eta output = None diff --git a/modules/processing_info.py b/modules/processing_info.py index c6f572dae..95e573f21 100644 --- a/modules/processing_info.py +++ b/modules/processing_info.py @@ -63,6 +63,10 @@ def create_infotext(p: StableDiffusionProcessing, all_prompts=None, all_seeds=No "Comment": comment, "Operations": '; '.join(ops).replace('"', '') if len(p.ops) > 0 else 'none', } + # native + if shared.native: + args['Pipeline'] = shared.sd_model.__class__.__name__ + args['T5'] = None if (not shared.opts.add_model_name_to_info or shared.opts.sd_text_encoder is None or shared.opts.sd_text_encoder == 'None') else shared.opts.sd_text_encoder if 'txt2img' in p.ops: args["Variation seed"] = all_subseeds[index] if p.subseed_strength > 0 else None args["Variation strength"] = p.subseed_strength if p.subseed_strength > 0 else None @@ -143,12 +147,20 @@ def create_infotext(p: StableDiffusionProcessing, all_prompts=None, all_seeds=No args['Sampler sigma uncond'] = shared.opts.s_churn if shared.opts.s_churn != shared.opts.data_labels.get('s_churn').default else None args['Sampler sigma noise'] = shared.opts.s_noise if shared.opts.s_noise != shared.opts.data_labels.get('s_noise').default else None args['Sampler sigma tmin'] = shared.opts.s_tmin if shared.opts.s_tmin != shared.opts.data_labels.get('s_tmin').default else None - # tome - args['ToMe'] = shared.opts.tome_ratio if shared.opts.tome_ratio != 0 else None - args['ToDo'] = shared.opts.todo_ratio if shared.opts.todo_ratio != 0 else None + # tome/todo + if shared.opts.token_merging_method == 'ToMe': + args['ToMe'] = shared.opts.tome_ratio if shared.opts.tome_ratio != 0 else None + else: + args['ToDo'] = shared.opts.todo_ratio if shared.opts.todo_ratio != 0 else None args.update(p.extra_generation_params) - params_text = ", ".join([k if k == v else f'{k}: {generation_parameters_copypaste.quote(v)}' for k, v in args.items() if v is not None]) + for k, v in args.copy().items(): + if v is None: + del args[k] + if isinstance(v, str): + if len(v) == 0 or v == '0x0': + del args[k] + params_text = ", ".join([k if k == v else f'{k}: {generation_parameters_copypaste.quote(v)}' for k, v in args.items()]) negative_prompt_text = f"\nNegative prompt: {all_negative_prompts[index]}" if all_negative_prompts[index] else "" infotext = f"{all_prompts[index]}{negative_prompt_text}\n{params_text}".strip() return infotext