Veo 3.1 image_url rejected on Sume: text-only error and what to use

Sume's Veo rows refuse image, frame, reference and video inputs as 'text-to-video only here'. The refused fields, other messages, and rows that take an image.

4 min readSume
All posts

If a Veo 3.1 request on Sume fails with Veo 3.1 is text-to-video only here and does not take image_url., the row is working as designed: Sume's three Veo rows accept a prompt and nothing else visual. Send the still to a row that supports image-to-video, such as Gemini Omni Flash 1.1, Kling Video v3 Pro or Seedance 2.5.

Google's own page says Veo 3.1 supports video extension, frame-specific generation and image direction (Gemini API video docs, read 2026-10-10). That is Google's model; Sume's route exposes a narrower slice.

The refused fields

The validation runs on the Video Router fields before a balance reservation. Each of these makes the request fail with the same sentence, naming the field:

  • image_url, first_frame_url, image_urls
  • end_image_url, last_frame_url
  • video_url (edit)
  • reference_image_urls, reference_video_urls, reference_audio_urls
  • bitrate_mode

The other Veo messages

Other limits have their own messages, so a failing request tells you exactly which rule it broke.

Veo 3.1 validation messages in the Sume repo on 2026-10-10
You sentMessage
No promptVeo 3.1 requires a prompt.
Duration 5Veo 3.1 duration must be 4, 6, or 8 seconds.
Resolution 1080pVeo 3.1 runs at 720p here.
Ratio 1:1Veo 3.1 aspect_ratio must be 16:9 or 9:16.
Non-boolean generate_audiogenerate_audio must be true or false.
Non-empty model_paramsVeo 3.1 does not accept model_params.

Rows that take your still

The catalog flags tell you which rows can start from an image. image_to_video is false on every Veo row; it is true on the rows below (Video Generation docs).

  • Gemini Omni Flash 1.1: image plus optional end image, 3 to 10 seconds, 360p to 4K, 16:9 or 9:16, audio always on.
  • Kling Video v3 Pro: start and end frames, 4 to 15 seconds, 1080p only, audio toggle.
  • Seedance 2.5: first and last frame plus references, 4 to 30 seconds, 480p to 1080p.
  • Wan 3.0: 2 to 30 seconds with references; Grok Imagine Video 1.5: still only, 4 to 15 seconds.

A pattern for fallbacks

If your pipeline picks Veo for text prompts and something else for stills, branch on the presence of an image before you choose the id, not after the 400. Because the error is a validation failure, it costs nothing, but it still wastes a round trip and, in a batch, a queue slot of your own client.

Also remember that the Veo rows list only where the Google Cloud route is configured. Read GET /v1/videos/models in your environment and read capabilities or supported_frame_images on the row instead of assuming.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume