Dolly zoom (vertigo effect) prompt for Gemini Omni, tested cheap

Ask Gemini Omni for a dolly zoom by describing both motions, try it at 360p for 30 cents, and check the background stretch before paying for 1080p on Sume.

4 min readSume
All posts

To get a dolly zoom from Gemini Omni, name both halves of the move in the prompt: the camera moves toward the subject while the lens zooms out, so the subject stays the same size and the background stretches. Test it at 360p for $0.30 per 8-second take on Sume, and only pay for 720p ($1.00) or 1080p ($1.50) once the stretch is visible.

Camera-effect prompts are hit and miss. Budget three drafts.

Say what each part does

'Dolly zoom' alone can be read as a plain push-in. Spelling out the two motions and the visible result gives the model the whole effect. Google's Omni page advises plain-language description of the shot (read 2026-10-07).

  • Motion one: 'the camera dollies slowly toward the man's face'.
  • Motion two: 'while the lens zooms out, so his face stays the same size'.
  • Result: 'the hallway behind him stretches and seems to move away'.
  • Mood: 'cold fluorescent light, tense, silent'.
  • Sound: 'low drone and a faint electrical hum. No dialogue.'

Draft request

Eight seconds is enough for the effect to build. Use 360p and a locked subject.

import os, requests

prompt = ('Vertigo dolly zoom, single continuous shot. A man stands still in a long '
          'office hallway. The camera dollies slowly toward his face while the lens '
          'zooms out, so his face stays the same size and the hallway behind him '
          'stretches away. Cold fluorescent light. Audio: low drone, faint electrical '
          'hum. No dialogue.')
r = requests.post(
    'https://api.sume.com/v1/videos',
    headers={'Authorization': 'Bearer ' + os.environ['SUME_API_KEY'],
             'Idempotency-Key': 'dolly-zoom-draft-1'},
    json={'model': 'gemini-omni-flash-1.1', 'prompt': prompt, 'duration': 8,
          'resolution': '360p', 'aspect_ratio': '16:9'},
    timeout=60)
print(r.status_code, r.json())

Draft, then finish

Sume bills list times 1.25 per second, rounded up to the cent per job, from the Video Router doc's list rates of $0.03, $0.10, $0.15 and $0.30 per second.

Three 360p drafts and one final, 8 seconds each, on Sume (read 2026-10-07)
StepResolutionCost
Draft 1 to 3360p$0.90 together
Final720p$1.00
Final1080p$1.50

How to check the effect

Pull stills at 1, 4 and 7 seconds with the video frames endpoint and compare the size of the face with the width of the hallway. If the face grows, you got a push-in; if nothing stretches, you got a zoom. In either case, try the opposite word order, or reduce the scene to one fixed subject on a plain background, where the stretch is easier to see. Faces are the usual failure; a chair or a lamp at the same distance is a good test object before you commit to a person.

Other options for the effect

If the model will not produce the stretch, fake it from a clean plate: generate a locked-off clip of the subject, then make the zoom in a video editor. That route gives you control over the exact speed but needs a sharp, high-resolution source, and an Omni 720p clip has limited room for a crop. Sume's video filter and timeline tools are for processing and joining clips; they are not a replacement for a camera move inside the shot, so use them for edits around the effect, not for the effect itself.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume