Every Premium video Skill, one plan. Cancel anytime.See plans

Handmade stage film: Molly Tea's Halloween drink in seven photos

0:18 · 9:16

Rendered by the Handmade Stage Film Skill
Prompt
Turn our seven Halloween campaign photos into an 18-second brand film for TikTok: Halloween night, nothing on TV, a ghost climbs out of the screen and goes after her Magic Pretty Water (gardenia, berries, yogurt), and one sip later she's sitting on a giant witch's hat. End on the Molly Tea wordmark, the cup, "Halloween limited" and "Now in US · CA · UK · TH · AU".

Notes

Made by the Skill for an official collaboration with Molly Tea, from seven of the brand's own Halloween campaign photos: each still was extended to 9:16 with Nano Banana 2 and its original pixels laid back on top, five were brought to life with Kling 2.5 Turbo, and the ghost, stars, flower, berry, potion and cup were cut out of the photos as puppets (about $2.50 in model usage). The stepped stop-motion playback, puppets, captions, sound and last card were rendered with headless Chrome and FFmpeg.

Input file
{
  "reel": "assets/stage-reel.mp4",
  "shots": [
    {
      "from": 0,
      "to": 0.583,
      "speed": 0.5,
      "hold": 0.5,
      "captions": [
        {
          "text": "Halloween night.",
          "at": 0.1,
          "x": 540,
          "y": 285,
          "rot": -3
        },
        {
          "text": "Nothing on.",
          "at": 0.75,
          "x": 300,
          "y": 1180,
          "rot": 3
        }
      ],
      "sounds": [
        [
          1.3,
          "click"
        ]
      ]
    },
    {
      "from": 0,
      "to": 2.9,
      "screen": {
        "rect": [
          108,
          714,
          307,
          196
        ],
        "off": 0.08,
        "static": 0.42,
        "plate": "assets/stage-plate.webp",
        "plateAt": 1.85
      },
      "captions": [
        {
          "text": "…then something\ncame on.",
          "at": 0.6,
          "out": 1.8,
          "x": 770,
          "y": 470,
          "rot": -2
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-ghost.webp",
          "sound": "pop",
          "exit": true,
          "path": [
            [
              1.85,
              266,
              811,
              127,
              0
            ],
            [
              2,
              280,
              720,
              170,
              -8
            ],
            [
              2.25,
              500,
              560,
              260,
              10
            ],
            [
              2.5,
              760,
              430,
              300,
              -6
            ],
            [
              2.9,
              1260,
              300,
              320,
              14
            ]
          ]
        }
      ],
      "sounds": [
        [
          0.45,
          "ghost"
        ],
        [
          0.55,
          "boing"
        ],
        [
          1.3,
          "boing"
        ],
        [
          2,
          "tap"
        ],
        [
          2.2,
          "whoosh"
        ],
        [
          2.6,
          "tap"
        ]
      ]
    },
    {
      "from": 1.8,
      "to": 4,
      "captions": [
        {
          "text": "It wanted a sip.",
          "at": 0.35,
          "x": 770,
          "y": 300,
          "rot": 3
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-ghost.webp",
          "exit": true,
          "path": [
            [
              0,
              -180,
              420,
              240,
              -14
            ],
            [
              0.35,
              150,
              430,
              220,
              8
            ],
            [
              0.6,
              160,
              440,
              215,
              -4
            ],
            [
              1.3,
              150,
              425,
              215,
              6
            ],
            [
              1.55,
              300,
              400,
              240,
              -6
            ],
            [
              2.2,
              1280,
              360,
              280,
              12
            ]
          ]
        }
      ],
      "sounds": [
        [
          0,
          "whoosh"
        ],
        [
          0.6,
          "ghost"
        ],
        [
          1.55,
          "whoosh"
        ]
      ]
    },
    {
      "from": 1,
      "to": 3.8,
      "captions": [
        {
          "text": "Gardenia. Berries. Yogurt.",
          "at": 0.12,
          "x": 540,
          "y": 285,
          "rot": -2,
          "size": 60
        }
      ],
      "tags": [
        {
          "text": "berries!",
          "at": 1.35,
          "x": 905,
          "y": 1075,
          "to": [
            735,
            905
          ],
          "ink": "dark",
          "rot": -6
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-ghost.webp",
          "path": [
            [
              0,
              170,
              -220,
              200,
              0
            ],
            [
              0.3,
              170,
              860,
              200,
              -6
            ],
            [
              0.38,
              170,
              880,
              200,
              0
            ],
            [
              1.38,
              170,
              880,
              200,
              0
            ],
            [
              1.47,
              150,
              760,
              210,
              -14
            ],
            [
              1.62,
              170,
              880,
              200,
              6
            ]
          ]
        },
        {
          "image": "assets/stage-berry.webp",
          "exit": true,
          "path": [
            [
              1.38,
              720,
              870,
              40,
              0
            ],
            [
              1.47,
              770,
              700,
              100,
              -20
            ],
            [
              1.72,
              890,
              560,
              100,
              40
            ],
            [
              2,
              1000,
              720,
              90,
              90
            ],
            [
              2.3,
              1170,
              1000,
              80,
              140
            ]
          ]
        }
      ],
      "sounds": [
        [
          0.38,
          "land"
        ],
        [
          1.35,
          "stab"
        ],
        [
          1.47,
          "ghost"
        ]
      ]
    },
    {
      "still": "assets/stage-macro.webp",
      "len": 1.1,
      "box": [
        0,
        0,
        619
      ],
      "captions": [
        {
          "text": "One sip…",
          "at": 0.1,
          "x": 540,
          "y": 1450,
          "rot": -3
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.3,
              850,
              430,
              0,
              -20
            ],
            [
              0.38,
              850,
              430,
              190,
              -8
            ]
          ]
        },
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.55,
              230,
              780,
              0,
              10
            ],
            [
              0.63,
              230,
              780,
              150,
              12
            ]
          ]
        }
      ],
      "boxTo": [
        300,
        0,
        619
      ]
    },
    {
      "from": 0.3,
      "to": 2.9,
      "captions": [
        {
          "text": "…full magic.",
          "at": 0.2,
          "x": 330,
          "y": 300,
          "rot": 3
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.5,
              880,
              560,
              0,
              0
            ],
            [
              0.58,
              880,
              560,
              150,
              -12
            ]
          ]
        },
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.7,
              150,
              540,
              0,
              0
            ],
            [
              0.78,
              150,
              540,
              125,
              14
            ]
          ]
        },
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.9,
              1000,
              860,
              0,
              0
            ],
            [
              0.98,
              1000,
              860,
              165,
              -6
            ]
          ]
        },
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              1.1,
              170,
              840,
              0,
              0
            ],
            [
              1.18,
              170,
              840,
              115,
              20
            ]
          ]
        },
        {
          "image": "assets/stage-flower.webp",
          "sound": "pop",
          "path": [
            [
              1.35,
              880,
              330,
              0,
              0
            ],
            [
              1.43,
              880,
              330,
              210,
              0
            ],
            [
              2.6,
              880,
              330,
              210,
              90
            ]
          ]
        },
        {
          "image": "assets/stage-ghost.webp",
          "sound": "whoosh",
          "path": [
            [
              1.7,
              1300,
              1180,
              220,
              20
            ],
            [
              2.1,
              960,
              1190,
              220,
              -6
            ],
            [
              2.6,
              940,
              1180,
              220,
              4
            ]
          ]
        }
      ],
      "sounds": [
        [
          0,
          "sip",
          0.45
        ]
      ]
    },
    {
      "still": "assets/stage-hero.webp",
      "len": 2.1,
      "box": [
        0,
        0,
        1080
      ],
      "tags": [
        {
          "text": "Magic\nPretty Water",
          "at": 0.55,
          "x": 730,
          "y": 300,
          "to": [
            835,
            880
          ],
          "ink": "light",
          "rot": -5,
          "size": 80
        }
      ],
      "puppets": [
        {
          "image": "assets/stage-ghost.webp",
          "sound": "ghost",
          "path": [
            [
              0.3,
              -160,
              760,
              230,
              25
            ],
            [
              0.6,
              90,
              740,
              230,
              12
            ],
            [
              2.1,
              110,
              730,
              230,
              8
            ]
          ]
        },
        {
          "image": "assets/stage-star.webp",
          "sound": "pop",
          "path": [
            [
              0.95,
              980,
              1300,
              0,
              0
            ],
            [
              1.03,
              980,
              1300,
              120,
              -10
            ]
          ]
        }
      ],
      "boxTo": [
        160,
        260,
        860
      ]
    }
  ],
  "end": {
    "len": 2.9,
    "bg": "assets/stage-wall.webp",
    "wordmark": "assets/stage-wordmark.webp",
    "wordmarkY": 340,
    "wordmarkWidth": 660,
    "name": "Magic Pretty Water",
    "nameY": 520,
    "line": "Gardenia · Berry · Yogurt",
    "lineY": 622,
    "note": "Halloween limited",
    "noteY": 1400,
    "cta": "Now in US · CA · UK · TH · AU",
    "ctaY": 1510,
    "puppets": [
      {
        "image": "assets/stage-cup.webp",
        "sound": "whoosh",
        "path": [
          [
            0.15,
            -420,
            1040,
            700,
            -14
          ],
          [
            0.45,
            300,
            1010,
            700,
            5
          ],
          [
            0.55,
            330,
            1000,
            700,
            0
          ]
        ]
      },
      {
        "image": "assets/stage-ghost.webp",
        "sound": "ghost",
        "path": [
          [
            0.7,
            1240,
            900,
            220,
            20
          ],
          [
            1,
            850,
            860,
            220,
            -8
          ]
        ]
      },
      {
        "image": "assets/stage-star.webp",
        "sound": "pop",
        "path": [
          [
            0.85,
            180,
            800,
            0,
            0
          ],
          [
            0.93,
            180,
            800,
            120,
            -12
          ]
        ]
      },
      {
        "image": "assets/stage-potion.webp",
        "sound": "pop",
        "path": [
          [
            1.15,
            930,
            1210,
            0,
            0
          ],
          [
            1.23,
            930,
            1210,
            190,
            10
          ]
        ]
      }
    ]
  },
  "music": "assets/stage.m4a"
}

Built withReelity SkillNano BananaKlingHeadless ChromeFFmpeg