Files

57 lines
1.6 KiB
Python

import torch
from .imagefunc import log, tensor2pil
from .imagefunc import AnyType
any = AnyType("*")
class PrintInfo:
@classmethod
def INPUT_TYPES(cls): # pylint: disable = invalid-name, missing-function-docstring
return {
"required": {
"anything": (any, {}),
},
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("text",)
FUNCTION = "print_info"
CATEGORY = '😺dzNodes/LayerUtility/Data'
OUTPUT_NODE = True
def print_info(self, anything=None):
value = f'PrintInfo:\nInput type = {type(anything)}'
if isinstance(anything, torch.Tensor):
# value += f"\n Input dim = {anything.dim()}, shape[0] = {anything.shape[0]}"
for i in range(anything.shape[0]):
t = anything[i]
image = tensor2pil(t)
value += f'index {i}: size={image.size}, mode="{image.mode}", dim={t.dim()}; '
# for j in range(t.dim()):
# value += f'shape[{j}] = {t.shape[j]}, '
# value += f'\n {t} \n'
elif isinstance(anything, str):
value = f"{value}{anything.encode('unicode-escape').decode('unicode-escape')}"
elif anything is not None:
try:
value = value + json.dumps(anything) + "\n"
except Exception:
try:
value = value + str(anything) + "\n"
except Exception:
value = 'source exists, but could not be serialized.'
else:
value = 'source does not exist.'
log(value)
return (value,)
NODE_CLASS_MAPPINGS = {
"LayerUtility: PrintInfo": PrintInfo
}
NODE_DISPLAY_NAME_MAPPINGS = {
"LayerUtility: PrintInfo": "LayerUtility: PrintInfo"
}