Pixelcut Looping Video
Turn one product photo into a seamless video loop. The video starts and ends on your original frame, so it plays endlessly with no visible jump.
What it does
- Seamless loops. The last frame lands back on the first, so clips can run on product pages, in-store displays and social feeds without a cut.
- Camera stays locked. No pans, zooms or reframing, even if the prompt asks for them. The shot you approved stays the shot.
- The product stays accurate. Labels, logos, geometry, colors and composition are preserved. Only what would plausibly move is animated: fabric in a breeze, steam, water, foliage, reflections.
- Two motion styles.
subtle adds gentle ambient movement. spin turns the subject through one full 360° revolution and ends on the starting frame.
| Field | Default | Notes |
|---|
image_url | required | The frame the video starts and ends on. JPEG, PNG or WebP. |
prompt | empty | Optional direction for the motion, e.g. "clothes blowing subtly in the wind". Direction that would move the camera or break the loop is ignored. |
duration | 5 | Whole seconds, 5 to 15. |
resolution | 1080p | 480p, 768p or 1080p. |
motion | subtle | subtle or spin. |
include_audio | false | Keep the generated audio track. Off by default, so the loop is silent. |
The output is an MP4 in the aspect ratio of your input image.
Pricing
Billed per second of output video. Motion style and audio don't change the price.
| Resolution | Per second | 5 s | 10 s | 15 s |
|---|
| 480p | $0.08 | $0.40 | $0.80 | $1.20 |
| 768p | $0.16 | $0.80 | $1.60 | $2.40 |
| 1080p | $0.32 | $1.60 | $3.20 | $4.80 |
- A clean product or lifestyle photo where the product is fully in frame.
- Scenes with something that can move naturally: fabric, liquid, steam, plants, light.
- For
spin, an isolated product or person on a simple background works best.
Example
import fal_client
result = fal_client.subscribe(
"pixelcut/looping-video",
arguments={
"image_url": "https://cdn3.pixelcut.app/fal/looping-video/model.jpg",
"prompt": "clothes blowing subtly in the wind",
"duration": 5,
"resolution": "1080p",
"motion": "subtle",
},
)
print(result["video"]["url"])