110 lines
2.7 KiB
Python
110 lines
2.7 KiB
Python
# "Design-focused node suite for ComfyUI."
|
|
# Copyright 2026 Augment Studio
|
|
# Augmentstudio.app
|
|
|
|
import hashlib
|
|
import secrets
|
|
import time
|
|
import json
|
|
|
|
|
|
class SHA256Node:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"encode": ("STRING", {"forceInput": True}),
|
|
},
|
|
"optional": {
|
|
"trigger": ("TRIGGER",),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING", "AUGMENT_JSON", "TRIGGER")
|
|
RETURN_NAMES = ("hash", "json", "trigger")
|
|
FUNCTION = "execute"
|
|
CATEGORY = "Augment/Utils"
|
|
OUTPUT_NODE = True
|
|
|
|
@classmethod
|
|
def VALIDATE_INPUTS(cls, **kwargs):
|
|
return True
|
|
|
|
def execute(self, encode, trigger=None):
|
|
h = hashlib.sha256(encode.encode("utf-8")).hexdigest()
|
|
json_result = json.dumps({"node": "SHA-256 Hash", "input": encode, "hash": h, "algorithm": "sha256"})
|
|
return {"ui": {"text": [h]}, "result": (h, json_result, "done")}
|
|
|
|
|
|
class RandomNumberNode:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {},
|
|
"optional": {
|
|
"trigger": ("TRIGGER",),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("INT", "AUGMENT_JSON", "TRIGGER")
|
|
RETURN_NAMES = ("number", "json", "trigger")
|
|
FUNCTION = "execute"
|
|
CATEGORY = "Augment/Utils"
|
|
OUTPUT_NODE = True
|
|
|
|
@classmethod
|
|
def VALIDATE_INPUTS(cls, **kwargs):
|
|
return True
|
|
|
|
@classmethod
|
|
def IS_CHANGED(cls, **kwargs):
|
|
return time.time()
|
|
|
|
def execute(self, trigger=None):
|
|
n = secrets.randbelow(1000000000)
|
|
json_result = json.dumps({"node": "Random Number", "number": n, "max": 1000000000})
|
|
return {"ui": {"text": [str(n)]}, "result": (n, json_result, "done")}
|
|
|
|
|
|
class UUIDNode:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {},
|
|
"optional": {
|
|
"trigger": ("TRIGGER",),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING", "AUGMENT_JSON", "TRIGGER")
|
|
RETURN_NAMES = ("uuid", "json", "trigger")
|
|
FUNCTION = "execute"
|
|
CATEGORY = "Augment/Utils"
|
|
OUTPUT_NODE = True
|
|
|
|
@classmethod
|
|
def VALIDATE_INPUTS(cls, **kwargs):
|
|
return True
|
|
|
|
@classmethod
|
|
def IS_CHANGED(cls, **kwargs):
|
|
return time.time()
|
|
|
|
def execute(self, trigger=None):
|
|
u = secrets.token_hex(16)
|
|
json_result = json.dumps({"node": "UUID Generator", "uuid": u, "length": 32})
|
|
return {"ui": {"text": [u]}, "result": (u, json_result, "done")}
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"SHA256Node": SHA256Node,
|
|
"RandomNumberNode": RandomNumberNode,
|
|
"UUIDNode": UUIDNode,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"SHA256Node": "SHA-256 Hash",
|
|
"RandomNumberNode": "Random Number",
|
|
"UUIDNode": "UUID Generator",
|
|
}
|