Product Comparison
A-vs-B split intro, per-contender scenes and a head-to-head scoreboard.
- Type
- Video
- Format
- Instagram Reel · 9:16
- Orientation
- Portrait
- Duration
- 15.2s
- Scenes
- 4
- Render cost
- $0.0038 / render
Template ID
ecom-comparisonLibrary identifier. Saved API templates have a separate ID starting with tpl_.
Free template · opens in the editor, no account required.
Customize Product Comparison
Product Comparison is a ready-to-render E-commerce video design formatted for Instagram Reel · 9:16 with 4 scenes and support for variables. Open it in the editor to replace its copy and media, then render variations through the Zvid API.
22 variables: Every value below is a variable you can override — send them in the variables field of the render request (or edit them in the editor) to generate on-brand versions at scale.
brandNameTexttitleLineTextnameATextmoodATextpriceATextimageAMedia URLnameBTextmoodBTextpriceBTextimageBMedia URLrowLabel1TextvalueA1TextvalueB1TextrowLabel2TextvalueA2TextvalueB2TextrowLabel3TextvalueA3TextvalueB3TextverdictTextctaTextTextmusicUrlMedia URLThe exact JSON payload
This is the full render config — POST it to the API, or open it in the editor to tweak.
{
"name": "ecom-comparison",
"resolution": "instagram-reel",
"frameRate": 30,
"backgroundColor": "#111013",
"outputFormat": "mp4",
"variables": {
"brandName": "MAISON SCENT",
"titleLine": "Which one is you?",
"nameA": "Noir Intense",
"moodA": "Evening · Bold · Smoky",
"priceA": "$89",
"imageA": "https://images.pexels.com/photos/7850600/pexels-photo-7850600.jpeg?auto=compress&cs=tinysrgb&w=1620",
"nameB": "Lumen Fresh",
"moodB": "Daytime · Crisp · Citrus",
"priceB": "$74",
"imageB": "https://images.pexels.com/photos/13875783/pexels-photo-13875783.jpeg?auto=compress&cs=tinysrgb&w=1620",
"rowLabel1": "Lasts",
"valueA1": "10+ hours",
"valueB1": "6–8 hours",
"rowLabel2": "Best for",
"valueA2": "Nights out",
"valueB2": "Every day",
"rowLabel3": "Character",
"valueA3": "Magnetic",
"valueB3": "Effortless",
"verdict": "Two icons. One shelf. Zero wrong answers.",
"ctaText": "Find your signature",
"musicUrl": "https://cdn.pixabay.com/audio/2025/04/21/audio_ed6f0ed574.mp3"
},
"scenes": [
{
"id": "versus",
"duration": 3.6,
"backgroundColor": "#111013",
"transition": "smoothleft",
"transitionId": "contender-a",
"transitionDuration": 0.55,
"visuals": [
{
"type": "IMAGE",
"src": "{{imageA}}",
"x": 270,
"y": 960,
"width": 540,
"height": 1920,
"anchor": "center-center",
"resize": "cover",
"track": 0,
"enterBegin": 0,
"enterEnd": 0.5,
"enterAnimation": "slideright",
"exitEnd": 3.6
},
{
"type": "IMAGE",
"src": "{{imageB}}",
"x": 810,
"y": 960,
"width": 540,
"height": 1920,
"anchor": "center-center",
"resize": "cover",
"track": 1,
"enterBegin": 0,
"enterEnd": 0.5,
"enterAnimation": "slideleft",
"exitEnd": 3.6
},
{
"type": "SVG",
"width": 1080,
"height": 1920,
"track": 2,
"enterBegin": 0,
"exitEnd": 3.6,
"svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='cmpShade' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#111013' stop-opacity='0.45'/><stop offset='0.5' stop-color='#111013' stop-opacity='0.1'/><stop offset='1' stop-color='#111013' stop-opacity='0.7'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#cmpShade)'/><path d='M540 0 V1920' stroke='#FFFFFF' stroke-width='3' opacity='0.85'/><circle cx='540' cy='960' r='110' fill='#111013' stroke='#FFFFFF' stroke-width='3'/></svg>"
},
{
"type": "TEXT",
"x": 540,
"y": 960,
"anchor": "center-center",
"track": 3,
"enterBegin": 0.55,
"enterEnd": 0.9,
"enterAnimation": "circleopen",
"exitEnd": 3.6,
"style": {
"fontFamily": "Anton"
},
"html": "<div style='color:#FFFFFF; font-size:92px; letter-spacing:2px;'>VS</div>"
},
{
"type": "TEXT",
"x": 540,
"y": 190,
"width": 960,
"anchor": "top-center",
"track": 4,
"enterBegin": 0.8,
"enterEnd": 1.2,
"enterAnimation": "smoothdown",
"exitEnd": 3.6,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='text-align:center;'><span style='display:inline-block; background:rgba(17,16,19,0.85); border:1px solid rgba(255,255,255,0.35); color:#FFFFFF; border-radius:999px; padding:18px 46px; font-size:40px; font-weight:800;'>{{titleLine}}</span></div>"
}
]
},
{
"id": "contender-a",
"duration": 3.8,
"backgroundColor": "#111013",
"transition": "slideleft",
"transitionId": "contender-b",
"transitionDuration": 0.5,
"visuals": [
{
"type": "IMAGE",
"src": "{{imageA}}",
"width": 1080,
"height": 1920,
"position": "center-center",
"resize": "cover",
"zoom": true,
"track": 0,
"enterBegin": 0,
"exitEnd": 3.8
},
{
"type": "SVG",
"width": 1080,
"height": 1920,
"track": 1,
"enterBegin": 0,
"exitEnd": 3.8,
"svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='caShade' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#111013' stop-opacity='0.3'/><stop offset='0.55' stop-color='#111013' stop-opacity='0.05'/><stop offset='1' stop-color='#111013' stop-opacity='0.88'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#caShade)'/></svg>"
},
{
"type": "TEXT",
"x": 90,
"y": 150,
"anchor": "top-left",
"track": 2,
"enterBegin": 0.15,
"enterEnd": 0.5,
"enterAnimation": "smoothleft",
"exitEnd": 3.8,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='display:inline-block; background:#FFFFFF; color:#111013; border-radius:8px; padding:14px 30px; font-size:28px; font-weight:800; letter-spacing:3px;'>CONTENDER A</div>"
},
{
"type": "TEXT",
"x": 90,
"y": 1480,
"width": 900,
"anchor": "top-left",
"track": 3,
"enterBegin": 0.45,
"enterEnd": 0.9,
"enterAnimation": "smoothup",
"exitEnd": 3.8,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='color:#FFFFFF; font-size:76px; line-height:1; font-weight:800; letter-spacing:-1px;'>{{nameA}}</div><div style='margin-top:16px; color:#C9C4CC; font-size:30px; font-weight:600; letter-spacing:2px;'>{{moodA}} · <b style='color:#FFFFFF;'>{{priceA}}</b></div>"
}
]
},
{
"id": "contender-b",
"duration": 3.8,
"backgroundColor": "#EFEAE2",
"transition": "smoothup",
"transitionId": "scoreboard",
"transitionDuration": 0.55,
"visuals": [
{
"type": "IMAGE",
"src": "{{imageB}}",
"width": 1080,
"height": 1920,
"position": "center-center",
"resize": "cover",
"zoom": true,
"track": 0,
"enterBegin": 0,
"exitEnd": 3.8
},
{
"type": "SVG",
"width": 1080,
"height": 1920,
"track": 1,
"enterBegin": 0,
"exitEnd": 3.8,
"svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient id='cbShade' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#2A2620' stop-opacity='0.32'/><stop offset='0.55' stop-color='#2A2620' stop-opacity='0.04'/><stop offset='1' stop-color='#2A2620' stop-opacity='0.82'/></linearGradient></defs><rect width='1080' height='1920' fill='url(#cbShade)'/></svg>"
},
{
"type": "TEXT",
"x": 90,
"y": 150,
"anchor": "top-left",
"track": 2,
"enterBegin": 0.15,
"enterEnd": 0.5,
"enterAnimation": "smoothleft",
"exitEnd": 3.8,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='display:inline-block; background:#111013; color:#FFFFFF; border-radius:8px; padding:14px 30px; font-size:28px; font-weight:800; letter-spacing:3px;'>CONTENDER B</div>"
},
{
"type": "TEXT",
"x": 90,
"y": 1480,
"width": 900,
"anchor": "top-left",
"track": 3,
"enterBegin": 0.45,
"enterEnd": 0.9,
"enterAnimation": "smoothup",
"exitEnd": 3.8,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='color:#FFFFFF; font-size:76px; line-height:1; font-weight:800; letter-spacing:-1px;'>{{nameB}}</div><div style='margin-top:16px; color:#EDE8E0; font-size:30px; font-weight:600; letter-spacing:2px;'>{{moodB}} · <b style='color:#FFFFFF;'>{{priceB}}</b></div>"
}
]
},
{
"id": "scoreboard",
"duration": 5.6,
"backgroundColor": "#111013",
"visuals": [
{
"type": "SVG",
"width": 1080,
"height": 1920,
"track": 0,
"enterBegin": 0,
"exitEnd": 5.6,
"svg": "<svg width='1080' height='1920' viewBox='0 0 1080 1920' xmlns='http://www.w3.org/2000/svg'><defs><radialGradient id='sbGlow' cx='0.5' cy='0.3' r='0.9'><stop offset='0' stop-color='#221F26'/><stop offset='1' stop-color='#111013'/></radialGradient></defs><rect width='1080' height='1920' fill='url(#sbGlow)'/><path d='M540 470 V1310' stroke='rgba(255,255,255,0.2)' stroke-width='1.5'/></svg>"
},
{
"type": "TEXT",
"x": 540,
"y": 260,
"width": 940,
"anchor": "top-center",
"track": 1,
"enterBegin": 0.2,
"enterEnd": 0.6,
"enterAnimation": "smoothdown",
"exitEnd": 5.6,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='text-align:center; color:#FFFFFF; font-size:56px; font-weight:800;'>Head to head</div>"
},
{
"type": "TEXT",
"x": 90,
"y": 470,
"width": 900,
"anchor": "top-left",
"track": 2,
"enterBegin": 0.55,
"enterEnd": 1.05,
"enterAnimation": "smoothup",
"exitEnd": 5.6,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='color:#FFFFFF;'><div style='display:flex;'><div style='width:50%; text-align:center; font-size:34px; font-weight:800; padding:16px 0; color:#E8C3A0;'>{{nameA}}</div><div style='width:50%; text-align:center; font-size:34px; font-weight:800; padding:16px 0; color:#9FD8CB;'>{{nameB}}</div></div><div style='margin-top:26px; text-align:center; color:#8B8791; font-size:24px; font-weight:700; letter-spacing:4px;'>{{rowLabel1}}</div><div style='display:flex;'><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueA1}}</div><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueB1}}</div></div><div style='margin-top:24px; text-align:center; color:#8B8791; font-size:24px; font-weight:700; letter-spacing:4px;'>{{rowLabel2}}</div><div style='display:flex;'><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueA2}}</div><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueB2}}</div></div><div style='margin-top:24px; text-align:center; color:#8B8791; font-size:24px; font-weight:700; letter-spacing:4px;'>{{rowLabel3}}</div><div style='display:flex;'><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueA3}}</div><div style='width:50%; text-align:center; font-size:36px; font-weight:700; padding:10px 0;'>{{valueB3}}</div></div><div style='margin-top:30px; text-align:center;'><span style='display:inline-block; width:44%; text-align:center; background:rgba(232,195,160,0.15); border:1px solid rgba(232,195,160,0.5); border-radius:14px; padding:14px 0; font-size:40px; font-weight:800; color:#E8C3A0;'>{{priceA}}</span><span style='display:inline-block; width:5%;'></span><span style='display:inline-block; width:44%; text-align:center; background:rgba(159,216,203,0.12); border:1px solid rgba(159,216,203,0.5); border-radius:14px; padding:14px 0; font-size:40px; font-weight:800; color:#9FD8CB;'>{{priceB}}</span></div></div>"
},
{
"type": "TEXT",
"x": 540,
"y": 1480,
"width": 880,
"anchor": "top-center",
"track": 3,
"enterBegin": 1.4,
"enterEnd": 1.85,
"enterAnimation": "smoothup",
"exitEnd": 5.6,
"style": {
"fontFamily": "Playfair Display"
},
"html": "<div style='text-align:center; color:#D9D4CC; font-size:36px; line-height:1.35; font-style:italic;'>{{verdict}}</div>"
},
{
"type": "TEXT",
"x": 540,
"y": 1680,
"anchor": "top-center",
"track": 4,
"enterBegin": 1.9,
"enterEnd": 2.3,
"enterAnimation": "circleopen",
"exitEnd": 5.6,
"style": {
"fontFamily": "Montserrat"
},
"html": "<div style='display:inline-block; background:#FFFFFF; color:#111013; border-radius:999px; padding:24px 60px; font-size:34px; font-weight:800;'>{{ctaText}}</div><div style='margin-top:14px; text-align:center; color:#6E6A74; font-size:22px; letter-spacing:5px;'>{{brandName}}</div>"
}
]
}
],
"audios": [
{
"src": "{{musicUrl}}",
"volume": 0.16,
"track": 0
}
]
}More E-commerce templates
View all ↗Ready to ship video at scale?
Start free — your first render is only a JSON payload away.









