| name | popiskill-video-image2video-basic-v1 |
| description | Turn one source image into a short video through the PopiArt runtime baseline. Use this when the user wants the most direct image-to-video path for motion previews, short teaser clips, or runtime validation. |
| tags | ["official","runtime","video","image2video","basic"] |
| version | v1 |
| model_type | video |
| estimated_duration_s | 180 |
| default_profile | true |
| profile_description | Official PopiArt runtime baseline for single-shot image-to-video generation. |
PopiArt Image To Video Basic
This is an official PopiArt runtime catalog skill.
Popiart_skillhub owns the public skill definition.
popiartServer owns source resolution, jobs, artifacts, and stable media URLs.
PopiNewAPI owns provider routing and image-to-video model access.
popiartcli owns discovery, run, jobs, artifacts, and the current built-in direct-fallback bridge for this baseline skill when the remote catalog entry is still a placeholder.
Use it when the goal is to:
- animate one still image into one short clip
- generate a start-end-frame clip from a first frame and final frame
- validate the basic PopiArt video path
- generate a quick motion preview from an artifact or image URL
Do not use it for:
- long-form editing
- multi-shot generation
- text-only video generation
Required input
- one image source:
source_artifact_id, or
image_url, or
reference_image_url
For start-end-frame video, provide the first frame through the same source
field above, then provide the final frame through one of:
last_frame_image_url
end_frame_image_url
last_frame_artifact_id
end_frame_artifact_id
images[1] when using the gateway-compatible images array directly
Optional input
images
metadata
prompt
negative_prompt
duration_s
seconds
fps
camera_motion
motion_intensity
style
size
aspect_ratio
seed
notes
Workflow
- Prefer
source_artifact_id when the source image already comes from PopiArt.
- Use
image_url only when the source already lives at a stable URL.
- For start-end-frame video, pass the first frame as the normal source and the final frame as
last_frame_image_url / last_frame_artifact_id; gateway-compatible callers may also pass images[0] + images[1].
- Keep the clip short and the motion instruction singular.
- Run through
popiart and wait for the job.
- Pull the returned artifact when a local file is needed.
Command pattern
popiart run popiskill-video-image2video-basic-v1 --input @params.json --wait
Inline example:
popiart run popiskill-video-image2video-basic-v1 --input '{"source_artifact_id":"art_123","prompt":"the camera slowly pushes in while the hair moves in the wind","duration_s":5}' --wait
Start-end-frame example:
popiart run popiskill-video-image2video-basic-v1 --input '{"image_url":"https://example.com/first-frame.jpg","last_frame_image_url":"https://example.com/last-frame.jpg","prompt":"transition smoothly from the first frame to the final frame","duration_s":5,"metadata":{"action":"firstTailGenerate"}}' --wait
Payload template
{
"source_artifact_id": "art_123",
"prompt": "the camera slowly pushes in while the hair moves in the wind",
"duration_s": 5,
"camera_motion": "slow push-in",
"seed": 42
}
Start-end-frame payload:
{
"image_url": "https://example.com/first-frame.jpg",
"last_frame_image_url": "https://example.com/last-frame.jpg",
"prompt": "transition smoothly from the first frame to the final frame",
"duration_s": 5,
"size": "720p",
"metadata": {
"action": "firstTailGenerate"
}
}
Output handling
After the job finishes:
- read
job_id
- inspect
artifact_ids
- inspect
execution_mode and model_id when the CLI had to use the built-in direct-fallback bridge
- use
popiart artifacts pull <artifact-id> to save the video locally
Operating guidance
- For local source files, upload first with
popiart artifacts upload ./source.png --role source.
reference_image_url is a compatibility alias for image_url.
end_frame_image_url is a compatibility alias for last_frame_image_url.
end_frame_artifact_id is a compatibility alias for last_frame_artifact_id.
seconds is a compatibility alias for duration_s.
- If a final frame is present and
metadata.action is omitted, compatible runtimes should default it to firstTailGenerate.
- For now, pass
duration_s or seconds as 5 or greater.
- If the user only has text, run
popiskill-image-text2image-basic-v1 first.