Skip to main content
ArtEmotion
Video

Veo 3.1 Fast (First+Last frame)

Credit-based pricing. Supports image-to-video, audio generation.

Output
video
Aspect ratio
auto, 16:9, 9:16
Resolution
720p, 1080p, 4k
Duration
4s, 6s, 8s

Inputs

  • Start image (required)
  • Generates audio

Example prompt

Upload a start and end frame — Veo 3.1 Fast interpolates a smooth high-quality transition between them at speed
Try this prompt →
LLM-ready

API & LLM schema

Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/veo3.1/fast/first-last-frame-to-video.

POST/api/v1/generate18 fields · 4 required
FieldTypeRequirementContract
model_idconstantRequiredArtEmotion model identifier.
extraobjectOptionalModel-specific settings may also be nested here.
max_creditsnumberOptionalReject before submission if the estimated list price exceeds this cap. · Range: 1–…
webhook_urlstringOptionalFormat: uri
webhook_secretstringOptionalOptional model input.
folder_idstringOptionalOptional model input.
promptstringRequiredOptional model input.
auto_fixbooleanOptionalWhether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them. · Default: false
first_frame_urlstringOptionalURL of the first frame of the video. Overrides the uploaded start frame.
safety_tolerancenumberOptionalThe safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. · Allowed: 1, 2, 3, 4, 5, 6 · Default: 4
seedintegerOptionalThe seed for the random number generator.
negative_promptstringOptionalA negative prompt to guide the video generation.
last_frame_urlstringOptionalURL of the last frame of the video. Overrides the uploaded end frame.
aspect_ratiostringOptionalAllowed: auto, 16:9, 9:16
resolutionstringOptionalAllowed: 720p, 1080p, 4k
durationnumberOptionalAllowed: 4, 6, 8
image_urlstringRequiredFormat: uri
end_image_urlstringRequiredFormat: uri
Minimal request example
{
  "model_id": "fal-ai/veo3.1/fast/first-last-frame-to-video",
  "prompt": "Upload a start and end frame — Veo 3.1 Fast interpolates a smooth high-quality transition between them at speed",
  "image_url": "https://example.com/image",
  "end_image_url": "https://example.com/end_image"
}
Raw JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fveo3.1%2Ffast%2Ffirst-last-frame-to-video",
  "title": "Veo 3.1 Fast (First+Last frame) generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/veo3.1/fast/first-last-frame-to-video.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/veo3.1/fast/first-last-frame-to-video",
      "description": "ArtEmotion model identifier."
    },
    "extra": {
      "type": "object",
      "additionalProperties": true,
      "description": "Model-specific settings may also be nested here."
    },
    "max_credits": {
      "type": "number",
      "minimum": 1,
      "description": "Reject before submission if the estimated list price exceeds this cap."
    },
    "webhook_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048
    },
    "webhook_secret": {
      "type": "string",
      "maxLength": 512
    },
    "folder_id": {
      "type": "string"
    },
    "prompt": {
      "type": "string"
    },
    "auto_fix": {
      "title": "Auto Fix",
      "description": "Whether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them.",
      "default": false,
      "type": "boolean"
    },
    "first_frame_url": {
      "title": "First Frame Url",
      "description": "URL of the first frame of the video. Overrides the uploaded start frame.",
      "type": "string"
    },
    "safety_tolerance": {
      "title": "Safety Tolerance",
      "description": "The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.",
      "default": "4",
      "type": "number",
      "enum": [
        1,
        2,
        3,
        4,
        5,
        6
      ]
    },
    "seed": {
      "title": "Seed",
      "description": "The seed for the random number generator.",
      "type": "integer"
    },
    "negative_prompt": {
      "title": "Negative Prompt",
      "description": "A negative prompt to guide the video generation.",
      "type": "string"
    },
    "last_frame_url": {
      "title": "Last Frame Url",
      "description": "URL of the last frame of the video. Overrides the uploaded end frame.",
      "type": "string"
    },
    "aspect_ratio": {
      "type": "string",
      "enum": [
        "auto",
        "16:9",
        "9:16"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "720p",
        "1080p",
        "4k"
      ]
    },
    "duration": {
      "type": "number",
      "enum": [
        4,
        6,
        8
      ]
    },
    "image_url": {
      "type": "string",
      "format": "uri"
    },
    "end_image_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "model_id",
    "prompt",
    "image_url",
    "end_image_url"
  ],
  "additionalProperties": false
}

FAQ

How much does Veo 3.1 Fast (First+Last frame) cost on ArtEmotion?

Credit-based pricing. You pay in ArtEmotion credits — every plan and top-up converts USD to credits at a fixed rate.

Do I get my credits back if Veo 3.1 Fast (First+Last frame) fails?

Yes — failed generations are never charged. The credits are released back to your balance automatically.

Can I call Veo 3.1 Fast (First+Last frame) from the API?

Yes. Use POST /api/v1/generate with model_id: "fal-ai/veo3.1/fast/first-last-frame-to-video". See the API reference for the full schema.

Where are my generations stored?

Every output is saved to your personal Library. You can export or delete everything any time from Privacy & deletion.

Ready to generate with Veo 3.1 Fast (First+Last frame)?

Start now →

No commitment. New accounts get 50 free credits on signup. See pricing.