The video slot next to the main image slot is empty in most stores. It doesn't need to be reshot, one existing main image can generate it。
1. Capability boundaries
| Can do | Description |
|---|---|
| Image to video | One product image → 3–5 second motion shot |
| Camera movement control | Push in, pull out, orbit, tilt, macro sweep |
| Material dynamics | Fabric fluttering, metallic reflections sweeping, liquid sloshing |
| Batch | With batch-image output in whole batches |
| Cannot do | Description |
|---|---|
| Long video | For over 8 seconds, use product-video-ad storyboard stitching |
| Voiceover | Use ugc-testimonial |
| Modify product | The video model will amplify flaws in the original image; first use item-repair to fix it |
2. Configure the backend first
The video model ID differs by backend,must be specified explicitly, the script won't guess for you:
export DLAZY_VIDEO_MODEL=<你账号里可用的视频模型 ID>
Stitching and subtitles require ffmpeg (not needed for this skill's single-shot mode, only for storyboards).
For full details see references/video-backends.md。
3. Tool invocation
node scripts/video.mjs --mode clip --task main-image-video \
--image docs/flat-lay/example-output.jpg \
--prompt 'Slow push-in on the model. The cable-knit sweater fibers catch the light softly. Subtle natural body sway. Camera stays level, no cuts.' \
--seconds 3 \
--save out/sku001-main.mp4
# 先看会发什么,不计费
node scripts/video.mjs --mode clip --task main-image-video --image x.jpg \
--prompt '...' --dry-run
Parameter conventions
| Parameter | Value | Reason |
|---|---|---|
--image |
One main image | Vertical 3:4 or square, the higher the resolution the better |
--seconds |
3 ~ 5 |
Videos in the main image slot are generally short; over 5 seconds, completion rate drops fast |
--brand |
brand.yaml |
Keep camera movement and color tone consistent with the whole store |
4. Prompt template
Structure: camera movement + subject dynamics + environment dynamics + constraints
<Camera move>. <What the product does>. <What the environment does>.
Keep the product identical to the reference image — same shape, color, texture, logo placement.
No cuts, no text overlay, no watermark. Photorealistic.
Camera movement vocabulary
| Goal | English |
|---|---|
| Slow push in | slow push-in |
| Slow pull out | slow pull-back reveal |
| Orbit | smooth 30-degree orbit around the product |
| Dive | gentle top-down tilt |
| Macro sweep | macro pan across the surface texture |
Material dynamics vocabulary
| Category | English |
|---|---|
| Knit / wool | fibers catch the light, fabric breathes subtly |
| Silk / chiffon | fabric ripples in a gentle draft |
| Metal / jewelry | specular highlight sweeps across the metal |
| Glass / liquid | liquid settles, light refracts through the glass |
| Leather | soft sheen shifts across the grain |
5. Execution flow
- Check the static image first. The video model will amplify every flaw in the original image. If the original image is broken, fix it first; don't expect the video to save it.
- Confirm the backend。
DLAZY_VIDEO_MODEL. If it isn't set, first ask the user which model to use. - Test with a single image. Video is much more expensive than images; first run a 3-second one to see if the camera movement is right.
- Batch only after confirmation。
- Go through the platform specs. Videos also have spec requirements (duration, aspect ratio, file size), currently platform-compliance only validates static images; for videos, please manually check against the platform documentation.
6. Common issues
| Symptom | Cause | What to do |
|---|---|---|
| The product deforms while moving | The motion amplitude is too large | Switch to slow / subtle style wording, shorten the duration |
| The image is blurry | The original image resolution is not high enough | First use material-enhancement to improve clarity |
| The model's face breaks when it moves | Faces are the hardest-hit area for video models | Switch to a shot that doesn't show the face, or change it to a product close-up |
| The duration doesn't match | Most models' durations are discrete tiers, not continuous values | Pick according to the tiers the model supports, don't force it |
| The error says no model was specified | DLAZY_VIDEO_MODEL is not set |
See "Configure the backend first" |
Tips
- 3 seconds is enough. The main image slot video is not a commercial; just make one selling point clear.
- Don't add text. The text rules for main image videos are as strict as for main images; leave subtitles to product-video-ad。
- The first frame is the cover. Use the product's best-looking angle as the input image, because it will most likely be the frame shown when static.