Blender Product Film
Premium 3D product films rendered in Blender (headless, GPU) — dark studio, rim light, light sweeps, glass/liquid/metal materials, condensation and…
By edenfunf/reelmimic, MIT licence. Shared here with credit.
Blender product film
Everything is driven by JSON shot specs → scripts/pfilm.py (runs inside Blender) → PNG frames → scripts/finish.py (edit, titles, audio).
Blender 4.2+(BLENDER 環境變數或在 PATH 上;建議有 OptiX/CUDA 的 GPU)。選配 Real-ESRGAN(REALESRGAN 環境變數指到 realesrgan-ncnn-vulkan)。
Pipeline
build/
product/ prep_product.py output (from the user's photo)
shots/S1.json one spec per shot (format: top of scripts/pfilm.py)
renders/… frames
edit.json the cut: order, transitions, titles, music, SFX (format: top of scripts/finish.py)
- Product. User photo (front view, plain background) →
python scripts/prep_product.py <photo> --out build/product --height <real height m>Small images are AI-upscaled 4× first. Openbuild/product/check.pngand confirm the green silhouette hugs the product and the magenta print mask covers the label/cap and not the clear body. No photo → procedural"type": "bottle"(see pfilm.py). - Shot specs. One JSON per shot in
build/shots/, written from the plan's shot table (camera language below). - Look-dev stills (fast, do this first, iterate here):
python scripts/render_shots.py build --quality final --stills auto(start/middle/end of each shot) →out/check/<id>_stills.jpg - Motion preview of every shot + a rough cut compared to the reference:
python scripts/render_shots.py build --quality preview --cut→out/check/<id>_preview.jpg,out/preview_cut.mp4, compare sheets - Compare with the reference (see Review) and fix; repeat 3–5 until every shot passes.
- Final:
python scripts/render_shots.py build --quality final(≈1.5–4 s/frame at 1080p) →python scripts/finish.py build/edit.json.