From 81166137fb52fceb3d5ca3190255fce90377381f Mon Sep 17 00:00:00 2001 From: justumen Date: Mon, 12 Aug 2024 11:55:41 +0200 Subject: [PATCH] v0.9, add node random line from input --- README.md | 12 +++++++-- __init__.py | 5 +++- random_line_from_input.py | 34 +++++++++++++++++++++++++ save_bjornulf_lobechat.py | 6 ++--- save_img_to_folder.py | 2 +- screenshots/random_line_from_input.png | Bin 0 -> 44716 bytes web/js/random_line_from_input.js | 14 ++++++++++ 7 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 random_line_from_input.py create mode 100644 screenshots/random_line_from_input.png create mode 100644 web/js/random_line_from_input.js diff --git a/README.md b/README.md index 7db3011..8cc3117 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# πŸ”— Comfyui : Bjornulf_custom_nodes v0.8 πŸ”— +# πŸ”— Comfyui : Bjornulf_custom_nodes v0.9 πŸ”— # Dependencies @@ -17,6 +17,7 @@ - **v0.8**: Combine images : add an option to put image top, bottom or center. - **v0.8**: Combine texts : add option for slashes / - **v0.8**: Add basic node to transform greenscreen in to transparency. +- **v0.9**: Add a new node : Return one random line from input. # πŸ“ Nodes descriptions @@ -178,4 +179,11 @@ Update 0.8 : Also have a option to put image top, bottom or center. **Description:** Transform greenscreen into transparency. -Need clean greenscreen ofc. (Can adjust threshold but very basic node.) \ No newline at end of file +Need clean greenscreen ofc. (Can adjust threshold but very basic node.) + +## 26 - 🎲 Random line from input +![Combine Images](screenshots/random_line_from_input.png) + +**Description:** +Take a random line from an input text. (When using multiple "Write Text" nodes is annoying for example, you can use that and just copy/paste a list from outside.) + diff --git a/__init__.py b/__init__.py index 584faa2..62a5d9b 100644 --- a/__init__.py +++ b/__init__.py @@ -30,6 +30,7 @@ from .image_to_grayscale import GrayscaleTransform from .combine_background_overlay import CombineBackgroundOverlay from .save_bjornulf_lobechat import SaveBjornulfLobeChat from .green_to_transparency import GreenScreenToTransparency +from .random_line_from_input import RandomLineFromInput # from .check_black_image import CheckBlackImage # from .clear_vram import ClearVRAM @@ -39,6 +40,7 @@ NODE_CLASS_MAPPINGS = { # "Bjornulf_CustomStringType": CustomStringType, "Bjornulf_ollamaLoader": ollamaLoader, "Bjornulf_GreenScreenToTransparency": GreenScreenToTransparency, + "Bjornulf_RandomLineFromInput": RandomLineFromInput, # "Bjornulf_CheckBlackImage": CheckBlackImage, # "Bjornulf_ClearVRAM": ClearVRAM, "Bjornulf_SaveBjornulfLobeChat": SaveBjornulfLobeChat, @@ -80,6 +82,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { # "Bjornulf_CheckBlackImage": "πŸ”² Check Black Image (Empty mask)", "Bjornulf_SaveBjornulfLobeChat": "πŸ–ΌπŸ’¬ Save image for Bjornulf LobeChat", # "Bjornulf_ClearVRAM": "🧹 Clear VRAM", + "Bjornulf_RandomLineFromInput": "🎲 Random line from input", "Bjornulf_ShowText": "πŸ‘ Show (Text)", "Bjornulf_ShowInt": "πŸ‘ Show (Int)", "Bjornulf_ShowFloat": "πŸ‘ Show (Float)", @@ -89,7 +92,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { # "πŸ”²βžœβ¬› Transparency to color", "Bjornulf_ResizeImage": "πŸ“ Resize Image", "Bjornulf_SaveImagePath": "πŸ–Ό Save Image (exact path, exact name) βš οΈπŸ’£", - "Bjornulf_SaveImageToFolder": "πŸ–ΌπŸ“ Save Image to a folder", + "Bjornulf_SaveImageToFolder": "πŸ–ΌπŸ“ Save Image(s) to a folder", "Bjornulf_SaveTmpImage": "πŸ–Ό Save Image (tmp_api.png) βš οΈπŸ’£", # "Bjornulf_SaveApiImage": "πŸ–Ό Save Image (./output/api_00001.png...)", "Bjornulf_SaveText": "πŸ’Ύ Save Text", #Make SaveCharacter, SaveLocation, SaveCamera, SaveAction, SaveClothes, SaveEmotion... diff --git a/random_line_from_input.py b/random_line_from_input.py new file mode 100644 index 0000000..46710dd --- /dev/null +++ b/random_line_from_input.py @@ -0,0 +1,34 @@ +import random + +class RandomLineFromInput: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "text": ("STRING", {"forceInput": True}), + "seed": ("INT", {"default": 1}), + }, + } + + RETURN_TYPES = ("STRING",) + FUNCTION = "random_line" + OUTPUT_IS_LIST = (False,) + CATEGORY = "Bjornulf" + + def random_line(self, text, seed): + random.seed(seed) + + # Split the input text into lines + lines = text.split('\n') + + # Remove empty lines and strip whitespace + lines = [line.strip() for line in lines if line.strip()] + + if not lines: + return ([""],) + + # Select a random line + chosen_line = random.choice(lines) + + # Return as a list with one element + return ([chosen_line],) \ No newline at end of file diff --git a/save_bjornulf_lobechat.py b/save_bjornulf_lobechat.py index 7916e11..496fe62 100644 --- a/save_bjornulf_lobechat.py +++ b/save_bjornulf_lobechat.py @@ -41,9 +41,6 @@ class SaveBjornulfLobeChat: break counter += 1 - # Save the image with the determined filename - img.save(filename, format="PNG") - # Prepare metadata metadata = PngInfo() if prompt is not None: @@ -57,6 +54,9 @@ class SaveBjornulfLobeChat: if os.path.exists(link_path): os.remove(link_path) os.symlink(os.path.abspath(filename), link_path) + + # Save the image with the determined filename + img.save(os.path.abspath(filename), format="PNG", pnginfo=metadata) print(f"Image saved as: {filename}") diff --git a/save_img_to_folder.py b/save_img_to_folder.py index 098f6fc..18662ef 100644 --- a/save_img_to_folder.py +++ b/save_img_to_folder.py @@ -47,4 +47,4 @@ class SaveImageToFolder: print(f"Image saved as: {filename}") results.append({"filename": filename}) - return {"ui": {"images": results}} \ No newline at end of file + return {"ui": {"images": [{"filename": filename, "type": "output"}]}} \ No newline at end of file diff --git a/screenshots/random_line_from_input.png b/screenshots/random_line_from_input.png new file mode 100644 index 0000000000000000000000000000000000000000..4cad91ba606876c8a5b0abb9a19cc016de785b12 GIT binary patch literal 44716 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 literal 0 HcmV?d00001 diff --git a/web/js/random_line_from_input.js b/web/js/random_line_from_input.js new file mode 100644 index 0000000..5d40009 --- /dev/null +++ b/web/js/random_line_from_input.js @@ -0,0 +1,14 @@ +import { app } from "../../../scripts/app.js"; + +app.registerExtension({ + name: "Bjornulf.RandomLineFromInput", + async nodeCreated(node) { + if (node.comfyClass === "Bjornulf_RandomLineFromInput") { + // Set seed widget to hidden input + const seedWidget = node.widgets.find(w => w.name === "seed"); + if (seedWidget) { + seedWidget.type = "HIDDEN"; + } + } + } +});