save image, pnginfo

https://arca.live/b/aiart/73639753
pull/2/head v23.4.2
Bingsu 2023-04-10 10:09:48 +09:00
parent e8a5a6d244
commit 6dc70b4e47
3 changed files with 33 additions and 7 deletions

View File

@ -4,6 +4,10 @@ Dotgeo(hijack) Detection Detailer
ddetailer with torch 2.0, mmcv 2.0, mmdet 3.0
integrated with [noahge4/ddetailer](https://github.com/noahge4/ddetailer)
AI실사채널 ChatGPT23님의 [ddetailer 수정본](https://arca.live/b/aireal/72297207) 병합됨
## Installation
1. remove original ddetailer extension

View File

@ -1,6 +1,6 @@
[project]
name = "dddetailer"
version = "23.4.1"
version = "23.4.2"
description = "An object detection and auto-mask extension for Stable Diffusion web UI."
authors = [
{name = "dowon", email = "ks2515@naver.com"},

View File

@ -406,7 +406,7 @@ class DetectionDetailerScript(scripts.Script):
dd_neg_prompt=None,
):
processing.fix_seed(p)
dd_info = None
dd_info = ""
seed = p.seed
init_seed = p.seed.copy() if isinstance(p.seed, list) else p.seed
init_subseed = p.subseed.copy() if isinstance(p.subseed, list) else p.subseed
@ -416,6 +416,7 @@ class DetectionDetailerScript(scripts.Script):
p.do_not_save_grid = True
p.do_not_save_samples = True
is_txt2img = isinstance(p, StableDiffusionProcessingTxt2Img)
if not is_txt2img:
orig_image = p.init_images[0]
else:
@ -464,7 +465,7 @@ class DetectionDetailerScript(scripts.Script):
for n in range(ddetail_count):
devices.torch_gc()
start_seed = seed + n
dd_info = None
dd_info = ""
if is_txt2img:
print(f"Processing initial image for output generation {n + 1}.")
@ -475,6 +476,9 @@ class DetectionDetailerScript(scripts.Script):
else:
init_image = orig_image
if opts.enable_pnginfo:
init_image.info["parameters"] = info
output_images.append(init_image)
masks_a = []
masks_b_pre = []
@ -595,7 +599,7 @@ class DetectionDetailerScript(scripts.Script):
)
processed = processing.process_images(p)
if dd_info is None:
if not dd_info:
dd_info = info + (
f', DDetailer prompt: "{dd_prompt}", DDetailer neg prompt: "{dd_neg_prompt}", '
f'DDetailer model a: "{dd_model_a}", DDetailer conf a: {dd_conf_a}, '
@ -610,10 +614,15 @@ class DetectionDetailerScript(scripts.Script):
p.init_images = processed.images
if gen_count > 0:
output_images[n] = processed.images[0]
final_image = processed.images[0]
if opts.enable_pnginfo:
final_image.info["parameters"] = dd_info
output_images[n] = final_image
if opts.samples_save:
images.save_image(
processed.images[0],
final_image,
p.outpath_samples,
"",
start_seed,
@ -625,8 +634,21 @@ class DetectionDetailerScript(scripts.Script):
else:
print(f"No model {label_a} detections for output generation {n} with current settings.")
if opts.samples_save:
images.save_image(
init_image,
p.outpath_samples,
"",
start_seed,
p.prompt,
opts.samples_format,
info=info,
p=p,
)
state.job = f"Generation {n + 1} out of {state.job_count}"
if dd_info is None:
if not dd_info:
dd_info = info + ", No detections found."
infotexts.append(dd_info)