Update README.md - first half done
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
# AnimateDiff for ComfyUI
|
||||
|
||||
Improved [AnimateDiff](https://github.com/guoyww/AnimateDiff/) integration for ComfyUI, initially adapted from [sd-webui-animatediff](https://github.com/continue-revolution/sd-webui-animatediff) but changed greatly since then. Please read the AnimateDiff repo README for more information about how it works at its core.
|
||||
Improved [AnimateDiff](https://github.com/guoyww/AnimateDiff/) integration for ComfyUI, as well as advanced sampling options dubbed Evolved Sampling usable outside of AnimateDiff. Please read the AnimateDiff repo README and Wiki for more information about how it works at its core.
|
||||
|
||||
Examples shown here will also often make use of these helpful sets of nodes:
|
||||
- [ComfyUI_FizzNodes](https://github.com/FizzleDorf/ComfyUI_FizzNodes) for prompt-travel functionality with the BatchPromptSchedule node.
|
||||
- [ComfyUI-Advanced-ControlNet](https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet) for loading files in batches and controlling which latents should be affected by the ControlNet inputs (work in progress, will include more advance workflows + features for AnimateDiff usage later).
|
||||
- [ComfyUI-VideoHelperSuite](https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite) for loading videos, combining images into videos, and doing various image/latent operations like appending, splitting, duplicating, selecting, or counting.
|
||||
- [comfyui_controlnet_aux](https://github.com/Fannovel16/comfyui_controlnet_aux) for ControlNet preprocessors not present in vanilla ComfyUI. NOTE: If you previously used [comfy_controlnet_preprocessors](https://github.com/Fannovel16/comfy_controlnet_preprocessors), ***you will need to remove comfy_controlnet_preprocessors*** to avoid possible compatibility issues between the two. Actively maintained by Fannovel16.
|
||||
AnimateDiff workflows will often make use of these helpful node packs:
|
||||
- [ComfyUI_FizzNodes](https://github.com/FizzleDorf/ComfyUI_FizzNodes) for prompt-travel functionality with the BatchPromptSchedule node. Maintained by FizzleDorf.
|
||||
- [ComfyUI-Advanced-ControlNet](https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet) for making ControlNets work with Context Options and controlling which latents should be affected by the ControlNet inputs. Includes SparseCtrl support. Maintained by me.
|
||||
- [ComfyUI-VideoHelperSuite](https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite) for loading videos, combining images into videos, and doing various image/latent operations like appending, splitting, duplicating, selecting, or counting. Actively maintained by AustinMroz and I.
|
||||
- [comfyui_controlnet_aux](https://github.com/Fannovel16/comfyui_controlnet_aux) for ControlNet preprocessors not present in vanilla ComfyUI. Maintained by Fannovel16.
|
||||
- [ComfyUI_IPAdapter_plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) for IPAdapter support. Maintained by cubiq (matt3o).
|
||||
|
||||
# Installation
|
||||
|
||||
## If using Comfy Manager:
|
||||
## If using ComfyUI Manager:
|
||||
|
||||
1. Look for ```AnimateDiff Evolved```, and be sure the author is ```Kosinkadink```. Install it.
|
||||

|
||||
@@ -19,17 +20,230 @@ Examples shown here will also often make use of these helpful sets of nodes:
|
||||
## If installing manually:
|
||||
1. Clone this repo into `custom_nodes` folder.
|
||||
|
||||
# How to Use:
|
||||
# Model Setup:
|
||||
1. Download motion modules. You will need at least 1. Different modules produce different results.
|
||||
- Original models ```mm_sd_v14```, ```mm_sd_v15```, ```mm_sd_v15_v2```, ```v3_sd15_mm```: [HuggingFace](https://huggingface.co/guoyww/animatediff/tree/cd71ae134a27ec6008b968d6419952b0c0494cf2) | [Google Drive](https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI) | [CivitAI](https://civitai.com/models/108836)
|
||||
- Stabilized finetunes of mm_sd_v14, ```mm-Stabilized_mid``` and ```mm-Stabilized_high```, by **manshoety**: [HuggingFace](https://huggingface.co/manshoety/AD_Stabilized_Motion/tree/main)
|
||||
- Finetunes of mm_sd_v15_v2, ```mm-p_0.5.pth``` and ```mm-p_0.75.pth```, by **manshoety**: [HuggingFace](https://huggingface.co/manshoety/beta_testing_models/tree/main)
|
||||
- Higher resolution finetune,```temporaldiff-v1-animatediff``` by **CiaraRowles**: [HuggingFace](https://huggingface.co/CiaraRowles/TemporalDiff/tree/main)
|
||||
2. Place models in ```ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models```. They can be renamed if you want.
|
||||
- FP16/safetensor versions of vanilla motion models, hosted by **continue-revolution** (takes up less storage space, but uses up the same amount of VRAM as ComfyUI loads models in fp16 by default): [HuffingFace](https://huggingface.co/conrevo/AnimateDiff-A1111/tree/main)
|
||||
2. Place models in one of these locations (you can rename models if you wish):
|
||||
- ```ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models```
|
||||
- ```ComfyUI/models/animatediff_models```
|
||||
3. Optionally, you can use Motion LoRAs to influence movement of v2-based motion models like mm_sd_v15_v2.
|
||||
- [Google Drive](https://drive.google.com/drive/folders/1EqLC65eR1-W-sGD0Im7fkED6c8GkiNFI?usp=sharing) | [HuggingFace](https://huggingface.co/guoyww/animatediff) | [CivitAI](https://civitai.com/models/108836/animatediff-motion-modules)
|
||||
- Place Motion LoRAs in ```ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/motion_lora```. They can be renamed if you want.
|
||||
5. Get creative! If it works for normal image generation, it (probably) will work for AnimateDiff generations. Latent upscales? Go for it. ControlNets, one or more stacked? You betcha. Masking the conditioning of ControlNets to only affect part of the animation? Sure. Try stuff and you will be surprised by what you can do. Samples with workflows are included below.
|
||||
- Place Motion LoRAs in one of these locations (you can rename Motion LoRAs if you wish):
|
||||
- ```ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/motion_lora```
|
||||
- ```ComfyUI/models/animatediff_motion_lora```
|
||||
4. Get creative! If it works for normal image generation, it (probably) will work for AnimateDiff generations. Latent upscales? Go for it. ControlNets, one or more stacked? You betcha. Masking the conditioning of ControlNets to only affect part of the animation? Sure. Try stuff and you will be surprised by what you can do. Samples with workflows are included below.
|
||||
|
||||
NOTE: you can also use custom locations for models/motion loras by making use of the ComfyUI ```extra_model_paths.yaml``` file. The id for motion model folder is ```animatediff_models``` and the id for motion lora folder is ```animatediff_motion_lora```.
|
||||
|
||||
|
||||
# Features
|
||||
- Compatible with almost any vanilla or custom KSampler node.
|
||||
- ControlNet, SparseCtrl, and IPAdapter support
|
||||
- Infinite animation length support via sliding context windows across whole unet (Context Options) and/or within motion module (View Options)
|
||||
- Scheduling Context Options to change across different points in the sampling process
|
||||
- FreeInit and FreeNoise support (FreeInit is under iteration opts, FreeNoise is in SampleSettings' noise_type dropdown)
|
||||
- Mixable Motion LoRAs from [original AnimateDiff repository](https://github.com/guoyww/animatediff/) implemented. Caveat: only really work on v2-based motion models like ```mm_sd_v15_v2```, ```mm-p_0.5.pth```, and ```mm-p_0.75.pth```
|
||||
- Prompt travel using BatchPromptSchedule node from [ComfyUI_FizzNodes](https://github.com/FizzleDorf/ComfyUI_FizzNodes)
|
||||
- Scale and Effect multival inputs to control motion amount and motion model influence on generation.
|
||||
- Can be float, list of floats, or masks
|
||||
- Custom noise scheduling via Noise Types, Noise Layers, and seed_override/seed_offset/batch_offset in Sample Settings and related nodes
|
||||
- AnimateDiff model v1/v2/v3 support
|
||||
- Using multiple motion models at once via Gen2 nodes (each supporting
|
||||
- [HotshotXL](https://huggingface.co/hotshotco/Hotshot-XL/tree/main) support (an SDXL motion module arch), ```hsxl_temporal_layers.safetensors```.
|
||||
- NOTE: You will need to use ```autoselect``` or ```linear (HotshotXL/default)``` beta_schedule, the sweetspot for context_length or total frames (when not using context) is 8 frames, and you will need to use an SDXL checkpoint.
|
||||
- AnimateDiff-SDXL support, with corresponding model. Currently, a beta version is out, which you can find info about at [AnimateDiff](https://github.com/guoyww/AnimateDiff/).
|
||||
- NOTE: You will need to use ```autoselect``` or ```linear (AnimateDiff-SDXL)``` beta_schedule. Other than that, same rules of thumb apply to AnimateDiff-SDXL as AnimateDiff.
|
||||
- AnimateDiff Keyframes to change Scale and Effect at different points in the sampling process.
|
||||
- fp8 support; requires newest ComfyUI and torch >= 2.1 (decreases VRAM usage, but changes outputs)
|
||||
- Mac M1/M2/M3 support
|
||||
- Usage of Context Options and Sample Settings outside of AnimateDiff via Gen2 Use Evolved Sampling node
|
||||
|
||||
## Upcoming Features
|
||||
- Maskable SD LoRA (and perhaps maskable SD Models as well)
|
||||
- [PIA](https://github.com/open-mmlab/PIA) support
|
||||
- Motion LoRA training (experimental)
|
||||
- Anything else AnimateDiff-related that comes out
|
||||
|
||||
|
||||
# Basic Usage And Nodes
|
||||
|
||||
There are two families of nodes that can be used to use AnimateDiff/Evolved Sampling - **Gen1** and **Gen2**. Other than nodes marked specifically for Gen1/Gen2, all other nodes can be used for both Gen1 and Gen2.
|
||||
|
||||
Gen1 and Gen2 produce the exact same results (the backend code is identical), the only difference is in how the modes are used. Overall, Gen1 is the simplest way to use basic AnimateDiff features, while Gen2 separates model loading and application from the Evolved Sampling features. This means in practice, Gen2's Use Evolved Sampling node can be used without a model model, letting Context Options and Sample Settings be used without AnimateDiff.
|
||||
|
||||
In the following documentation, inputs/outputs will be color coded as follows:
|
||||
- 🟩 - required inputs
|
||||
- 🟨 - optional inputs
|
||||
- 🟦 - start as widgets, can be converted to inputs
|
||||
- 🟪 - output
|
||||
|
||||
## Gen1/Gen2 Nodes
|
||||
|
||||
| ① Gen1 ① | ② Gen2 ② |
|
||||
|---|---|
|
||||
| - All-in-One node<br/> - If same model is loaded by multiple Gen1 nodes, duplicates RAM usage. | - Separates model loading from application and Evolved Sampling<br/> - Enables no motion model usage while preserving Evolved Sampling features<br/> - Enables multiple motion model usage with Apply AnimateDiff Model (Adv.) Node|
|
||||
| | |
|
||||
| |  |
|
||||
|
||||
|
||||
### Inputs
|
||||
- 🟩*model*: StableDiffusion (SD) Model input.
|
||||
- 🟦*model_name*: AnimateDiff (AD) model to load and/or apply during the sampling process. Certain motion models work with SD1.5, while others work with SDXL.
|
||||
- 🟦*beta_schedule*: Applies selected beta_schedule to SD model; ```autoselect``` will automatically select the recommended beta_schedule for selected motion models - or will use_existing if no motion model selected for Gen2.
|
||||
- 🟨*context_options*: Context Options node from the context_opts submenu - should be used when needing to go back the sweetspot of an AnimateDiff model. Works with no motion models as well (Gen2 only).
|
||||
- 🟨*sample_settings*: Sample Settings node input - used to apply custom sampling options such as FreeNoise (noise_type), FreeInit (iter_opts), custom seeds, Noise Layers, etc. Works with no motion models as well (Gen2 only).
|
||||
- 🟨*motion_lora*: For v2-based models, Motion LoRA will influence the generated movement. Only a few official motion LoRAs were released - soon, I will be working with some community members to create training code to create (and test) new Motion LoRAs that might work with non-v2 models.
|
||||
- 🟨*ad_settings*: Modifies motion models during loading process, allowing the Positional Encoders (PEs) to be adjusted to extend a model's sweetspot or modify overall motion.
|
||||
- 🟨*ad_keyframes*: Allows scheduling of ```scale_multival``` and ```scale_effect``` inputs across sampling timesteps.
|
||||
- 🟨*scale_multival*: Uses a ```Multival``` input (defaults to ```1.0```). Previously called motion_scale, it directly influences the amount of motion generated by the model. With the Multival nodes, it can accept a float, list of floats, and/or mask inputs, allowing different scale to be applied to not only different frames, but different areas of frames (including per-frame).
|
||||
- 🟨*effect_multival*: Uses a ```Multival``` input (defaults to ```1.0```). Determines the influence of the motion models on the sampling process. Value of ```0.0``` is equivalent to normal SD output with no AnimateDiff influence. With the Multival nodes, it can accept a float, list of floats, and/or mask inputs, allowing different effect amount to be applied to not only different frames, but different areas of frames (including per-frame).
|
||||
|
||||
#### Gen2-Only Inputs
|
||||
- 🟨*motion_model*: Input for loaded motion_model.
|
||||
- 🟨*m_models*: One (or more) motion models outputted from Apply AnimateDiff Model nodes.
|
||||
|
||||
#### Gen2 Adv.-Only Inputs
|
||||
- 🟨*prev_m_models*: Previous applied motion models to use alongside this one.
|
||||
- 🟨*start_percent*: Determines when connected motion_model should take effect (supercedes any ad_keyframes).
|
||||
- 🟨*end_percent*: Determines when connected motion_model should stop taking effect (supercedes any ad_keyframes).
|
||||
|
||||
#### Gen1 (Legacy) Inputs
|
||||
- 🟦*motion_scale*: legacy version of ```scale_multival```, can only be a float.
|
||||
- 🟦*apply_v2_models_properly*: backwards compatible toggle for months-old workflows that used code that did not turn off groupnorm hack for v2 models. **Only affects v2 models, nothing else.** All nodes default this value to ```True``` now.
|
||||
|
||||
### Outputs
|
||||
- 🟪*MODEL*: Injected SD model with Evolved Sampling/AnimateDiff.
|
||||
|
||||
#### Gen2-Only Outputs
|
||||
- 🟪*MOTION_MODEL*: Loaded motion model.
|
||||
- 🟪*M_MODELS*: One (or more) applied motion models, to be either plugged into Use Evolved Sampling or another Apply AnimateDiff Model (Adv.) node.
|
||||
|
||||
|
||||
## Multival Nodes
|
||||
|
||||
For Multival inputs, these nodes allow the use of floats, list of floats, and/or masks to use as input. Scaled Mask node allows customization of dark/light areas of masks in terms of what the values correspond to.
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟨*mask_optional*: Mask for float values - black means 0.0, white means 1.0 (multiplied by float_val). <br/> 🟦*float_val*: Float multiplier.|
|
||||
|  | 🟩*mask*: Mask for float values. <br/> 🟦*min_float_val*: Minimum value. <br/>🟦*max_float_val*: Maximum value. <br/> 🟦*scaling*: When ```absolute```, black means min_float_val, white means max_float_val. When ```relative```, darkest area in masks (total) means min_float_val, lighest area in massk (total) means max_float_val. |
|
||||
|
||||
|
||||
## AnimateDiff Keyframe
|
||||
|
||||
Allows scheduling (in terms of timesteps) for scale_multival and effect_multival.
|
||||
|
||||
The two settings to determine schedule are ***start_percent*** and ***guarantee_steps***. When multiple keyframes have the same start_percent, they will be executed in the order they are connected, and run for guarantee_steps before moving on to the next node.
|
||||
|
||||
| Node |
|
||||
|---|
|
||||
|  |
|
||||
|
||||
### Inputs
|
||||
- 🟨*prev_ad_keyframes*: Chained keyframes to create schedule.
|
||||
- 🟨*scale_multival*: Value of scale to use for this keyframe.
|
||||
- 🟨*effect_multival*: Value of effect to use for this keyframe.
|
||||
- 🟨*effect_multival*: Value of effect to use for this keyframe.
|
||||
- 🟦*start_percent*: Percent of timesteps to start usage of this keyframe. If multiple keyframes have same start_percent, order of execution is determined by their chained order, and will last for guarantee_steps timesteps.
|
||||
- 🟦*guarantee_steps*: Minimum amount of steps the keyframe will be used - when set to 0, this keyframe will only be used when no other keyframes are better matches for current timestep.
|
||||
- 🟦*inherit_missing*: When set to ```True```, any missing scale_multival or effect_multival inputs will inherit the previous keyframe's values - if the previous keyframe also inherits missing, the last inherited value will be used.
|
||||
|
||||
|
||||
## Context Options and View Options
|
||||
|
||||
These nodes provide techniques used to extend the lengths of animations to get around the sweetspot limitations of AnimateDiff models (typically 16 frames) and HotshotXL model (8 frames).
|
||||
|
||||
Context Options works by diffusing portions of the animation at a time, including main SD diffusion, ControlNets, IPAdapters, etc., effectively limiting VRAM usage to be equivalent to be context_length latents.
|
||||
|
||||
View Options, in contrast, work by portioning the latents seen by the motion model. This does NOT decrease VRAM usage, but in general is more stable and faster than Context Options, since the latents don't have to go through the whole SD unet.
|
||||
|
||||
Context Options and View Options can be combined to get the best of both worlds - longer context_length can be used to gain more stable output, at the cost of using more VRAM (since context_length determines how much SD sampling is done at the same time on the GPU). Provided you have the VRAM, you could also use Views Only Context Options to use only View Options (and automatically make context_length equivalent to full latents) to get a speed boost in return for the higher VRAM usage.
|
||||
|
||||
There are two types of Context/View Options: ***Standard*** and ***Looped***. ***Standard*** options do not cause looping in the output. ***Looped*** options, as the name implies, causes looping in the output (from end to beginning). Prior to the code rework, the only context available was the looping kind.
|
||||
|
||||
***I recommend using Standard Static at first when not wanting looped outputs.***
|
||||
|
||||
In the below animations, ***green*** shows the Contexts, and ***red*** shows the Views. TL;DR green is the amount of latents that are loaded into VRAM (and sampled), while red is the amount of latents that get passed into the motion model at a time.
|
||||
|
||||
### Context Options◆Standard Static
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, context_length: 16, context_overlap: 4, total steps: 20)|
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟦*context_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> 🟦*use_on_equal_length*: When True, allows context to be used when latent count matches context_length.<br/> 🟦*start_percent*: When multiple Context Options are chained, allows scheduling.<br/> 🟦*guarantee_steps*: When scheduling contexts, determines the *minimum* amount of sampling steps context should be used.<br/> 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟨*prev_context*: Allows chaining of contexts.<br/> 🟨*view_options*: When context_length > view_length (unless otherwise specified), allows view_options to be used within each context window.|
|
||||
|
||||
### Context Options◆Standard Uniform
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, context_length: 16, context_overlap: 4, context_stride: 1, total steps: 20) |
|
||||
|  <br/> (latent count: 64, context_length: 16, context_overlap: 4, context_stride: 2, total steps: 20) |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟦*context_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*context_stride*: Maximum 2^(stride-1) distance between adjacent latents.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> 🟦*use_on_equal_length*: When True, allows context to be used when latent count matches context_length.<br/> 🟦*start_percent*: When multiple Context Options are chained, allows scheduling.<br/> 🟦*guarantee_steps*: When scheduling contexts, determines the *minimum* amount of sampling steps context should be used.<br/> 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟨*prev_context*: Allows chaining of contexts.<br/> 🟨*view_options*: When context_length > view_length (unless otherwise specified), allows view_options to be used within each context window.|
|
||||
|
||||
### Context Options◆Looped Uniform
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, context_length: 16, context_overlap: 4, context_stride: 1, closed_loop: False, total steps: 20) |
|
||||
|  <br/> (latent count: 64, context_length: 16, context_overlap: 4, context_stride: 1, closed_loop: True, total steps: 20) |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟦*context_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*context_stride*: Maximum 2^(stride-1) distance between adjacent latents.<br/> 🟦*closed_loop*: When True, adds additional windows to enhance looping.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> 🟦*use_on_equal_length*: When True, allows context to be used when latent count matches context_length - allows loops to be made when latent count == context_length.<br/> 🟦*start_percent*: When multiple Context Options are chained, allows scheduling.<br/> 🟦*guarantee_steps*: When scheduling contexts, determines the *minimum* amount of sampling steps context should be used.<br/> 🟦*context_length*: Amount of latents to diffuse at once.<br/> 🟨*prev_context*: Allows chaining of contexts.<br/> 🟨*view_options*: When context_length > view_length (unless otherwise specified), allows view_options to be used within each context window.|
|
||||
|
||||
### Context Options◆Views Only [VRAM⇈]
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, view_length: 16, view_overlap: 4, View Options◆Standard Static, total steps: 20) |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟩*view_opts_req*: View_options to be used across all latents. <br/> 🟨*prev_context*: Allows chaining of contexts.<br/> |
|
||||
|
||||
|
||||
There are View Options equivalent of these schedules:
|
||||
|
||||
### View Options◆Standard Static
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, view_length: 16, view_overlap: 4, Context Options◆Standard Static, context_length: 16, context_overlap: 8, total steps: 20) |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*view_length*: Amount of latents in context to pass into motion model at a time.<br/> 🟦*view_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> |
|
||||
|
||||
### View Options◆Standard Uniform
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, view_length: 16, view_overlap: 4, view_stride: 1, Context Options◆Standard Static, context_length: 16, context_overlap: 8, total steps: 20) |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*view_length*: Amount of latents in context to pass into motion model at a time.<br/> 🟦*view_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*view_stride*: Maximum 2^(stride-1) distance between adjacent latents.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> |
|
||||
|
||||
### View Options◆Looped Uniform
|
||||
| Behavior |
|
||||
|---|
|
||||
|  <br/> (latent count: 64, view_length: 16, view_overlap: 4, view_stride: 1, closed_loop: False, Context Options◆Standard Static, context_length: 16, context_overlap: 8, total steps: 20) |
|
||||
| NOTE: this one is probably not going to come out looking well unless you are using this for a very specific reason. |
|
||||
|
||||
| Node | Inputs |
|
||||
|---|---|
|
||||
|  | 🟦*view_length*: Amount of latents in context to pass into motion model at a time.<br/> 🟦*view_overlap*: Minimum common latents between adjacent windows.<br/> 🟦*view_stride*: Maximum 2^(stride-1) distance between adjacent latents.<br/> 🟦*closed_loop*: When True, adds additional windows to enhance looping.<br/> 🟦*use_on_equal_length*: When True, allows context to be used when latent count matches context_length - allows loops to be made when latent count == context_length.<br/> 🟦*fuse_method*: Method for averaging results of windows.<br/> |
|
||||
|
||||
|
||||
|
||||
|
||||
# Core Nodes
|
||||
|
||||
|
||||
|
||||
# Notable Updates
|
||||
### (December 6th, 2023) Massive rewrite of code
|
||||
|
||||
Reference in New Issue
Block a user