Flake Animate Stack
The same character, six different shots
- flake_anim_data
- flake_anim_data
If Flake Animate Preset is the model config, Flake Animate Stack is the cast list. You feed it the flake_anim_data coming out of a preset node, then add flakes - the pack's YAML presets for a character, a style, an outfit, an environment - and it folds their prompts and LoRAs into that chain. Every flake in the grid is active at once, which is exactly what you want when the thing that should stay constant is who, and the thing that changes is shot, angle or mood.
This is the node the pack was built around. Character-consistent video with Wan 2.2 LoRAs works, but it works the way a stack of cards works: you keep one LoRA pinned and vary the prompt, the seed, the start image. Doing that by hand for six shots means six hand edits and six chances to forget which LoRA strength you landed on. A flake file holds that.
How it composes
Three things happen when you queue, and it's worth knowing all three because they're why the node exists.
It patches the diffusion models. Every LoRA in every active flake gets applied to the model(s) coming down the pipe - on Wan 2.2 that means each LoRA's high-noise file patches the high-noise model and its low-noise file patches the low-noise model, which is why Wan animate LoRAs ship as a pair. On MiniMax H3 there's one model, so it gets one.
It merges prompts. The preset's positive and negative text get joined with each flake's fragments, in grid order.
It picks the start image. Animate grid items carry input images (the bottom-left + on an item); the queue puts each job's start image onto its item, so one image means one job, and each job's clip starts from its own frame. When several items carry images, the last active one in the chain wins for that job - the queue handles the per-image fan-out.
Nothing is encoded here. That's the clever part of the design: prompts are encoded once, downstream, in Flake Generate Animation. So stacking flakes costs you a LoRA patch, not a CLIP pass.
Inputs and outputs
family (Wan 2.2 or MiniMax H3 - the widget hides itself and infers the value from the upstream preset once one is connected), flake_anim_data from the preset, and flakes_json, which the author's tooltip describes as "JSON-encoded list of animate flake entries. Managed by the Flake widget." You interact with the grid, not the JSON. One output: flake_anim_data, into Flake Generate Animation or another stack.
Animate flakes live under ComfyUI/models/flakes/video/<family>/, separate from your image flakes, and they follow the same YAML shape. One convenience you'll appreciate immediately: you can drag a flake out of an image-side Flake Stack grid into an animate grid and it gets copied into that family for you.
Install
Manager (search ComfyUI Flakes) or:
cd ComfyUI/custom_nodes
git clone https://github.com/JeyzerMC/comfyui-flakes
No dependencies beyond the pyyaml ComfyUI already ships. Presets and weights are the real setup work - a Wan 2.2 stack needs both diffusion models, the Wan text encoder, the Wan VAE and both halves of any LoRA you stack.
Where people get burned
LoRA schedules don't apply to animate flakes. The image-side editor lets you hang keyframe schedules on a LoRA; on the animate path those are conditioning hooks and nothing is encoded at stack time, so the LoRA just runs at its plain strength. If a flake sounds different in video than in stills, that's why - the source says so in a comment, not in the README.
LoRAs patch the model only. The text-encoder side isn't touched, so keep trigger words in the prompt.
No image anywhere, no video. Generate Animation will refuse with a message pointing you at the grid item's + button. Adding flakes doesn't add start images - those live on the items.
Family mismatch. Pick Wan 2.2 on the preset and the stack will follow it, but if you set the stack's own family differently before connecting, the flake picker shows you the wrong shelf. Connect first, then add flakes.
And the standard video tax: stack three character LoRAs onto a 14B two-pass model and you've added three model patches per diffusion model. It's fine on a 24 GB card, less fine on a 12 GB one.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| family | COMBO | 2 options: Wan 2.2, MiniMax H3 | |
| flake_anim_data | FLAKE_ANIM_DATA | — | |
| flakes_json | STRING | [] | JSON-encoded list of animate flake entries. Managed by the Flake widget. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| flake_anim_data | FLAKE_ANIM_DATA | — |