Photo animator

Add a picture and it gets a gentle, looping 3D camera move, like a living photo. Nothing is generated: a small depth model works out what is near and far, and your own pixels are shifted to match.

🖼️ Drop a picture here, paste one, or click to choose

How to animate a picture

  1. Add a picture. Drop one anywhere on the page, paste it, or click the box. The first time, a small depth model (about 27 MB) downloads, and your browser keeps it for next time.
  2. Watch it move. The picture starts looping as soon as the depth is ready, which took roughly four to eight seconds on our test computer. Phones and older computers are slower.
  3. Choose how it moves. Pick a motion, set the strength, and choose how long one loop lasts.
  4. Check the depth view if something looks off. Tick Show depth map to see what the model thinks is near (bright) and far (dark).
  5. Download the loop. The page records one full loop as a short video.

The five motions

MotionWhat the camera doesGood for
Float (the default)A slow figure-eight driftMost pictures. It reads as a living photo and never feels like a mechanical pan.
SwaySide to sideLandscapes and scenes with layers at different distances.
OrbitA circle around the pictureA single clear subject in front of a background.
Push inA slow zoom in and back out, with a little sideways driftPortraits and pictures with a point of focus.
TiltUp and downTall scenes such as buildings and trees.

Every motion is built to repeat exactly, so the end of a loop joins the start without a jump.

Strength and length

  • Strength runs from 1 to 100 and starts at 35. At 35, the parts of the picture nearest the camera move by roughly 2% of the picture width at most, which is deliberately subtle. Distant parts move less.
  • Loop lasts 2, 3, 4 or 6 seconds. A longer loop moves more slowly.

If you are unsure, leave both alone. Raising the strength shows more depth, and also shows the weaknesses of the method, as the next sections explain.

The optional motion box

You can type a few words under Describe the motion, for example slow zoom, gentle sway or strong orbit, and press Apply. This is plain word matching, not an AI that understands descriptions. It looks for a fixed list of words such as zoom, sway, orbit, tilt, float, slow, fast, subtle and strong, picks the matching motion, strength and length, and a line under the box lists what it understood. Anything it does not recognize is ignored.

How it works

The page runs the Depth Anything V2 Small model (24.8 million parameters, Apache-2.0 license, an 8-bit version of about 27 MB, from the onnx-community/depth-anything-v2-small repository) with ONNX Runtime in your browser. It gives every pixel a relative distance. The page sharpens the edges of that depth map using your picture as a guide, so that the outline of a person or an object stays crisp. Then a shader treats the picture as a shallow relief and moves a virtual camera a little around it, so near parts shift more than far parts. The difference in movement is what your eye reads as depth.

No new picture content is created. Every pixel on screen comes from your picture and is only moved. No people, objects or details are added.

What to expect, honestly

  • Keep the motion small. A camera move reveals parts of the scene that the photo never showed, and those gaps get stretched. In our tests, strong motion showed stretched edges around foreground objects. Small moves hide this, which is why the defaults are gentle.
  • Photos work best, especially ones with a clear foreground and background. The depth model was trained mostly on photographs. On the anime and illustration pictures we tried, the depth map was usable, but flat areas of color give the model little to go on, so check the depth view.
  • Thin, shiny or see-through things are hard for any depth model: wires, hair strands, glass, water and mirrors can come out with the wrong depth and wobble.
  • Only the camera moves. Hair does not sway and water does not ripple. Think of a gentle 3D photo, not a video of the scene.
  • Large pictures are scaled down to at most 1024 pixels on the longest side, both on screen and in the saved video.

The video you download

  • The page records the animation as it plays, at 30 frames per second, so Download loop takes as long as one loop (2 to 6 seconds) while it shows Recording one loop….
  • The file is an MP4 where your browser can make one, and a WebM otherwise. It is saved as animated-picture.mp4 or animated-picture.webm. Browsers differ in what they can record, so if a file will not play in an app or on a site, try another browser or convert it.
  • There is no sound, and the tool does not make GIF files.
  • Camera details and location from your photo are not in the video, because the frames are drawn fresh. See our EXIF guide.

Ideas for using it

  • A looping photo for a social post or a story, where a still picture gets less attention than something that moves.
  • A subtle moving wallpaper or banner made from your own artwork or photograph.
  • A portfolio or product picture that shows depth without a video shoot.
  • A quick test of how a picture's layers separate, using the depth view.

Privacy

The depth model runs inside this tab, and your original file on disk is never changed or deleted. The page downloads the model from Hugging Face the first time you use it. For what the site collects, see our privacy policy, and for how processing in the browser works, see our guide to in-browser processing.

Frequently asked questions

Does this use generative AI to make new frames?

No. A small model estimates depth, which is a measurement of your own picture. The animation is made by moving the pixels you gave it. Nothing is invented, so no new people, objects or details appear.

Why does the first run take longer?

The depth model (about 27 MB) downloads once and is saved in your browser, then the page runs it. Later pictures skip the download and only need the few seconds the model takes to look at the picture.

What file do I get?

One loop recorded from the page, as MP4 where your browser can make it and WebM otherwise, at up to 1024 pixels on the long side and 30 frames per second. It has no sound.

Why do the edges look stretched?

Moving the camera reveals areas the photo never captured, and the page fills them by stretching the pixels beside them. Lower the Strength slider, choose Float or Push in, and the stretching mostly disappears.

Can I animate a drawing or anime picture?

You can try. In our tests the depth maps for anime pictures were usable, but flat color gives the model less to work with, so check Show depth map and keep the strength low.

Will it work on my phone?

The page opens on phones, but the depth model runs on the phone itself, so it takes longer than on a computer, and recording the video depends on what your phone browser supports.