mirror of
https://github.com/justUmen/Bjornulf_custom_nodes.git
synced 2026-03-21 20:52:11 -03:00
0.45
This commit is contained in:
54
text_scramble_character.py
Normal file
54
text_scramble_character.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import random
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
|
||||
class ScramblerCharacter:
|
||||
def __init__(self):
|
||||
self.scramble_config = self.load_scramble_config()
|
||||
|
||||
def load_scramble_config(self):
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
config_path = os.path.join(script_dir, "scrambler/character_scrambler.json")
|
||||
with open(config_path, "r") as f:
|
||||
return json.load(f)
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(s):
|
||||
return {
|
||||
"required": {
|
||||
"text": ("STRING", {"multiline": True, "default": "photography portrait of a happy middle-aged swedish woman nurse with a fit body, wearing a black headband, large blue parka and orange jeans."}),
|
||||
"seed": ("INT", {"default": 0}),
|
||||
},
|
||||
"optional": {
|
||||
"image_styles": ("BOOLEAN", {"default": False}),
|
||||
"ages": ("BOOLEAN", {"default": False}),
|
||||
"sex": ("BOOLEAN", {"default": False}),
|
||||
"body_types": ("BOOLEAN", {"default": False}),
|
||||
"colors": ("BOOLEAN", {"default": False}),
|
||||
"emotions": ("BOOLEAN", {"default": False}),
|
||||
"nationalities": ("BOOLEAN", {"default": False}),
|
||||
"clothing_head": ("BOOLEAN", {"default": False}),
|
||||
"clothing_top": ("BOOLEAN", {"default": False}),
|
||||
"clothing_bottom": ("BOOLEAN", {"default": False}),
|
||||
"occupations": ("BOOLEAN", {"default": False}),
|
||||
"sizes": ("BOOLEAN", {"default": False}),
|
||||
"image_types": ("BOOLEAN", {"default": False}),
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
FUNCTION = "scramble_words"
|
||||
CATEGORY = "Bjornulf"
|
||||
|
||||
def scramble_words(self, text, seed=None, **kwargs):
|
||||
if seed is not None:
|
||||
random.seed(seed)
|
||||
|
||||
for category, config in self.scramble_config.items():
|
||||
if kwargs.get(f"{category}", config.get("enabled", False)):
|
||||
words = config["words"]
|
||||
pattern = r'\b(' + '|'.join(re.escape(word) for word in words) + r')\b'
|
||||
text = re.sub(pattern, lambda m: random.choice(words), text, flags=re.IGNORECASE)
|
||||
|
||||
return (text,)
|
||||
Reference in New Issue
Block a user