48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
# ======================================================================
|
|
# Node Pack: artyclaw-comfy
|
|
# Author: artyclaw
|
|
# Version: 1.0.0
|
|
# Description: A power-user toolkit for prompt logic, IO, and RNG.
|
|
# ======================================================================
|
|
|
|
import re
|
|
from typing import Dict, Any
|
|
import comfy.model_management as model_management
|
|
|
|
class EscapeSequenceConverter:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"text": ("STRING", {"multiline": True}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING",)
|
|
FUNCTION = "convert"
|
|
CATEGORY = "utils"
|
|
|
|
# Only convert \\n → newline, \\r → \r, \\t → tab
|
|
# Do NOT convert single-backslash sequences.
|
|
def convert(self, text: str) -> Dict[str, Any]:
|
|
# Define safe replacements
|
|
replacements = {
|
|
"\\\\n": "\n",
|
|
"\\\\r": "\r",
|
|
"\\\\t": "\t",
|
|
}
|
|
|
|
for k, v in replacements.items():
|
|
text = text.replace(k, v)
|
|
|
|
return (text,)
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"EscapeSequenceConverter": EscapeSequenceConverter
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"EscapeSequenceConverter": "Escape Sequence Converter (Safe)"
|
|
}
|