原因很简单,没有遵照官方规定的格式进行输出,导致解析的时候出了问题,以下是官方给的示例自定义节点的一部分代码:
def test(self, image, string_field, int_field, float_field, print_to_screen):
if print_to_screen == "enable":
print(f"""Your input contains:
string_field aka input text: {string_field}
int_field: {int_field}
float_field: {float_field}
""")
#do some processing on the image, in this example I just invert it
image = 1.0 - image
return (image,)
我们重点关注最后return的部分。
它所返回的并不是一个image对象,而是一个元组。如果有人想编写一个输出字符串的节点,而使用了return "测试"
这样的返回形式,就会出现只输出一个字或者字母的情况,在我这个例子当中,就会出现输出“测”字。
归根结底,是没有遵照官方的示例样式,出现的问题。但是现在AI很流行,所以出现这个问题的概率大增(因为有可能会有人让AI写这个代码,而恰好又写出来一个返回值是非元组的函数)。