From 0e50c344720f716a4decb05dd5f42fcdf9d028de Mon Sep 17 00:00:00 2001 From: Pharma-Lobby Date: Sun, 12 Jul 2026 18:45:50 +0000 Subject: [PATCH] =?UTF-8?q?ComfyChair-Kompatibilit=C3=A4t:=20Prompt=20?= =?UTF-8?q?=C3=BCber=20ReplicateTextEncode-Passthrough=20leiten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ComfyChairs Import-Mapping akzeptiert als Positive-Prompt-Quelle nur Nodes, deren class_type CLIPTextEncode/*TextEncode*/*Prompt* enthält. Die generierten Replicate_*-Nodes fallen durch → 'Fehlende Pflichtfelder: Positiver Prompt'. Neuer Passthrough-Node ReplicateTextEncode + alle Templates umverdrahtet. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_019D2FYwPstKRfT5kh9M2kMS --- __pycache__/nodes.cpython-311.pyc | Bin 16098 -> 17824 bytes nodes.py | 32 ++++++++++++++++-- pyproject.toml | 2 +- templates/LTX-2_Replicate.json | 16 +++++++-- templates/Qwen_Image_Edit_Plus_Replicate.json | 16 +++++++-- templates/Wan_2.2_i2v_fast_Replicate.json | 16 +++++++-- templates/Wan_2.2_t2v_fast_Replicate.json | 16 +++++++-- templates/Z-Image_Turbo_Replicate.json | 16 +++++++-- .../Z-Image_Turbo_img2img_Replicate.json | 16 +++++++-- 9 files changed, 115 insertions(+), 15 deletions(-) diff --git a/__pycache__/nodes.cpython-311.pyc b/__pycache__/nodes.cpython-311.pyc index d957b89b677e16fe360329ef6084bb1c142b3b55..925b1e77d40de65c46fb8d9601b253d922b2d831 100644 GIT binary patch delta 4426 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 dict: return json.load(fh) -NODE_CLASS_MAPPINGS = {"ReplicateCustom": ReplicateCustom} -NODE_DISPLAY_NAME_MAPPINGS = {"ReplicateCustom": "Replicate Custom (beliebige Modell-ID)"} +NODE_CLASS_MAPPINGS = { + "ReplicateCustom": ReplicateCustom, + "ReplicateTextEncode": ReplicateTextEncode, +} +NODE_DISPLAY_NAME_MAPPINGS = { + "ReplicateCustom": "Replicate Custom (beliebige Modell-ID)", + "ReplicateTextEncode": "Prompt (Replicate Select)", +} for _model in _load_catalog()["models"]: _cls = _make_node(_model) diff --git a/pyproject.toml b/pyproject.toml index 1fcd8f4..2a493ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui-replicate-select" description = "Kuratierte Replicate-Modelle als ComfyUI-Nodes (Bild, Video, Upscale, TTS, Lipsync) + Custom-Node für beliebige Modell-IDs." -version = "0.2.0" +version = "0.2.1" dependencies = ["replicate>=1.0.7"] [tool.comfy] diff --git a/templates/LTX-2_Replicate.json b/templates/LTX-2_Replicate.json index acaff10..72a9e78 100644 --- a/templates/LTX-2_Replicate.json +++ b/templates/LTX-2_Replicate.json @@ -6,6 +6,15 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "LoadImage", "inputs": { @@ -18,7 +27,10 @@ "2": { "class_type": "Replicate_lightricks_ltx_2_distilled", "inputs": { - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "image": [ "1", 0 @@ -31,4 +43,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/Qwen_Image_Edit_Plus_Replicate.json b/templates/Qwen_Image_Edit_Plus_Replicate.json index 3d0dd39..aafb2c7 100644 --- a/templates/Qwen_Image_Edit_Plus_Replicate.json +++ b/templates/Qwen_Image_Edit_Plus_Replicate.json @@ -6,6 +6,15 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "LoadImage", "inputs": { @@ -22,7 +31,10 @@ "1", 0 ], - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "aspect_ratio": "{{aspect_ratio}}", "seed": "{{seed}}" }, @@ -44,4 +56,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/Wan_2.2_i2v_fast_Replicate.json b/templates/Wan_2.2_i2v_fast_Replicate.json index f6284ee..cacf699 100644 --- a/templates/Wan_2.2_i2v_fast_Replicate.json +++ b/templates/Wan_2.2_i2v_fast_Replicate.json @@ -8,6 +8,15 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "LoadImage", "inputs": { @@ -20,7 +29,10 @@ "2": { "class_type": "Replicate_wan_video_wan_2_2_i2v_fast", "inputs": { - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "image": [ "1", 0 @@ -35,4 +47,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/Wan_2.2_t2v_fast_Replicate.json b/templates/Wan_2.2_t2v_fast_Replicate.json index 3212b8e..d2c52ea 100644 --- a/templates/Wan_2.2_t2v_fast_Replicate.json +++ b/templates/Wan_2.2_t2v_fast_Replicate.json @@ -9,10 +9,22 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "Replicate_wan_video_wan_2_2_t2v_fast", "inputs": { - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "aspect_ratio": "{{aspect_ratio}}", "resolution": "{{resolution}}", "num_frames": "{{num_frames}}", @@ -24,4 +36,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/Z-Image_Turbo_Replicate.json b/templates/Z-Image_Turbo_Replicate.json index a686fc2..20276c0 100644 --- a/templates/Z-Image_Turbo_Replicate.json +++ b/templates/Z-Image_Turbo_Replicate.json @@ -8,10 +8,22 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "Replicate_prunaai_z_image_turbo", "inputs": { - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "width": "{{width}}", "height": "{{height}}", "num_inference_steps": "{{steps}}", @@ -35,4 +47,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/Z-Image_Turbo_img2img_Replicate.json b/templates/Z-Image_Turbo_img2img_Replicate.json index 30e13e5..1b9bd7f 100644 --- a/templates/Z-Image_Turbo_img2img_Replicate.json +++ b/templates/Z-Image_Turbo_img2img_Replicate.json @@ -7,6 +7,15 @@ "seed": 0 }, "nodes": { + "0": { + "class_type": "ReplicateTextEncode", + "inputs": { + "text": "{{positive_prompt}}" + }, + "_meta": { + "title": "Positive Prompt" + } + }, "1": { "class_type": "LoadImage", "inputs": { @@ -19,7 +28,10 @@ "2": { "class_type": "Replicate_prunaai_z_image_turbo_img2img", "inputs": { - "prompt": "{{positive_prompt}}", + "prompt": [ + "0", + 0 + ], "image": [ "1", 0 @@ -46,4 +58,4 @@ } } } -} \ No newline at end of file +}