Prompting10 min read

Image-to-Video That Actually Moves (Not Just "Wiggles"): A 9-Step Troubleshooting Checklist for Veo3Gen

Fix “image to video not moving” with a 9-step troubleshooting checklist, a worked prompt rewrite, and a fast 3-run iteration loop for Veo3Gen.

On this page

TL;DR

If your image-to-video clip “wiggles” instead of moving, your prompt is describing what exists (a still scene) rather than what changes (a readable state transition). Fix it by choosing one primary motion type (subject or camera or environment), writing start → action → end state → hold, then iterating with a 3-run micro-test where you change only one line at a time.

Key takeaways

  • “Wiggle motion” usually means no explicit state change, so the model fills time with micro-jitter.
  • Pick one primary motion type (subject vs camera vs environment). Mixing multiple big motions often produces unreadable jitter.
  • Replace adjective stacks with change statements: from X → to Y, with a clear end state.
  • Give the camera a job that creates parallax (dolly/orbit/slider) instead of asking for handheld shake.
  • Iterate fast: run three generations changing only the action line, then only the camera line, then only the environment line.

What “wiggle motion” is (and why it happens)

“Wiggle” is the output where nothing decisive occurs: tiny head jitters, shimmering textures, breathing frames—yet the viewer can’t describe a single clear action.

Most “wiggle” prompts read like a caption: subject + setting + mood. That’s necessary, but it’s not enough. A strong image-to-video prompt must be clear about the subject, what they are doing, the setting, and the overall mood (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results). If the “what they are doing” is missing, vague, or contradictory, the model has to invent motion—and it often chooses low-commitment micro-movement.

There’s a second trap: creators try to “fix” wiggle by adding more text. But too few details can force guessing, and too many details can confuse the model (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results). The goal isn’t more detail—it’s the right detail: a single, storyboardable change.

Step 1: Diagnose your intent (subject vs camera vs environment motion)

Decide your primary motion type before you touch the prompt.

1) Subject motion

The subject changes pose/position/interacts with an object.

  • Examples: lift, pour, open, sit, turn, place
  • Best for: demos, character beats, explainers

2) Camera motion

The subject stays mostly stable; the camera changes viewpoint to create parallax.

  • Examples: slow dolly-in, slider, gentle orbit
  • Best for: portraits, interiors/exteriors, cinematic reveals

3) Environment motion

The world moves while the subject holds.

  • Examples: steam rises, rain intensifies, neon flickers
  • Best for: b-roll, establishing shots, mood pieces

Why mixing them often causes jitter

When you ask for big subject motion + big camera move + big environmental change, you’ve given the model competing motion plans. A common failure mode is not “more motion”—it’s “micro-motion everywhere.” Aim for one primary and at most one subtle secondary.

Step 2: Fix the source image (composition choices that kill motion)

Image-to-video is constrained by the reference frame. Some images make motion hard to commit to.

Use images with room to move

  • Avoid tight crops on hands/joints if you want gestures.
  • Prefer clean silhouettes (busy edges invite crawling textures).
  • Leave negative space in the motion direction (space above a mug if it will be lifted).

Ensure physics matches the starting state

If the image shows the mug already at the lips and you prompt “she lifts the mug,” the model must reconcile conflicting states—often by oscillating between them.

Step 3: Replace “describe the scene” with “describe what changes”

A practical prompt structure is:

Subject + Action + Context/Environment + Cinematography/Camera (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results)

Most “wiggle” prompts over-invest in Subject/Context and under-specify Action.

The change-statement pattern (copy/paste)

Make your Action line a start → transition → end state.

  • “She lifts the mug from the table to her lips, takes one sip, then places it back on the saucer and holds.”
  • “He turns his head from facing camera to looking out the window, then holds still.”
  • “The door swings from closed to halfway open, revealing hallway light, then stops.”

End states matter because they tell the model when to stop “searching” for motion.

Don’t do caption-style prompts

This is exactly how you get shimmer:

  • “A beautiful cinematic portrait, ultra-detailed, dramatic, moody…”

If there’s no required change, the model can keep everything nearly static and still “fill” the clip.

Step 4: Use motion verbs you can storyboard in three frames

If you can’t sketch start / middle / end, your action is probably too vague.

High-commitment verbs (better)

lift, lower, open, close, pour, turn, step, sit, stand, place, push, pull, rotate

Low-commitment verbs (often wiggle)

“subtly move,” “gently animate,” “drift,” “vibe,” “float”

Step 5: Give the camera a job (parallax without chaos)

A reliable way to make an image feel alive is controlled camera motion that creates parallax.

Visla recommends writing prompts like you’re briefing a camera team: describe the scene, camera position/movement, beats in order, lighting/color, and even an audio note or line of dialogue (https://www.visla.us/blog/guides/how-to-prompt-sora-2/). That mindset transfers well to image-to-video.

Camera lines you can paste in

  • “Slow dolly-in toward the subject, steady stabilized movement.”
  • “Gentle left-to-right slider move, shallow parallax in the background.”
  • “Orbit around the subject by about 10 degrees, smooth gimbal-like motion.”
  • “Locked tripod shot (no camera movement).”

Avoid “handheld” if you’re fighting wiggle

“Handheld, shaky” often produces the symptom you’re trying to remove.

CTA (mid-article): If you want to test these camera/action variants quickly, Veo3Gen gives you access to Google’s Veo 3.1 models with three modes—Veo 3.1 Fast (quick default), Veo 3.1 Quality (max fidelity), and Veo 3.1 Lite (cheapest preview)—so you can iterate without changing tools.

Step 6: Constrain the shot (one subject, one primary motion, one beat)

When you want predictable motion, reduce degrees of freedom.

The constraint triad

  • One subject (unless interaction is the point).
  • One primary motion (subject or camera or environment).
  • One beat (one action, then a hold).

This is the fastest way out of “wiggle-land.”

Step 7: Lock what must not change (without overstuffing)

When outputs wiggle, creators often add huge constraint lists. That can backfire: too many details can confuse the model (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results).

Minimal lock language that actually helps

  • “Keep the subject’s face consistent.”
  • “Wardrobe unchanged.”
  • “Background stays the same; no new objects appear.”
  • “No background warping.”

Avoid long adjective chains and “do-everything” action lists.

Step 8: If the wrong thing moves, re-assign motion to the target region

A common miss: you ask for “lift the mug” and the background ripples.

Use explicit motion allocation

  • “Primary motion: right hand and mug. Everything else remains still.”
  • “Motion is localized to the forearm and mug; face and torso hold steady.”
  • “Shoulders stay square to camera while the forearm lifts.”

This gives the model a clearer motion budget.

Step 9: Fast iteration loop (3 micro-tests to find the motion key)

Even with the same prompt, you shouldn’t expect the exact same result every time (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results). So you need a loop that isolates variables.

The 3-run micro-test

Keep the image and everything else identical.

  1. Action test: change only the Action line (swap verb/end state).
  2. Camera test: keep best Action; change only the Camera line.
  3. Environment test: keep best Action+Camera; change only one subtle environment motion.

Pick the run with the clearest, most readable motion—then combine the winning lines.

If you want to run this as a repeatable workflow, Veo3Gen also has a developer API so you can generate videos programmatically and structure these micro-tests consistently.

Common failure cases (one-line fixes)

Symptom Likely cause One-line prompt fix
“It only wiggles” No explicit state change “From [start state] to [end state], then hold.”
Background ripples, subject stays still Motion not localized “Primary motion: [limb/object]. Background remains static.”
Random micro-shake You implied handheld/chaos “Stabilized, smooth gimbal-like camera; no shake.”
Motion starts then melts Too many competing actions “One action only: [single verb phrase], then stop.”
Identity drifts No anchors + overly busy prompt “Keep face consistent; wardrobe unchanged; no new objects.”
Camera move breaks subject Move too aggressive/undefined “Orbit ~10 degrees, slow; keep subject centered.”

A worked example: turning a “wiggle” prompt into real motion

Below is a concrete before/after you can reuse.

Before (caption-style = likely wiggle)

“A photorealistic woman in a cozy cafe, warm cinematic lighting, shallow depth of field, bokeh, detailed face, aesthetic mood.”

Problem: It describes what exists, not what changes.

After (motion-first, one clear beat)

Use the Subject/Action/Environment/Camera structure (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results) and the “camera team brief” mindset (https://www.visla.us/blog/guides/how-to-prompt-sora-2/).

Subject: Woman sitting at a cafe table.

Action (change statement): She lifts the ceramic mug from the table to her lips, takes one sip, then places it back on the saucer and holds still.

Environment: Steam rises gently from the mug; background patrons remain mostly still.

Camera: Slow dolly-in toward her face, steady stabilized movement; keep her centered.

Locks: Keep face consistent; wardrobe unchanged; no background warping; no new objects.

Why this works

  • There is a start and an end state (mug returns; she holds).
  • Motion is allocated (mug/hand are the “job”).
  • Camera motion is controlled (parallax without shake).

A reusable “Make It Move” template (fill-in-the-blanks)

Paste this, then fill only what’s needed.

Template:

Subject: [who/what]. Setting: [where]. Starting state: [pose/object positions]. Action: [single action with start → end], then hold. Camera: [one stabilized move OR locked tripod]. Environment reaction: [one subtle motion]. Locks: keep [identity/wardrobe/background] consistent; no new objects.

Single-line version:

[subject + starting state] + [action with end state + hold] + [camera move] + [one environment motion] + [locks]

Checklist

  • Choose one primary motion type: subject or camera or environment.
  • Make the reference image match the starting state you describe.
  • Write the action as start → transition → end, then hold.
  • Use high-commitment verbs (open/pour/turn/place), not “subtle shift.”
  • Add a camera move that creates parallax, or explicitly lock tripod.
  • Localize motion to the correct region; lock what must not change.
  • Remove extra beats until there’s only one decisive action.
  • Run the 3-run micro-test (action, camera, environment) and keep the winner.

FAQ

How do I fix image to video not moving at all?

Write one decisive action with an end state: “The door goes from closed to halfway open, then stops and holds.” Avoid adding multiple actions.

Why does my image-to-video result only “wiggle” even with a long prompt?

Long prompts often stack description instead of specifying change. Also, too many details can confuse the model (https://www.eachlabs.ai/blog/image-to-video-prompt-guide-best-practices-for-realistic-results). Cut down to one beat with a start/end state.

Should I set duration/orientation in the prompt text?

Prefer setting those in tool settings rather than prose when the platform supports it; Visla recommends setting duration and orientation in settings rather than in the prompt text (https://www.visla.us/blog/guides/how-to-prompt-sora-2/).

How do I stop the background from warping while the subject moves?

Re-assign motion: “Primary motion: right hand and mug. Background remains static. No background warping.” Add an anchor like “torso stays still.”

How many actions should I put in an image-to-video prompt?

One primary action per shot. If you need multiple beats, generate separate clips and cut them; simultaneous actions commonly degrade into jitter.

Put it into production with Veo3Gen

Once your prompts reliably produce readable motion, the next bottleneck is throughput: generating variations (different actions, camera moves, or hooks) without rebuilding your workflow each time.

Veo3Gen is an affordable way to access Google’s Veo 3.1 video models without Google’s enterprise pricing. It supports text-to-video and image-to-video, includes native synchronized audio (dialogue, SFX, music) in a single pass, and offers first-and-last-frame control on Veo 3.1. You can generate in 720p, 1080p, and 4K (4K on Veo 3.1 Fast/Quality), with 16:9 and 9:16 aspect ratios. Pricing is pay-as-you-go credits plus optional monthly plans, and purchased credits do not expire; new users also get free credits to start.

If you want to turn the 3-run micro-test into a repeatable workflow, try Veo3Gen with your next three prompt variants—then keep the single clearest motion and scale from there using the API.

Start creating with Veo3Gen

Veo3Gen gives you affordable Veo 3.1 video generation with native audio, up to 4K, and credits that never expire — with free credits to start.

Sources

Limited Time Offer

Try Veo 3 & Veo 3 API for Free

Experience cinematic AI video generation at the industry's lowest price point. No credit card required to start.