Generate video from first and last frame images using fal.ai Veo 3.1. Use when the user wants to create a video transition between two images, morph between scenes, or generate smooth video connecting a starting and ending frame.
Generates smooth video transitions between two images using Veo 3.1. Activates when users want to morph between scenes, create time-lapses, or connect starting/ending frames with motion.
/plugin marketplace add bluewaves-creations/bluewaves-skills/plugin install fal-media@bluewaves-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Generate smooth video transitions between two frames using Google DeepMind's Veo 3.1 model via fal.ai.
FAL_KEY environment variable must be set (typically in ~/.zshrc)POST https://fal.run/fal-ai/veo3.1/first-last-frame-to-video
prompt (string): Text description of how the video should transition between framesfirst_frame_url (string): URL of the first/starting framelast_frame_url (string): URL of the last/ending frame| Parameter | Type | Default | Options |
|---|---|---|---|
duration | string | "8s" | "4s", "6s", "8s" |
aspect_ratio | string | "auto" | "auto", "9:16", "16:9" |
resolution | string | "720p" | "720p", "1080p" |
generate_audio | boolean | true | Enable/disable audio generation |
curl --request POST \
--url https://fal.run/fal-ai/veo3.1/first-last-frame-to-video \
--header "Authorization: Key $FAL_KEY" \
--header "Content-Type: application/json" \
--data '{
"prompt": "Smooth time-lapse transition from day to night as the sun sets",
"first_frame_url": "https://example.com/daytime-scene.jpg",
"last_frame_url": "https://example.com/nighttime-scene.jpg",
"duration": "8s",
"resolution": "1080p",
"generate_audio": true
}'
import fal_client
result = fal_client.subscribe(
"fal-ai/veo3.1/first-last-frame-to-video",
arguments={
"prompt": "Smooth time-lapse transition from day to night as the sun sets",
"first_frame_url": "https://example.com/daytime-scene.jpg",
"last_frame_url": "https://example.com/nighttime-scene.jpg",
"duration": "8s",
"resolution": "1080p",
"generate_audio": True
}
)
# Access the generated video URL
video_url = result["video"]["url"]
print(f"Generated video: {video_url}")
import { fal } from "@fal-ai/client";
const result = await fal.subscribe("fal-ai/veo3.1/first-last-frame-to-video", {
input: {
prompt: "Smooth time-lapse transition from day to night as the sun sets",
first_frame_url: "https://example.com/daytime-scene.jpg",
last_frame_url: "https://example.com/nighttime-scene.jpg",
duration: "8s",
resolution: "1080p",
generate_audio: true
}
});
console.log("Generated video:", result.video.url);
{
"video": {
"url": "https://storage.googleapis.com/.../output.mp4"
}
}
Time-lapse transition:
Seasonal change:
Transformation:
Growth animation:
Scene morphing: