Merge pull request #63 from Hapseleg/master

easy-use added presamplers and a fix for the lora stack
This commit is contained in:
nkchocoai
2025-03-30 16:26:34 +09:00
committed by GitHub
2 changed files with 95 additions and 3 deletions
+89 -1
View File
@@ -4,7 +4,12 @@ from ..formatters import calc_model_hash, calc_lora_hash, convert_skip_clip
import re
def get_lora_model_name_stack(node_id, obj, prompt, extra_data, outputs, input_data):
return get_lora_data_stack(input_data, "lora_\d_name")
toggled_on = input_data[0]["toggle"][0]
if toggled_on:
return get_lora_data_stack(input_data, "lora_\d_name")
else:
return []
def get_lora_model_hash_stack(node_id, obj, prompt, extra_data, outputs, input_data):
@@ -47,9 +52,36 @@ SAMPLERS = {
"positive": "positive",
"negative": "negative",
},
"easy preSampling": {
},
"easy preSamplingAdvanced": {
},
"easy preSamplingCascade": {
},
"easy preSamplingCustom": {
},
"easy preSamplingDynamicCFG": {
},
"easy preSamplingLayerDiffusion": {
},
"easy preSamplingNoiseIn": {
},
"easy preSamplingSdTurbo": {
}
}
CAPTURE_FIELD_LIST = {
"easy fullLoader": {
MetaField.MODEL_NAME: {"field_name": "ckpt_name"},
@@ -84,6 +116,62 @@ CAPTURE_FIELD_LIST = {
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSampling": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingAdvanced": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingCascade": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingCustom": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingDynamicCFG": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingLayerDiffusion": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingNoiseIn": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy preSamplingSdTurbo": {
MetaField.SEED: {"field_name": "seed"},
MetaField.STEPS: {"field_name": "steps"},
MetaField.CFG: {"field_name": "cfg"},
MetaField.SAMPLER_NAME: {"field_name": "sampler_name"},
MetaField.SCHEDULER: {"field_name": "scheduler"},
},
"easy loraStack": {
MetaField.LORA_MODEL_NAME: {"selector": get_lora_model_name_stack},
MetaField.LORA_MODEL_HASH: {"selector": get_lora_model_hash_stack},
+6 -2
View File
@@ -53,6 +53,7 @@ class SaveImageWithMetaData(BaseNode):
"add_counter_to_filename": ("BOOLEAN", {"default": True}),
"civitai_sampler": ("BOOLEAN", {"default": False}),
"extra_metadata": ("EXTRA_METADATA", {}),
"save_workflow_image": ("BOOLEAN", {"default": True}),
},
"hidden": {"prompt": "PROMPT", "extra_pnginfo": "EXTRA_PNGINFO"},
}
@@ -79,6 +80,7 @@ class SaveImageWithMetaData(BaseNode):
extra_metadata={},
prompt=None,
extra_pnginfo=None,
save_workflow_image=True,
):
pnginfo_dict_src = self.gen_pnginfo(
sampler_selection_method, sampler_selection_node_id, civitai_sampler
@@ -104,12 +106,14 @@ class SaveImageWithMetaData(BaseNode):
parameters = Capture.gen_parameters_str(pnginfo_dict)
if pnginfo_dict:
metadata.add_text("parameters", parameters)
if prompt is not None:
if prompt is not None and save_workflow_image:
metadata.add_text("prompt", json.dumps(prompt))
if extra_pnginfo is not None:
for x in extra_pnginfo:
metadata.add_text(x, json.dumps(extra_pnginfo[x]))
if save_workflow_image == False:
metadata.add_text("workflow", "")
filename_prefix = self.format_filename(filename_prefix, pnginfo_dict)
output_path = os.path.join(self.output_dir, filename_prefix)
if not os.path.exists(os.path.dirname(output_path)):