Multival to Mask ππ π
Pulling a plain mask back out of the pack's strength type
- multival
- MASK
AnimateDiff-Evolved's Multival is a flexible value type - per the README, "can be float, list of floats, or masks" - used all over the pack for strength dials like motion scale and effect strength. That flexibility is great inside the pack, but it also means a Multival isn't a type any other ComfyUI node recognizes. This one converts the other direction: take a Multival that's carrying mask-shaped data and pull a plain, standard MASK back out of it, so anything downstream that wants an ordinary mask can actually use it.
Why you'd want this
Say you built a Multival for motion strength using a masked region, and now you want to reuse that exact shape somewhere else in your graph - as an inpainting mask, as an input to a compositing node, as a mask for an entirely different pack that has no idea what a MULTIVAL is. Rebuilding the same mask from scratch is wasted work. This node is the escape hatch: convert once here, and the resulting MASK is just as usable anywhere a mask normally is.
It only makes sense to reach for this when the Multival you're converting actually has mask-shaped data behind it. If you built it from a flat float with no mask attached, there's no meaningful spatial pattern here to extract.
The one input that matters
multival(required,MULTIVAL) - the value to pull mask data out of.
Output is a single MASK, usable anywhere a standard ComfyUI mask input is expected.
How to install it
ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
then restart. No model download needed - this is a pure value-conversion utility, unrelated to any motion module or checkpoint.
Common issues & troubleshooting
Output mask is flat/uniform when you expected spatial variation. That means the Multival you fed in wasn't actually built with a mask in the first place - a flat-float Multival converts to a flat mask, because there's no spatial data to recover. Check the node upstream that built your Multival and confirm it actually had a mask_optional (or equivalent) wired in.
Not sure whether you even need this node. If everything you're doing stays inside the pack's own Multival-consuming inputs - scale_multival, effect_multival, and the like - you don't. This node exists specifically for the moment a mask needs to leave the Multival system and be usable by something else in your graph that has no concept of it.
Values look scaled or clipped oddly compared to the mask you expected. Multival values used for motion strength are frequently outside the standard 0β1 range masks normally live in, since strength dials in this pack often go well past 1. If your source Multival was built with values outside 0β1, expect the resulting mask to carry that same range rather than something automatically normalized back down.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| multival | MULTIVAL | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MASK | MASK | β |