The technique nobody mentions
You can move a camera through a photograph without generating any video.
Estimate a depth map for the image, project the pixels onto that depth as a surface, then move a virtual camera. Near things shift more than far things, which is parallax, and parallax is most of what reads as a camera move.
This has been standard in documentary and motion graphics for years. It is not a compromise or a poor substitute. For a large class of shots it is strictly better than generation, because:
- The subject cannot change. It is the original pixels. A face stays exactly that face, a logo stays exactly that logo, a product stays exactly that product. No drift, no morph, no re-sampling.
- It costs nothing. No per-second meter.
- It is deterministic. Same input, same output, every time.
- It works on archival material. A photograph from 1950 cannot be re-shot and should not be re-generated. It can be moved through.
How to get the depth map
Monocular depth estimation (guessing depth from a single image) got very good very quickly. The models to know:
- Depth Anything (v2 and later) is the current practical default: fast, free, strong on ordinary photographs.
- MiDaS is older, still fine, and runs on almost anything.
- Marigold is slower and more precise on fine structure.
All are available as Hugging Face Spaces: upload an image in a browser, download a depth map, no install, works on a phone. They are also ComfyUI nodes if you run things locally.
What comes back is a greyscale image: bright is near, dark is far, or the reverse depending on convention. Check which.
Building the move
Three routes, all free.
Blender. Import the image as a plane, subdivide it heavily, apply the depth map as a displacement, and animate a camera. Full 3D control, the best-looking result, and the steepest learning curve. Blender is free and open and runs on modest hardware for this kind of work.
A node compositor. DaVinci Resolve’s Fusion page, free tier, has 3D nodes: an image plane, a camera, and a displacement driven by the depth map. If you already have Resolve for editing, this costs no new software.
Layered cards, the crude version. Cut the image into three or four depth layers by hand in Photopea or GIMP (foreground, subject, mid, background) paint in what is behind each layer, then animate them at different speeds in any editor that allows keyframed position and scale. Kdenlive and Shotcut do this. It is how the effect was done before depth models existed and it still works.
Where it breaks, and why
One honest limitation and it is fundamental.
When the camera moves, previously hidden areas come into view: disocclusion. Behind a person’s shoulder there is nothing, because the photograph never recorded it. The projection stretches the nearest pixels across the gap, which produces a smeared, rubbery edge around foreground objects.
This sets the technique’s range: small moves look perfect, large moves fall apart. As a rough guide, a push-in of ten to twenty per cent or a lateral drift of a few per cent of frame width is invisible. Beyond that the stretching shows.
Two mitigations. Paint behind the foreground object in the editor before projecting, so the gap has content to reveal: this is exactly what the layered-cards method does and why it looks better than a naive depth projection. Or use an inpainting pass to fill the hidden regions, which is the same idea automated.
When to choose this over generation
A decision rule you can apply on a shot list:
- Use parallax when the subject is specific and must not change, when the move is small, when the source is a photograph you cannot reshoot, or when there is no budget.
- Use generation when things need to move (a person walking, water flowing, cloth blowing, a crowd) because parallax moves the camera, not the world.
Many finished pieces mix both, and nobody watching can tell which shots were which. A title sequence of six archival photographs with slow parallax, cut against two generated establishing shots, is a completely normal and completely honest way to work.
Today: run one photograph through a Depth Anything Space, then build a five per cent push-in from it in whatever tool you already have. Compare the result against a generated clip of the same image.
Every lesson here is open. Your progress is recorded once you pass the Editing Video exam.
Check your understanding
A depth-projected push-in on a portrait looks clean at ten per cent but develops a rubbery smear around the subject’s shoulder at forty per cent. What is happening?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Chiamaka, your AI tutor