Install
openclaw skills install tomoviee-tail-to-videoGenerate videos from first and last frame images using Tomoviee First-Last Frame API (`tm_tail2video_b`) via Wondershare OpenAPI gateway (`https://openapi.wondershare.cc`). Requires `app_key` and `app_secret`. Use when users request first-last keyframe interpolation, start-end frame animation, or two-image to 5-second video generation.
openclaw skills install tomoviee-tail-to-videoGenerate a 5-second video from two keyframe images:
image: first frameimage_tail: last frameAPI capability: tm_tail2video_b
Use this mapping to verify provenance before using production credentials:
https://www.tomoviee.ai and https://www.tomoviee.cnhttps://openapi.wondershare.cchttps://openapi.wondershare.cc/v1/open/capacity/application/tm_tail2video_bhttps://openapi.wondershare.cc/v1/open/pub/taskThis skill sends runtime API requests only to openapi.wondershare.cc.
app_key and app_secret.Authorization: Basic <base64(app_key:app_secret)>.app_key, app_secretprompt, image, image_tailtm_tail2video_b (first-last frame to video).requests>=2.31.0,<3.0.0pip install -r requirements.txtpip install -r requirements.txt
python scripts/generate_auth_token.py YOUR_APP_KEY YOUR_APP_SECRET
from scripts.tomoviee_firstlast2video_client import TomovieeFirstLast2VideoClient
client = TomovieeFirstLast2VideoClient("app_key", "app_secret")
task_id = client.firstlast_to_video(
prompt="Scene transitions naturally from first frame to last frame with smooth motion",
image="https://example.com/first-frame.jpg",
image_tail="https://example.com/last-frame.jpg",
resolution="720p",
duration=5,
aspect_ratio="original",
)
result = client.poll_until_complete(task_id)
import json
video_url = json.loads(result["result"])["video_path"][0]
print(video_url)
prompt (required): Motion guidance text.image (required): First frame image URL.image_tail (required): Last frame image URL.resolution (optional): 720p or 1080p, default 720p.duration (optional): only 5 is supported.aspect_ratio (optional): 16:9, 9:16, 4:3, 3:4, 1:1, original.camera_move_index (optional): camera movement type 1-46.callback (optional): callback URL.params (optional): transparent callback parameter.<200MJPG, JPEG, PNG, WEBPtask_idpoll_until_complete(task_id)resultStatus codes:
1 queued2 processing3 success4 failed5 cancelled6 timeoutscripts/tomoviee_firstlast2video_client.py - main API clientscripts/generate_auth_token.py - auth token helperreferences/video_apis.md - API reference and constraintsreferences/camera_movements.md - camera movement index referencereferences/prompt_guide.md - prompt writing guidancehttps://www.tomoviee.ai/developers.htmlhttps://www.tomoviee.ai/doc/ai-video/first-and-last-frame-to-video.htmlhttps://www.tomoviee.cn/developers.htmlhttps://www.tomoviee.cn/doc/ai-video/first-and-last-frame-to-video.html