Initial commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# AI Disclosure: Code comments were generated with AI but manually checked for correctness.
|
||||
|
||||
class SimpleFStringNode:
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"template": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": "The value of x is {x}"
|
||||
}),
|
||||
},
|
||||
# We leave "optional" empty.
|
||||
# The JS will force new inputs into the node, and ComfyUI
|
||||
# will pass them to our function automatically.
|
||||
"optional": {}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
RETURN_NAMES = ("formatted_string",)
|
||||
FUNCTION = "format_inputs"
|
||||
CATEGORY = "Learning/Text"
|
||||
|
||||
# We use **kwargs to catch all the dynamic inputs created in the UI
|
||||
def format_inputs(self, template, **kwargs):
|
||||
clean_values = {}
|
||||
for key, val in kwargs.items():
|
||||
if val is None:
|
||||
clean_values[key] = "None"
|
||||
elif hasattr(val, 'shape'):
|
||||
clean_values[key] = f"Tensor {val.shape}"
|
||||
else:
|
||||
clean_values[key] = str(val)
|
||||
|
||||
try:
|
||||
result = template.format(**clean_values)
|
||||
except KeyError as e:
|
||||
result = f"Error: Template uses {{{e.args[0]}}} but that input doesn't exist!"
|
||||
except Exception as e:
|
||||
result = f"Error: {str(e)}"
|
||||
|
||||
return (result,)
|
||||
Reference in New Issue
Block a user