ComfyUI-Advanced-ControlNet

GitHub
956 90 中等 1 次阅读 3天前GPL-3.0图像视频插件
AI 解读 由 AI 自动生成,仅供参考

ComfyUI-Advanced-ControlNet 是专为 ComfyUI 设计的高级控制节点扩展,旨在为图像和视频生成提供精细化的动态控制能力。它核心解决了传统 ControlNet 在生成过程中强度固定、缺乏时序变化及局部掩码控制的局限,特别适配需要滑动上下文采样的长视频生成场景(如配合 AnimateDiff 使用)。

该工具允许用户通过“时间步关键帧”和“潜变量关键帧”,在采样过程的不同阶段或针对特定画面帧,动态调整 ControlNet 的权重强度与应用掩码。其独特亮点在于完美复现并增强了 WebUI 中“提示词更重要”与"ControlNet 更重要”的平衡调节功能,支持通过软权重参数进行微调。此外,它还广泛兼容各类先进模型,包括 ControlLoRA、SparseCtrl、SVD-ControlNet 及 Reference 模式等。

这款工具非常适合已熟悉 ComfyUI 工作流的中高阶用户、AI 视频创作者及技术研究人员。对于希望突破静态控制限制,追求更自然过渡效果或复杂动态构图的设计师而言,ComfyUI-Advanced-ControlNet 提供了不可或缺的颗粒度控制手段,让生成过程更加灵活可控。

使用场景

一位动画创作者正在制作一段 15 秒的角色行走循环视频,希望角色在起步和停止时动作柔和,而在中间奔跑阶段严格遵循骨骼姿态约束,同时保持背景风格的连贯性。

没有 ComfyUI-Advanced-ControlNet 时

  • 控制力度僵化:ControlNet 在整个生成过程中强度恒定,导致角色在需要自然过渡的起止帧出现动作生硬或“鬼畜”抖动。
  • 缺乏局部精细调控:无法针对特定帧(Latent)单独调整控制权重,若想强化某几帧的姿态一致性,只能重新生成整段视频或手动重绘。
  • 长视频上下文断裂:在使用 AnimateDiff 生成长序列时,普通节点不支持滑动上下文窗口,导致长镜头中角色特征随时间推移逐渐崩坏或闪烁。
  • 提示词与控制权冲突:难以平衡“提示词创意”与“控制网约束”,往往顾此失彼,要么画面偏离草图,要么失去了提示词带来的丰富细节。

使用 ComfyUI-Advanced-ControlNet 后

  • 动态强度调度:利用时间步关键帧(Timestep Keyframes),创作者设定了“弱 - 强 - 弱”的控制曲线,使角色起停动作流畅自然,中间奔跑阶段则精准贴合骨架。
  • 帧级独立控制:通过潜在关键帧(Latent Keyframes),仅对动作复杂的第 10-15 帧增强控制权重,其余帧保持自由发挥,无需重复生成全片。
  • 无缝长序列生成:借助对滑动上下文采样的原生支持,角色在长镜头中始终保持特征稳定,彻底消除了长视频生成中的闪烁和变形问题。
  • 柔性权重平衡:通过 Soft Weights 功能微调“提示词重要性”与"ControlNet 重要性”,既保留了草图的构图,又让光影细节完美响应了提示词描述。

ComfyUI-Advanced-ControlNet 通过将控制策略从“全局静态”升级为“时空动态”,让高质量、长篇幅的可控视频生成变得精准且高效。

运行环境要求

GPU

未说明(作为 ComfyUI 插件,通常依赖宿主环境的 NVIDIA GPU 以运行 ControlNet 模型)

内存

未说明

依赖
notes这是一个 ComfyUI 的自定义节点插件,并非独立运行的程序,因此没有单独列出的操作系统、Python 或显存需求,其运行环境完全取决于主程序 ComfyUI 的配置。该工具主要用于在采样步骤和批次潜变量中调度 ControlNet 强度,支持滑动上下文采样(需配合 ComfyUI-AnimateDiff-Evolved 使用)。使用前需安装主程序 ComfyUI 及可选的预处理器插件 comfyui_controlnet_aux。支持多种控制模型包括 ControlNet, T2IAdapter, ControlLoRA, SparseCtrl, SVD-ControlNet 等。
python未说明
ComfyUI
comfyui_controlnet_aux
ComfyUI-Advanced-ControlNet hero image

快速开始

ComfyUI-Advanced-ControlNet

用于在不同采样步数和批量潜变量之间调度 ControlNet 强度的节点,以及应用自定义权重和注意力掩码。这里的 ControlNet 节点完全支持滑动上下文采样,就像 ComfyUI-AnimateDiff-Evolved 节点中所使用的那样。目前支持 ControlNets、T2IAdapters、ControlLoRAs、ControlLLLite、SparseCtrls、SVD-ControlNets 和 Reference。

通过软权重(Soft Weights),自定义权重可以复现 Auto1111 的 sd-webui ControlNet 扩展中的“我的提示更重要”功能;而“ControlNet 更重要”功能则可以通过调整同一软权重上的 uncond_multiplier 来进行精细控制。

ControlNet 预处理节点可通过 comfyui_controlnet_aux 节点获得。

特性

  • 采样步数与潜变量强度调度
  • 注意力掩码
  • 通过“软权重”复现 sd-webui-controlnet 扩展中的“我的提示更重要”功能,并可通过 base_multiplier 调整软化程度。
  • 通过“软权重”上的 uncond_multiplier 复现 sd-webui-controlnet 扩展中的“ControlNet 更重要”功能。
    • 当 uncond_multiplier=0.0 时,结果与 auto1111 的原生功能完全一致;但介于 0.0 和 1.0 之间的值也可无碍使用,以更精细地控制该设置。
  • 支持滑动上下文窗口的 ControlNet、T2IAdapter 和 ControlLoRA。
  • 支持 ControlLLLite。
  • 支持 ControlNet++。
  • 支持 CtrLoRA。
  • 支持 SparseCtrl。
  • 支持 SVD-ControlNet。
    • 由 CiaraRowles 训练的稳定视频扩散 ControlNets:深度线稿
  • 支持 Reference。
    • 支持 reference_attn、reference_adain 和 reference_adain+attn 模式。style_fidelity 和 ref_weight 分别对应 Auto1111 中的 style_fidelity 和 control_weight,而 Apply ControlNet 的强度则决定了参考影响结果与无参考结果之间的平衡。此外,还有一个 Reference ControlNet(微调)节点,允许分别调整 style_fidelity、weight 以及 attn 和 adain 的强度。

目录:

调度说明

调度的两个核心概念是“采样步数关键帧”和“潜变量关键帧”。

“采样步数关键帧”保存了指导 ControlNet 设置的数值,并根据其 start_percent 开始生效,start_percent 对应于采样过程的百分比。它们可以包含每个潜变量的强度掩码、control_net_weights 以及 latent_keyframes(每个潜变量的具体强度),这些都是可选的。

“潜变量关键帧”则决定特定潜变量上 ControlNet 的强度——它们仅包含潜变量的 batch_index 以及该潜变量应应用的 ControlNet 强度。作为一种概念,潜变量关键帧的效果等同于使用选定强度值的均匀掩码。

advcn_image

节点

此处提供的 ControlNet 节点包括“Apply Advanced ControlNet”和“Load Advanced ControlNet Model”(或 diff)节点。普通的 ControlNet 节点同样兼容,几乎可以互换使用——唯一的区别在于,要使用 Advanced 版本的 ControlNet,必须至少使用其中一个节点(这对于滑动上下文采样非常重要,例如 AnimateDiff-Evolved)。

符号说明:

  • 🟩 — 必需输入
  • 🟨 — 可选输入
  • 🟦 — 默认为小部件,可转换为输入
  • 🟥 — 可选输入/输出,但不建议在非必要情况下使用
  • 🟪 — 输出

Apply Advanced ControlNet

image

功能与普通版的 Apply Advanced ControlNet(Advanced)节点相同,只是增加了 Advanced ControlNet 的特性。它会自动将来自 ControlNet 加载器的任何 ControlNet 转换为 Advanced 版本。

输入

  • 🟩 positive:正向条件。
  • 🟩 negative:反向条件。
  • 🟩 control_net:已加载的 ControlNet;如果是受支持的类型,此节点会自动将其转换为 Advanced 版本。
  • 🟩 image:用于引导 ControlNet 的图像——如果加载的 ControlNet 需要,这些必须是预处理过的图像。如果只提供一张图,将对所有潜变量使用同一张;如果提供了多张,则每张图分别应用于不同的潜变量。若提供的图片数量不足以覆盖所有潜变量,则会从头开始重复使用图片,以保持与普通 ControlNet 功能一致。
  • 🟨 mask_optional:要应用于 ControlNet 的注意力掩码;基本上决定了 ControlNet 应用于图像的哪一部分(以及相对强度,如果掩码不是二值的)。与图像输入类似,若提供多于一个掩码,则每个掩码可应用于不同的潜变量。
  • 🟨 timestep_kf:用于在整个采样过程中引导 ControlNet 效果的采样步数关键帧。
  • 🟨 latent_kf_override:潜变量关键帧的覆盖设置,当不需要采样步数关键帧中的其他功能时非常有用。注意:此潜变量关键帧将应用于所有采样步数,无论是否有其他潜变量关键帧连接到相应的采样步数关键帧。
  • 🟨 weights_override:权重的覆盖设置,当不需要采样步数关键帧中的其他功能时很有用。注意:此权重将应用于所有采样步数,无论是否有其他权重连接到相应的采样步数关键帧。
  • 🟦 strength:ControlNet 的强度;1.0 为全强度,0.0 则完全无效。
  • 🟦 start_percent:ControlNet 应开始应用的采样步骤百分比——无论采样步数关键帧设置了什么 start_percent,只有达到这个百分比后才会生效。
  • 🟦 stop_percent:ControlNet 应停止应用的采样步骤百分比——无论采样步数关键帧设置了什么 start_percent,一旦达到这个结束百分比,ControlNet 就不再起作用。

输出

  • 🟪 positive:应用了 ControlNet 后的正向条件。
  • 🟪 negative:应用了 ControlNet 后的反向条件。

加载高级 ControlNet 模型

image

加载一个 ControlNet 模型,并将其转换为支持本仓库所有功能的高级版本。当与 应用高级 ControlNet 节点一起使用时,无需在此节点上使用 timestep_keyframe 输入——请改用“应用高级 ControlNet”节点上的 timestep_kf 输入。

输入

  • 🟥timestep_keyframe:可选且通常不必要的输入,用于让 ControlNet 使用选定的时间步关键帧;除非确实需要,否则不应使用。如果此节点未连接到 应用高级 ControlNet 节点,但仍希望使用时间步关键帧,或者在相同情况下使用来自 ControlWeights 的 TK_SHORTCUT 输出,则此输入会很有用。如果在 应用高级 ControlNet 节点上提供了 timestep_kf 输入,则该输入将覆盖此处的 timestep_keyframe。
  • 🟨model:要插入到差异版本节点中的模型。某些 ControlNet 是专门设计来接收模型的;如果你不清楚这个参数的作用,可能就不需要使用差异版本的节点。

输出

  • 🟪CONTROL_NET:已加载的高级 ControlNet

时间步关键帧

image

基于设定的 start_percent,在各个时间步(采样步骤)上调度节点。通过串联多个时间步关键帧,可以按照百分比在采样步骤中创建 ControlNet 的时间步关键帧调度。

输入

  • 🟨prev_timestep_kf:用于将多个时间步关键帧串联起来以形成调度。顺序并不重要——时间步关键帧会根据其 start_percent 自动排序。如果 prev_timestep_kf 中包含与当前时间步关键帧相同 start_percent 的关键帧,则会被覆盖。
  • 🟨cn_weights:在此时间步关键帧生效期间应用于 ControlNet 的权重。必须与已加载的 ControlNet 兼容,否则会抛出错误,说明哪些权重类型是兼容的。如果 inherit_missing 为 True,且未传递 control_net_weight,则会尝试重用时间步关键帧调度中上次使用的权重。如果“应用高级 ControlNet”节点设置了 weight_override,则在采样过程中将使用 override 权重,而非 control_net_weight。
  • 🟨latent_keyframe:在此时间步关键帧生效期间应用于 ControlNet 的潜在关键帧。如果 inherit_missing 为 True,且未传递 latent_keyframe,则会尝试重用时间步关键帧调度中上次使用的潜在关键帧。如果“应用高级 ControlNet”节点设置了 latent_kf_override,则在采样过程中将使用 override 潜在关键帧,而非 latent_keyframe。
  • 🟨mask_optional:应用于 ControlNet 的注意力掩码;基本上决定了 ControlNet 应作用于图像的哪一部分(以及相对强度,如果掩码不是二值的)。与“应用高级 ControlNet”节点上的 mask_optional 相同,既可以对所有潜在变量应用同一张掩码,也可以为每个潜在变量单独指定掩码。如果 inherit_missing 为 True,且未传递 mask_optional,则会尝试重用时间步关键帧调度中上次使用的 mask_optional。它不会被“应用高级 ControlNet”节点上的 mask_optional 覆盖,而是会同时生效。
  • 🟦start_percent:此时间步关键帧有资格被使用的采样步骤百分比。它是时间步关键帧调度中的“关键”。
  • 🟦strength:ControlNet 的强度;基本上会将 ControlNet 的效果乘以此值,与“应用 ControlNet”节点上的强度叠加使用。如果设置为 0.0,则在此时间步关键帧生效期间不会产生任何效果,并且由于不进行任何计算,会加快采样速度。
  • 🟦null_latent_kf_strength:为未在传入的潜在关键帧中指定的潜在变量分配的强度。如果没有传入潜在关键帧,或者在采样过程中潜在关键帧中没有未指定的 batch_indeces,则此参数无效。
  • 🟦inherit_missing:决定是否从之前的时间步关键帧中重用未在此时间步关键帧中指定的可选值(control_net_weights、latent_keyframe 和 mask_option)。如果只想继承特定的输入,请使用默认值。
  • 🟦guarantee_steps:当设置为 1 或更大时,即使调度中排在此时间步关键帧之前的某个关键帧的 start_percent 更接近当前采样百分比,此时间步关键帧仍会在接下来的指定步骤内继续生效,然后再切换到下一个选定的时间步关键帧。无论该时间步关键帧是否被使用,其输入仍将用于 inherit_missing 目的。

输出

  • 🟪TIMESTEP_KF:创建的时间步关键帧,可以链接到另一个时间步关键帧或作为时间步关键帧输入。

时间步关键帧插值

image

允许在给定的百分比范围内创建具有插值强度值的时间步关键帧。(生成的第一个关键帧将具有 guarantee_steps=1,后续的关键帧则为 guarantee_steps=0)。

输入

  • 🟨prev_timestep_kf:用于将多个时间步关键帧串联起来,形成一个调度表。输入顺序无关紧要——时间步关键帧会根据其 start_percent 自动排序。如果 prev_timestep_keyframe 中包含与当前时间步关键帧相同 start_percent 的关键帧,则会被覆盖。
  • 🟨cn_weights:在该时间步关键帧生效期间应用于 ControlNet 的权重。必须与已加载的 ControlNet 兼容,否则会抛出错误,说明哪些权重类型是兼容的。如果 inherit_missing 为 True,且未传入 control_net_weight,则会尝试复用时间步关键帧调度表中上次使用的权重。如果“应用高级 ControlNet”节点设置了 weight_override,则在采样时将使用 weight_override,而非 control_net_weight。
  • 🟨latent_keyframe:在该时间步关键帧生效期间应用于 ControlNet 的潜在关键帧。如果 inherit_missing 为 True,且未传入 latent_keyframe,则会尝试复用时间步关键帧调度表中上次使用的潜在关键帧。如果“应用高级 ControlNet”节点设置了 latent_kf_override,则在采样时将使用 latent_lf_override,而非 latent_keyframe。
  • 🟨mask_optional:应用于 ControlNet 的注意力掩码;基本上决定了 ControlNet 应作用于图像的哪一部分(以及相对强度,如果掩码不是二值的)。与“应用高级 ControlNet”节点上的 mask_optional 相同,可以为所有潜在变量应用同一张掩码,也可以为每个潜在变量指定单独的掩码。如果 inherit_missing 为 True,且未传入 mask_optional,则会尝试复用时间步关键帧调度表中上次使用的 mask_optional。它不会被“应用高级 ControlNet”节点上的 mask_optional 覆盖,而是会同时使用。
  • 🟦start_percent:第一个生成的时间步关键帧符合使用条件的采样步骤百分比。
  • 🟦end_percent:最后一个生成的时间步关键帧符合使用条件的采样步骤百分比。
  • 🟦strength_start:范围开始处时间步关键帧的强度。
  • 🟦strength_end:范围结束处时间步关键帧的强度。
  • 🟦interpolation:插值方法。
  • 🟦intervals:总共要生成的关键帧数量——第一个的关键帧的 start_percent 等于 start_percent,最后一个的关键帧的 start_percent 等于 end_percent。
  • 🟦null_latent_kf_strength:为未在传入的 latent_keyframes 中列出的潜在变量分配的强度。如果没有传入 latent_keyframes,或者在采样时 latent_keyframes 中没有未列出的 batch_indeces,则此参数无效。
  • 🟦inherit_missing:决定是否应从先前的时间步关键帧中复用可选值(control_net_weights、latent_keyframe 和 mask_option),这些值在当前时间步关键帧中未包含。若仅需继承特定输入,请使用默认输入。
  • 🟦print_keyframes:如果为 True,则会打印由该节点生成的时间步关键帧,用于调试目的。

输出

  • 🟪TIMESTEP_KF:创建的时间步关键帧,可将其链接到另一个关键帧,或作为时间步关键帧输入使用。

从列表创建时间步关键帧

image

允许通过浮点数列表创建时间步关键帧,例如使用 ComfyUI_FizzNodes 节点中的“批量数值调度”。(第一个生成的关键帧将具有 guarantee_steps=1,后续的关键帧则为 guarantee_steps=0。)

输入

  • 🟨prev_timestep_kf:用于将多个时间步关键帧串联起来,形成一个调度表。输入顺序无关紧要——时间步关键帧会根据其 start_percent 自动排序。如果 prev_timestep_keyframe 中包含与当前时间步关键帧相同 start_percent 的关键帧,则会被覆盖。
  • 🟨cn_weights:在该时间步关键帧生效期间应用于 ControlNet 的权重。必须与已加载的 ControlNet 兼容,否则会抛出错误,说明哪些权重类型是兼容的。如果 inherit_missing 为 True,且未传入 control_net_weight,则会尝试复用时间步关键帧调度表中上次使用的权重。如果“应用高级 ControlNet”节点设置了 weight_override,则在采样时将使用 weight_override,而非 control_net_weight。
  • 🟨latent_keyframe:在该时间步关键帧生效期间应用于 ControlNet 的潜在关键帧。如果 inherit_missing 为 True,且未传入 latent_keyframe,则会尝试复用时间步关键帧调度表中上次使用的潜在关键帧。如果“应用高级 ControlNet”节点设置了 latent_kf_override,则在采样时将使用 latent_lf_override,而非 latent_keyframe。
  • 🟨mask_optional:应用于 ControlNet 的注意力掩码;基本上决定了 ControlNet 应作用于图像的哪一部分(以及相对强度,如果掩码不是二值的)。与“应用高级 ControlNet”节点上的 mask_optional 相同,可以为所有潜在变量应用同一张掩码,也可以为每个潜在变量指定单独的掩码。如果 inherit_missing 为 True,且未传入 mask_optional,则会尝试复用时间步关键帧调度表中上次使用的 mask_optional。它不会被“应用高级 ControlNet”节点上的 mask_optional 覆盖,而是会同时使用。
  • 🟩float_strengths:一个浮点数列表,对应每个时间步关键帧的强度;第一个将分配给 start_percent,最后一个将分配给 end_percent,其余按线性方式均匀分布。
  • 🟦start_percent:第一个生成的时间步关键帧符合使用条件的采样步骤百分比。
  • 🟦end_percent:最后一个生成的时间步关键帧符合使用条件的采样步骤百分比。
  • 🟦null_latent_kf_strength:为未在传入的 latent_keyframes 中列出的潜在变量分配的强度。如果没有传入 latent_keyframes,或者在采样时 latent_keyframes 中没有未列出的 batch_indeces,则此参数无效。
  • 🟦inherit_missing:决定是否应从先前的时间步关键帧中复用可选值(control_net_weights、latent_keyframe 和 mask_option),这些值在当前时间步关键帧中未包含。若仅需继承特定输入,请使用默认输入。
  • 🟦print_keyframes:如果为 True,则会打印由该节点生成的时间步关键帧,用于调试目的。

输出

  • 🟪TIMESTEP_KF:创建的时间步关键帧,可将其链接到另一个关键帧,或作为时间步关键帧输入使用。

隐变量关键帧

image

单个隐变量关键帧,用于为特定的 batch_index 选择强度。如果采样过程中不存在该 batch_index,则不会产生任何效果。可以与其他任何隐变量关键帧类型的节点串联,以创建隐变量关键帧序列。

输入

  • 🟨prev_latent_kf:用于将多个隐变量关键帧串联起来形成序列。如果 prev_latent_kf 中包含的某个隐变量关键帧与当前隐变量关键帧具有相同的 batch_index,那么它将优先于当前节点的值。
  • 🟦batch_index:批次中应用 ControlNet 强度的隐变量索引。在隐变量关键帧序列中充当“键”。
  • 🟦strength:应用于相应隐变量的 ControlNet 强度。

输出

  • 🟪LATENT_KF:生成的隐变量关键帧,可链接到其他节点或作为隐变量关键帧输入。

隐变量关键帧组

image

允许通过单独的索引或 Python 风格的范围来创建隐变量关键帧。

输入

  • 🟨prev_latent_kf:用于将多个隐变量关键帧串联起来形成序列。如果 prev_latent_kf 中包含的任何隐变量关键帧与当前隐变量关键帧具有相同的 batch_index,那么它们将优先于本节点的版本。
  • 🟨latent_optional:预计传入进行采样的隐变量;仅当您希望使用负索引时才需要(会自动转换为实际值)。
  • 🟦index_strengths:一个字符串列表,包含要分配强度的索引或 Python 风格的索引范围。如果传入了 latent_optional,则可以包含负索引或包含负数的 Python 风格范围。不同的索引必须用逗号分隔。可以通过 batch_index=strength 的形式指定单个隐变量,例如 0=0.9。范围可以通过 start_index_inclusive:end_index_exclusive=strength 的形式指定,例如 0:8=strength。当 latent_optional 有输入时,也可以使用负索引,例如 0,-4=0.25
  • 🟦print_keyframes:如果为真,则会打印由该节点生成的隐变量关键帧,以便调试。

输出

  • 🟪LATENT_KF:生成的隐变量关键帧,可链接到其他节点或作为隐变量关键帧输入。

隐变量关键帧插值

image

允许在一定范围内创建具有插值强度的隐变量关键帧。

输入

  • 🟨prev_latent_kf:用于将多个隐变量关键帧串联起来形成序列。如果 prev_latent_kf 中包含的任何隐变量关键帧与当前隐变量关键帧具有相同的 batch_index,那么它们将优先于本节点的版本。
  • 🟦batch_index_from:范围的起始 batch_index,包含在内。
  • 🟦batch_index_to:范围的结束 batch_index,不包含在内(Python 风格的范围)。
  • 🟦strength_from:插值的起始强度。
  • 🟦strength_to:插值的结束强度。
  • 🟦interpolation:插值方法。
  • 🟦print_keyframes:如果为真,则会打印由该节点生成的隐变量关键帧,以便调试。

输出

  • 🟪LATENT_KF:生成的隐变量关键帧,可链接到其他节点或作为隐变量关键帧输入。

从列表创建隐变量关键帧

image

允许通过浮点数列表创建隐变量关键帧,例如结合 ComfyUI_FizzNodes 节点中的批量数值调度功能。

输入

  • 🟨prev_latent_kf:用于将多个隐变量关键帧串联起来形成序列。如果 prev_latent_kf 中包含的任何隐变量关键帧与当前隐变量关键帧具有相同的 batch_index,那么它们将优先于本节点的版本。
  • 🟩float_strengths:一个浮点数列表,对应每个隐变量关键帧的强度;batch_index 即为列表中每个浮点数值的索引。
  • 🟦print_keyframes:如果为真,则会打印由该节点生成的隐变量关键帧,以便调试。

输出

  • 🟪LATENT_KF:生成的隐变量关键帧,可链接到其他节点或作为隐变量关键帧输入。

还有更多的节点需要文档化并展示其用法——很快就会添加! 待办事项

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|今天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|昨天
开发框架图像Agent