Files
CavinHuang-comfyui-nodes-docs/docs/ADE_InjectI2VIntoAnimateDiffModel.md

65 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧪Inject I2V into AnimateDiff Model 🎭🅐🅓②
## Documentation
- Class name: ADE_InjectI2VIntoAnimateDiffModel
- Category: Animate Diff 🎭🅐🅓/② Gen2 nodes ②/AnimateLCM-I2V/🧪experimental
- Output node: False
- Repo Ref: https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git
此节点旨在将I2V(Image to Video)模型集成到AnimateDiff框架中,通过引入运动模型增强其功能。它作为桥梁,丰富AnimateDiff的动画过程,增加更多的运动动态,从而实现更复杂和细致的动画输出。
## Input types
### Required
- model_name
- 指定要加载的运动模型的名称,在确定动画的运动动态方面起着至关重要的作用。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
- motion_model
- 表示要注入到AnimateDiff模型中的运动模型对象,对于在动画过程中应用特定的运动动态至关重要。
- Comfy dtype: MOTION_MODEL_ADE
- Python dtype: MotionModelPatcher
### Optional
- ad_settings
- AnimateDiff过程的可选设置,允许自定义动画的外观和行为。
- Comfy dtype: AD_SETTINGS
- Python dtype: AnimateDiffSettings
## Output types
- MOTION_MODEL
- Comfy dtype: MOTION_MODEL_ADE
- 注入了I2V功能的增强版AnimateDiff模型,准备好用于动画任务。
- Python dtype: MotionModelPatcher
## Usage tips
- Infra type: CPU
- Common nodes: unknown
## Source code
```python
class LoadAnimateDiffAndInjectI2VNode:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"model_name": (get_available_motion_models(),),
"motion_model": ("MOTION_MODEL_ADE",),
},
"optional": {
"ad_settings": ("AD_SETTINGS",),
}
}
RETURN_TYPES = ("MOTION_MODEL_ADE",)
RETURN_NAMES = ("MOTION_MODEL",)
CATEGORY = "Animate Diff 🎭🅐🅓/② Gen2 nodes ②/AnimateLCM-I2V/🧪experimental"
FUNCTION = "load_motion_model"
def load_motion_model(self, model_name: str, motion_model: MotionModelPatcher, ad_settings: AnimateDiffSettings=None):
# make sure model w/ encoder actually has encoder
if motion_model.model.img_encoder is None:
raise Exception("Passed-in motion model was expected to have an img_encoder, but did not.")
# load motion module and motion settings, if included
loaded_motion_model = load_motion_module_gen2(model_name=model_name, motion_model_settings=ad_settings)
inject_img_encoder_into_model(motion_model=loaded_motion_model, w_encoder=motion_model)
return (loaded_motion_model,)