Merge pull request #63 from Hapseleg/master
easy-use added presamplers and a fix for the lora stack
This commit is contained in:
@@ -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
@@ -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)):
|
||||
|
||||
Reference in New Issue
Block a user