ComfyUI Node

Video Page Turn

Turn the page on your footage — a book-style flip in any of four directions

By yichengup·Created 11 months ago·Updated 11 months ago· 25
Video Page Turn
  • video1
  • video2
  • video
page_direction
total_frames60
fps30
page_curl_size0.30
perspective1200.00
use_gpufalse
batch_size5
background_color#1a1a1a
width640
height640

The page-turn transition is a bit of a throwback - it screams "presentation software" - but it's also the most physical effect in this pack. Instead of a dissolve or a flip, video1 peels up and over like a sheet of paper, curling slightly, revealing video2 underneath. If you're making a storybook-style intro, a photo album, or anything where the footage is meant to feel like printed material, this is the one. In four directions, even: right-to-left, left-to-right, top-to-bottom, and bottom-to-top.

How it works

Chromium branch: video1 and video2 are baked onto two "pages" in a CSS 3D transform scene, and headless Chromium (Playwright) animates the page turning with a real curl - page_curl_size controls how far the lifted corner peels. The perspective input (800–2000) drives how much depth the turn has. README calls it "pure Python batch optimization"; the source is the usual Playwright-launching Chromium node, so trust the source: you need the browser installed.

Inputs and outputs that matter

  • video1, video2 - the two clips.
  • page_direction - right_to_left, left_to right, top_to_bottom, bottom_to_top. Yes, that's a typo in the shipped enum (left_to right, missing the underscore) - it's harmless, just pick it and it works. The right-to-left default is the classic book page turn.
  • page_curl_size (0.1–0.5, default 0.3) - how aggressively the page curls as it turns. Higher = more dramatic peel, lower = flatter, more like a rigid card flip.
  • perspective (800–2000, default 1200) - the lens depth.
  • total_frames (default 60), fps (default 30) - 60 frames is a fairly long, languid page turn; trim to ~30 for snappier.
  • use_gpu, batch_size, background_color, width/height (capped at 1920×1080).

Output is video - an IMAGE batch; wire it to VHS_VideoCombine or ImageBatch to export.

Installing it

Same pack. ComfyUI Manager → "VideoTransition", or:

cd ComfyUI/custom_nodes
git clone https://github.com/yichengup/ComfyUI-VideoTransition
cd ComfyUI-VideoTransition
pip install -r requirements.txt
playwright install chromium

Chromium is required despite the README's "pure Python" billing.

Common issues

  • Missing Chromium crash - install the browser (playwright install chromium, mirror flag behind the GFW).
  • Looks like a rigid flip, not a page - raise page_curl_size toward 0.4–0.5; at 0.1–0.2 it's basically a card turn.
  • Turn too slow - 60 frames at 30fps is two full seconds of page turning, which drags. Drop total_frames to 30–40.
  • Page bottom looks like a black slab - the background_color shows beneath the peeling page; set it to something that matches your scene.
CategoryVideoTransition

Inputs (12)

NameTypeDefaultDescription
video1IMAGE
video2IMAGE
page_directionCOMBO4 options: right_to_left, left_to right, top_to_bottom, bottom_to_top
total_framesINT604–300
fpsINT3015–60
page_curl_sizeoptFLOAT0.300.1–0.5
perspectiveoptFLOAT1200.00800–2000
use_gpuoptBOOLEANfalse
batch_sizeoptINT51–20
background_coloroptSTRING#1a1a1a
widthoptINT640320–1920
heightoptINT640240–1080

Outputs (1)

NameTypeDescription
videoIMAGE