Animated Masks, Blinking Eyes, and the Beautiful Mess of Trial and Error

What You'll Learn
iterative refinement
craft mastery
creative problem-solving
tool selection
showing your work
persistence

Animations with IPAdapter and ComfyUI

These models have personalities. Feed them the wrong mask, the wrong weight, the wrong checkpoint... and they'll let you know. But hand them the right sequence? BAM, a cat becomes a dog, a logo unfolds like a sticker peeling off reality, and a character blinks on command. Matteo just showed us how.

Matteo is the developer behind the IPAdapter extension for ComfyUI... and this video is a masterclass in iterative creation. Not the polished "here's my perfect result" kind. The real kind. The kind where you build something, watch it fail, swap a model, tweak a weight, and try again.

That's the part most tutorials skip. Matteo doesn't.

Animated Masks: Teaching Concepts to Dance

The foundation here is deceptively simple. IPAdapter already supports attention masking... you feed it masks to control where a reference image influences the generation. Static masks, static results.

But what if the masks move?

Matteo loads a 16-frame sequence... a transition sliding from black to white. Black means "hidden." White means "show me." Feed that sliding mask into one IPAdapter node (the dog), invert it for the other (the cat), and suddenly you have a temporal transition baked into the generation itself.

Except it didn't work the first time. Or the second.

The IPAdapter Plus model was too strong... overwhelming the transition with blended features instead of letting the morph breathe. Switching to the standard SD 1.5 model did the trick. Sometimes less force creates more movement. There's a lesson in that beyond AI.

And here's something worth noting about these masks... they respond to shades of grey. Not just binary on/off. A gradient mask creates a gradient transition. Fade-outs become possible. Spatial blending gets smooth and organic. The system is more nuanced than it first appears.

Logo Animations: When IPAdapter Needs a Partner

This is where things get genuinely impressive... and genuinely humbling.

Matteo wanted to create a logo animation. Take the Latent Vision logo, morph it into an AI-generated eye, make it look cinematic. The IPAdapter alone couldn't hold the logo's structure. It captured the vibe but lost the precision. Logos demand exactness. Stable Diffusion doesn't naturally think in clean lines and brand guidelines.

The solution? Tile ControlNet.

By layering a ControlNet on top of the IPAdapter, Matteo gave the system two instructions simultaneously: "Feel like this reference" (IPAdapter) and "Hold this structure" (ControlNet). The ControlNet was masked to only influence the logo portion, leaving the eye free to generate with more creative latitude.

Then he added a Scaled Soft ControlNet Weights node with a base multiplier of 0.9... and the result clicked. The eye unfolded "like a sticker." His words.

The checkpoint mattered enormously. Deliberate V3 outperformed other options for logo work. V4 didn't cut it. AnimateDiff model selection mattered too. This is the unsexy truth of generative AI work... your creative vision lives or dies by infrastructure choices that feel more like plumbing than art.

Batching Reference Images: Frame-Level Character Control

This third technique is the one that made me sit up.

Forget animating the masks. What if you animate the reference images instead?

Matteo wanted a character to blink. Simple human action. Tedious to achieve in AnimateDiff. His approach: create a batch of 16 reference images. Six frames of eyes open. Two frames of eyes closed. Repeat. Feed that entire batch into the IPAdapter with the "unfold batch" option enabled.

The result? She blinks. On cue. Every generation.

This isn't luck. It's frame-level control over character behavior through reference sequencing. The implications stretch far beyond blinking... any cyclical action, any pose change, any expression shift could theoretically be choreographed this way.

The "unfold batch" feature deserves attention on its own. When enabled, each reference image in a batch maps to its corresponding frame in the generation. When disabled, all references blend together. That toggle is the difference between "everything at once" and "each thing in its time."

The Real Lesson: Show the Messy Middle

Matteo said something that stuck with me: "I wanted to show you the whole process with a couple of tries because this is not a simple process; it involves a lot of trial and error."

That's the whole thing right there.

Every powerful AI workflow is born from dozens of failed generations. Wrong models. Wrong weights. Wrong seeds. The people creating stunning AI animations aren't luckier than you... they're more persistent. They swap the IPAdapter Plus for the standard. They add a ControlNet when the shape falls apart. They adjust the base multiplier by 0.1 and suddenly magic happens.

The gap between "this is broken" and "this is beautiful" is often one variable.

Technical Takeaways Worth Bookmarking

- Mask frame count doesn't need to match animation length. IPAdapter handles the mismatch by repeating the final mask frame. Smart fallback. - Grayscale masks create gradient transitions. Not just hard cuts... real blending. - IPAdapter Plus is sometimes too much. Standard models give transitions room to breathe. - Tile ControlNet preserves structural details that IPAdapter alone cannot maintain. - Checkpoint selection matters more than you think. Deliberate V3 for logos. Test others for different content. - 16-frame animations interpolated to 32 with RIFE often look better than native 32-frame generations with context windows.

Matteo built something powerful here... not just the techniques, but the transparency. He showed the failures alongside the wins. That's rare. If you're working in ComfyUI and AnimateDiff, these three approaches (animated masks, ControlNet-assisted logo transitions, and reference image batching) open doors that were closed last month. The tools evolve fast. The fundamentals don't. Experiment. Fail. Swap one variable. Try again. That's the workflow behind every workflow. ✨

--- Source: https://www.youtube.com/watch?v=ddYbhv3WgWw

From TIG's Notebook

Thoughts that surfaced while watching this.

Schedule love. Because when someone needs you, it's never convenient.
— TIG's Notebook — Core Principles
**Time × Focus = Attention**
— TIG's Notebook — Core Principles
A birth defect, abuse, predatory attacks... these are things that we may have no or little control over them happening to us, however, it's not the "happening" we are fully owning, it's the raw data of what I am that I must fully own and be responsible for.
— TIG's Notebook — On Self & Identity

Echoes

Wisdom from across the constellation that resonates with this article.

Evaluate whether any current team member is creating cognitive load that's pushing your best people toward the exit
— Naval Ravikant | Founders Cannot Outsource Recruiting community
A journey of a thousand miles begins with a single step, Padawan.
— Tim Miller | VFX Artists React to Bad & Great CGi 91 (ft. Tim Miller) expert
Revisit an old project or skill with fresh eyes and accumulated experience
— Jon Laymon Studios | Full Alien Video Out Now!!! #xenomorph #sculpting #diy #artist #alien community