ComfyUI-AnimateDiff-Evolved(2)_GEN1和GEN2两种节点有何区别?以及怎么用?

书接上回:

ComfyUI-AnimateDiff-Evolved(1)_节点和模型基础介绍-CSDN博客

有一回更新ComfyUI节点后,看到AnimateDiff节点中的子节点变得越来越复杂了,这次直接整了个GEN1和GEN2,第一代和第二代,所以跑到官方git来了解下原作者具体是什么区别和思路。

⭕官方解释

Gen1 和 Gen2 产生完全相同的结果(后端代码相同),唯一的区别在于模型的使用方式。总体而言,Gen1 是使用基本 AnimateDiff 功能的最简单方法,而 Gen2 将模型加载和应用与演进采样功能分开。这意味着在实践中,Gen2 的 Use Evolved Sampling 节点可以在没有模型模型的情况下使用,从而可以在没有 AnimateDiff 模型的情况下使用 Context Options 和 Sample Settings。

GEN1:

多合一节点,如果多个 Gen1 节点加载同一模型,则会重复 RAM 使用。

GEN2: 

1、将模型加载与应用程序和演进采样分开;

2、允许不使用运动模型,同时保留演进采样功能;

3、通过应用 AnimateDiff 模型(高级)节点启用多个运动模型使用;

 🅰GEN1节点详解

红框内是必选的参数,其他的参数可以不输入。

先看AnimateDiff Loader (左边这个)每个参数的含义如下:

  • model:StableDiffusion (SD) 模型输入。
  • model_name:在采样过程中应用的 AnimateDiff (AD) 模型。某些运动模型适用于 SD1.5,而有的运动模型则适用于 SDXL,务必要根据你做图像生成的大模型(Stable Diffusion模型)进行匹配选择。
  • beta_schedule:将选定的 beta_schedule 应用到 SD 模型;"autoselect"将自动为选定的运动模型选择推荐的 beta_schedule - 或者如果没有为 Gen2 选择运动模型,则将使用"use existing"。
  • context_options:context_opts 子菜单中的上下文选项节点,当需要返回 AnimateDiff 模型的最佳位置时应使用,可以简单的理解为每次生成图像的时候需要参考前边多少帧的图像。也适用于无运动模型(仅限 Gen2)。 
  • motion_lora :对于基于 v2模型,Motion LoRA 将影响生成的运动。具体可以参考huggingface上的这个链接:Motion LoRA下载
  • ad_settings:在过程中修改运动模型的影响权重。
  • ad_keyframes:允许根据采样步数进行调度scale_multivaleffect_multival输入。
  • sample_settings :采样器设置。也适用于无运动模型(仅限 Gen2)
  • scale_multival :可以理解为动画变化幅度,默认为1.0。以前称为motion_scale,它直接影响模型生成的运动量。使用 Multival 节点,它可以接受浮点数、浮点数列表和/或作为蒙版输入,允许将不同的比例不仅应用于不同的帧,而且应用于帧的不同区域(包括每帧)。
  • effect_multival :定义运动模型对采样过程的影响,默认为1.0。如果设置为0,那么生成的结果将只受到SD的影响,而不会受到animatediff模型的影响。利用这个节点,它可以接受浮点数、浮点数列表和/或蒙版作为输入,允许不同的效果量不仅应用于不同的帧,而且应用于帧的不同区域(包括每帧)。

再看AnimateDiff Loader [legacy](右边这个)节点中,跟上边不同的节点参数的介绍:

  • motion_scale: scale_multival这个参数的历史版本,仅仅接受float类型;
  • apply_v2_models_properly: 仅仅用于兼容,适用于几个月前的工作流程。仅影响v2模型,不影响其他。现在所有节点默认此值设置为True。

🅱GEN2节点详解

我们先看“Apply AnimateDiff Model”这个基础版:

  • motion_model: 输入/加载运动模型,跟之前一样;

再看“Apply AnimateDiff Model(Adv.)”这个高级版节点:

  • start_percent: 确定运动模型什么时间(总时间的百分比)生效,这个优先级优先于任何ad_keyframes的定义。
  • end_percent: 确定运动模型什么时间(总时间的百分比)停止影响,这个优先级优先于任何ad_keyframes的定义。
  • prev_m_models: 用于串联多个运动模型。

😶Multival Nodes

前边多次提到Multival Nodes这个事情,那么Multival Nodes到底是什么呢?

这些节点允许使用浮点数、浮点数列表和/或掩码(mask)作为输入。缩放蒙版节点(Multival Scaled Mask),允许根据值对应的内容自定义蒙版的暗/亮区域。

  • mask_optional:选填,浮点值的掩码 - 黑色表示 0.0,白色表示 1.0(乘以 float_val)。
  • float_val:浮点乘数。

  • mask:必填,浮点值的掩码,可以传入一张灰度图。
  • min_float_val:最小值。
  • max_float_val:最大值。
  • scaling:当设置为absolute时,黑色表示 min_float_val,白色表示 max_float_val。当 设置为relative时masks 中最暗的区域表示 min_float_val,massk 中最亮的区域表示 max_float_val。

🎄AnimateDiff 关键帧设置

也就是ad_keyframes,这个关键帧应该如何设置呢?

节点的链接方式如下图,是可以串联起来的:

  • prev_ad_keyframes: 用于连接关键帧,形成一条关键帧的链;
  • scale_multival: 在当前关键帧上,设定animatediff运动模型的动画幅度是多少;
  • effect_multival: 在当前关键帧上,运动模型的影响权重是多少;
  • start_percent: 开始使用此关键帧的时间百分比。如果多个关键帧有相同的start_percent,执行顺序由它们的链接顺序决定,并且将持续的步数为:guarantee_steps。
  • guarantee_steps:关键帧将被使用的最小步数 - 当设置为0时,只有当没有其他关键帧更适合当前时间步时,此关键帧才会被使用。
  • inherit_missing: 当设置为True时,任何缺失的scale_multival或effect_multival输入将继承前一个关键帧的值 - 如果前一个关键帧也继承了缺失的值,将使用最后一个继承的值。

好了,这篇文章就先到这里,接下来将进入动画生成中一个更关键的概念的理解:上下文相关设置。

这里是聚梦小课堂,关注我,下期我们继续分享Animatediff Evolved节点的相关内容。

聚梦小课堂的个人空间-聚梦小课堂个人主页-哔哩哔哩视频

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚梦小课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值