[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rgthree--rgthree-comfy":3,"tool-rgthree--rgthree-comfy":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":32,"env_os":112,"env_gpu":112,"env_ram":112,"env_deps":113,"category_tags":116,"github_topics":117,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":121,"updated_at":122,"faqs":123,"releases":154},6328,"rgthree\u002Frgthree-comfy","rgthree-comfy","Making ComfyUI more comfortable!","rgthree-comfy 是一款专为 ComfyUI 设计的增强插件，旨在让复杂的节点工作流变得更加整洁、高效和易用。它通过提供一系列精心优化的自定义节点，解决了原生界面中连线杂乱、种子管理不便以及大型工作流难以导航等痛点。\n\n该工具特别适合经常使用 ComfyUI 进行 AI 绘画创作的设计师、艺术家及高级玩家。其核心亮点包括：直观的种子控制节点，支持随机、固定及自动递增\u002F递减模式，操作逻辑类似 Automatic1111；功能强大的重路由（Reroute）节点，允许用户自由调整连线方向与尺寸，大幅减少视觉混乱；以及书签节点，支持设置快捷键快速跳转至特定区域并调整缩放级别，极大提升了长工作流的编辑效率。此外，它还提供了上下文（Context）节点，能够轻松合并或拆分数据流，简化了节点间的连接逻辑。rgthree-comfy 不仅功能实用，还内置了详细的节点帮助文档和灵活的配置选项，帮助用户在保持工作流清晰的同时，更专注于创意实现。","\u003Ch1 align=\"center\">\r\n    rgthree-comfy\r\n    \u003Cbr>\r\n    \u003Csub>\u003Csup>\u003Ci>Making ComfyUI more comfortable!\u003C\u002Fi>\u003C\u002Fsup>\u003C\u002Fsub>\r\n    \u003Cbr>\r\n\u003C\u002Fh1>\r\n\u003Cp align=\"center\">\r\n    \u003Ca href=\"#️-the-nodes\">The Nodes\u003C\u002Fa> &nbsp; | &nbsp; \u003Ca href=\"#-improvements--features\">Improvements & Features\u003C\u002Fa>  &nbsp; | &nbsp; \u003Ca href=\"#-link-fixer\">Link Fixer\u003C\u002Fa>\r\n\u003C\u002Fp>\r\n\u003Chr>\r\n\r\nA collection of nodes and improvements created while messing around with ComfyUI. I made them for myself to make my workflow cleaner, easier, and faster. You're welcome to try them out. But remember, I made them for my own use cases :)\r\n\r\n![Context Node](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_f1e03bbaefa9.png)\r\n\r\n# Get Started\r\n\r\n## Install\r\n\r\n1. Install the great [ComfyUi](https:\u002F\u002Fgithub.com\u002Fcomfyanonymous\u002FComfyUI).\r\n2. Clone this repo into `custom_modules`:\r\n    ```\r\n    cd ComfyUI\u002Fcustom_nodes\r\n    git clone https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy.git\r\n    ```\r\n3. Start up ComfyUI.\r\n\r\n## Settings\r\n\r\nYou can configure certain aspect of rgthree-comfy. For instance, perhaps a future ComfyUI change breaks rgthree-comfy, or you already have another extension that does something similar and you want to turn it off for rgthree-comfy.\r\n\r\nYou can get to rgthree-settings by right-clicking on the empty part of the graph, and selecting `rgthree-comfy > Settings (rgthree-comfy)` or by clicking the `rgthree-comfy settings` in the ComfyUI settings dialog.\r\n\r\n_(Note, settings are stored in an `rgthree_config.json` in the `rgthree-comfy` directory. There are other advanced settings that can only be configured there; You can copy default settings from `rgthree_config.json.default` before `rgthree_config.json` before modifying)_.\r\n\r\n\u003Cbr>\r\n\r\n# ✴️ The Nodes\r\n\r\nNote, you can right-click on a bunch of the rgthree-comfy nodes and select `🛟 Node Help` menu item for in-app help when available.\r\n\r\n## Seed\r\n> An intuitive seed control node for ComfyUI that works very much like Automatic1111's seed control.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>See More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Set the seed value to \"-1\" to use a random seed every time\r\n>    - Set any other number in there to use as a static\u002Ffixed seed\r\n>    - Quick actions to randomize, or (re-)use the last queued seed.\r\n>    - Images metadata will store the seed value _(so dragging an image in, will have the seed field already fixed to its seed)_.\r\n>    - _Secret Features_: You can manually set the seed value to \"-2\" or \"-3\" to increment or decrement the last seed value. If there was not last seed value, it will randomly use on first.\r\n>\r\n>    ![Router Node](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_9718bd0d142a.png)\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Reroute\r\n> Keep your workflow neat with this much improved Reroute node with, like, actual rerouting with multiple directions and sizes.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Use the right-click context menu to change the width, height and connection layout\r\n>    - Also toggle resizability (min size is 40x43 if resizing though), and title\u002Ftype display.\r\n>\r\n>    ![Router Node](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_9eebab3154df.png)\r\n>    \u003C\u002Fdetails>\r\n\r\n## Bookmark (🔖)\r\n> Place the bookmark node anywhere on screen to quickly navigate to that with a shortcut key.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>See More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Define the `shortcut_key` to press to go right to that bookmark node, anchored in the top left.\r\n>    - You can also define the zoom level as well!\r\n>    - Pro tip: `shortcut_key` can be multiple keys. For instance \"alt + shift + !\" would require\r\n>      pressing the alt key, the shift key, and the \"!\" (as in the \"1\" key, but with shift pressed)\r\n>      in order to trigger.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Context \u002F Context Big\r\n> Pass along in general flow properties, and merge in new data. Similar to some other node suites \"pipes\" but easier merging, is more easily interoperable with standard nodes by both combining and exploding all in a single node.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Context and Context Big are backwards compatible with each other. That is, an input connected to a Context Big will be passed through the CONTEXT outputs through normal Context nodes and available as an output on either (or, Context Big if the output is only on that node, like \"steps\").\r\n>    - Pro Tip: When dragging a Context output over a nother node, hold down \"ctrl\" and release to automatically connect the other Context outputs to the hovered node.\r\n>    - Pro Tip: You can change between Context and Context Big nodes from the menu.\r\n>\r\n>    ![Context Node](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_7780d97870d2.png)\r\n>    \u003C\u002Fdetails>\r\n\r\n## Image Comparer\r\n> The Image Comparer node compares two images on top of each other.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - **Note:** The right-click menu may show image options (Open Image, Save Image, etc.) which will correspond to the first image (image_a) if clicked on the left-half of the node, or the second image if on the right half of the node.\r\n>    - **Inputs:**\r\n>      - `image_a` _Required._ The first image to use to compare. If image_b is not supplied and image_a is a batch, the comparer will use the first two images of image_a.\r\n>      - `image_b` _Optional._ The second image to use to compare. Optional only if image_a is a batch with two images.\r\n>    - **Properties:** You can change the following properties (by right-clicking on the node, and select \"Properties\" or \"Properties Panel\" from the menu):\r\n>      - `comparer_mode` - Choose between \"Slide\" and \"Click\". Defaults to \"Slide\".\r\n\r\n\r\n## Image Inset Crop\r\n> The node that lets you crop an input image by either pixel value, or percentage value.\r\n\r\n\r\n## Display Any\r\n> Displays most any piece of text data from the backend _after execution_.\r\n\r\n## Power Lora Loader\r\n> A super-simply Lora Loader node that can load multiple Loras at once, and quick toggle each, all in an ultra-condensed node.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Add as many Lora's as you would like by clicking the \"+ Add Lora\" button. There's no real limit!\r\n>    - Right-click on a Lora widget for special options to move the lora up or down\r\n>      _(no affect on image, just presentation)_, toggle it on\u002Foff, or delete the row all together.\r\n>    - from the properties, change the `Show Strengths` to choose between showing a single, simple\r\n>      strength value (which will be used for both model and clip), or a more advanced view with\r\n>      both model and clip strengths being modifiable.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## ~~Lora Loader Stack~~\r\n> _**Deprecated.** Used the `Power Lora Loader` instead._\r\n>\r\n> A simplified Lora Loader stack. Much like other suites, but more interoperable with standard inputs\u002Foutputs.\r\n\r\n\r\n## Power Prompt\r\n> Power up your prompt and get drop downs for adding your embeddings, loras, and even have saved prompt snippets.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - At the core, you can use Power Prompt almost as a String Primitive node with additional features of dropdowns for choosing your embeddings, and even loras, with no further processing. This will output just the raw `TEXT` to another node for any lora processing, CLIP Encoding, etc.\r\n>    - Connect a `CLIP` to the input to encode the text, with both the `CLIP` and `CONDITIONING` output right from the node.\r\n>    - Connect a `MODEL` to the input to parse and load any `\u003Clora:...>` tags in the text automatically, without\r\n>      needing a separate Lora Loaders\r\n>    \u003C\u002Fdetails>\r\n\r\n## Power Prompt - Simple\r\n> Same as Power Prompt above, but without LORA support; made for a slightly cleaner negative prompt _(since negative prompts do not support loras)_.\r\n\r\n## SDXL Power Prompt - Positive\r\n> The SDXL sibling to the Power Prompt above. It contains the text_g and text_l as separate text inputs, as well a couple more input slots necessary to ensure proper clipe encoding. Combine with\r\n\r\n## SDXL Power Prompt - Simple\r\n> Like the non-SDXL `Power Prompt - Simple` node, this one is essentially the same as the SDXL Power Prompt but without lora support for either non-lora positive prompts or SDXL negative prompts _(since negative prompts do not support loras)_.\r\n\r\n## SDXL Config\r\n> Just some configuration fields for SDXL prompting. Honestly, could be used for non SDXL too.\r\n\r\n## Context Switch \u002F Context Switch Big\r\n> A powerful node to branch your workflow. Works by choosing the first Context input that is not null\u002Fempty.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Pass in several context nodes and the Context Switch will automatically choose the first non-null context to continue onward with.\r\n>    - Wondering how to toggle contexts to null? Use in conjuction with the **Fast Muter** or **Fast Groups Muter**\r\n>\r\n>    \u003C\u002Fdetails>\r\n\r\n## Any Switch\r\n> A powerful node to similar to the Context Switch above, that chooses the first input that is not null\u002Fempty.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Pass in several inmputs of the same type and the Any Switch will automatically choose the first non-null value to continue onward with.\r\n>    - Wondering how to toggle contexts to null? Use in conjuction with the **Fast Muter** or **Fast Groups Muter**\r\n>\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Power Primitive\r\n> A single node that can output primitives (STRING, INT, FLOAT, BOOLEAN). If connecting an input, it will cast\u002Fconvert the primitive input to the desired output.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - You can hide the type selector input from the right-click menu or properties.\r\n>    - You can also fast-switch the output type from the right-click menu as well.\r\n>\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Power Puter\r\n> A  powerful and versatile node that opens the door for a wide range of utility by offering mult-line code parsing for output. This node can be used for simple string concatenation, or math operations; to an image dimension or a node's widgets with advanced list comprehension. If you want to output something in your workflow, this is the node to do it.\r\n>\r\n> Additional documentation available in the [wiki](https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fwiki\u002FNode:-Power-Puter)\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Evaluate almost any kind of input and more, and choose your output from INT, FLOAT, STRING, or BOOLEAN.\r\n>    - Connect some nodes and do simply math operations like `a + b` or `ceil(1 \u002F 2)`.\r\n>    - Or do more advanced things, like input an image, and get the width like `a.shape[2]`.\r\n>    - Even more powerful, you can target nodes in the prompt that's sent to the backend. For instance; if you have a Power Lora Loader node at id #5, and want to get a comma-delimited list of the enabled loras, you could enter:\r\n>\r\n>      ```\r\n>      loras = [v.lora for v in node(5).inputs.values() if 'lora' in v and v.on]\r\n>      ', '.join(loras)\r\n>      ```\r\n>\r\n>    \u003C\u002Fdetails>\r\n\r\n## Fast Groups Muter\r\n> The Fast Groups Muter is an input-less node that automatically collects all groups in your current workflow and allows you to quickly mute and unmute all nodes within the group.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Groups will automatically be shown, though you can filter, sort and more from the **node Properties** _(by right-clicking on the node, and select \"Properties\" or \"Properties Panel\" from the menu)_. Properties include:\r\n>    -  `matchColors` - Only add groups that match the provided colors. Can be ComfyUI colors (red, pale_blue) or hex codes (#a4d399). Multiple can be added, comma delimited.\r\n>    -  `matchTitle` - Filter the list of toggles by title match (string match, or regular expression).\r\n>    -  `showNav` - Add \u002F remove a quick navigation arrow to take you to the group. (default: true)\r\n>    -  `showAllGraphs` - Show groups from all [sub]graphs in the workflow. (default: true)\r\n>    -  `sort` - Sort the toggles' order by \"alphanumeric\", graph \"position\", or \"custom alphabet\". (default: \"position\")\r\n>    -  `customSortAlphabet` - When the sort property is \"custom alphabet\" you can define the alphabet to use here, which will match the beginning of each group name and sort against it. If group titles do not match any custom alphabet entry, then they will be put after groups that do, ordered alphanumerically.\r\n>\r\n>        This can be a list of single characters, like \"zyxw...\" or comma delimited strings for more control, like \"sdxl,pro,sd,n,p\".\r\n>\r\n>        Note, when two group title match the same custom alphabet entry, the normal alphanumeric alphabet breaks the tie. For instance, a custom alphabet of \"e,s,d\" will order groups names like \"SDXL, SEGS, Detailer\" eventhough the custom alphabet has an \"e\" before \"d\" (where one may expect \"SE\" to be before \"SD\").\r\n>\r\n>        To have \"SEGS\" appear before \"SDXL\" you can use longer strings. For instance, the custom alphabet value of \"se,s,f\" would work here.\r\n>    -  `toggleRestriction` - Optionally, attempt to restrict the number of widgets that can be enabled to a maximum of one, or always one.\r\n>\r\n>        _Note: If using \"max one\" or \"always one\" then this is only enforced when clicking a toggle on this node; if nodes within groups are changed outside of the initial toggle click, then these restriction will not be enforced, and could result in a state where more than one toggle is enabled. This could also happen if nodes are overlapped with multiple groups._\r\n>    \u003C\u002Fdetails>\r\n\r\n## Fast Groups Bypasser\r\n> _Same as **Fast Groups Muter** above, but sets the connected nodes to \"Bypass\" instead of \"Mute\"_\r\n\r\n\r\n## Fast Muter\r\n> A powerful 'control panel' node to quickly toggle connected nodes allowing them to quickly be muted or enabled\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Add a collection of all connected nodes allowing a single-spot as a \"dashboard\" to quickly enable and disable nodes. Two distinct nodes; one for \"Muting\" connected nodes, and one for \"Bypassing\" connected nodes.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Fast Bypasser\r\n> Same as Fast Muter but sets the connected nodes to \"Bypass\"\r\n\r\n## Fast Actions Button\r\n> Oh boy, this node allows you to semi-automate connected nodes and\u002For ConfyUI.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Connect nodes and, at the least, mute, bypass or enable them when the button is pressed.\r\n>    - Certain nodes expose additional actions. For instance, the `Seed` node you can set `Randomize Each Time` or `Use Last Queued Seed` when the button is pressed.\r\n>    - Also, from the node properties, set a shortcut key to toggle the button actions, without needing a click!\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Node Collector\r\n> Used to cleanup noodles, this will accept any number of input nodes and passes it along to another node.\r\n>\r\n> ⚠️ *Currently, this should really only be connected to **Fast Muter**, **Fast Bypasser**, or **Mute \u002F Bypass Relay**.*\r\n\r\n\r\n## Mute \u002F Bypass Repeater\r\n> A powerful node that will dispatch its Mute\u002FBypass\u002FActive mode to all connected input nodes or, if in a group w\u002Fo any connected inputs, will dispatch its Mute\u002FBypass\u002FActive mode to all nodes in that group.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - 💡 Pro Tip #1: Connect this node's output to a **Fast Muter** or **Fast Bypasser** to have a single toggle there that can mute\u002Fbypass\u002Fenable many nodes with one click.\r\n>\r\n>    - 💡 Pro Tip #2: Connect a **Mute \u002F Bypass Relay** node to this node's inputs to have the relay automatically dispatch a mute\u002Fbypass\u002Fenable change to the repeater.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Mute \u002F Bypass Relay\r\n> An advanced node that, when working with a **Mute \u002F Bypass Repeater**, will relay its input nodes'\r\n> modes (Mute, Bypass, or Active) to a connected repeater (which would then repeat that mode change\r\n> to all of its inputs).\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - When all connected input nodes are muted, the relay will set a connected repeater to mute (by\r\n>      default).\r\n>    - When all connected input nodes are bypassed, the relay will set a connected repeater to\r\n>      bypass (by default).\r\n>    - When _any_ connected input nodes are active, the relay will set a connected repeater to\r\n>      active (by default).\r\n>    - **Note:** If no inputs are connected, the relay will set a connected repeater to its mode\r\n>      _when its own mode is changed_. **Note**, if any inputs are connected, then the above bullets\r\n>      will occur and the Relay's mode does not matter.\r\n>    - **Pro Tip:** You can change which signals get sent on the above in the `Properties`.\r\n>       For instance, you could configure an inverse relay which will send a MUTE when any of its\r\n>       inputs are active (instead of sending an ACTIVE signal), and send an ACTIVE signal when all\r\n>       of its inputs are muted (instead of sending a MUTE signal), etc.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Random Unmuter\r\n> An advanced node used to unmute one of its inputs randomly when the graph is queued (and, immediately mute it back).\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - **Note:** All input nodes MUST be muted to start; if not this node will not randomly unmute another. (This is powerful, as the generated image can be dragged in and the chosen input will already by unmuted and work w\u002Fo any further action.)\r\n>    - **Tip:** Connect a Repeater's output to this nodes input and place that Repeater on a group without any other inputs, and it will mute\u002Funmute the entire group.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n## Label\r\n> A purely visual node, this allows you to add a floating label to your workflow.\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - The text shown is the \"Title\" of the node and you can adjust the the font size, font family,\r\n>      font color, text alignment as well as a background color, padding, background border\r\n>      radius, and angle (in degrees) from the node's properties. You can double-click the node to\r\n>      open the properties panel.\r\n>    - The Title also supports the literal sequence \"\\\\n\" to insert a newline when drawing the label.\r\n>    - ~**Pro Tip #1:** You can add multiline text from the properties panel _(because ComfyUI let's\r\n>      you shift + enter there, only)._~\r\n>    - **Pro Tip #2:** You can use ComfyUI's native \"pin\" option in the right-click menu to make the\r\n>      label stick to the workflow and clicks to \"go through\". You can right-click at any time to\r\n>      unpin.\r\n>    - **Pro Tip #3:** Color values are hexidecimal strings, like \"#FFFFFF\" for white, or \"#660000\"\r\n>      for dark red. You can supply a 7th & 8th value (or 5th if using shorthand) to create a\r\n>      transluscent color. For instance, \"#FFFFFF88\" is semi-transparent white.\r\n>    \u003C\u002Fdetails>\r\n\r\n\r\n# Advanced Techniques\r\n\r\n## First, a word on muting\r\n\r\nA lot of the power of these nodes comes from *Muting*. Muting is the basis of correctly implementing multiple paths for a workflow utlizing the Context Switch node.\r\n\r\nWhile other extensions may provide switches, they often get it wrong causing your workflow to do more work than is needed. While other switches may have a selector to choose which input to pass along, they don't stop the execution of the other inputs, which will result in wasted work. Instead, Context Switch works by choosing the first non-empty context to pass along and correctly Muting is one way to make a previous node empty, and causes no extra work to be done when set up correctly.\r\n\r\n### To understand muting, is to understand the graph flow\r\n\r\nMuting, and therefore using Switches, can often confuse people at first because it _feels_ like muting a node, or using a switch, should be able to stop or direct the _forward_ flow of the graph. However, this is not the case and, in fact, the graph actually starts working backwards.\r\n\r\nIf you have a workflow that has a path like `... > Context > KSampler > VAE Decode > Save Image` it may initially _feel_ like you should be able to mute that first Context node and the graph would stop there when moving forward and skip the rest of that workflow.\r\n\r\nBut you'll quickly find that will cause an error, becase the graph doesn't actually move forward. When a workflow is processed, it _first moves backwards_ starting at each \"Output Node\" (Preview Image, Save Image, even \"Display String\" etc.) and then walking backwards to all possible paths to get there.\r\n\r\nSo, with that `... > Context > KSampler > VAE Decode > Save Image` example from above, we actually want to mute the `Save Image` node to stop this path. Once we do, since the output node is gone, none of these nodes will be run.\r\n\r\nLet's take a look at an example.\r\n\r\n### A powerful combination: Using Context, Context Switch, & Fast Muter\r\n\r\n![Context Node](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_f1e03bbaefa9.png)\r\n\r\n1. Using the **Context Switch** (aqua colored in screenshot) feed context inputs in order of preference. In the workflow above, the `Upscale Out` context is first so, if that one is enabled, it will be chosen for the output. If not, the second input slot which comes from the context rerouted from above (before the Upscaler booth) will be chosen.\r\n\r\n    - Notice the `Upscale Preview` is _after_ the `Upscale Out` context node, using the image from it instead of the image from the upscale `VAE Decoder`. This is on purpose so, when we disable the `Upscale Out` context, none of the Upscaler nodes will run, saving precious GPU cycles. If we had the preview hooked up directly to the `VAE Decoder` the upscaler would always run to generate the preview, even if we had the `Upscale Out` context node disabled.\r\n\r\n2. We can now disable the `Upscale Out` context node by _muting_ it. Highlighting it and pressing `ctrl + m` will work. By doing so, it's output will be None, and it will not pass anthing onto the further nodes. In the diagram you can see the `Upscale Preview` is red, but that's OK; there are no actual errors to stop execution.\r\n\r\n3. Now, let's hook it up to the `Fast Muter` node. `The Fast Muter` node works as dashboard by adding quick toggles for any connected node (ignoring reroutes). In the diagram, we have both the `Upscaler Out` context node, and the `Save File` context node hooked up. So, we can quickly enable and disable those.\r\n\r\n    - The workflow seen here would be a common one where we can generate a handful of base previews cheaply with a random seed, and then choose one to upscale and save to disk.\r\n\r\n4. Lastly, and optionally, you can see the `Node Collector`. Use it to clean up noodles if you want and connect it to the muter. You can connect anything to it, but doing so may break your workflow's execution.\r\n\r\n\u003Cbr>\r\n\r\n# ⚡ Improvements & Features\r\n\r\nrgthree-comfy adds several improvements, features, and optimizations to ComfyUI that are not directly tied to nodes.\r\n\r\n## Progress Bar\r\n> A minimal progress bar that run alongs the top of the app window that shows the queue size, the current progress of the a prompt execution (within the same window), and the progress of multi-step nodes as well.\r\n>\r\n> \u003Ci>You can remove\u002Fenable from rgthree-comfy settings, as well as configure the height\u002Fsize.\u003C\u002Fi>\r\n\r\n\r\n## ~~ComfyUI Recursive Optimization~~\r\n> 🎉 The newest version of ComfyUI no longer suffers from poor execution recursion! This feature\r\n> has been removed from rgthree-comfy.\r\n\r\n\r\n## \"Queue Selected Output Nodes\" in right-click menu\r\n> Sometimes you want to just queue one or two paths to specific output node(s) without executing the entire workflow. Well, now you can do just that by right-clicking on an output node and selecting `Queue Selected Output Nodes (rgthree)`.\r\n>\r\n> \u003Cdetails>\r\n>    \u003Csummary>ℹ️ \u003Ci>More Information\u003C\u002Fi>\u003C\u002Fsummary>\r\n>\r\n>    - Select the _output_ nodes you want to execute.\r\n>\r\n>    - Note: Only output nodes are captured and traversed, not all selected nodes. So if you select an output AND a node from a different path, only the path connected to the output will be executed and not non-output nodes, even if they were selected.\r\n>\r\n>    - Note: The whole workflow is serialized, and then we trim what we don't want for the backend. So things like all seed random\u002Fincrement\u002Fdecrement will run even if that node isn't being sent in the end, etc.\r\n>\r\n> \u003C\u002Fdetails>\r\n\r\n\r\n## Auto-Nest Subdirectories in long Combos\r\n> _(Off by default while experimenting, turn on in rgthree-comfy settings)_.\r\n>\r\n> Automatically detect top-level subdirectories in long combo lists (like, Load Checkpoint) and break out into sub directories.\r\n\r\n\r\n## Quick Mute\u002FBypass Toggles in Group Headers\r\n> _(Off by default while experimenting, turn on in rgthree-comfy settings)_.\r\n>\r\n> Adds a mute and\u002For bypass toggle icons in the top-right of Group Headers for one-click toggling of groups you may be currently looking at.\r\n\r\n\r\n## Import Individual Node Widgets (Drag & Drop)\r\n> _(Off by default while experimenting, turn on in rgthree-comfy settings)_.\r\n>\r\n> Allows dragging and dropping an image\u002FJSON workflow from a previous generation and overriding the same node's widgets\r\n> (that match with the same id & type). This is useful if you have several generations using the same general workflow\r\n> and would like to import just some data, like a previous generation's seed, or prompt, etc.\r\n\r\n\r\n\r\n## \"Copy Image\" in right-click menu\r\n> Right clicking on a node that has an image should have a context-menu item of \"Copy Image\" will allow you to copy the image right to your clipboard\r\n>\r\n> \u003Ci>🎓 I believe this has graduated, with ComfyUI recently adding this setting too. You won't get two menu items; my code checks that there isn't already a \"Copy Image\" item there before adding it.\u003C\u002Fi>\r\n\r\n\r\n## Other\u002FSmaller Fixes\r\n- Fixed the width of ultra-wide node chooser on double click.\r\n- Fixed z-indexes for textareas that would overlap above other elements, like Properties Panel, or @pythongosssss's image viewer.\r\n- Check for bad links when loading a workflow and log to console, by default. _(See Link Fixer below)._\r\n\r\n\u003Cbr>\r\n\r\n# 📄 Link Fixer\r\n\r\nIf your workflows sometimes have missing connections, or even errors on load, start up ComfyUI and go to http:\u002F\u002F127.0.0.1:8188\u002Frgthree\u002Flink_fixer which will allow you to drop in an image or workflow json file and check for and fix any bad links.\r\n\r\nYou can also enable a link fixer check in the rgthree-comfy settings to give you an alert if you load a workflow with bad linking data to start.\r\n","\u003Ch1 align=\"center\">\n    rgthree-comfy\n    \u003Cbr>\n    \u003Csub>\u003Csup>\u003Ci>让 ComfyUI 更加舒适！\u003C\u002Fi>\u003C\u002Fsup>\u003C\u002Fsub>\n    \u003Cbr>\n\u003C\u002Fh1>\n\u003Cp align=\"center\">\n    \u003Ca href=\"#️-the-nodes\">节点\u003C\u002Fa> &nbsp; | &nbsp; \u003Ca href=\"#-improvements--features\">改进与功能\u003C\u002Fa>  &nbsp; | &nbsp; \u003Ca href=\"#-link-fixer\">链接修复器\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Chr>\n\n这是一系列在玩转 ComfyUI 时创建的节点和改进。我制作它们是为了让自己的工作流更整洁、更轻松、更快捷。欢迎你也试试看。不过请记住，这些工具是我根据自己的使用场景设计的 :).\n\n![上下文节点](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_f1e03bbaefa9.png)\n\n# 开始使用\n\n## 安装\n\n1. 安装优秀的 [ComfyUi](https:\u002F\u002Fgithub.com\u002Fcomfyanonymous\u002FComfyUI)。\n2. 将此仓库克隆到 `custom_modules` 目录下：\n   ```\n   cd ComfyUI\u002Fcustom_nodes\n   git clone https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy.git\n   ```\n3. 启动 ComfyUI。\n\n## 设置\n\n你可以配置 rgthree-comfy 的某些方面。例如，未来 ComfyUI 的某个更改可能会破坏 rgthree-comfy，或者你已经有一个类似的扩展，想为 rgthree-comfy 关闭它。\n\n可以通过右键点击图中的空白处，选择 `rgthree-comfy > Settings (rgthree-comfy)`，或者在 ComfyUI 的设置对话框中点击 `rgthree-comfy settings` 来进入 rgthree 设置。\n\n（注意：设置存储在 `rgthree-comfy` 目录下的 `rgthree_config.json` 文件中。还有一些高级设置只能在那里进行配置；在修改之前，可以先从 `rgthree_config.json.default` 中复制默认设置）。\n\n\u003Cbr>\n\n# ✴️ 节点\n\n请注意，对于许多 rgthree-comfy 节点，你可以右键单击并选择 `🛟 Node Help` 菜单项，以获取应用内帮助（如果可用）。\n\n## 种子\n> 一个直观的种子控制节点，适用于 ComfyUI，其操作方式与 Automatic1111 的种子控制非常相似。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 将种子值设为 `-1` 可以每次使用随机种子。\n>    - 设为其他数字则会使用固定的种子。\n>    - 提供快速操作，可随机化或重新使用上次排队的种子。\n>    - 图像元数据会保存种子值（因此拖入一张图片时，其种子字段已自动设置为其原始种子）。\n>    - _秘密功能_：你可以手动将种子值设为 `-2` 或 `-3`，以递增或递减上一次使用的种子值。如果没有上一次的种子值，则会随机生成一个。\n>\n>    ![路由器节点](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_9718bd0d142a.png)\n>    \u003C\u002Fdetails>\n\n## 重路由\n> 使用这个功能强大的重路由节点，保持你的工作流整洁。它支持多方向和多种尺寸的实际重路由。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 右键菜单可用于更改宽度、高度和连接布局。\n>    - 还可以切换是否可调整大小（最小尺寸为 40x43，但可以调整），以及标题\u002F类型显示。\n>\n>    ![路由器节点](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_9eebab3154df.png)\n>    \u003C\u002Fdetails\n\n## 书签 (🔖)\n> 在画布上的任意位置放置书签节点，然后通过快捷键快速跳转到该位置。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 定义 `shortcut_key`，按下该键即可直接跳转到位于左上角的书签节点。\n>    - 你还可以定义缩放级别！\n>    - 小贴士：`shortcut_key` 可以是多个键的组合。例如，“alt + shift + !” 需要同时按下 Alt 键、Shift 键和“!” 键（即按住 Shift 键时的“1”键）才能触发。\n>    \u003C\u002Fdetails\n\n## 上下文 \u002F 大型上下文\n> 在整体流程中传递属性，并合并新数据。类似于其他一些节点套件中的“管道”，但它更容易合并，也更容易与标准节点互操作——只需一个节点就能完成合并和拆分。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - Context 和 Context Big 彼此向后兼容。也就是说，连接到 Context Big 的输入会通过 CONTEXT 输出传递给普通的 Context 节点，并作为其中一个输出提供（或者仅在 Context Big 节点上有输出时，比如“steps”）。\n>    - 小贴士：当把 Context 的输出拖到另一个节点上时，按住 “ctrl” 键并释放，即可自动将其他 Context 输出连接到目标节点。\n>    - 小贴士：你可以从菜单中切换 Context 和 Context Big 节点。\n>\n>    ![上下文节点](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_7780d97870d2.png)\n>    \u003C\u002Fdetails\n\n## 图像比较器\n> 图像比较器节点会将两张图像叠加在一起进行比较。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - **注意**：右键菜单可能会显示图像选项（打开图像、保存图像等），这些选项会根据点击位置而作用于第一张图像（image_a）或第二张图像（image_b）。\n>    - **输入：**\n>      - `image_a` _必填。_ 用于比较的第一张图像。如果未提供 image_b，且 image_a 是一批图像，则比较器会使用 image_a 中的前两张图像。\n>      - `image_b` _可选。_ 用于比较的第二张图像。只有当 image_a 是包含两张图像的批次时，此输入才为可选。\n>    - **属性：** 你可以通过右键点击节点并选择“Properties”或“Properties Panel”来更改以下属性：\n>      - `comparer_mode` - 可选择“滑动”或“点击”。默认为“滑动”。\n\n## 图像插入裁剪\n> 该节点允许你根据像素值或百分比值裁剪输入图像。\n\n## 显示任意内容\n> 在执行后显示来自后端的大多数文本数据。\n\n## 强力 LoRA 加载器\n> 一个超级简单的 LoRA 加载器节点，可以一次性加载多个 LoRA，并快速切换每个 LoRA，所有功能都浓缩在一个超紧凑的节点中。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 点击“+ Add Lora”按钮即可添加任意数量的 LoRA，几乎没有任何限制！\n>    - 右键点击 LoRA 控件，会出现特殊选项，可以将其向上或向下移动（仅影响显示顺序，不影响图像效果）、开启或关闭，或直接删除整行。\n>    - 在属性中，将 `Show Strengths` 设置为显示单一的简单强度值（模型和 CLIP 均使用该值），或切换到更高级的视图，分别调整模型和 CLIP 的强度。\n>    \u003C\u002Fdetails\n\n## ~~LoRA 加载堆栈~~\n> _**已弃用。** 请改用 `Power Lora Loader`。_\n>\n> 一个简化的 LoRA 加载堆栈。与其他套件类似，但与标准输入\u002F输出的兼容性更强。\n\n## 励能提示词\n> 让你的提示词更强大，添加嵌入、LoRA 的下拉菜单，甚至可以保存提示词片段。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 本质上，你可以将励能提示词当作一个字符串原语节点使用，同时增加用于选择嵌入和 LoRA 的下拉菜单，无需进一步处理。它会直接输出原始的 `TEXT` 到另一个节点，用于 LoRA 处理、CLIP 编码等。\n>    - 将一个 `CLIP` 节点连接到输入端，即可对文本进行编码，该节点会同时输出 `CLIP` 和 `CONDITIONING` 数据。\n>    - 将一个 `MODEL` 节点连接到输入端，可以自动解析并加载文本中的 `\u003Clora:...>` 标签，而无需单独使用 LoRA 加载器。\n>    \u003C\u002Fdetails>\n\n## 励能提示词 - 简单版\n> 与上述励能提示词相同，但不支持 LoRA；专为稍显简洁的负面提示词设计 _(因为负面提示词不支持 LoRA)_。\n\n## SDXL 励能提示词 - 正面\n> 上述励能提示词的 SDXL 版本。它包含 `text_g` 和 `text_l` 作为独立的文本输入，以及几个额外的输入槽，以确保正确的 CLIP 编码。可与以下内容结合使用：\n\n## SDXL 励能提示词 - 简单版\n> 类似于非 SDXL 的“励能提示词 - 简单版”节点，这个版本基本上与 SDXL 励能提示词相同，但不支持 LoRA，适用于非 LoRA 的正面提示词或 SDXL 的负面提示词 _(因为负面提示词不支持 LoRA)_。\n\n## SDXL 配置\n> 仅是一些用于 SDXL 提示词的配置字段。其实也可以用于非 SDXL 情况。\n\n## 上下文切换 \u002F 大型上下文切换\n> 一个强大的分支工作流节点。它会选择第一个非空的上下文输入。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 输入多个上下文节点，上下文切换节点会自动选择第一个非空的上下文继续执行。\n>    - 想知道如何将上下文设置为 null？请与 **快速静音** 或 **快速组静音** 结合使用。\n>\n>    \u003C\u002Fdetails>\n\n## 任意切换\n> 一个功能强大的节点，类似于上述的上下文切换节点，会选择第一个非空的输入。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 输入多个相同类型的输入，任意切换节点会自动选择第一个非空值继续执行。\n>    - 想知道如何将上下文设置为 null？请与 **快速静音** 或 **快速组静音** 结合使用。\n>\n>    \u003C\u002Fdetails>\n\n\n## 励能原语\n> 一个可以输出原语（STRING、INT、FLOAT、BOOLEAN）的单一节点。如果连接了输入，它会将输入的原语类型转换为所需的输出类型。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 你可以从右键菜单或属性中隐藏类型选择输入。\n>    - 你还可以通过右键菜单快速切换输出类型。\n>\n>    \u003C\u002Fdetails>\n\n\n## 励能计算\n> 一个功能强大且用途广泛的节点，通过多行代码解析来实现多种实用功能。该节点可用于简单的字符串拼接或数学运算；也可以用于获取图像尺寸或节点的小部件，并进行高级列表推导。如果你需要在工作流中输出某些内容，这就是合适的节点。\n>\n> 更多文档可在 [wiki](https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fwiki\u002FNode:-Power-Puter) 中找到。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 可以评估几乎任何类型的输入，并选择 INT、FLOAT、STRING 或 BOOLEAN 作为输出。\n>    - 连接一些节点，即可进行简单的数学运算，如 `a + b` 或 `ceil(1 \u002F 2)`。\n>    - 也可以做更复杂的事情，比如输入一张图片，然后获取其宽度，例如 `a.shape[2]`。\n>    - 更加强大的是，你可以针对发送到后端的提示词中的节点进行操作。例如，如果你有一个 ID 为 5 的励能 LoRA 加载器节点，并希望获取已启用 LoRA 的逗号分隔列表，可以输入：\n>\n>      ```\n>      loras = [v.lora for v in node(5).inputs.values() if 'lora' in v and v.on]\n>      ', '.join(loras)\n>      ```\n>\n>    \u003C\u002Fdetails>\n\n## 快速组静音\n> 快速组静音是一个无输入节点，它可以自动收集当前工作流中的所有组，并允许你快速静音或取消静音组内的所有节点。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 组会自动显示，不过你可以在 **节点属性** 中进行筛选、排序等操作 _(右键点击节点，然后从菜单中选择“属性”或“属性面板”)_。属性包括：\n>    -  `matchColors` - 仅添加与指定颜色匹配的组。可以是 ComfyUI 颜色（红色、浅蓝色）或十六进制代码（#a4d399）。可以添加多个颜色，用逗号分隔。\n>    -  `matchTitle` - 根据标题匹配（字符串匹配或正则表达式）过滤切换列表。\n>    -  `showNav` - 添加或移除快速导航箭头，以便跳转到该组。（默认：真）\n>    -  `showAllGraphs` - 显示工作流中所有[子]图中的组。（默认：真）\n>    -  `sort` - 按“字母数字”顺序、图“位置”或“自定义字母表”对切换项进行排序。（默认：“位置”）\n>    -  `customSortAlphabet` - 当排序属性设置为“自定义字母表”时，你可以在此处定义要使用的字母表，系统会根据每个组名称的开头字母进行匹配并排序。如果组名与自定义字母表中的条目不匹配，则会按字母数字顺序排在匹配的组之后。\n>\n>        这可以是一个单个字符的列表，如“zyxw…”；也可以是更精细控制的逗号分隔字符串，如“sdxl,pro,sd,n,p”。\n>\n>        注意，当两个组名匹配同一个自定义字母表条目时，正常的字母数字顺序会打破平局。例如，自定义字母表为“e,s,d”的情况下，组名会按照“SDXL、SEGS、Detailer”的顺序排列，尽管自定义字母表中“e”在“d”之前（人们可能会预期“SE”应该排在“SD”之前）。\n>\n>        如果希望“SEGS”排在“SDXL”之前，可以使用更长的字符串。例如，自定义字母表值为“se,s,f”时，就可以达到这一效果。\n>    -  `toggleRestriction` - 可选地，尝试限制最多只能启用一个或始终只启用一个节点的小部件。\n>\n>        _注意：如果使用“最多一个”或“始终一个”的设置，那么只有在点击此节点上的切换开关时才会强制执行；如果在初始切换点击之外更改组内的节点，则不会强制执行这些限制，可能导致同时启用多个切换的情况。如果节点被多个组重叠覆盖，也可能出现这种情况。_\n>    \u003C\u002Fdetails>\n\n## 快速组旁路\n> _与上述 **快速组静音** 相同，但会将连接的节点设置为“旁路”而不是“静音”_\n\n## 快速静音器\n> 一个强大的“控制面板”节点，可快速切换已连接节点的静音状态，使其迅速被静音或启用。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 添加一个包含所有已连接节点的集合，将其作为一个“仪表盘”放置在画布上，以便快速启用和禁用节点。提供两个独立的节点：一个用于“静音”已连接节点，另一个用于“旁路”已连接节点。\n>    \u003C\u002Fdetails>\n\n\n## 快速旁路器\n> 与快速静音器相同，但会将已连接节点设置为“旁路”状态。\n\n\n## 快速操作按钮\n> 哇哦，这个节点可以让你对已连接的节点和\u002F或 ConfyUI 进行半自动化操作。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 连接节点后，只需按下按钮即可至少对它们进行静音、旁路或启用操作。\n>    - 某些节点还会暴露额外的操作选项。例如，在 `Seed` 节点上，按下按钮时可以选择“每次随机”或“使用上次排队的种子”。\n>    - 此外，还可以通过节点属性设置快捷键，无需点击即可切换按钮的操作！\n>    \u003C\u002Fdetails>\n\n\n## 节点收集器\n> 用于整理混乱的连线，它可以接受任意数量的输入节点，并将它们传递给另一个节点。\n>\n> ⚠️ *目前，此节点最好仅连接到 **快速静音器**、**快速旁路器** 或 **静音\u002F旁路中继器**。*\n\n\n## 静音\u002F旁路中继器\n> 一个功能强大的节点，会将其静音\u002F旁路\u002F激活模式分发给所有已连接的输入节点；如果该节点位于一个没有连接任何输入的组中，则会将其静音\u002F旁路\u002F激活模式分发给该组中的所有节点。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 💡 小贴士 #1：将此节点的输出连接到 **快速静音器** 或 **快速旁路器**，这样你就可以通过一个开关一键静音、旁路或启用多个节点。\n>\n>    - 💡 小贴士 #2：将一个 **静音\u002F旁路中继器** 节点连接到此节点的输入端，使中继器能够自动将静音\u002F旁路\u002F启用的状态变化传递给中继器。\n>    \u003C\u002Fdetails>\n\n\n## 静音\u002F旁路中继器\n> 一个高级节点，当与 **静音\u002F旁路中继器** 配合使用时，它会将其输入节点的模式（静音、旁路或激活）中继到一个连接的中继器上，而该中继器则会将这一模式变化重复应用到其所有输入节点上。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 当所有已连接的输入节点都处于静音状态时，中继器会默认将连接的中继器设置为静音状态。\n>    - 当所有已连接的输入节点都处于旁路状态时，中继器会默认将连接的中继器设置为旁路状态。\n>    - 当_任何_已连接的输入节点处于激活状态时，中继器会默认将连接的中继器设置为激活状态。\n>    - **注意**：如果没有连接任何输入，中继器会根据其自身模式的变化来设置连接中继器的模式。**注意**，如果连接了任何输入，则上述规则将生效，此时中继器自身的模式将不再起作用。\n>    - **进阶小贴士**：你可以在“属性”中更改上述信号的发送方式。例如，你可以配置一个反向中继器，使其在任何输入处于激活状态时发送静音信号（而不是激活信号），而在所有输入都处于静音状态时发送激活信号（而不是静音信号）等。\n>    \u003C\u002Fdetails>\n\n\n## 随机解静音器\n> 一个高级节点，用于在图表排队时随机解除其中一个输入的静音状态，并立即重新将其静音。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - **注意**：所有输入节点必须一开始就被静音；否则，此节点将无法随机解除其他节点的静音。（这一点非常强大，因为生成的图像可以直接拖入，所选的输入节点就已经被解静音并开始工作，无需进一步操作。）\n>    - **提示**：将一个中继器的输出连接到此节点的输入端，并将该中继器放置在一个没有任何其他输入的组中，这样它就能对该组的所有节点进行静音\u002F解静音操作。\n>    \u003C\u002Fdetails>\n\n\n## 标签\n> 一个纯粹的视觉节点，允许你在工作流中添加一个浮动标签。\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 显示的文本是节点的“标题”，你可以在节点属性中调整字体大小、字体系列、字体颜色、文本对齐方式，以及背景颜色、内边距、背景边框圆角半径和旋转角度（以度为单位）。只需双击节点即可打开属性面板。\n>    - 标题还支持使用转义序列“\\\\n”来在绘制标签时插入换行符。\n>    - ~**进阶小贴士 #1**：你可以在属性面板中添加多行文本 _(因为 ComfyUI 允许在那里使用 Shift + Enter 键)。~ \n>    - **进阶小贴士 #2**：你可以使用 ComfyUI 的原生“固定”选项（右键菜单中），使标签固定在工作流上，并且鼠标点击可以穿透标签。你也可以随时右键取消固定。\n>    - **进阶小贴士 #3**：颜色值是十六进制字符串，例如“#FFFFFF”代表白色，“#660000”代表深红色。你还可以提供第7位和第8位数值（或者如果是简写形式则提供第5位和第6位），以创建半透明的颜色。例如，“#FFFFFF88”就是半透明的白色。\n>    \u003C\u002Fdetails>\n\n\n# 高级技巧\n\n## 首先，谈谈静音的重要性\n\n这些节点的强大之处很大程度上源于“静音”。静音是正确实现利用上下文切换节点的工作流多路径的基础。\n\n虽然其他扩展也可能提供类似的切换功能，但它们常常处理不当，导致你的工作流执行了不必要的计算。有些切换节点虽然有选择器来决定传递哪个输入，但却不会停止其他输入的执行，这会造成资源浪费。相比之下，上下文切换节点的工作原理是选择第一个非空的上下文进行传递，而正确的静音操作正是让之前的节点变为“空”的一种方法，并且在正确设置的情况下不会产生额外的工作量。\n\n### 理解静音，就是理解图流的运行机制\n\n静音功能，以及开关节点的使用，常常会让初学者感到困惑。这是因为人们往往会认为，静音某个节点或使用开关，应该能够阻止或引导图流的“正向”流动。然而事实并非如此，实际上，ComfyUI 的图流是从后向前开始执行的。\n\n假设你有一个工作流，路径类似于 `... > 上下文 > KSampler > VAE 解码 > 保存图像`。乍一看，你可能会觉得，只要静音最前面的上下文节点，图流在正向执行时就会在此处停止，从而跳过后续的所有步骤。但很快你就会发现，这样做会导致错误，因为图流并不会真正地“正向”推进。相反，当一个工作流被处理时，它会首先从每个“输出节点”（例如预览图像、保存图像，甚至是显示字符串等）开始，然后反向追踪所有可能的路径，直到找到这些输出节点为止。\n\n以刚才提到的 `... > 上下文 > KSampler > VAE 解码 > 保存图像` 为例，我们实际上需要静音的是“保存图像”节点，才能终止这条路径。一旦我们静音了该节点，由于没有了输出节点，整个链路上的其他节点都不会被执行。\n\n接下来，我们来看一个具体的示例。\n\n### 强大的组合：使用上下文、上下文开关与快速静音器\n\n![上下文节点](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_readme_f1e03bbaefa9.png)\n\n1. 使用 **上下文开关**（截图中为水蓝色）按优先级顺序输入上下文信息。在上述工作流中，`Upscale Out` 上下文位于首位，因此如果该上下文启用，它将被选作最终输出。若未启用，则会使用来自上方重新路由的第二个输入槽中的上下文信息。\n\n   - 注意，“Upscale Preview”位于 `Upscale Out` 上下文节点之后，直接使用其图像，而不是通过上采样后的 `VAE 解码器` 获取图像。这样设计是有意为之：当我们禁用 `Upscale Out` 上下文时，所有的上采样节点都不会运行，从而节省宝贵的 GPU 资源。如果我们将预览直接连接到 `VAE 解码器`，即使 `Upscale Out` 上下文被禁用，上采样操作仍会持续进行以生成预览图像。\n\n2. 现在，我们可以通过静音来禁用 `Upscale Out` 上下文节点。只需选中该节点并按下 `Ctrl + M` 即可。执行此操作后，该节点的输出将变为无，不会传递任何数据给后续节点。在图中可以看到，“Upscale Preview”显示为红色，但这并无大碍——并没有实际的错误会阻止执行。\n\n3. 接下来，我们将该节点连接到 **快速静音器** 节点。“快速静音器”作为一个控制面板，可以为任何已连接的节点添加快速切换开关（忽略重新路由）。在图中，我们同时连接了 `Upscaler Out` 上下文节点和 `Save File` 上下文节点，因此可以迅速启用或禁用它们。\n\n   - 此处展示的工作流是一种常见模式：我们可以先用随机种子低成本生成若干基础预览图，然后再从中选择一张进行上采样并保存到磁盘。\n\n4. 最后，作为可选步骤，你可以看到 **节点收集器**。如果你希望清理杂乱的连线，可以将其连接到静音器上。虽然它可以连接任何内容，但这样做可能会破坏工作流的正常执行。\n\n\u003Cbr>\n\n# ⚡ 改进与功能\n\nrgthree-comfy 为 ComfyUI 增加了许多改进、功能和优化，这些并不直接与节点相关。\n\n## 进度条\n> 一个位于应用窗口顶部的极简进度条，用于显示队列大小、当前提示词执行的进度（在同一窗口内），以及多步节点的执行进度。\n>\n> \u003Ci>你可以在 rgthree-comfy 的设置中启用或禁用该进度条，并调整其高度和大小。\u003C\u002Fi>\n\n## ~~ComfyUI 递归优化~~\n> 🎉 最新版本的 ComfyUI 已经不再存在递归执行效率低下的问题！因此，此功能已被从 rgthree-comfy 中移除。\n\n## 右键菜单中的“排队选定的输出节点”\n> 有时你只想排队执行一两条通向特定输出节点的路径，而无需运行整个工作流。现在，你只需右键点击某个输出节点，然后选择 `排队选定的输出节点 (rgthree)` 即可实现这一目标。\n>\n> \u003Cdetails>\n>    \u003Csummary>ℹ️ \u003Ci>更多信息\u003C\u002Fi>\u003C\u002Fsummary>\n>\n>    - 选择你想要执行的 _输出_ 节点。\n>\n>    - 注意：系统只会捕获并遍历输出节点，而不会包括所有选中的节点。因此，如果你同时选择了某个输出节点和其他路径上的节点，那么只有与该输出节点相连的路径会被执行，而其他非输出节点则不会被执行，即便它们也被选中。\n>\n>    - 注意：整个工作流会被序列化，然后我们再裁剪掉不需要的部分发送到后端。因此，诸如随机\u002F递增\u002F递减种子之类的操作仍然会执行，即使最终该节点并未被包含在内。\n>\n> \u003C\u002Fdetails>\n\n## 长组合框中的子目录自动嵌套\n> _(默认关闭，处于实验阶段；可在 rgthree-comfy 设置中开启)_。\n>\n> 自动检测长组合框列表（如加载检查点）中的顶级子目录，并将其拆分为子目录。\n\n## 组标题中的快速静音\u002F旁路切换按钮\n> _(默认关闭，处于实验阶段；可在 rgthree-comfy 设置中开启)_。\n>\n> 在组标题的右上角添加静音和\u002F或旁路切换图标，方便你一键切换当前查看的组。\n\n## 导入单个节点的小部件（拖放）\n> _(默认关闭，处于实验阶段；可在 rgthree-comfy 设置中开启)_。\n>\n> 允许你将前一代的图像或 JSON 工作流拖放到当前工作流中，并覆盖同名节点的小部件（前提是 ID 和类型匹配）。这在你需要多次使用同一通用工作流时非常有用，比如只需要导入前一代的种子、提示词等数据。\n\n## 可视化编辑器中的“复制图像”选项\n> 右键点击带有图像的节点时，会出现“复制图像”选项，允许你将图像直接复制到剪贴板。\n>\n> \u003Ci>🎓 我认为这项功能已经成熟，因为 ComfyUI 最近也加入了类似的设置。因此，你不会看到两个重复的菜单项；我的代码会在添加之前检查是否已存在“复制图像”选项。\u003C\u002Fi>\n\n## 其他小修复\n- 修复了双击时超宽节点选择器的宽度问题。\n- 修正了文本区域的 z-index，避免其覆盖其他元素，例如属性面板或 @pythongosssss 的图像查看器。\n- 默认情况下，在加载工作流时会检查是否存在无效链接，并记录到控制台。（参见下方的链接修复工具。）\n\n\u003Cbr>\n\n# 📄 链接修复工具\n\n如果你的工作流有时会出现连接缺失，甚至在加载时报错，可以启动 ComfyUI 并访问 http:\u002F\u002F127.0.0.1:8188\u002Frgthree\u002Flink_fixer。在这里，你可以上传图像或工作流的 JSON 文件，以检查并修复任何无效链接。\n\n此外，你还可以在 rgthree-comfy 的设置中启用链接修复检查功能，这样当你加载包含无效链接的工作流时，系统会立即发出警告。","# rgthree-comfy 快速上手指南\n\nrgthree-comfy 是一个旨在优化 ComfyUI 工作流的节点集合插件。它提供了更直观的种子控制、强大的重路由（Reroute）功能、上下文管理、批量 LoRA 加载以及高级脚本节点，帮助用户构建更整洁、高效的工作流。\n\n## 环境准备\n\n在开始之前，请确保满足以下要求：\n\n*   **操作系统**：Windows, macOS 或 Linux。\n*   **前置依赖**：已安装并配置好 [ComfyUI](https:\u002F\u002Fgithub.com\u002Fcomfyanonymous\u002FComfyUI)。\n*   **工具**：已安装 `git` 命令行工具。\n*   **网络**：能够访问 GitHub（如访问受限，建议配置代理或使用国内镜像源克隆）。\n\n## 安装步骤\n\n1.  **进入自定义节点目录**\n    打开终端（Terminal 或 CMD），导航至你的 ComfyUI 安装目录下的 `custom_nodes` 文件夹：\n    ```bash\n    cd ComfyUI\u002Fcustom_nodes\n    ```\n\n2.  **克隆仓库**\n    执行以下命令下载 rgthree-comfy。\n    *   **标准方式**：\n        ```bash\n        git clone https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy.git\n        ```\n    *   **国内加速方式**（如果上述命令速度慢或失败，推荐使用 Gitee 镜像或其他加速代理）：\n        ```bash\n        # 示例：使用镜像源（需确认镜像源最新状态）\n        git clone https:\u002F\u002Fghproxy.com\u002Fhttps:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy.git\n        ```\n\n3.  **启动 ComfyUI**\n    安装完成后，重新启动 ComfyUI。插件会自动加载，无需额外配置即可在节点菜单中找到相关功能。\n\n## 基本使用\n\n安装成功后，你可以通过右键点击画布空白处，在菜单中找到 `rgthree-comfy` 分类来添加节点。以下是几个核心功能的快速用法：\n\n### 1. 优化工作流布局 (Reroute & Bookmark)\n*   **Reroute 节点**：用于整理杂乱的连线。右键点击该节点可调整其宽度、高度及连接方向，支持多方向重路由，使连线更清晰。\n*   **Bookmark (🔖) 节点**：将其放置在画布任意位置，设置一个快捷键（如 `alt+shift+1`）。按下快捷键即可瞬间跳转并缩放视图到该书签位置，适合大型工作流导航。\n\n### 2. 直观的种子控制 (Seed)\n添加 `Seed` 节点替代原生种子输入：\n*   设置为 `-1`：每次生成使用随机种子。\n*   设置为具体数字：使用固定种子。\n*   **隐藏技巧**：设置为 `-2` 或 `-3` 可基于上一次种子自动递增或递减。\n*   支持直接拖入图片，自动读取图片元数据中的种子值。\n\n### 3. 批量加载 LoRA (Power Lora Loader)\n使用 `Power Lora Loader` 节点在一个紧凑的界面中管理多个 LoRA：\n*   点击 `+ Add Lora` 按钮添加任意数量的 LoRA。\n*   右键点击特定 LoRA 行可快速启用\u002F禁用、调整顺序或删除。\n*   在属性面板中可选择是否分别显示 Model 和 Clip 的强度权重。\n\n### 4. 高级逻辑与上下文 (Context & Power Puter)\n*   **Context 节点**：类似“管道”功能，可将多个参数合并为一个连接线传递，并在需要时拆分，极大减少连线数量。按住 `Ctrl` 拖拽 Context 输出到其他节点可自动匹配连接。\n*   **Power Puter 节点**：支持编写多行代码进行数据处理。例如，可以通过简单的 Python 表达式获取图像尺寸 (`a.shape[2]`) 或动态处理字符串，输出 INT, FLOAT, STRING 等类型。\n\n### 5. 配置设置\n如需调整插件行为（例如禁用某些功能以避免与其他插件冲突）：\n*   在画布空白处右键，选择 `rgthree-comfy > Settings (rgthree-comfy)`。\n*   或在 ComfyUI 主设置对话框中点击 `rgthree-comfy settings`。\n*   高级配置可直接编辑 `ComfyUI\u002Fcustom_nodes\u002Frgthree-comfy\u002Frgthree_config.json` 文件。","一位资深 AI 绘图师正在 ComfyUI 中构建一个包含多分支实验（如不同采样器、提示词变体）的复杂工作流，需要频繁切换视角并复用历史生成参数。\n\n### 没有 rgthree-comfy 时\n- **连线杂乱难读**：原生 Reroute 节点功能单一，无法调整尺寸或方向，导致长距离连线交织成“蜘蛛网”，逻辑走向难以追踪。\n- **导航效率低下**：在大型画布中寻找特定模块需反复缩放和平移，缺乏快速定位机制，打断创作心流。\n- **种子控制繁琐**：修改随机种子需手动输入数字或连接额外节点，无法像 Automatic1111 那样一键“随机化”或“复用上次种子”。\n- **参数传递冗余**：在不同分支间传递通用属性（如模型、VAE）时，需重复连接大量线缆，不仅占用空间且容易出错。\n\n### 使用 rgthree-comfy 后\n- **布线整洁灵活**：利用增强版 Reroute 节点，可自由调整连线宽度、高度及布局，将杂乱的线路整理为清晰的平行线束，视觉逻辑一目了然。\n- **一键极速跳转**：通过 Bookmark 节点设置快捷键（如 `Alt+Shift+1`），瞬间将视图锚定至关键区域并自动适配缩放比例，大幅减少无效操作。\n- **智能种子管理**：Seed 节点支持输入 `-1` 自动随机、`-2` 递增等快捷指令，并能直接从拖入的图片中读取元数据种子，实验迭代更加流畅。\n- **上下文高效合并**：借助 Context 节点，可在单个节点内轻松合并或拆分多组数据流，用极简的连接方式替代了原本冗长的“管道”连线。\n\nrgthree-comfy 通过优化连线交互、导航体验及核心参数控制，将原本臃肿混乱的 ComfyUI 工作流转变为整洁、高效且易于维护的生产管线。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frgthree_rgthree-comfy_f1e03bba.png","rgthree","Regis Gaughan, III","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frgthree_ea9e0aa5.png","A self-taught software engineer and professional tinkerer.","Google","Boston, MA",null,"rg3hree","rgthr.ee","https:\u002F\u002Fgithub.com\u002Frgthree",[84,88,92,96,100,104],{"name":85,"color":86,"percentage":87},"JavaScript","#f1e05a",48.4,{"name":89,"color":90,"percentage":91},"TypeScript","#3178c6",39.3,{"name":93,"color":94,"percentage":95},"Python","#3572A5",8.1,{"name":97,"color":98,"percentage":99},"CSS","#663399",2.1,{"name":101,"color":102,"percentage":103},"SCSS","#c6538c",1.6,{"name":105,"color":106,"percentage":107},"HTML","#e34c26",0.5,2975,214,"2026-04-10T09:26:34","MIT","未说明",{"notes":114,"python":112,"dependencies":115},"该工具是 ComfyUI 的自定义节点插件，并非独立运行的应用程序。因此，其运行环境完全取决于宿主软件 ComfyUI 的要求。安装时需将其克隆到 ComfyUI 的 `custom_nodes` 目录下。配置可通过右键菜单或 `rgthree_config.json` 文件进行管理。",[28],[15],[118,119,120],"aiart","comfyui","stable-diffusion","2026-03-27T02:49:30.150509","2026-04-11T03:24:24.262025",[124,129,134,139,144,149],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},28655,"Power Lora Loader 节点的\"Add Lora\"按钮在更新后点击无反应怎么办？","这通常是由于 ComfyUI 前端版本更新导致的兼容性问题。默认自带的 ComfyUI 前端版本往往滞后，导致新特性或修复未生效。\n解决方案：启动 ComfyUI 时添加参数以使用最新前端版本：\n`--front-end-version Comfy-Org\u002FComfyUI_frontend@latest`\n注意：使用 `@latest` 可能会获取到测试版（beta），稳定性可能不如正式版。建议为测试新功能单独创建一个启动脚本。如果问题依旧，请确保 rgthree-comfy 插件已更新到最新版本。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F375",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},28656,"如何将 Power Lora Loader 中的 LoRA 列表转换为字符串以便保存元数据？","可以使用 rgthree 提供的脚本节点功能，通过正则表达式提取节点中的 LoRA 名称并拼接成字符串。\n示例代码如下（需配合支持脚本执行的节点使用）：\n```python\nimport re\n# 编译正则表达式以匹配包含特定关键词的节点标题\npattern = re.compile('LoRAs for')\n\n# 提取所有匹配节点中的 LoRA 名称，去除路径和后缀\nall_loras = [\n    lora.name.replace('.safetensors', '')\n    for node in nodes(pattern)\n    for lora in node.loras\n]\n\n# 将列表连接为逗号分隔的字符串\n', '.join(all_loras)\n```\n注意：`nodes()` 函数现在返回列表而非字典，且支持传入编译后的正则对象来模糊匹配节点标题。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F296",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},28657,"KSampler Config 节点连接后报错类型不匹配（Return type mismatch）导致无法生成图像？","这是由于 ComfyUI 核心代码中关于 V1 和 V3 组合类型的定义变更导致的临时性破坏。\n解决方案：\n1. 等待 ComfyUI 发布包含修复的新版本（相关修复已在 PR #11345 合并到 master 分支）。\n2. 或者，切换到 ComfyUI 的 nightly（每夜构建）版本，该版本通常已包含最新的修复代码。\n如果必须使用稳定版且无法升级，暂时断开 KSampler Config 的连接或使用旧版工作流变通。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F634",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},28658,"更新 rgthree-comfy 后工作流加载失败，报错\"removeWidget is not a function\"如何解决？","这是一个在特定版本（如 1.0.2508160132）中引入的回归错误，导致旧工作流无法加载。\n解决方案：请立即更新 rgthree-comfy 插件到最新版本。维护者已在随后的提交中修复了此问题。拉取最新代码或通过管理器重新安装最新版即可解决。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F559",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},28659,"Power Lora Loader 按钮点击后无法找到文件或路径错误，尤其是使用了符号链接时？","如果系统使用了符号链接（symlink），ComfyUI 或节点可能无法正确解析真实路径，导致文件看似存在却无法读取。\n解决方案：\n1. 检查你的 LoRA 文件夹中是否存在损坏的符号链接。\n2. 确保插件已更新至最新版本，维护者已添加了解析符号链接的逻辑（resolve symlinks）来修复此类问题。\n3. 如果问题持续，尝试暂时不使用符号链接，直接将文件放置在物理路径下测试。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F574",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},28660,"rgthree 的随机种子（Seed）在绕过节点或移动节点后自动跳变为上次使用的数值而不是保持随机？","这通常是由与其他自定义节点的奇怪交互或工作流状态缓存引起的。\n建议的解决步骤：\n1. 尝试清除当前工作流并重新构建，或者多次点击\"Queue Workflow\"（队列工作流）以刷新状态。\n2. 检查已安装的节点列表，确认是否有其他节点与此行为冲突。\n3. 如果问题偶发，可能是界面状态未正确重置，重启 ComfyUI 服务器通常能解决此类\"一般性怪异\"问题。","https:\u002F\u002Fgithub.com\u002Frgthree\u002Frgthree-comfy\u002Fissues\u002F62",[155],{"id":156,"version":157,"summary_zh":158,"released_at":159},197572,"v.1.0.0","初始版本，以及后续的修复补丁。这是一个时间点的快照，以防未来的变化破坏现有的工作流。","2023-09-12T02:49:46"]