Use your character in Veo 3.1
Veo 3.1 produces 8 second clips with native audio and offers three different consistency tools: a first frame, a first plus last frame pair, and up to three reference images of a character. It is strong on realism and lip-synced dialogue, but its people policy is the strictest of the five, so photoreal character packs can be refused in some regions.
Capabilities
- First frame (image-to-video)Yes
- Last frameYes
- Reference images3
- Native extendYes
- Max clip8 s at 720p, 1080p or 4K (1080p and 4K require the 8 second length)
- AudioYes
Which files to use
hero.pngFirst frame (image-to-video). Expect the 2:3 still to be fitted into a 16:9 or 9:16 output.closeup.pngReference image 1 (asset type). Face identity.three_quarter.pngReference image 2 (asset type). Face at an angle plus outfit.profile.pngReference image 3 (asset type). Side view; swap for back.png if the action turns away.back.pngLast frame when the shot should end with the character turned away, or reference 3 instead of profile.png.contact_sheet.pngNot recommended as a reference: Veo treats each reference as a whole image and a tiled sheet confuses it.character.jsonBible text goes in every prompt. Put spoken lines in quotation marks for audio.
Steps
- Open Google AI Studio (aistudio.google.com) or the Gemini app and choose a Veo 3.1 video model; developers use the google-genai SDK with the same model IDs.
- Decide the mode first. Image-to-video: upload hero.png as the starting image. Reference mode: upload closeup.png, three_quarter.png and profile.png as asset references. The two modes are different request shapes; start with one of them, not both.
- Paste the bible text from character.json at the top of the prompt, then the action, camera and any dialogue in quotes.
- Set aspect ratio (16:9 or 9:16), resolution and the 8 second duration (1080p and 4K need the full 8 seconds).
- Leave person generation at allow_adult for image-to-video and reference requests; that is the only accepted value for those modes.
- Generate, then download within two days because generated videos are deleted from the server after that.
- For a longer scene, extend the finished clip by 7 seconds per step (up to 20 times) rather than re-uploading a frame grab; extension keeps audio and motion continuity.
Prompt template
{{bible}} This is the same character shown in the attached image; keep the face, hairstyle, skin tone, outfit and body proportions identical. {{action}} Cinematic realism, natural movement, consistent lighting, no additional people. Note: use either a starting image or reference images in one request, not both.
Tips
- Three references is the cap, so use closeup.png, three_quarter.png and profile.png; drop profile.png for back.png only if the character turns away.
- Reference mode is better than first frame when the shot should not open on the sheet pose. First frame mode is better when you need an exact composition.
- Chain scenes with first and last frame: feed the last frame of clip A as the starting image of clip B and keep the bible text identical.
- Write dialogue in quotation marks and describe ambient sound explicitly; Veo generates the audio track from the prompt.
- Keep the negative prompt from character.json in the negativePrompt field rather than writing "no" sentences in the main prompt.
- If a photoreal face is refused, retry with the stylised render of the same character or soften the realism wording; the policy is applied to the input image, not only the prompt.
Caveats
- Image-to-video, interpolation and reference images accept only allow_adult for person generation, and in the EU, UK, Switzerland and MENA that is the only permitted value. Photoreal people in the input image may still be blocked by safety filters; a stylised sheet is less likely to be refused.
- Reference images and extension are documented for veo-3.1-generate-preview and veo-3.1-fast-generate-preview only; the Lite model has no 4K, no references and no extension.
- Developer forum threads report "not supported" errors for lastFrame and referenceImages on older SDK versions and for some projects. Update the SDK and test before building a pipeline on them.
- Whether a starting image and reference images can be combined in one request could not be confirmed from the official page; we describe them as separate modes.
- Third-party pages list 4, 6 and 8 second durations; the official page describes 8 second videos. Treat anything other than 8 seconds as unverified.
- Veo outputs 16:9 or 9:16 only, so the 2:3 hero.png is fitted, not used at native aspect. Crop to 9:16 yourself if framing matters.
- Generated videos are retained on the server for 2 days; extension only works on clips generated within that window.
API notes
Use the google-genai SDK (client.models.generate_videos) or the REST predictLongRunning method with model veo-3.1-generate-preview. The starting image is sent inline as image bytes with a mime type; a last frame goes in the config as lastFrame (requires a starting image) and references go in referenceImages with referenceType set to asset. The call returns a long-running operation that you poll with operations.get until done, then download the video from the returned file reference.