mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 09:14:35 +02:00
lora: keep parsed network data through pipeline
Signed-off-by: Vladimir Mandic <mandic00@live.com>
This commit is contained in:
@@ -102,8 +102,8 @@ class HEDdetector:
|
||||
if scribble:
|
||||
detected_map = nms(detected_map, 127, 3.0)
|
||||
detected_map = cv2.GaussianBlur(detected_map, (0, 0), 3.0)
|
||||
detected_map[detected_map > 4] = 255
|
||||
detected_map[detected_map < 255] = 0
|
||||
detected_map[detected_map > 4] = 255 # pylint: disable=unsupported-assignment-operation
|
||||
detected_map[detected_map < 255] = 0 # pylint: disable=unsupported-assignment-operation
|
||||
if opts.control_move_processor:
|
||||
self.model.to('cpu')
|
||||
if output_type == "pil":
|
||||
|
||||
+14
-11
@@ -168,17 +168,20 @@ def parse_prompt(prompt: str | None) -> tuple[str, defaultdict[str, list[ExtraNe
|
||||
return updated_prompt, res
|
||||
|
||||
|
||||
def parse_prompts(prompts: list[str], extra_data: defaultdict[str, list[ExtraNetworkParams]] | None = None):
|
||||
updated_prompt_list: list[str] = []
|
||||
extra_data = extra_data or defaultdict(list)
|
||||
def parse_prompts(
|
||||
prompts: list[str],
|
||||
extra_data: defaultdict[str, list[ExtraNetworkParams]] | None = None,
|
||||
):
|
||||
updated_prompts: list[str] = []
|
||||
if extra_data is None:
|
||||
extra_data = defaultdict(list)
|
||||
for prompt in prompts:
|
||||
updated_prompt, parsed_extra_data = parse_prompt(prompt)
|
||||
if not extra_data:
|
||||
extra_data = parsed_extra_data
|
||||
elif parsed_extra_data:
|
||||
extra_data = parsed_extra_data
|
||||
else:
|
||||
pass
|
||||
updated_prompt_list.append(updated_prompt)
|
||||
if parsed_extra_data:
|
||||
for key, values in parsed_extra_data.items():
|
||||
for item in values:
|
||||
if item not in extra_data[key]:
|
||||
extra_data[key].append(item)
|
||||
|
||||
return updated_prompt_list, extra_data
|
||||
updated_prompts.append(updated_prompt)
|
||||
return updated_prompts, extra_data
|
||||
|
||||
@@ -249,7 +249,7 @@ def get_conditions(width, height, condition_strength, condition_images, conditio
|
||||
def get_prompts(p):
|
||||
prompt = shared.prompt_styles.apply_styles_to_prompt(p.prompt, p.styles)
|
||||
negative = shared.prompt_styles.apply_negative_styles_to_prompt(p.negative_prompt, p.styles)
|
||||
prompts, networks = extra_networks.parse_prompts([prompt])
|
||||
prompts, networks = extra_networks.parse_prompts([prompt], p.network_data)
|
||||
prompt = prompts[0] if len(prompts) > 0 else prompt
|
||||
return prompt, negative, networks
|
||||
|
||||
|
||||
@@ -510,8 +510,7 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed:
|
||||
p.scripts.before_process_batch(p, batch_number=n, prompts=p.prompts, seeds=p.seeds, subseeds=p.subseeds)
|
||||
if not p.prompts:
|
||||
break
|
||||
p.prompts, p.network_data = extra_networks.parse_prompts(p.prompts)
|
||||
|
||||
p.prompts, p.network_data = extra_networks.parse_prompts(p.prompts, p.network_data)
|
||||
|
||||
if p.scripts is not None and isinstance(p.scripts, scripts_manager.ScriptRunner):
|
||||
p.scripts.process_batch(p, batch_number=n, prompts=p.prompts, seeds=p.seeds, subseeds=p.subseeds)
|
||||
|
||||
@@ -307,7 +307,7 @@ def process_hires(p: processing.StableDiffusionProcessing, output):
|
||||
sched_eta = p.scheduler_eta if p.scheduler_eta is not None else shared.opts.scheduler_eta
|
||||
if len(p.refiner_prompt) > 0:
|
||||
prompts = len(output.images)* [p.refiner_prompt]
|
||||
prompts, p.network_data = extra_networks.parse_prompts(prompts)
|
||||
prompts, p.network_data = extra_networks.parse_prompts(prompts, p.network_data)
|
||||
reset_prompts = True
|
||||
if reset_prompts or ('base' in p.skip):
|
||||
extra_networks.activate(p)
|
||||
|
||||
Reference in New Issue
Block a user