From 4bdb84d2ec0e568bc03bb7c712f981c69f1bea19 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 01:14:02 +0500 Subject: [PATCH 01/17] `README` init --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..40528fc --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +> "Do one thing and do it well." _— Peter H. Salus / Doug McIlroy, [core Unix principle](https://en.wikipedia.org/wiki/Unix_philosophy)_ + +> "Simple is better than complex." _— Zen of Python_ + +# `String Constructor` (aka Text-Formatting) nodes + +There's a plenty of string-formatting nodes for ComfyUI. But this node pack takes a different approach: +- First, you prepare a dictionary of named sub-strings (chunks of text). +- Then, right before `CLIP Text Encode`, you construct a final prompt from these parts, using python's [string formatting syntax](https://docs.python.org/3/library/string.html#format-examples)... **Don't panic!** You don't need to be a programmer to simply compose a prompt from pieces. Besides, examples are below. +- Unlike many other _(giant uber-mega)_ node packs, this one strictly adheres to the modularity paradigm: it's minimal and self-sufficient. From 459d28c23661030ee2163873ef879c9b84369b8a Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 01:41:09 +0500 Subject: [PATCH 02/17] `LICENSE` --- LICENSE.md | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..0927556 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,157 @@ +### GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the +terms and conditions of version 3 of the GNU General Public License, +supplemented by the additional permissions listed below. + +#### 0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the +GNU General Public License. + +"The Library" refers to a covered work governed by this License, other +than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + +The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +#### 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +#### 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + +- a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or +- b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +#### 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a +header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + +- a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the object code with a copy of the GNU GPL and this + license document. + +#### 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + +- a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. +- c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. +- d) Do one of the following: + - 0) Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + - 1) Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. +- e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +#### 5. Combined Libraries. + +You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + +- a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. +- b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + +#### 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License "or any later version" applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, you +may choose any version of the GNU Lesser General Public License ever +published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. From 532b111680be41dca431f6534c16d41e667fa615 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 06:46:59 +0500 Subject: [PATCH 03/17] `CHANGELOG`: init --- CHANGELOG.md | 1 + README.md | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0094eea --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ +# v0.0.1 diff --git a/README.md b/README.md index 40528fc..93293b9 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,5 @@ There's a plenty of string-formatting nodes for ComfyUI. But this node pack take - First, you prepare a dictionary of named sub-strings (chunks of text). - Then, right before `CLIP Text Encode`, you construct a final prompt from these parts, using python's [string formatting syntax](https://docs.python.org/3/library/string.html#format-examples)... **Don't panic!** You don't need to be a programmer to simply compose a prompt from pieces. Besides, examples are below. - Unlike many other _(giant uber-mega)_ node packs, this one strictly adheres to the modularity paradigm: it's minimal and self-sufficient. + +[🔄 Updates ChangeLog](CHANGELOG.md) From 12d61600e72e51c9e090477306631f69035930eb Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 01:44:23 +0500 Subject: [PATCH 04/17] `__init__.py` --- __init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 __init__.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e60a055 --- /dev/null +++ b/__init__.py @@ -0,0 +1,10 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +NODE_CLASS_MAPPINGS: _t.Dict[str, type] = dict() +NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = dict() + +__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] From 97fe0d98d218a223a3ed866a4c1ba634a3172111 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 02:10:43 +0500 Subject: [PATCH 05/17] `docstring_formatter`: just copied from BestResolution pack --- docstring_formatter.py | 146 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 docstring_formatter.py diff --git a/docstring_formatter.py b/docstring_formatter.py new file mode 100644 index 0000000..b8a7ede --- /dev/null +++ b/docstring_formatter.py @@ -0,0 +1,146 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +from inspect import getdoc as _getdoc +import re as _re + + +_re_indent_match = _re.compile("(\t*)( +)(\t*)(.*?)$").match +_re_tab_indent_match = _re.compile("(\t+)(.*?)$").match +_re_list_line_match = _re.compile( + "(\s*)(" + "[-*•]+" + "|" + "[a-zA-Z]\s*[.)]" + "|" + "[0-9+]\s*[.)]" + ")\s+" +).match + + +def _recover_tab_indents(line: str, tab_size: int): + """Turn indenting spaces back to tabs using regexp. Half-tab indents are rounded.""" + assert bool(line) and isinstance(line, str) + + n_tabs = 0.0 + + match = _re_indent_match(line) + while match: + pre_tabs, spaces, post_tabs, line = match.groups() + n_tabs_from_spaces = float(len(spaces)) / tab_size + 0.00001 + n_post_tabs = len(post_tabs) + if n_post_tabs > 0: + # There are tabs after spaces. Don't preserve the fractional spaces-indent, truncate it: + n_tabs_from_spaces = int(n_tabs_from_spaces) + n_tabs += len(pre_tabs) + n_tabs_from_spaces + n_post_tabs + match = _re_indent_match(line) + + if n_tabs < 0.5: + return line + + tabs_prefix = '\t' * int(n_tabs + 0.50001) + return f"{tabs_prefix}{line}" + + +def _join_paragraph_and_format_tabs(paragraph: _t.List[str], tab_size: int): + """ + Given "continuous" paragraph (i.e., with no empty newlines between chunks), recover tabs for each chunk + and join them together into a single actual line. + Works as a generator to account for blocks with different indents - to make each its own line. + """ + pending_indent = 0 + pending_chunks: _t.List[str] = list() + + def join_pending_chunks() -> str: + return "{}{}".format('\t' * pending_indent, ' '.join(pending_chunks)) + + for chunk in paragraph: + chunk = _recover_tab_indents(chunk, tab_size) + + cur_indent = 0 + match = _re_tab_indent_match(chunk) + if match: + tab_indent, chunk = match.groups() # We've detected indent. Now, get rid of it. + cur_indent = len(tab_indent) + + match_list_line = _re_list_line_match(chunk) + # In case of a bulleted/numbered list, we'll need to start a new block, too. + if cur_indent == pending_indent and not match_list_line: + pending_chunks.append(chunk) + continue + + # Indent mismatch or a list line: + # we're either ended one block or entered another. Either way, the previous block ends. + if pending_chunks: + yield join_pending_chunks() + pending_chunks = list() + assert not pending_chunks + pending_chunks.append(chunk) + pending_indent = cur_indent + + if pending_chunks: + yield join_pending_chunks() + + +def _formatted_paragraphs_gen(doc: str, tab_size: int): + """ + Generator, which splits docstring into lines and transforms them into an actual printable output: + - From each bulk of empty lines, the first one is skipped... + - ... thus, non-empty lines are joined into continuous paragraphs. + - Recover tabs in the beginning oh lines (``inspect.cleandoc()`` converts them into spaces). + """ + if not doc: + return + doc = str(doc) + if not doc.strip(): + return + + tab_size = max(int(tab_size), 1) + + cur_paragraph: _t.List[str] = list() + + for line in doc.splitlines(): + line: str = line.rstrip() + if line: + cur_paragraph.append(line) + continue + + assert not line + if cur_paragraph: + for block in _join_paragraph_and_format_tabs(cur_paragraph, tab_size): + yield block + cur_paragraph = list() + # Just skip the current empty line entirely - do nothing with it. + continue + + # We're in a chain of empty lines, and we've already skipped the first one. Preserve the remaining ones: + yield '' + + # Return the last paragraph post-loop: + if cur_paragraph: + for block in _join_paragraph_and_format_tabs(cur_paragraph, tab_size): + yield block + + +def format_docstring(doc: str, tab_size: int = 8) -> str: + """ + Turn a pre-cleaned-up docstring (with tabs as spaces and newlines mid-sentence) + into an actually printable output: + - mid-paragraph new lines are replaced with spaces... + - ... while still keeping indented blocks separate. + + Remember to pass a pre-cleaned-up docstring - i.e.: ``format_docstring(inspect.cleandoc(__doc__))`` + """ + return '\n'.join(_formatted_paragraphs_gen(doc, tab_size)) + + +def format_object_docstring(_obj, tab_size: int = 8) -> str: + """Find the object's docstring and format it with ``format_docstring()``""" + doc = _getdoc(_obj) + if not doc: + return '' + # noinspection PyArgumentList + return format_docstring(doc, tab_size=tab_size) From 1da74b385f7be6a536f8ca4874a620f63d453f11 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 03:02:41 +0500 Subject: [PATCH 06/17] `funcs_common` --- funcs_common.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 funcs_common.py diff --git a/funcs_common.py b/funcs_common.py new file mode 100644 index 0000000..7bd5789 --- /dev/null +++ b/funcs_common.py @@ -0,0 +1,18 @@ +# encoding: utf-8 +""" +Code shared between various `funcs_*` modules. +""" + +import typing as _t + +from server import PromptServer as _PromptServer + +def _show_text_on_node(text: str = None, unique_id: str = None): + if not text: + # TODO: Planned for the future - currently, there's no point removing the text since it's box is shown anyway + # An odd workaround since `send_progress_text()` doesn't want to update text when '' passed + text = '' + # print(f"{unique_id} text: {text!r}") + + # Snatched from: https://github.com/comfyanonymous/ComfyUI/blob/27870ec3c30e56be9707d89a120eb7f0e2836be1/comfy_extras/nodes_images.py#L581-L582 + _PromptServer.instance.send_progress_text(text, unique_id) From fe82c8f754ba4387b40a1b640b351752dbe7a9d3 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 05:41:09 +0500 Subject: [PATCH 07/17] `enums`: `DataTypes` --- enums.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 enums.py diff --git a/enums.py b/enums.py new file mode 100644 index 0000000..8bbbc83 --- /dev/null +++ b/enums.py @@ -0,0 +1,38 @@ +# encoding: utf-8 +""" +Internal enums. +""" + +import typing as _t + +try: + from enum import StrEnum as _StrEnum +except ImportError: + from comfy.comfy_types.node_typing import StrEnum as _StrEnum + + +T = _t.TypeVar('T') + + +class __BaseEnum(_StrEnum): + @classmethod + def all_values(cls) -> _t.Tuple[str, ...]: + return tuple(x.value for x in cls) + + +class DataTypes(__BaseEnum): + """Additional data-types defined byt the node pack.""" + STR_DICT = 'STR_DICT' + + @staticmethod + def __custom_input_type_dict(_dict_args: _t.Tuple[_t.Dict[str, T], ...], kwargs: _t.Dict[str, T]) -> _t.Dict[str, T]: + res_dict: _t.Dict[str, _t.Any] = {"forceInput": True} + for d in _dict_args: + if d is not None: + res_dict.update(d) + res_dict.update(kwargs) + return res_dict + + @classmethod + def input_str_dict(cls, *_dicts: _t.Dict[str, T], **kwargs: T) -> _t.Tuple[_t.Union['DataTypes', str], _t.Dict[str, T]]: + return cls.STR_DICT, cls.__custom_input_type_dict(_dicts, kwargs) From aacd0a730aba2a6fe63c0206589c276afe9749ca Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 05:44:08 +0500 Subject: [PATCH 08/17] `funcs_common`: dict validators --- funcs_common.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/funcs_common.py b/funcs_common.py index 7bd5789..c05db3e 100644 --- a/funcs_common.py +++ b/funcs_common.py @@ -5,8 +5,13 @@ Code shared between various `funcs_*` modules. import typing as _t +import re as _re + from server import PromptServer as _PromptServer +from .enums import T as _T + + def _show_text_on_node(text: str = None, unique_id: str = None): if not text: # TODO: Planned for the future - currently, there's no point removing the text since it's box is shown anyway @@ -16,3 +21,61 @@ def _show_text_on_node(text: str = None, unique_id: str = None): # Snatched from: https://github.com/comfyanonymous/ComfyUI/blob/27870ec3c30e56be9707d89a120eb7f0e2836be1/comfy_extras/nodes_images.py#L581-L582 _PromptServer.instance.send_progress_text(text, unique_id) + + +_re_valid_key_match = _re.compile("[a-zA-Z_][a-zA-Z_0-9]*$").match +_re_starting_digits_match = _re.compile("[0-9]+").match + + +def _validate_key(key: str, errors_dict: _t.Dict[_t.Any, str]) -> _t.Union[str, None]: + """Verify that the given string can be a key. Otherwise, append a message to `errors_dict`.""" + if not isinstance(key, str): + errors_dict[key] = f"Not a valid key (string name): {key!r}" + return None + key = str(key).strip() + if not key: + errors_dict[key] = f"Key (string name) can't be empty. Got: {key!r}" + return None + if not _re_valid_key_match(key): + if _re_starting_digits_match(key): + errors_dict[key] = f"Key (string name) can't start with a digit. Got: {key!r}" + else: + errors_dict[key] = f"Key (string name) must contain only numbers, latin letters and underscores. Got: {key!r}" + return None + return key + + +def _raise_from_errors_dict( + errors_dict: _t.Dict[_t.Any, str], + single_error_format: str = '{}', + multi_errors_format: str = "Invalid keys (string names):\n{}", +): + if not errors_dict: + return + + if len(errors_dict) == 1: + msg = single_error_format.format(next(iter(errors_dict.values()))) + else: + msg = multi_errors_format.format('\n'.join(repr(x) for x in errors_dict.keys())) + raise KeyError(msg) + + +def _verify_input_dict(input_dict: _t.Dict[str, _T] = None) -> _t.Dict[str, _T]: + """ + Verify input dict to have only valid keys. Raises errors if invalid ones found. + Always returns a new dict instance (shallow copy if non-empty dict passed). + """ + if input_dict is None: + return dict() + if not isinstance(input_dict, dict): + raise TypeError(f"Input-dict isn't a dict. Got: {input_dict!r}") + + errors_dict: _t.Dict[_t.Any, str] = dict() + for key in input_dict.keys(): + _validate_key(key, errors_dict) + + _raise_from_errors_dict( + errors_dict, + "Invalid input-dict:\n{}", "Invalid keys (string names) in input-dict:\n{}" + ) + return dict(input_dict) From 02979161f2619794b348e9ea13d927d1180c3f5a Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 05:44:25 +0500 Subject: [PATCH 09/17] `_meta` --- _meta.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 _meta.py diff --git a/_meta.py b/_meta.py new file mode 100644 index 0000000..f716a0e --- /dev/null +++ b/_meta.py @@ -0,0 +1,6 @@ +# encoding: utf-8 +""" +Metadata-related module. +""" + +category: str = "String Constructor" From 88ed4701a8e72d95e733abe428ce6e54139c513c Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 07:49:36 +0500 Subject: [PATCH 10/17] `StringConstructorDictFromText` --- CHANGELOG.md | 3 ++ __init__.py | 12 ++++-- funcs_dict_from_text.py | 81 +++++++++++++++++++++++++++++++++++++++++ node_dict_from_text.py | 69 +++++++++++++++++++++++++++++++++++ 4 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 funcs_dict_from_text.py create mode 100644 node_dict_from_text.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 0094eea..f90a535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,4 @@ # v0.0.1 + +MVP nodes: +- `Format-Dict from Text` diff --git a/__init__.py b/__init__.py index e60a055..839dda5 100644 --- a/__init__.py +++ b/__init__.py @@ -4,7 +4,13 @@ import typing as _t -NODE_CLASS_MAPPINGS: _t.Dict[str, type] = dict() -NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = dict() +from .node_dict_from_text import StringConstructorDictFromText -__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] +NODE_CLASS_MAPPINGS: _t.Dict[str, type] = { + 'StringConstructorDictFromText': StringConstructorDictFromText, +} +NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = { + 'StringConstructorDictFromText': "Format-Dict from Text" +} + +__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] diff --git a/funcs_dict_from_text.py b/funcs_dict_from_text.py new file mode 100644 index 0000000..0a22aba --- /dev/null +++ b/funcs_dict_from_text.py @@ -0,0 +1,81 @@ +# encoding: utf-8 +""" +The actual code (MVC pattern) for `StringConstructorDictFromText` node. +""" + +import typing as _t + +from frozendict import frozendict as _frozendict, deepfreeze as _deepfreeze + +from .enums import T as _T +from .funcs_common import _show_text_on_node, _raise_from_errors_dict, _validate_key, _verify_input_dict + + +def _return_line_raw(line_raw: str, line_stripped:str) -> str: + return line_raw + + +def _return_line_stripped(line_raw: str, line_stripped:str) -> str: + return line_stripped + + +def _parsed_kv_pairs_gen(multiline_str: str, strip_lines=True): + """ + Given a multiline string, extract keywords (first non-empty line in each chunk) + and their substrings (all the following non-empty lines). + """ + if not multiline_str: + return + multiline_str = str(multiline_str) + if not multiline_str.strip(): + return + + appended_line_f = _return_line_stripped if strip_lines else _return_line_raw + cur_chunk: _t.List[str] = list() + + def dump_chunk(): + cur_chunk_iter = iter(cur_chunk) # It's more backwards-compatible than `a, *b = x` + chunk_key = next(cur_chunk_iter) + cur_chunk_lines = list(cur_chunk_iter) + # If there are no actual lines, join() would return an empty string: + return chunk_key.strip(), '\n'.join(cur_chunk_lines) + + for line in multiline_str.splitlines(): + line_stripped: str = line.strip() + if line_stripped: + cur_chunk.append(appended_line_f(line, line_stripped)) + continue + + assert not line_stripped + if cur_chunk: + yield dump_chunk() + cur_chunk = list() + + # We simply skip all the empty lines entirely + + if cur_chunk: + yield dump_chunk() + + +def parse_dict_from_text( + multiline_str: str, strip_lines=True, + show: bool = True, in_dict: _t.Dict[str, _T] = None, unique_id: str = None +) -> _t.Tuple[_t.Dict[str, _T]]: + out_dict: _t.Dict[str, _T] = _verify_input_dict(in_dict) + + errors_dict: _t.Dict[_t.Any, str] = dict() + new_dict: _t.Dict[str, str] = { + _k: _v for _k, _v in ( + (_validate_key(k, errors_dict), v) + for k, v in _parsed_kv_pairs_gen(multiline_str, strip_lines=strip_lines) + ) if _k is not None + } + _raise_from_errors_dict(errors_dict) + + out_dict.update(new_dict) + + if show and unique_id: + status_text = ','.join(new_dict.keys()) if new_dict else '' + _show_text_on_node(status_text, unique_id) + + return (_deepfreeze(out_dict), ) diff --git a/node_dict_from_text.py b/node_dict_from_text.py new file mode 100644 index 0000000..b35bab7 --- /dev/null +++ b/node_dict_from_text.py @@ -0,0 +1,69 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +from inspect import cleandoc as _cleandoc + +from frozendict import frozendict as _frozendict, deepfreeze as _deepfreeze + +from comfy.comfy_types.node_typing import IO as _IO + +from . import _meta +from .docstring_formatter import format_docstring as _format_docstring +from .enums import DataTypes as _DataTypes +from .funcs_dict_from_text import parse_dict_from_text as _parse_dict_from_text + + +# A tiny optimization by reusing the same immutable dict: +_input_types = _deepfreeze({ + 'required': { + 'cleanup': (_IO.BOOLEAN, {'default': True, 'label_on': 'extra spaces', 'label_off': 'no', 'tooltip': ( + "When enabled, each line in each sub-string is stripped from any spaces at its start and end." + )}), + 'strings': (_IO.STRING, {'multiline': True, 'tooltip': ( + "Sub-string names followed by their text. Different sub-string chunks are separated by empty lines. Example:\n\n" + "char1_short\n1boy, blond, short hair\n\n" + "char1_long\n1boy, smiling, blue eyes, blond, short hair,\nsitting on a motorcycle, wearing a leather jacket" + )}), + 'show_status': (_IO.BOOLEAN, {'default': False, 'label_on': 'found names', 'label_off': 'no', 'tooltip': ( + "Show detected string names on the node itself?" + )}), + }, + 'optional': { + 'str_dict': _DataTypes.input_str_dict(tooltip=( + "An optional input dictionary. If it's connected, it will be expanded/updated with new strings." + )), + }, + 'hidden': { + 'unique_id': 'UNIQUE_ID', # used for text display at the bottom of the node + }, +}) + + +class StringConstructorDictFromText: + """ + Build a dict of named sub-strings to be used later in string formatting (text construction). + """ + NODE_NAME = 'StringConstructorDictFromText' + CATEGORY = _meta.category + DESCRIPTION = _format_docstring(_cleandoc(__doc__)) + + OUTPUT_NODE = True # Just to show the status message even if not connected to anything + + FUNCTION = 'main' + RETURN_TYPES = (_DataTypes.STR_DICT, ) + RETURN_NAMES = (_DataTypes.STR_DICT.lower(), ) + # OUTPUT_TOOLTIPS = tuple() + + @classmethod + def INPUT_TYPES(cls): + return _input_types + + def main( + self, cleanup: bool, strings: str, show_status: bool, + str_dict: _t.Dict[str, _t.Any] = None, + unique_id: str = None, + ): + return _parse_dict_from_text(strings, strip_lines=cleanup, show=show_status, in_dict=str_dict, unique_id=unique_id) From 2fb8d39a94048771f528a1bf279bc6bf96314860 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 06:36:28 +0500 Subject: [PATCH 11/17] `StringConstructorDictPreview` --- CHANGELOG.md | 1 + __init__.py | 5 ++++- funcs_dict_preview.py | 47 ++++++++++++++++++++++++++++++++++++++ node_dict_preview.py | 52 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 funcs_dict_preview.py create mode 100644 node_dict_preview.py diff --git a/CHANGELOG.md b/CHANGELOG.md index f90a535..1b83b7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,3 +2,4 @@ MVP nodes: - `Format-Dict from Text` +- `Format-Dict Preview` diff --git a/__init__.py b/__init__.py index 839dda5..1a01136 100644 --- a/__init__.py +++ b/__init__.py @@ -5,12 +5,15 @@ import typing as _t from .node_dict_from_text import StringConstructorDictFromText +from .node_dict_preview import StringConstructorDictPreview NODE_CLASS_MAPPINGS: _t.Dict[str, type] = { 'StringConstructorDictFromText': StringConstructorDictFromText, + 'StringConstructorDictPreview': StringConstructorDictPreview, } NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = { - 'StringConstructorDictFromText': "Format-Dict from Text" + 'StringConstructorDictFromText': "Format-Dict from Text", + 'StringConstructorDictPreview': "Preview Format-Dict", } __all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] diff --git a/funcs_dict_preview.py b/funcs_dict_preview.py new file mode 100644 index 0000000..0285211 --- /dev/null +++ b/funcs_dict_preview.py @@ -0,0 +1,47 @@ +# encoding: utf-8 +""" +The actual code (MVC pattern) for `StringConstructorDictPreview` node. +""" + +import typing as _t + +from pprint import pformat as _pformat + +from .funcs_common import _show_text_on_node, _verify_input_dict + + +def _to_regular_dict_recursive_copy(input_dict: dict = None) -> dict: + """ + To simplify preview, turns frozen dicts back to regular ones. + Copies the dict in process and does so recursively, but not truly deep: if value is another dict, + it will be processed, too. But dicts within other objects (like lists) won't be found. + """ + if not input_dict: + return dict() + return { + k: (_to_regular_dict_recursive_copy(v) if isinstance(v, dict) else v) + for k, v in input_dict.items() + } + + +def _preview_single_entry(key: str, value) -> str: + if isinstance(value, str): + return f"{key}:\n{value}" + value_repr = _pformat(value) + return f"{key}:\n{value_repr}" + + +def _preview_message(input_dict: dict = None): + input_dict = _to_regular_dict_recursive_copy(_verify_input_dict(input_dict)) + parts: _t.List[str] = [ + _preview_single_entry(k, v) for k, v in input_dict.items() + ] + return '\n\n'.join(parts) + + +def preview_str_dict(input_dict: dict, unique_id: str = None): + if not unique_id: + return (input_dict, ) + status_text = _preview_message(input_dict) + _show_text_on_node(status_text, unique_id) + return (input_dict, ) diff --git a/node_dict_preview.py b/node_dict_preview.py new file mode 100644 index 0000000..64a4b17 --- /dev/null +++ b/node_dict_preview.py @@ -0,0 +1,52 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +from inspect import cleandoc as _cleandoc + +from frozendict import deepfreeze as _deepfreeze + +from . import _meta +from .docstring_formatter import format_docstring as _format_docstring +from .enums import DataTypes as _DataTypes +from .funcs_dict_preview import preview_str_dict as _preview_str_dict + + +# A tiny optimization by reusing the same immutable dict: +_input_types = _deepfreeze({ + 'required': { + 'str_dict': _DataTypes.input_str_dict(tooltip="A dictionary of named substrings."), + }, + # 'optional': {}, + 'hidden': { + 'unique_id': 'UNIQUE_ID', # used for text display at the bottom of the node + }, +}) + + +class StringConstructorDictPreview: + """ + Show the contents of a Format-Dict. + """ + NODE_NAME = 'StringConstructorDictPreview' + CATEGORY = _meta.category + DESCRIPTION = _format_docstring(_cleandoc(__doc__)) + + OUTPUT_NODE = True + + FUNCTION = 'main' + RETURN_TYPES = (_DataTypes.STR_DICT, ) + RETURN_NAMES = (_DataTypes.STR_DICT.lower(), ) + # OUTPUT_TOOLTIPS = tuple() + + @classmethod + def INPUT_TYPES(cls): + return _input_types + + def main( + self, str_dict: _t.Dict[str, _t.Any], + unique_id: str = None, + ): + return _preview_str_dict(str_dict, unique_id=unique_id) From 3759ab7c740ec024510859d90cef94ab8d59d249 Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 07:55:15 +0500 Subject: [PATCH 12/17] `StringConstructorFormatter` --- CHANGELOG.md | 1 + __init__.py | 3 ++ funcs_formatter.py | 24 ++++++++++++++++ node_formatter.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 funcs_formatter.py create mode 100644 node_formatter.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b83b7b..6d6a77d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,4 @@ MVP nodes: - `Format-Dict from Text` - `Format-Dict Preview` +- `String Formatter` diff --git a/__init__.py b/__init__.py index 1a01136..df80d2b 100644 --- a/__init__.py +++ b/__init__.py @@ -6,14 +6,17 @@ import typing as _t from .node_dict_from_text import StringConstructorDictFromText from .node_dict_preview import StringConstructorDictPreview +from .node_formatter import StringConstructorFormatter NODE_CLASS_MAPPINGS: _t.Dict[str, type] = { 'StringConstructorDictFromText': StringConstructorDictFromText, 'StringConstructorDictPreview': StringConstructorDictPreview, + 'StringConstructorFormatter': StringConstructorFormatter, } NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = { 'StringConstructorDictFromText': "Format-Dict from Text", 'StringConstructorDictPreview': "Preview Format-Dict", + 'StringConstructorFormatter': "String Formatter", } __all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] diff --git a/funcs_formatter.py b/funcs_formatter.py new file mode 100644 index 0000000..433c635 --- /dev/null +++ b/funcs_formatter.py @@ -0,0 +1,24 @@ +# encoding: utf-8 +""" +The actual code (MVC pattern) for `StringConstructorFormatter` node. +""" + +import typing as _t + +from .enums import T as _T +from .funcs_common import _show_text_on_node, _verify_input_dict + + +def formatter(template: str, format_dict: _t.Dict[str, _T] = None, show: bool = True, unique_id: str = None) -> _t.Tuple[str]: + format_dict = _verify_input_dict(format_dict) + if not isinstance(template, str): + raise TypeError(f"Not a string: {template!r}") + out_text = template.format_map(format_dict) + print(template) + print(format_dict) + print(out_text) + + if show and unique_id: + _show_text_on_node(out_text, unique_id) + + return (out_text, ) diff --git a/node_formatter.py b/node_formatter.py new file mode 100644 index 0000000..c80fed2 --- /dev/null +++ b/node_formatter.py @@ -0,0 +1,68 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +from inspect import cleandoc as _cleandoc + +from frozendict import deepfreeze as _deepfreeze + +from comfy.comfy_types.node_typing import IO as _IO + +from . import _meta +from .docstring_formatter import format_docstring as _format_docstring +from .enums import DataTypes as _DataTypes +from .funcs_formatter import formatter as _formatter + + +# A tiny optimization by reusing the same immutable dict: +_input_types = _deepfreeze({ + 'required': { + 'template': (_IO.STRING, {'multiline': True, 'tooltip': ( + "Type the text template. " + "To reference named substrings from format-dictionary, use this syntax: {substring_name}. For example:\n\n" + "score_9, score_8_up, score_7_up, {char1_short}, standing next to {char2_short},\n" + "{char1_long}\n{char2_long}" + )}), + 'show_status': (_IO.BOOLEAN, {'default': True, 'label_on': 'formatted string', 'label_off': 'no', 'tooltip': ( + "Show the final string constructed from the text-template and format-dictionary?" + )}), + }, + 'optional': { + 'str_dict': _DataTypes.input_str_dict(tooltip=( + "The dictionary to take named sub-strings from. It could be left unconnected, if the pattern doesn't reference " + "any sub-strings - then, this node acts exactly the same as a regular string-primitive node." + )), + }, + 'hidden': { + 'unique_id': 'UNIQUE_ID', # used for text display at the bottom of the node + }, +}) + + +class StringConstructorFormatter: + """ + Construct the formatted string from template and format-dictionary. + """ + NODE_NAME = 'StringConstructorFormatter' + CATEGORY = _meta.category + DESCRIPTION = _format_docstring(_cleandoc(__doc__)) + + OUTPUT_NODE = True + + FUNCTION = 'main' + RETURN_TYPES = (_IO.STRING, ) + RETURN_NAMES = ('string', ) + # OUTPUT_TOOLTIPS = tuple() + + @classmethod + def INPUT_TYPES(cls): + return _input_types + + def main( + self, template: str, show_status: bool, + str_dict: _t.Dict[str, _t.Any] = None, + unique_id: str = None, + ): + return _formatter(template, str_dict, show=show_status, unique_id=unique_id) From fe385e0555415fcc847c2678b83fbfc28da12edb Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 08:41:18 +0500 Subject: [PATCH 13/17] `StringConstructorDictAddString` --- CHANGELOG.md | 1 + __init__.py | 3 ++ funcs_dict_add_string.py | 29 ++++++++++++++++++ node_dict_add_string.py | 65 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 funcs_dict_add_string.py create mode 100644 node_dict_add_string.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d6a77d..48b9b4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # v0.0.1 MVP nodes: +- `Add String to Format-Dict` - `Format-Dict from Text` - `Format-Dict Preview` - `String Formatter` diff --git a/__init__.py b/__init__.py index df80d2b..83000be 100644 --- a/__init__.py +++ b/__init__.py @@ -4,16 +4,19 @@ import typing as _t +from .node_dict_add_string import StringConstructorDictAddString from .node_dict_from_text import StringConstructorDictFromText from .node_dict_preview import StringConstructorDictPreview from .node_formatter import StringConstructorFormatter NODE_CLASS_MAPPINGS: _t.Dict[str, type] = { + 'StringConstructorDictAddString': StringConstructorDictAddString, 'StringConstructorDictFromText': StringConstructorDictFromText, 'StringConstructorDictPreview': StringConstructorDictPreview, 'StringConstructorFormatter': StringConstructorFormatter, } NODE_DISPLAY_NAME_MAPPINGS: _t.Dict[str, str] = { + 'StringConstructorDictAddString': "Add String to Format-Dict", 'StringConstructorDictFromText': "Format-Dict from Text", 'StringConstructorDictPreview': "Preview Format-Dict", 'StringConstructorFormatter': "String Formatter", diff --git a/funcs_dict_add_string.py b/funcs_dict_add_string.py new file mode 100644 index 0000000..da61249 --- /dev/null +++ b/funcs_dict_add_string.py @@ -0,0 +1,29 @@ +# encoding: utf-8 +""" +The actual code (MVC pattern) for `StringConstructorDictString` node. +""" + +import typing as _t + +from frozendict import deepfreeze as _deepfreeze + +from .enums import T as _T +from .funcs_common import _raise_from_errors_dict, _validate_key, _verify_input_dict + +def set_dict_string( + name: str, value: str, strip_lines=True, in_dict: _t.Dict[str, _T] = None, + # unique_id: str = None, +): + """Update/append a string to the dict.""" + out_dict: _t.Dict[str, _T] = _verify_input_dict(in_dict) + errors_dict: _t.Dict[_t.Any, str] = dict() + name = _validate_key(name, errors_dict) + _raise_from_errors_dict(errors_dict) + value = str(value) + if strip_lines: + value = '\n'.join( + x.strip() for x in value.splitlines() + ) + new_dict: _t.Dict[str, str] = {name: value} + out_dict.update(new_dict) + return (_deepfreeze(out_dict),) diff --git a/node_dict_add_string.py b/node_dict_add_string.py new file mode 100644 index 0000000..189c7ff --- /dev/null +++ b/node_dict_add_string.py @@ -0,0 +1,65 @@ +# encoding: utf-8 +""" +""" + +import typing as _t + +from inspect import cleandoc as _cleandoc + +from frozendict import deepfreeze as _deepfreeze + +from comfy.comfy_types.node_typing import IO as _IO + +from . import _meta +from .docstring_formatter import format_docstring as _format_docstring +from .enums import DataTypes as _DataTypes +from .funcs_dict_add_string import set_dict_string as _set_dict_string + + +# A tiny optimization by reusing the same immutable dict: +_input_types = _deepfreeze({ + 'required': { + 'name': (_IO.STRING, {'tooltip': ( + "Name of the substring inserted into the dict. " + "It must comprise only of latin letters, digits and underscores + it can't start with a digit." + )}), + 'cleanup': (_IO.BOOLEAN, {'default': True, 'label_on': 'extra spaces', 'label_off': 'no', 'tooltip': ( + "When enabled, each line in the sub-string is stripped from any spaces at its start and end." + )}), + 'string': (_IO.STRING, {'multiline': True, 'tooltip': "The actual sub-string to set into the dict."}), + }, + 'optional': { + 'str_dict': _DataTypes.input_str_dict(tooltip=( + "The dictionary to take named sub-strings from. It could be left unconnected, if the pattern doesn't reference " + "any sub-strings - then, this node acts exactly the same as a regular string-primitive node." + )), + }, + # 'hidden': { + # 'unique_id': 'UNIQUE_ID', # used for text display at the bottom of the node + # }, +}) + + +class StringConstructorDictAddString: + """Add/update a string to the Format-Dict.""" + NODE_NAME = 'StringConstructorDictAddString' + CATEGORY = _meta.category + DESCRIPTION = _format_docstring(_cleandoc(__doc__)) + + OUTPUT_NODE = True # Just to show the status message even if not connected to anything + + FUNCTION = 'main' + RETURN_TYPES = (_DataTypes.STR_DICT, ) + RETURN_NAMES = (_DataTypes.STR_DICT.lower(), ) + # OUTPUT_TOOLTIPS = tuple() + + @classmethod + def INPUT_TYPES(cls): + return _input_types + + def main( + self, name: str, cleanup: bool, string: str, + str_dict: _t.Dict[str, _t.Any] = None, + # unique_id: str = None, + ): + return _set_dict_string(name, string, strip_lines=cleanup, in_dict=str_dict) From 50fa3b6b0134c493de77a4eda92458e9ba5de32e Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 08:41:42 +0500 Subject: [PATCH 14/17] `TODO` --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48b9b4a..8d0b238 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,3 +5,7 @@ MVP nodes: - `Format-Dict from Text` - `Format-Dict Preview` - `String Formatter` + +⚠️ Active `TODO:` +- Recursive formatting. +- Append non-string to Format-Dict. From fd6aa5a56e5bcc2cc4a14cb14a11a9324921491d Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:05:37 +0500 Subject: [PATCH 15/17] README --- README.md | 23 +++++++++++++++++++---- img/screenshot1.png | Bin 0 -> 216426 bytes 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 img/screenshot1.png diff --git a/README.md b/README.md index 93293b9..f5263b7 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,26 @@ > "Simple is better than complex." _— Zen of Python_ -# `String Constructor` (aka Text-Formatting) nodes +# `String Constructor` (Text-Formatting) nodes -There's a plenty of string-formatting nodes for ComfyUI. But this node pack takes a different approach: +There's already a plenty of string-formatting nodes for ComfyUI. But this node pack takes a different approach: - First, you prepare a dictionary of named sub-strings (chunks of text). -- Then, right before `CLIP Text Encode`, you construct a final prompt from these parts, using python's [string formatting syntax](https://docs.python.org/3/library/string.html#format-examples)... **Don't panic!** You don't need to be a programmer to simply compose a prompt from pieces. Besides, examples are below. -- Unlike many other _(giant uber-mega)_ node packs, this one strictly adheres to the modularity paradigm: it's minimal and self-sufficient. +- Then, right before `CLIP Text Encode`, you construct a final prompt from these parts, using python's [string formatting syntax](https://docs.python.org/3/library/string.html#format-examples)... **Don't panic!** You don't need to be a programmer - just look below for a quick introduction. +- Unlike many other _(giant uber-mega)_ node packs, this one strictly adheres to the modular philosophy: it's minimal and self-sufficient. [🔄 Updates ChangeLog](CHANGELOG.md) + +![image](img/screenshot1.png) + +## Syntax + +For those who are unfamiliar with python's string formatting, the rules are very simple: +- You need to name (set tags/**keys** for) your sub-strings the same way python variables are named: only ASCII letters, digits and underscore are allowed + the name can't start with a digit. So: + - ✅ `valid_name`, `other_valid_name`, `YetAnother_ValidName`, `name3`. + - ❌ `wrong name with spaces`, `wrong-name.with:punctuation`, `3name`. +- Then, you simply put your `{substring_name}` inside curly braces (no spaces between) in the formatting template - and voila! This pattern will be replaced with the actual sub-string. + +> [!NOTE] +> For advanced users: +> Internally, a built-in `str.format()` is called with keyword arguments from `str_dict`, which is literally just a dict... though, an immutable one. +> So any formatting patterns are available (like `{float_value:.3f}`). However, currently there are no nodes to append non-string values (planned, TODO). diff --git a/img/screenshot1.png b/img/screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..169d12e04680578abb6713dccded7b2c8f251ff2 GIT binary patch literal 216426 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 gV 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
uoeelh6hAZV;!ZdSvsH4%8>F-aIdn7 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 literal 0 HcmV?d00001 From d24db610f7998d5db672103a758715255a33a10a Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:28:13 +0500 Subject: [PATCH 16/17] pyproject --- pyproject.toml | 19 +++++++++++++++++++ requirements.txt | 1 + 2 files changed, 20 insertions(+) create mode 100644 pyproject.toml create mode 100644 requirements.txt diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..52972d3 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,19 @@ +[project] +name = "string-constructor" +description = "Build your dictionary of named strings (text chunks), then easily compile different prompt variations from them - with simple string formatting.\nUnlike string-formatting nodes from other popular packs, this one is designed for specifying your sub-strings once, then dragging the entire \"library\" of them across the entire workflow (like a bus), updating it in-place as necessary. This is especially handy for regional prompting aka area composition." +version = "0.0.1" +authors = [ + {name = "Lex Darlog"} +] +license = {file = "LICENSE.md"} +readme = "README.md" +dependencies = ["frozendict"] + +[project.urls] +Repository = "https://github.com/Lex-DRL/ComfyUI-BestResolution" +# Used by Comfy Registry https://comfyregistry.org + +[tool.comfy] +PublisherId = "lex-drl" +DisplayName = "String Constructor (Text-Formatting)" +Icon = "" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..302328f --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +frozendict From f429c4ff40d3f0cb208cb138dc07099a0d0f567b Mon Sep 17 00:00:00 2001 From: "Lex Darlog (DRL)" <3897975+Lex-DRL@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:29:45 +0500 Subject: [PATCH 17/17] `publish_action.yml` workflow --- .github/workflows/publish_action.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/publish_action.yml diff --git a/.github/workflows/publish_action.yml b/.github/workflows/publish_action.yml new file mode 100644 index 0000000..4081728 --- /dev/null +++ b/.github/workflows/publish_action.yml @@ -0,0 +1,27 @@ +name: 📦 Publish to Comfy registry +on: + workflow_dispatch: + push: + branches: + - main + paths: + - "pyproject.toml" + +permissions: + issues: write + +jobs: + publish-node: + name: Publish Custom Node to registry + runs-on: ubuntu-latest + # Just to be nice - to prevent unwanted auto-runs on forks made solely for a PR: + if: ${{ github.repository_owner == 'Lex-DRL' }} + steps: + - name: ♻️ Check out code + uses: actions/checkout@v4 + - name: 📦 Publish Custom Node + uses: Comfy-Org/publish-node-action@main + with: + # Add your own personal access token to your Github Repository secrets and reference it here. + personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} + # personal_access_token: {% raw %}${{ secrets.REGISTRY_ACCESS_TOKEN }}{% endraw %}