喜欢这个节点吗?给我买杯咖啡吧!
入门?下载下面的测试工作流程并查看其工作原理。
有问题吗?跳转到日志记录和调试
关于如何改进节点(或错误报告)的想法 - 提出问题
我的其他节点的无耻插件 -> 查看图像选择器以获取另一种使某些工作流程更顺畅的方法。如果您喜欢某样东西,请留下一颗星星!
此工作流程使用所有五个节点,并且可用于测试(和理解!)节点。你不会像这样构建它,这只是一个例子...... | 这是一张包含工作流程的图像 |
---|---|
或者工作流程为 json
目前有些情况是UE节点无法应对的。以下是我所知道的一些以及可能的解决方法。
pythonsssss 自定义节点很棒,但是将它们与 UE 节点一起使用时存在一些限制。特别是,您不能将预设文本节点的输出直接提供给 UE 节点(请参阅#154)。
UE节点主要与组节点一起工作。但有一些重要的事情需要注意:
5.0(2024 年 8 月 6 日)
4.9(2024 年 5 月 2 日)
4.8(2024 年 3 月 18 日)
send to unmatched
模式4.7(2024 年 3 月 1 日)
Anything Everywhere?
节点4.6
Anything Everywhere?
节点4.5
convert to real links
4.4
Anything Everywhere?
具有输入的节点(仅当链接来自简单字符串源的节点时才有效)4.3
4.2
4.1.2
4.1.1
4.1
v1 节点已被完全删除。如果您正在使用一个节点,则只需将其替换为Anything Everywhere
节点即可。
使用舒适管理器。如果您确实想手动执行此操作,只需将此存储库克隆到您的 custom_nodes 目录中即可。
Anything Everywhere
节点有一个输入,最初标记为“anything”。将任何内容连接到它(直接 - 不通过重新路由),并且输入名称会更改以匹配输入类型。断开连接,它就会回到“任何东西”。
当您运行提示时,工作流程中任何位置与该类型匹配的任何未连接的输入都将表现为就像已连接到同一输入一样。
要可视化其所连接的内容,请右键单击背景画布并选择Toggle UE Link Visibility
。
该节点添加两个小部件 - title_regex 和 input_regex。它只会发送到匹配的输入。因此,在示例中,title_regex 是“预览”,因此图像将发送到“预览图像”节点,而不是“保存图像”节点。请注意,您可以重命名节点并输入标题,这会有所帮助!
(从 4.6 开始,您还可以指定组正则表达式,以仅匹配位于与正则表达式匹配的组中的节点上的输入。)
匹配是正则表达式,而不是字符串匹配。大多数简单的字符串都可以(匹配标题或输入名称的任何部分),但某些字符具有特殊含义(包括各种括号,尤其是 ^、$、/ 和 .),因此如果您不熟悉,请避免使用它们倾向于正则表达式。
使用正则表达式意味着您可以使用^prompt
仅匹配标题开头的prompt
,以避免匹配negative_prompt
。
正则表达式 101 - ^
表示“开始”, $
表示“结束”, .
匹配任何单个字符, .*
匹配任何长度(包括零)。除此之外,请访问 regex101(您想要的风格是 ECMAScript,尽管这可能并不重要)。
有点像。
由于在提交工作流程之前需要知道正则表达式(以便计算链接),因此您无法将字符串传递到Anything Everywhere?
节点并期望它能够工作。唯一受支持的是输入是否直接来自使用字符串小部件设置它的节点。此包中包含的Simple String
节点将起作用。
这有效 | 这不。并且永远不会。 |
---|---|
Seed Everywhere 连接到任何未连接的 INT 输入,输入名称中带有seed
(seed、noise_seed 等),并且它具有 control_after_generate 功能。因此,如果您将种子小部件转换为输入,您可以在任何地方使用相同的种子。
实际上只是将三个Anything Everywhere
节点打包在一起。专为 Checkpoint Loader 的输出而设计。
Prompt Everywhere 有两个输入。它们将分别以(^prompt|^positive)
和neg
的正则表达式匹配规则发送。这些应该与用于提示和否定提示或条件的各种版本的名称相匹配。
字符串 | 条件条件 |
---|---|
UE 节点不能使用原语和 COMBO(用于下拉列表的数据类型,这也是 Comfy 中的一种原语类型)。他们不太可能会这样做。
如果您想使用 UE 控制采样器或 sigma,您可以使用内置的SamplerCustom
节点来实现:
有关此内容的更多信息,请参阅此讨论
右键单击某个节点,可以将其设置为拒绝UE链接
如果您想查看 UE 链接,可以通过右键单击画布来打开和关闭它们。为了更好地控制,主设置菜单提供了当鼠标移动到任一端的节点上或选择其中一个节点时显示链接的选项。
链接可以设置动画以将其与普通链接区分开来 - 该动画可以采用移动点、脉冲发光或两者的形式。在某些情况下,这可能会影响性能 - 请注意,脉冲动画比移动点需要更少的处理。在主设置菜单中控制它。
默认情况下,动画在工作流程运行时关闭,以尽量减少对 CPU/GPU 的影响 - 您也可以在设置中更改此设置。
如果您想在不需要 UE 节点的情况下共享工作流程,或者保存工作流程的 API 版本,您可以将 UE 节点创建的虚拟链接替换为真实链接(并删除 UE 节点)。
对于单个节点,可以通过右键单击该节点并选择Convert to real links
来完成此操作,或者对于工作流程中的所有 UE 节点,通过右键单击背景并选择Convert all UEs to real links
来完成。
按住 Shift 键单击输出节点并拖动然后释放即可获得自动创建菜单。这将替换默认行为(为您提供一个搜索框),因此您可以使用Anything Everywhere replace search
设置来禁用它。
UE节点可以被限制为仅发送到相同颜色的节点,或者仅发送到不同颜色的节点。
它们还可以被限制为仅发送到同一组中的节点(任何公共组),或仅发送到不在同一组中的节点。
右键单击该节点并选择Group restrictions
或Color restrictions
。受到限制(以任一方式或两种方式)的 UE 节点的左上角有一个绿色圆圈。
Trung 0246 的高速公路节点是一种非常酷的管道数据方式。您可以使用Anything Everywhere?
通过使用input_regex
将未连接的输入名称与“+”进行匹配,如下所示:
这是新的,所以请报告任何问题!
默认情况下,工作流在提交之前会检查循环(因为 UE 可以引入它们,并且循环会导致错误的 Python 结果)。如果检测到循环,您将收到一条 JavaScript 警告,显示所涉及的节点 ID。但是,特别是如果涉及其他自定义节点,检查可能会错过循环,或标记不真实的循环。
如果您收到警告并且不相信存在循环(已检查列出的节点 ID!),您可以在主设置菜单中关闭循环检查。如果标记为循环的某些内容运行正常,请提出问题并将工作流程包含在报告中(保存 json 并将其压缩,因为 GitHub 不接受 .json 文件)。同样,如果循环没有被捕获。
我已经为核心 Comfy 后端编写了代码来捕获循环,也许它会被包含在内 - ComfyUI 的 PR - 或者也许他们有另一个计划。
如果有多个发送节点与输入匹配,则基本规则是更具体的节点获胜。优先级顺序是:
Anything Everywhere?
Seed Everywhere
和Prompts Everywhere
Anything Everywhere
Anything Everywhere3
对于同一时间的节点,优先考虑有颜色限制和组限制的节点(颜色+组 > 颜色 > 组 > 无)。
如果具有相同优先级的两个节点都匹配,则两者都不会连接- 快速失败比产生模糊结果更好。如果存在不明确的匹配,您可以使用Show UE broadcast clashes
来显示它们(右键单击背景 - 该选项仅在存在冲突时出现)。
只有一个输出的节点还可以获得一个文本框,准确显示通过该节点的内容。如果需要,您需要打开此功能 - 它位于主设置“任何地方节点详细信息”中。
JavaScript 控制台(在某些浏览器中按 f12)包含有关所连接内容的日志信息。您可以通过查找文件[comfy_install]/custom_nodes/cg-use-everywhere/js/use_everywhre_utilities.js
并在顶部附近找到此位来更改详细级别:
static ERROR = 0 ; // actual errors
static PROBLEM = 1 ; // things that stop the workflow working
static INFORMATION = 2 ; // record of good things
static DETAIL = 3 ; // details
static LEVEL = Logger . PROBLEM ;
static TRACE = false ; // most of the method calls
将LEVEL
更改为Logger.INFORMATION
了解更多,或将Logger.DETAIL
更改为更多;将TRACE
设置为true
以获取其他一些调试信息。
如果您遇到问题,按 f12 查看 JavaScript 控制台通常会有所帮助。以下步骤对于制作良好的错误报告非常有帮助:
另一件值得尝试的事情是清除 ComfyUI 启动时复制的所有自定义节点 javascript:
core
之外的所有内容。离开core
(这是 ComfyUI 的东西)如果您发现错误,请提出问题 - 如果您可以包含工作流程,那将是一个巨大的帮助(您需要将其另存为 .txt,或压缩 .json 文件,因为 GitHub 不接受 .json) 。
绕过和禁用节点是可行的,但有一个问题。如果您有一个进行匹配的 UE 节点( Anything Everywhere?
和Prompt Everywhere
)并且您绕过了它匹配的节点,则不会建立链接。所以
如果您使用 ?节点发送到节点... | ...并绕过收件人,它不会连接 |
---|---|
这不太可能被修复,但应该很容易避免!