Jump latent upscale fallback to spatial split
This commit is contained in:
+50
-29
@@ -277,7 +277,14 @@ class DumasJSONStringToObjectNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_string": ("STRING", {"multiline": True}),
|
||||
"json_string": (
|
||||
"STRING",
|
||||
{
|
||||
"multiline": True,
|
||||
"default": '{\n "shots": [\n {\n "prompt": "Francine stands by the window."\n }\n ]\n}',
|
||||
"tooltip": "Raw JSON text to parse into a structured JSON object."
|
||||
},
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,7 +306,14 @@ class DumasStripIterationSuffixNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"filename": ("STRING", {"default": "", "multiline": False}),
|
||||
"filename": (
|
||||
"STRING",
|
||||
{
|
||||
"default": "francine_pose_final.png",
|
||||
"multiline": False,
|
||||
"tooltip": "Filename to normalize by removing everything after the first underscore in the stem."
|
||||
},
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +330,14 @@ class DumasSlugifyStringNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"text": ("STRING", {"default": "", "multiline": False}),
|
||||
"text": (
|
||||
"STRING",
|
||||
{
|
||||
"default": "Francine Coffee Shop",
|
||||
"multiline": False,
|
||||
"tooltip": "Text to slugify into lowercase ASCII words joined with hyphens."
|
||||
},
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,8 +355,8 @@ class DumasJSONObjectToStringNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"pretty": ("BOOLEAN", {"default": True}),
|
||||
"sort_keys": ("BOOLEAN", {"default": False}),
|
||||
"pretty": ("BOOLEAN", {"default": True, "tooltip": "Pretty-print the JSON with indentation."}),
|
||||
"sort_keys": ("BOOLEAN", {"default": False, "tooltip": "Sort object keys alphabetically before serializing."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -355,7 +376,7 @@ class DumasJSONGetValueNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"path": ("STRING", {"default": "", "multiline": False}),
|
||||
"path": ("STRING", {"default": "shots.0.prompt", "multiline": False, "tooltip": "Dot-path to read, such as 'shots.0.prompt'."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -373,8 +394,8 @@ class DumasJSONSetValueNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"path": ("STRING", {"default": "", "multiline": False}),
|
||||
"value_json": ("STRING", {"multiline": True, "default": "null"}),
|
||||
"path": ("STRING", {"default": "shots.0.prompt", "multiline": False, "tooltip": "Dot-path to write, such as 'shots.0.prompt' or 'shots.1.duration'."}),
|
||||
"value_json": ("STRING", {"multiline": True, "default": '"Francine stands by the window."', "tooltip": "JSON value to store at the path. Must be valid JSON, so strings need quotes."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,7 +419,7 @@ class DumasJSONHasKeyNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"path": ("STRING", {"default": "", "multiline": False}),
|
||||
"path": ("STRING", {"default": "shots.0.prompt", "multiline": False, "tooltip": "Dot-path to test for existence."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -416,7 +437,7 @@ class DumasJSONRemoveKeyNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"path": ("STRING", {"default": "", "multiline": False}),
|
||||
"path": ("STRING", {"default": "shots.0.prompt", "multiline": False, "tooltip": "Dot-path to remove from the object."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -434,7 +455,7 @@ class DumasJSONPickFieldsNode:
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"paths": ("STRING", {"multiline": True, "default": ""}),
|
||||
"paths": ("STRING", {"multiline": True, "default": "shots.0.prompt\nshots.0.duration", "tooltip": "One dot-path per line. Only those fields are copied into the output object."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,8 +484,8 @@ class DumasJSONMergeObjectsNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"base_object": ("JSON",),
|
||||
"overlay_object": ("JSON",),
|
||||
"base_object": ("JSON", {"tooltip": "Base JSON object to start from."}),
|
||||
"overlay_object": ("JSON", {"tooltip": "Overlay JSON object whose keys replace or merge into the base object."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -482,7 +503,7 @@ class DumasJSONKeysNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_object": ("JSON",),
|
||||
"json_object": ("JSON", {"tooltip": "JSON object whose top-level keys should be listed."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -502,7 +523,7 @@ class DumasJSONArrayLengthNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_array": ("JSON",),
|
||||
"json_array": ("JSON", {"tooltip": "JSON array whose length should be measured."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -521,8 +542,8 @@ class DumasJSONArrayAppendNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_array": ("JSON",),
|
||||
"value_json": ("STRING", {"multiline": True, "default": "null"}),
|
||||
"json_array": ("JSON", {"tooltip": "JSON array to append to."}),
|
||||
"value_json": ("STRING", {"multiline": True, "default": '{"prompt":"Francine looks toward the door."}', "tooltip": "JSON value to append. Must be valid JSON."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -548,10 +569,10 @@ class DumasJSONArraySliceNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_array": ("JSON",),
|
||||
"start": ("INT", {"default": 0, "step": 1}),
|
||||
"end": ("INT", {"default": 0, "step": 1}),
|
||||
"step": ("INT", {"default": 1, "step": 1, "min": 1}),
|
||||
"json_array": ("JSON", {"tooltip": "JSON array to slice."}),
|
||||
"start": ("INT", {"default": 0, "step": 1, "tooltip": "Zero-based start index."}),
|
||||
"end": ("INT", {"default": 0, "step": 1, "tooltip": "Zero-based end index. Use 0 to mean 'to the end'."}),
|
||||
"step": ("INT", {"default": 1, "step": 1, "min": 1, "tooltip": "Slice step size."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -572,9 +593,9 @@ class DumasJSONArrayIteratorNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_input": ("JSON",),
|
||||
"index": ("INT", {"default": 0, "min": 0, "step": 1}),
|
||||
"mode": (["fixed", "incr", "decr"], {"default": "fixed"}),
|
||||
"json_input": ("JSON", {"tooltip": "JSON array to iterate over."}),
|
||||
"index": ("INT", {"default": 0, "min": 0, "step": 1, "tooltip": "Current zero-based index."}),
|
||||
"mode": (["fixed", "incr", "decr"], {"default": "fixed", "tooltip": "Keep the index fixed, increment it, or decrement it before reading."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -600,9 +621,9 @@ class DumasJSONObjectIteratorNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_input": ("JSON",),
|
||||
"index": ("INT", {"default": 0, "min": 0, "step": 1}),
|
||||
"mode": (["fixed", "incr", "decr"], {"default": "fixed"}),
|
||||
"json_input": ("JSON", {"tooltip": "JSON object whose key/value pairs should be iterated in insertion order."}),
|
||||
"index": ("INT", {"default": 0, "min": 0, "step": 1, "tooltip": "Current zero-based index into the object's items."}),
|
||||
"mode": (["fixed", "incr", "decr"], {"default": "fixed", "tooltip": "Keep the index fixed, increment it, or decrement it before reading."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -628,7 +649,7 @@ class DumasJSONFlattenNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"json_input": ("JSON",),
|
||||
"json_input": ("JSON", {"tooltip": "Nested JSON value to flatten into dot-path keys."}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -645,7 +666,7 @@ class DumasJSONUnflattenNode:
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"flat_json_object": ("JSON",),
|
||||
"flat_json_object": ("JSON", {"tooltip": "Flat JSON object whose keys are dot-paths to rebuild into nested JSON."}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user