Blog/Techniques

Turn a product photo into a website loop

Animate a product photo, keep its label readable and choose a cleaner loop point. Includes copyable prompts, a Voyager review demo and the source files.

John Holliman

John Holliman, Cofounder & CTO, Moda

Sep 30, 2026·3 min read

A little movement in the light or background can make a product photo feel alive while keeping the packaging readable.

For this fictional VELA citrus tonic, we animated the leaf shadows, removed an unwanted sweep of light, trimmed a few frames to find a cleaner restart, and restored the original label over the moving footage.

Download GIF
Gentle background movement keeps the product as the focal point.

Give the motion one job

Start with a readable front label, a complete silhouette and room around the product. Give a curtain, reflection or leaf shadow the movement.

Pixelcut's looping-video endpoint, announced on September 30, accepts a source image and a motion prompt. We used subtle motion, five seconds, 1080p and no audio.

Here is the reusable direction after our revision:

Prompt
Keep the camera, product, label and exposure fixed. Animate only the existing leaf shadows on the background wall: a small, slow sway out and back. Keep all illuminated areas at constant brightness. No moving beams, sweeping highlights or new objects. Return smoothly to the original shadow positions. Quiet product-page ambience.

Name what stays still as carefully as what moves.

Matching endpoints is only the start

We also tried MiniMax H3 Max with the same photo supplied as both its first and last image. Both needed review.

Pixelcut introduced a bright diagonal band; H3 kept the light quieter. We revised Pixelcut to remove the band, then checked the restart.

Play at least three consecutive cycles. Look for:

  • A jump in the shadow's position or speed when the clip restarts.
  • A change in brightness, focus or texture at the join.
  • Lettering that crawls or a bottle edge that changes shape.

Even the revised loop had a small reset near its endpoints. Keeping frames 7 through 116 gave us a shorter 4.58-second loop with a cleaner join. We used a straight trim, with no crossfade or invented frames.

ffmpeg -i pixelcut-v2.mp4 \
  -vf "trim=start_frame=7:end_frame=117,setpts=PTS-STARTPTS" \
  -an -c:v libx264 -crf 18 -pix_fmt yuv420p \
  -movflags +faststart product-loop.mp4

For another clip, find its join by watching the motion on both sides. These frame numbers are specific to our take.

Keep the original label

Generation kept the words CITRUS TONIC but redrew the lettering details.

With the camera and bottle locked, a masked composite can restore the original label over the moving footage. The download includes the script.

A rotating product or moving camera would need tracking; a fixed overlay would slide out of place.

Make the revision in Voyager

We used a Codex agent in Voyager, our desktop app, for review and finishing. We paused on the unwanted light band and pinned this note to the frame:

Prompt
Remove this bright band of light. Let only the leaf shadows sway; keep the bottle and exposure steady. Make a new Pixelcut loop from source.png, preserving the original.

The review attachment carries the marked frame and note into the conversation. The agent makes another take from the existing photo and presents the result. Pointing at the defect supplies context the prompt alone would miss.

A visual note refines the motion. A local trim and source-label composite finish the loop.
Description / transcript

The original loop shows a bright diagonal band. A saved frame note asks to remove it. The agent creates another Pixelcut take. The revised clip keeps the shadow movement. A local trim produces a shorter loop, and a masked composite restores the original label. The actual frame note is held for reading; generation waits are omitted.

We then asked the agent to restore the source label and save the compositing script. The final trim and composite run locally, so they need no additional model request.

Use it on a product page

Download the source photo, prompts and finished loops. The bundle includes an HTML player that opens locally; unzip everything together so its relative video links work.

Use the MP4 with a still poster, a pause control and reduced-motion support. Keep the GIF for quick previews.

Our source is an AI-generated fictional product photo. For your own product, start with approved photography and keep exact brand details in a controlled layer. A generative prompt is a direction, not a preservation guarantee.

Make your next project in Voyager

Create an account, download Voyager, and start making.

John Holliman

John Holliman

Cofounder & CTO, Moda

John is the CTO of Moda and a Y Combinator-backed startup founder. Previously CTO of Dover, John builds creative tools that let people direct agents, inspect their work, and refine the result while staying in control.