From 4e49b99e2de007625eba704e417863e55c0fa41a Mon Sep 17 00:00:00 2001 From: Meisoftcoltd <38667978+Meisoftcoltd@users.noreply.github.com> Date: Sat, 23 May 2026 13:45:37 +0000 Subject: [PATCH] fix: return primitives instead of single-item lists in AutoLoopCalculatorTTSBatch The AutoLoopCalculatorTTSBatch node was returning its output variables wrapped in single-item lists (e.g., `[current_chunk_text]`) instead of as raw primitive values. This caused downstream nodes expecting raw types (like standard string replacement or string concatenation nodes) to crash, since Python lists do not have `.replace()` or `.join()` methods. The brackets were removed from the `return` statement so the node now properly outputs the exact primitive values. --- loop.py | 2 +- test_loop_syntax.py | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/loop.py b/loop.py index 6d1f001..b2d8162 100644 --- a/loop.py +++ b/loop.py @@ -191,7 +191,7 @@ class AutoLoopCalculatorTTSBatch: _log(f" -> 📜 Texto a procesar: {current_chunk_text[:75]}...") _log(f"{'='*50}\n") - return ([current_chunk_text], [safe_index], [total_chunks], [current_name], ["\n".join(log_output)]) + return (current_chunk_text, safe_index, total_chunks, current_name, "\n".join(log_output)) @register_node class AutoLoopCalculatorLTX: diff --git a/test_loop_syntax.py b/test_loop_syntax.py index 3449fd2..9b2b59a 100644 --- a/test_loop_syntax.py +++ b/test_loop_syntax.py @@ -8,14 +8,16 @@ sys.modules['comfy.model_management'] = unittest.mock.MagicMock() sys.modules['folder_paths'] = unittest.mock.MagicMock() # Mock internal import to prevent syntax error on register_node -class DummyRegister: - def __call__(self, cls): - return cls - -sys.modules['__main__'].register_node = DummyRegister() +import types +dummy_module = types.ModuleType("dummy") +dummy_module.register_node = lambda c: c +sys.modules[__package__ or '.'] = dummy_module try: - import loop + with open('loop.py') as f: + code = f.read() + code = code.replace('from . import register_node', 'def register_node(c): return c') + exec(code) print("Syntax is OK") except Exception as e: import traceback