Nodes/videoclipgenerator/After Effects Wiggle
ComfyUI Node

After Effects Wiggle

A ComfyUI node in animation/transform with 39 inputs and 2 outputs.

By lazniak·Created 2 years ago·Updated 10 months ago· 8
After Effects Wiggle
  • image
  • mask
  • reference_frame
  • IMAGE
  • MASK
preserve_sizetrue
frame_width1280
frame_height720
fps25.0
speed1.0
time_offset0.0
enable_positiontrue
position_modeindependent
position_frequency0.20
position_magnitude15.0
position_temporal_phase0.0
position_spatial_phase90.0
enable_scaletrue
scale_modelinked
scale_frequency0.15
scale_magnitude2.0
scale_temporal_phase45.0
scale_spatial_phase0.0
enable_rotationtrue
rotation_frequency0.10
rotation_magnitude2.0
rotation_temporal_phase30.0
rotation_spatial_phase60.0
time_remap_curvesmooth
motion_blur0.30
motion_tilemirror
motion_tile_auto_margintrue
motion_tile_margin50
noise_typeperlin
noise_octaves6
noise_persistence0.60
noise_lacunarity1.50
interpolationbicubic
seed0
buy_me_a_coffeefalse
usage_counterUsage count: 0
Categoryanimation/transform

Inputs (39)

NameTypeDefaultDescription
imageIMAGE
preserve_sizeBOOLEANtrueWhen enabled, output will maintain the same size as input image. When disabled, custom width and height settings will be used. Keeping original size (enabled) is recommended for best quality and performance
frame_widthINT12808–8192The width of the output frames in pixels. Higher values mean larger image width but require more processing power. Common values: 1280 (HD), 1920 (Full HD), 3840 (4K)
frame_heightINT7208–8192The height of the output frames in pixels. Higher values mean larger image height but require more processing power. Common values: 720 (HD), 1080 (Full HD), 2160 (4K)
fpsFLOAT25.00.25–1000Frames Per Second - determines how many frames are generated per second of animation. Common values: 24 (film), 25 (PAL), 30 (NTSC), 60 (smooth motion). Higher FPS means smoother animation but more frames to process
speedFLOAT1.00.1–10Controls how fast the wiggle animation plays. Think of it like a speed multiplier: 1.0 is normal speed, 2.0 makes everything move twice as fast, 0.5 makes everything move at half speed. This affects all aspects of motion - position, rotation, and scaling. Useful for fine-tuning the feel of your animation without changing other parameters
time_offsetFLOAT0.00–3600Shifts the starting point of the animation in time (measured in seconds). This is like choosing where in the wiggle pattern you want to begin. Useful for: 1) Creating seamless loops by finding the right offset, 2) Synchronizing multiple wiggle effects by offsetting their start times, 3) Finding the perfect part of the motion pattern for your animation
enable_positionBOOLEANtrueTurns position animation on or off. When enabled, the image will move around its center point based on the position settings below. When disabled, the image stays centered with only scale and rotation effects (if enabled)
position_modeCOMBOindependentControls how the horizontal (X) and vertical (Y) movements relate to each other. In 'independent' mode, X and Y move separately, creating more random-looking motion (like a leaf in the wind). In 'linked' mode, X and Y are connected to create circular or elliptical paths (like a planet's orbit). Independent is great for organic motion, while linked is better for mechanical or planned movements
position_frequencyFLOAT0.200–100How rapidly the position changes occur. Think of it like adjusting the 'nervousness' of the movement. Low values (0.1-0.5) create slow, smooth drifting motions perfect for subtle effects like floating or swaying. Higher values (1.0+) create rapid, jittery movements good for bouncing or vibrating effects. The magic usually happens between 0.1 and 1.0 for natural-looking motion
position_magnitudeFLOAT15.00–1000Controls how far the image moves from its center point, measured in pixels. Think of it as the 'intensity' of movement. At 15 pixels, you get subtle movement good for gentle floating effects. At 50-100 pixels, you get more dramatic swaying or bouncing. Higher values create wild, sweeping motions. The actual movement will be up to this amount in any direction. Remember: this interacts with motion blur - bigger movements create more blur!
position_temporal_phaseFLOAT0.00–360Shifts the timing of position changes, measured in degrees (0-360). This is like choosing which point in the wiggle cycle to start from. Very useful when you have multiple elements - giving each a different phase (like 0, 120, and 240) creates a pleasing cascade effect. Also great for fine-tuning when exactly movement peaks occur in your animation. Think of it as the 'timing offset' of the movement pattern
position_spatial_phaseFLOAT90.00–360Controls the spatial pattern of movement, measured in degrees (0-360). While temporal phase shifts timing, spatial phase shifts the actual movement pattern. A 90-degree difference between X and Y creates circular motions (when linked). Different values create different elliptical or figure-eight patterns. Great for creating complex, natural-looking movements or precise mechanical patterns
enable_scaleBOOLEANtrueTurns scaling animation on or off. When enabled, the image will grow and shrink based on the scale settings below. This can create breathing, pulsing, or throbbing effects. Can be combined with position and rotation for more complex animations. When disabled, the image maintains its original size while other effects continue to work
scale_modeCOMBOlinkedDetermines how horizontal and vertical scaling relate to each other. 'Linked' mode scales both dimensions together, preserving aspect ratio - great for pulsing or breathing effects. 'Independent' mode allows separate X/Y scaling for squash-and-stretch effects. 'None' is the same as disabling scale completely. Use 'linked' for natural growth/shrink, 'independent' for more dynamic or cartoony effects
scale_frequencyFLOAT0.150–100How rapidly scaling changes occur. Lower values (0.1-0.3) create slow, breathing-like effects. Higher values create rapid pulsing or vibrating. Very high values might look jittery unless combined with motion blur. The default 0.15 is good for subtle, organic scaling. Consider your animation's mood - slow for calm, faster for energy or tension
scale_magnitudeFLOAT2.00–100The maximum amount of scaling, in percentage points. A value of 2.0 means the image will scale between 98% and 102% of its original size. Small values (1-5) create subtle breathing effects. Larger values (10-20) create more dramatic pulsing. Very large values can create explosive growth and shrinking. Remember: this is a percentage, so 100 means scaling from 0% to 200% - use with caution!
scale_temporal_phaseFLOAT45.00–360Controls when scaling changes occur in the animation cycle (0-360 degrees). Like position_temporal_phase, but for scaling. Use different values for position and scale phase to create complex animations where movement and scaling aren't synchronized. For example, setting this 90 degrees apart from position creates a flow where maximum size occurs a quarter-cycle after maximum movement
scale_spatial_phaseFLOAT0.00–360Affects the relationship between horizontal and vertical scaling patterns when in 'independent' mode. Different values create different patterns of stretching and squashing. 90 degrees creates alternating stretch/squash. 180 degrees makes them oppose each other. Experiment with this when creating squash-and-stretch effects for character animation or bouncing effects
enable_rotationBOOLEANtrueTurns rotational animation on or off. When enabled, the image will rock back and forth or spin based on rotation settings below. Rotation happens around the image center. Combine with position and scale for effects like floating debris, drifting leaves, or wobbling characters. When disabled, the image maintains its original orientation
rotation_frequencyFLOAT0.100–100Controls how rapidly rotation changes occur. Low values (0.1-0.5) create gentle rocking or swaying. Higher values create faster spinning or shaking. The default 0.1 is good for subtle movement like paper floating or leaves swaying. Higher values (1.0+) work better for mechanical movement or intense effects. Consider using motion blur with faster rotations to smooth the movement
rotation_magnitudeFLOAT2.00–360The maximum rotation angle in degrees. At 2.0, the image rocks ±2 degrees - subtle but noticeable. Values around 5-15 degrees create obvious swaying. 30-90 degrees create dramatic rocking or partial spins. 360 allows complete rotation. Small values (1-5) work well for organic movement, larger values for more dramatic effects. Remember that faster rotation at larger angles needs more motion blur to look smooth
rotation_temporal_phaseFLOAT30.00–360Sets when rotation peaks occur in the animation cycle (0-360 degrees). Like other temporal phases, this helps coordinate rotation with other movements. Try setting this 120 degrees apart from position and scale for complex, organic movement where each aspect peaks at different times. Great for creating flowing, natural-looking animation or controlling precise mechanical timing
rotation_spatial_phaseFLOAT60.00–360Influences the rotational movement pattern. While less intuitive than other spatial phases, this can create interesting variations in how rotation combines with other movements. Different values create different relationships between rotation and position/scale changes. Experiment with this when fine-tuning complex animations
time_remap_curveCOMBOsmoothControls how movement transitions happen. 'Linear' moves at constant speed - mechanical but predictable. 'Ease' starts slow, speeds up in the middle, then slows down - good for natural movement. 'Ease-in' starts slow and speeds up - like falling. 'Ease-out' starts fast and slows down - like throwing upward. 'Smooth' is extra gentle with strongest smoothing - best for flowing, peaceful movements. Each option drastically changes the feel of your animation
motion_blurFLOAT0.300–1Adds motion blur based on movement speed and direction - just like a camera capturing fast motion. At 0, movements are crisp but can look choppy. Values around 0.3-0.5 give natural-looking blur. Higher values create more dramatic streaking effects. The blur automatically adapts to movement speed - faster movement creates stronger blur. Great for smoothing fast movements or creating artistic streaking effects
motion_tileCOMBOmirrorControls what happens at the edges of your frame during movement. 'Disabled' shows empty space/transparency when movement reveals edges. 'Mirror' creates reflected copies at edges - great for seamless motion, prevents empty gaps. 'Repeat' tiles the image at edges like a pattern. 'Mirror' is usually best for natural footage, while 'repeat' can work well for patterns or textures. Important when your movement range is large enough to show edges
motion_tile_auto_marginBOOLEANtrueWhen enabled, automatically calculates how much extra space is needed around edges based on your movement settings. This ensures no empty spaces appear during motion. When disabled, you can manually set the margin size. Auto mode is usually best unless you need precise control over edge handling. The auto calculation considers position, scale, and rotation ranges to determine optimal margins
motion_tile_marginFLOAT500–200Sets the size of edge margins in pixels when auto margin is disabled. This is how much extra space to add around your image for movement. Larger values prevent edge gaps but use more memory. As a rule of thumb, should be at least as large as your maximum movement range (position_magnitude). Too small margins may show edges, too large wastes processing power. Only used when motion_tile_auto_margin is false
noise_typeCOMBOperlinSelects the algorithm that generates the wiggle pattern. 'Perlin' is smooth and natural, great for organic movement like leaves or floating. 'Simplex' is similar but more efficient, good for complex animations. 'Value' creates sharper, more defined changes - good for mechanical or glitch effects. 'Cellular' produces organic, tissue-like patterns great for biological or abstract effects. Perlin is the safest choice for most animations, experiment with others for unique effects
noise_octavesINT61–8Controls how many layers of detail are in the wiggle pattern. Each octave adds a finer layer of movement. 1 octave = simple, smooth movement. 4-6 octaves = natural, complex movement with several scales of detail. 8 octaves = very detailed movement but slower to calculate. More octaves create more natural, fractal-like motion but require more processing power. Think of it like adding harmonics to a musical note
noise_persistenceFLOAT0.600–1Determines how much each finer detail layer contributes to the movement. Low values (0.2-0.4) create movement dominated by broad, sweeping motions with subtle detail. Higher values (0.6-0.8) make finer details more noticeable, creating more nervous or jittery motion. At 1.0, all detail layers have equal strength. This is like adjusting the mix between broad and fine movement patterns
noise_lacunarityFLOAT1.501–4Controls how much finer each detail layer becomes. At 1.0, each layer has similar scale. Higher values (2.0+) make each layer much finer than the last, creating more distinction between broad and fine movements. Lower values keep the detail scales more similar. Typically, values between 1.5 and 2.0 give the most natural results. Think of it as adjusting the contrast between different scales of movement
interpolationCOMBObicubicDetermines how pixels are calculated when the image transforms. 'Bicubic' gives the smoothest, highest quality results but is slowest. 'Bilinear' is a good balance of quality and speed. 'Nearest' gives sharp, pixelated edges - usually only used for pixel art or special effects. For most footage, stick with bicubic. Use bilinear if you need more speed, or nearest for deliberately pixelated looks
seedINT00–4294967295Sets the random seed for generating the wiggle pattern. The same seed always creates the same movement pattern (when other settings are unchanged). This lets you precisely recreate animations or synchronize multiple elements. Change the seed to get completely different movement patterns while keeping all other settings the same. Useful for trying different movements or creating variety among multiple animated elements
buy_me_a_coffeeBOOLEANfalseA little checkbox that means a lot! Enable this to support the development of this node and future improvements. Every coffee helps fuel new features and optimizations. Think of it as buying the developer a coffee to say thanks! ☕
usage_counterSTRINGUsage count: 0Tracks how many times this node has been used across all your projects
maskoptMASKOptional mask to control where the wiggle effect appears. White areas in the mask get full effect, black areas stay still, gray areas get partial effect. Perfect for making only parts of your image wiggle while keeping other parts stable. Great for combining with animated masks for complex effects
reference_frameoptIMAGEOptional reference frame for advanced motion calculations. This is a placeholder for future features that will enable more complex motion analysis and matching. Currently not actively used but included for future compatibility

Outputs (2)

NameTypeDescription
IMAGEIMAGE
MASKMASK