Video Lab · motion graphics, on-screen text and compositing

Type the words, generate the world: Remotion got all 25 on-screen words and numbers right; LTX 2.5 got 11 of 25, nailing a two-line title card but garbling the chart, the UI and the flowchart

Rated G

Four briefs that tempt people to generate (a product title, a self-drawing chart, a settings UI with a cursor, a flowchart), each made twice on one DGX Spark: as a small Remotion composition and with LTX 2.5 text-to-video. The model surprised us on the title card and fell apart on everything denser. Plus the neon sign that came out VIDDEO LAB, the still-first trick that fixed it, and the house pattern that uses both.

Listen

Narrated by Theo Lindqvist (AI voice, ElevenLabs)

Transcript

Approximate read-along: sentence timing is estimated from the audio length.

Animated HTML versus generative video. When not to generate, and how Remotion sits between them. Read by Theo Lindqvist, an AI voice. Hi, I'm Theo. This one is a rule, and the measurements behind it. Picture it like this. Everything in a video falls into one of two piles. The first pile has to be exactly right: a product name, a number on a chart, the label on a button, the boxes in a diagram, the caption under the person talking. The second pile only has to look right: a face, a room, steam coming off a mug, a street at night. A video model is very good at the second pile and unreliable at the first. Animated HTML is the opposite. We use Remotion, which takes React components, the same stuff a web page is made of, and renders them to video frame by frame. It is exact about the first pile, and it can't do the second pile at all. So the house rule is: generate the world, type the words. Here's how we checked it. We started with one prompt from our test suite: a pink neon sign on a brick wall that reads VIDEO LAB. LTX two point five, the twenty two billion parameter distilled model, made a lovely sign. It said VIDDEO LAB. Two Ds. In all twelve frames we sampled. Our reviewer gave it one out of five: a misspelled title sign can't ship in any cut. Here's the twist. We had also made a still image of that sign first, with Z-Image Turbo, and that still was spelled right. When we gave LTX the still and asked it to animate it, the words stayed right, in twelve frames out of twelve. So the model can hold onto words it is handed. It just can't be trusted to write them. Then we wrote four new briefs, the kind of thing people reach for a video model to do. A title card for a product called ORBIT LAMP, with the line "Desk light, model 2". A bar chart of weekly signups that draws itself: Monday one twenty, Tuesday one eighty, Wednesday two sixty, Thursday three forty. A settings page where a mouse cursor clicks a Dark mode toggle and the page goes dark. And a flowchart that builds: Script, Voice, Video, Publish. We made each one twice. Once as a small Remotion composition, about fifty to eighty lines of code, with the words and the numbers kept in a data file. And once with LTX two point five, text to video, seed forty two, the same settings as the rest of the suite. Remotion got all twenty five of the words and numbers right, because it draws exactly what is in the data and nothing else. LTX got eleven of the twenty five. And six of those eleven were the title card, which it got completely right: ORBIT LAMP, the pink line, "Desk light, model 2", every word. That surprised us. Two lines of big type is about the friendliest text a video model will ever see. The rest is what motion graphics usually look like, and there it fell apart. The chart title came out "Weelky sigups", with seven bars instead of four and a number we never asked for: three of ten. The settings page was a list of made up words, and it never clicked anything; the screen just dimmed: two of five, and generous at that. The flowchart said Spipt, Vicre, Vidce, Bubil, Pulish: zero of four. Now the cost, because that's the other half. Each finished five second Remotion clip took about seven to eight seconds of wall time on the CPU, and fourteen for the very first render of the session. That's around one and a half seconds per second of video, and it ran while the GPU was busy with a different job. LTX took between fourteen and twenty seconds of GPU time for every second of video. And when we changed one word in the title card's subtitle, "model 2" to "model 3", the re-render took nine seconds. To change one letter in a generated clip, you generate the whole clip again, and then you check every frame again. Does that make the video model the loser? No. Same model, same run, same settings: a matte black mug with steam curling in window light scored four out of five. A lighthouse on a cliff, four. A cartoon fox, five out of five. Remotion can't make any of those. Products, places, motion and mood come from the model. So we use both. The last shot of the film on this page is two generated clips of that mug, untouched, with a Remotion title and a name plate on top. The two clips took about seventy five seconds of GPU each. The type took fourteen seconds of CPU for the ten second shot, and it can change any time without touching the GPU. Here's the trick, written as a checklist. If a viewer has to read it, make it in Remotion: titles, lower thirds, captions, charts, diagrams, user interfaces. If it has to look real, generate it. If words have to live inside a real looking scene, like a sign on a wall or a label on a bottle, make a still first, check the spelling yourself, then animate the still. Then put the two together in the edit. One honest limit. Every generated brief ran on one seed. A few more seeds would tell us how often the title card comes out right. We didn't spend the GPU on it. The question that matters is whether we can count on it. One clean title next to a misspelled sign, a wrong chart, a fake UI and a garbled diagram says we can't. The interactive player on this page has the four compositions running live in your browser. Change the product name, change the chart numbers, and watch it redraw. Does that make sense? Good. That's the whole point.

The short film (49 s): the same four briefs side by side, Remotion on the left and LTX 2.5 on the right, each with its measured cost and a words-right count, then a generated plate with Remotion type on top. Music: ElevenLabs Music, AI-generated.
Prompt and settings

Settings: Remotion HtmlVsGen composition, 1920x1080, 30 fps; left panels are the live LabTitle/LabChart/LabSettings/LabFlow compositions, right panels are tests 195-198 untouched; composite plates tests/012 and 022

Instructional: Daisy Lane and Ama Boateng (AI hosts, AI voices) on when not to generate, the four briefs side by side, what each cost, and the plate-plus-type pattern.
Prompt and settings

Settings: Hosts: LTX 2.5 image+audio from each host's on-set still, 1280x704, one seed (42), ElevenLabs eleven_v4 cast voices, 54.6 s on camera. Lip-sync on our pause count: mouth closed at about 6 of 19 short pauses (0.36-0.56 s each); the sync is loose at the pauses. Panels: house Remotion templates.

The four briefs in Remotion: title card, self-drawing chart, settings UI with a cursor, flowchart. 25 of 25 words and numbers right; 7.1 to 7.7 s of CPU for each 5 s clip (14.2 s for the first render of the session). Audio: a quiet slice of the same AI-generated music bed (ElevenLabs Music).
Prompt and settings

Settings: bin/render-remotion, Remotion 4.0.539, chrome-headless-shell 154 aarch64, --gl=angle, concurrency 10, 1920x1080 30 fps, 150 frames each; props in the post folder's props/

The same four briefs from LTX 2.5 text-to-video, untouched, in a 2x2 mosaic (top left title, top right chart, bottom left settings UI, bottom right flowchart). Title card 6/6 words right; chart 3/10 ("Weelky sigups"); UI 2/5 (pseudo-text); flowchart 0/4 (Spipt, Vicre...). 14.3 to 19.7 s of GPU per second of video. Audio: a quiet slice of the same AI-generated music bed (ElevenLabs Music).
Prompt and settings

Prompt: P11: An animated title card on a plain dark background: the words ORBIT LAMP slide in letter by letter in bold white sans-serif capitals, a thin pink line draws itself underneath, then the smaller subtitle Desk light, model 2 fades in below. Clean motion graphics, static camera, no other objects. P12: An animated bar chart on a dark background: four pink bars labelled MON, TUE, WED and THU grow upward from a white baseline to the values 120, 180, 260 and 340, each number printed above its bar, with the title Weekly signups at the top. Clean motion graphics, static camera. P13: A screen recording of a simple web app settings page: a left sidebar with the items General, Account and Billing, and a toggle switch labelled Dark mode. A mouse cursor moves to the toggle and clicks it, and the whole page switches from light to dark. Flat UI, crisp text, static camera. P14: A flowchart builds on a dark background: rounded boxes labelled Script, Voice and Video appear one at a time from left to right, joined by arrows that draw themselves, then a fourth box labelled Publish appears at the end. Clean motion graphics, static camera.

Settings: LTX 2.5 22B distilled int8, text-to-video, 1280x704, 121 frames at 24 fps, 2 stages (8 steps + 2x latent upscale + 3 steps), CFG 1.0, seed 42; tests 195-198

Text-to-video asked for a neon sign reading VIDEO LAB and wrote VIDDEO LAB, in all 12 sampled frames. Scored 1/5 overall. 72.1 s wall, 14.3 s of GPU per second of video.
Prompt and settings

Prompt: A pink neon sign on a dark brick wall that reads VIDEO LAB in bold capital letters flickers twice and then glows steadily, soft pink light spilling onto the bricks. Static camera, night, photorealistic.

Settings: LTX 2.5 22B distilled int8, t2v, 1280x704, 121 frames, seed 42 (tests/016-ltx25_t2v-P06-s42)

Same model, same prompt, started from a Z-Image Turbo still that already said VIDEO LAB: correct in all 12 sampled frames. Scored 4/5 overall. 84.1 s wall, 16.7 s/s.
Prompt and settings

Prompt: A pink neon sign on a dark brick wall that reads VIDEO LAB in bold capital letters flickers twice and then glows steadily, soft pink light spilling onto the bricks. Static camera, night, photorealistic.

Settings: Z-Image Turbo still (8 steps, 9.0 s, tests/006) then LTX 2.5 i2v at image strength 1.0, 1280x704, 121 frames, seed 42 (tests/026-ltx25_i2v-P06-s42)

The house pattern: two generated plates (the P02 mug, text-to-video then image-to-video, untouched) with a Remotion title and lower third on top. The type rendered in 13.9 s of CPU for the 10 s shot. Audio: a quiet slice of the same AI-generated music bed (ElevenLabs Music).
Prompt and settings

Settings: Remotion LabComposite, 1920x1080 30 fps; plates tests/012 (75.1 s GPU) and tests/022 (78.1 s GPU)

One of the plates on its own: LTX 2.5 text-to-video, the P02 product prompt. Scored 4/5 overall; clean push-in and steam. This is the kind of shot to generate.
Prompt and settings

Prompt: A matte black ceramic coffee mug on a walnut table, thin steam rising and curling in a shaft of morning window light. The camera pushes in slowly toward the mug. Nothing else moves. Photorealistic, 85mm lens look, warm light.

Settings: LTX 2.5 22B distilled int8, t2v, 1280x704, 121 frames, seed 42 (tests/012-ltx25_t2v-P02-s42), 75.1 s wall, 14.9 s/s

Edit the four briefs liveThe Remotion compositions running in your browser: change the product name, the chart values, the UI labels or the diagram boxes and they redraw at once. Beside each, the LTX 2.5 clip for the same brief, which can only change by generating again.

Verdict

If a viewer has to read it, render it in Remotion and put it over the generated shot. On four briefs Remotion got all 25 named words and numbers right, at 7.1 to 14.2 s of CPU per 5-second clip. LTX 2.5 text-to-video got 11 of 25, at 14.3 to 19.7 s of GPU per second of video. LTX did better than we expected on the simplest brief: it spelled a two-line title card (ORBIT LAMP, "Desk light, model 2") exactly right on its one seed. On the rest it wrote "Weelky sigups" with invented numbers on the chart, pseudo-text on the UI, and Spipt, Vicre, Vidce on the flowchart. Earlier in the same run it wrote VIDDEO LAB on a neon sign, so one good title is not something to build on. Use the video model for products, places, motion and mood: the mug, lighthouse, cartoon fox and night street scored 4 or 5 out of 5 in the same suite. When text has to live inside a photographic scene, generate a still, check the spelling, and animate the still: that took the VIDEO LAB sign from misspelled in 12 of 12 frames to correct in 12 of 12.

Credits and settings

WorkflowAnimated HTML (Remotion) vs generative video (LTX 2.5) for on-screen text, charts, UI and diagrams
MakerRemotion (remotion.dev); Lightricks (LTX 2.5)
VersionRemotion 4.0.539 + React 19.3.1 (chrome-headless-shell 154, aarch64) vs LTX 2.5 22B distilled int8, t2v/i2v, 1280x704, 2-stage 8+3 steps, CFG 1.0, ComfyUI 0.43.0
What it doesmotion graphics, on-screen text and compositing
LicenseRemotion License (free for individuals and companies of up to 3 people; Company License above that); LTX-2.x Community License (LTX 2.5); Apache-2.0 (Z-Image Turbo)
HardwareDGX Spark: NVIDIA GB10, ARM (aarch64), 20 CPU cores, 128 GB unified memory (121.7 GiB MemTotal). Remotion renders ran on the CPU outside the GPU lock while an LTX job held the GPU; LTX ran in ComfyUI 0.43.0, PyTorch 2.11.0+cu130, through the run's one-job-at-a-time queue.
Speed1.5 s of compute per second of video. Remotion at 1920x1080 30 fps: CPU wall time per second of finished video, median of the four 5 s compositions (7.1, 7.3 and 7.7 s, and 14.2 s for the first render of the session). LTX 2.5 t2v on the same briefs at 1280x704: 14.3 to 19.7 s of GPU per second.
Tested onNov 2, 2026
AI hosts

Daisy Lane (AI host; AI voice)

Ama Boateng (AI host; AI voice)

Narration
Theo Lindqvist (AI voice, ElevenLabs)
Music source
Not supplied

What it does well

  • Exact: every word and number in the props is what renders, 25 of 25 across the four briefs on the finished frame (the chart's counters land exactly on their values)
  • Cheap: 7.1 to 7.7 s of CPU wall time for a finished 5 s 1080p composition (14.2 s for the first render of the session), outside the GPU lock
  • Editable: changing one word of a subtitle and re-rendering took 9.1 s; the same components run live in the player on this page
  • Composites cleanly over generated plates: a 10 s shot with a title and a lower third over two LTX clips rendered in 13.9 s
  • Image-to-video from a checked still fixes text inside a scene: VIDEO LAB correct in 12 of 12 frames (tests/026, 4/5 overall)
  • LTX 2.5 can spell a short, large title: ORBIT LAMP and "Desk light, model 2" came out exactly right on seed 42 (tests/195, 4/5 overall)

Where it breaks

  • Remotion can't make a face, a place or believable motion; it draws text, shapes, SVG and the media you hand it
  • Someone has to write each composition: 49 to 82 lines of TypeScript per brief here (authoring time not measured)
  • LTX 2.5 text-to-video misspells on-screen text: VIDDEO LAB in all 12 sampled frames (tests/016, 1/5 overall), and the negative prompt does nothing at CFG 1.0
  • LTX 2.5 text-to-video garbled the dense briefs: "Weelky sigups" and invented values on the chart (3/10, tests/196), pseudo-text UI with no click (2/5, tests/197), Spipt/Vicre/Vidce/Bubil/Pulish on the flowchart (0/4, tests/198)
  • LTX adds marks nobody asked for: a well-known fruit logo on a laptop (tests/018), a sportswear swoosh on a hoodie (tests/024)
  • Each generated brief ran on one seed (42); how often LTX gets a word right by luck is not measured
  • Remotion is free only for individuals and companies of up to 3 people

The short version

Some things in a video have to be exactly right: a product name, a number on a chart, the label on a button, the boxes in a diagram, the caption under a speaker. Some things only have to look right: a face, a room, steam coming off a mug, a street at night. Generative video is great at the second list and unreliable at the first: in this run it spelled one short title perfectly and garbled everything denser. Animated HTML (we use Remotion, which renders React components to MP4) is exact at the first list and can't do the second at all.

So we stopped trusting the video model to write. The house pattern is: generate the plate (the background shot), type the words on top in Remotion. This post is the evidence for that rule, with the four briefs that tempt people to generate anyway.

The decision table

Every number here comes from a file in the run folder; the file is named in the last column. "Words right" is a count of the words the brief names, read off the last frame and checked against all 12 frames of the contact sheet. "s/s" is seconds of compute per second of finished video; "t2v" is text-to-video, "i2v" is image-to-video.

JobUseRemotion (CPU)LTX 2.5 (GPU)Where the numbers come from
Title card with a product name (P11)Remotion6/6 words right; 14.2 s wall for 5 s (first render of the session)6/6 words right; 81.1 s wall, 16.1 s/srender-remotion.log; tests/195 timing.json, verdict.md
Chart that draws itself (P12)Remotion10/10 labels and values right; 7.3 s wall3/10 right; 99.1 s wall, 19.7 s/srender-remotion.log; tests/196
UI with a cursor and a click (P13)Remotion, or a capture of the real app5/5 words right; 7.1 s wall2/5 right; 72.1 s wall, 14.3 s/srender-remotion.log; tests/197
Diagram that builds (P14)Remotion4/4 boxes right; 7.7 s wall0/4 right; 72.1 s wall, 14.3 s/srender-remotion.log; tests/198
A sign or a label that lives inside a photographic scene (P06, "VIDEO LAB" neon)A still with the text checked, then image-to-videon/aText-to-video wrote VIDDEO LAB: 1/2 words right in 12/12 frames, 72.1 s wall, 14.3 s/s. A Z-Image Turbo still spelled it right (9.0 s), and LTX image-to-video from that still kept VIDEO LAB in 12/12 frames: 2/2, 84.1 s wall, 16.7 s/s, scored 4/5 overalltests/016, 006, 026 (timing.json, verdict.md)
Lower thirds and captionsRemotion (house LowerThird and Captions templates, word timing from the ElevenLabs alignment)the 10 s composite below, with a title and a lower third over two generated plates: 13.9 s wallnot tested separatelyrender-remotion.log
Product and object shots (P02 mug)LTX 2.5, text-to-video or image-to-videon/a4/5 overall both ways; 75.1 s wall (14.9 s/s) t2v, 78.1 s (15.5 s/s) i2vtests/012, 022 verdict.md
Places, camera moves, mood (P03 lighthouse, P09 night street)LTX 2.5 (image-to-video when it matters)n/aP03 4/5 t2v and i2v; P09 3/5 t2v, 4/5 i2v; 14.3 to 16.1 s/stests/013, 023, 019, 029
Stylized characters (P07 cartoon fox)LTX 2.5 image-to-video from a stilln/a5/5 overall, 84.2 s wall, 16.7 s/stests/027
Faces and talking hostsLTX 2.5 image+audio (InfiniteTalk not tested here), then Remotion for the name plate and captionsn/anot scored in this post; the instructional's hosts are LTX 2.5 image+audioqa/hosts-gate.md

Two numbers to hold onto. A finished 5-second Remotion composition took 7.1 to 7.7 seconds of wall time on the CPU (1.4 to 1.5 s per second of video, including the browser launch and the encode, outside the GPU lock); the first render of the session took 14.2 s. LTX 2.5 at 1280x704 took 14.3 to 19.7 seconds of GPU per second of video on the same four briefs, and got 11 of the 25 named words right where Remotion got 25 of 25. Six of those eleven were the title card.

The four briefs

We wrote four prompts in the style of P06 (text on screen) and P02 (a product shot), the kind of thing people reach for a video model to do: a title card for a product called ORBIT LAMP, a bar chart of weekly signups (MON 120, TUE 180, WED 260, THU 340), a settings page where a cursor clicks a Dark mode toggle, and a flowchart that builds Script, Voice, Video, Publish. They are P11 to P14 in the run's prompt file, added on Nov 2 as new ids.

Then we made each one twice. Once as a small Remotion composition (49 to 82 lines of TypeScript each, data in the props, so the product name or the chart values are a JSON edit). Once with LTX 2.5 22B distilled, text-to-video, seed 42, at the suite's fixed settings.

What came back:

  • Title card. Remotion: ORBIT LAMP slides in letter by letter, the pink line draws, "Desk light, model 2" fades in, and every word is spelled exactly as written once it has appeared. LTX: all six words right: ORBIT LAMP, the pink underline and "Desk light, model 2", spelled exactly from the frame each appears to the end. The words fade in whole rather than letter by letter, but on this seed the text is correct. Scored 4/5 overall (tests/195 verdict.md).
  • Chart. Remotion: four bars grow in order and each number counts up to its exact value. LTX: the title reads "Weelky sigups", there are no day labels at all, and it drew seven bars instead of four, tagged 120, 120, 180, 180, 360, 360, 340: 260 never appears and 360 was invented. 3 of 10 named words and numbers, and the bar heights don't match their own tags. 1/5 overall.
  • Settings UI. Remotion: the cursor travels to the toggle, the click lands on frame 78, the page eases to dark over 12 frames. LTX: a light list of pseudo-text ("Genarst Billing.", "Arrcout,", "Dar1 Bimode"), no sidebar, no toggle labelled Dark mode and no click; the whole frame just dims after 2.5 s. Only "Billing" and "Dark" appear spelled right, and only inside nonsense labels. 1/5 overall.
  • Flowchart. Remotion: each box lands, then its arrow draws itself before the next box. LTX: the boxes do pop in left to right, but they read Spipt, Vicre, Vidce, Bubil and Pulish, five boxes for a four-box brief. 0 of 4. 1/5 overall.

The title card surprised us. Two short lines of large type, about the friendliest text a video model can be asked for, and LTX spelled every word right, drew the pink line and faded the subtitle in. If the only brief had been that one, this post would have a different headline. The other three are what most motion graphics actually look like (a chart with ten labels, a UI with five, a diagram with four short words), and there it produced "Weelky sigups", pseudo-text and Spipt. One seed each, so we can't say how often the title comes out right; we can say we wouldn't ship a product name without checking every frame, and at that point the Remotion version is already rendered.

The P06 neon sign is the cleanest single example from the suite. Asked for a sign that reads VIDEO LAB, text-to-video wrote VIDDEO LAB in every one of the 12 sampled frames, sharp and confident and wrong. Our reviewer scored it 1/5 overall: "A misspelled title sign cannot ship in any cut" (tests/016, verdict.md). Handed the words, the same model kept them: image-to-video from a Z-Image still that already said VIDEO LAB kept both words in all 12 frames (tests/026). So when text has to live inside a photographic scene (a sign on a wall, a label on a bottle), make the still, check the spelling with your own eyes, then animate it.

The model also writes when nobody asked. On the suite's robot mascot prompt it put a well-known fruit logo on the laptop lid (tests/018), and on the skateboard prompt a sportswear swoosh on the hoodie (tests/024). Remotion draws exactly what's in the props and nothing else.

Where generation wins

None of this makes the video model the loser. The same suite at the same settings gave us a clean product push-in with curling steam (tests/012 and 022, 4/5 both), an establishing shot of a lighthouse (tests/013 and 023, 4/5), a cartoon fox that held its style for five seconds (tests/027, 5/5), and a night street with a crowd (tests/029, 4/5 from a still). Remotion can't make any of those. It draws rectangles, text, SVG and whatever images and video you give it. Products, places, motion and mood come from the model.

The house pattern: both

The composite at the end of the film is two generated plates (the P02 mug, t2v and i2v, untouched) with a Remotion title and a lower third on top. The plates cost 75.1 and 78.1 seconds of GPU. The type cost 13.9 seconds of CPU for the 10-second shot, and changing it is a props edit and another CPU render. We tried that: changing "model 2" to "model 3" in the title card and re-rendering took 9.1 seconds. Getting a different spelling out of the video model means another full generation and another look at every frame.

Every Video Lab instructional already works this way: the cast host is generated (LTX 2.5 image+audio) and the name plate, captions, diagrams and score sheets are Remotion.

How we tested

  • Remotion side. Four new compositions (LabTitle, LabChart, LabSettings, LabFlow), plus LabComposite for the plate-and-type shot and HtmlVsGen for the split-screen film. 1920x1080, 30 fps, 150 frames (5 s, the length of an LTX clip). Rendered one at a time with the run's bin/render-remotion (Remotion 4.0.539, chrome-headless-shell 154 for aarch64 with --gl=angle, H.264, concurrency 10). The wall time it prints covers the browser launch and the encode; the first render of the session took 14.2 s against 7.1 to 7.7 s for the next three (most likely the cold bundle cache; not measured separately). MemAvailable was 19 to 25 GiB at each render's start (an LTX job was running on the GPU at the same time, under its own lock).
  • Generative side. LTX 2.5 22B distilled int8, text-to-video, 1280x704, 121 frames at 24 fps, two stages (8 steps at half size, 2x latent upscale, 3 steps), CFG 1.0, seed 42, one job each through the run's queue and bin/run-test (tests 195 to 198). Same graph, same settings as the suite's P01 to P10.
  • Scoring. The methodology's 1 to 5 rubric on a 12-frame contact sheet per clip, written up in each test's verdict.md. Words were counted on the last frame and checked across all 12 sheet frames; a word counts only if it is spelled exactly as the brief has it.
  • One seed. Each generated brief ran once (seed 42). The P06 result (one seed, one misspelling) and the three dense briefs agree, the title card is the exception, and the Oct 31 LTX review found pseudo-text on every label that appeared in its ten clips. More seeds would put a number on how often it gets lucky; we didn't spend the GPU on it.

Setup and gotchas

  • Remotion can only load files from its public folder or a URL. The run's bin/render-remotion hard-links local clips into remotion/public/_assets/ and rewrites the props for you. In the embedded player on this page the clips load from the media bucket by https URL.
  • A cross-fade between two video plates fades over black if the first plate's <Sequence> has already ended. Our first composite render had a black frame at the cut; the fix was a hard cut (or overlap the two sequences by the fade length).
  • Freeze is how you hold a frame. The split-screen film plays both sides for 150 frames, then holds the last frame under the verdict. <Freeze frame={n}> around the HTML panel and the <OffthreadVideo> holds both.
  • Scale a 1920x1080 composition into a smaller cell with a CSS transform, not by re-laying it out: the HTML panel in the film is the same component at scale(0.448).
  • Autoplay is not guaranteed in an embedded player. Headless Chrome (and some browsers) won't autoplay without a click, and our chart starts empty at frame 0. The player opens on frame 120, so a paused player still shows the finished chart.
  • The negative prompt can't save you. LTX 2.5 distilled runs at CFG 1.0, where the negative prompt has no effect (Oct 31 review), so "no text" and "correct spelling" are wishes (CFG is how strongly the model follows the prompt over the negative; the distilled model runs at 1.0).
  • License. Remotion is free for individuals and companies of up to three people; a bigger company needs a Remotion Company License (LICENSE.md). LTX 2.5 is under the LTX-2 Community License, free under $10M revenue.

Settings

  • Remotion compositions: remotion/src/lab/ (LabTitle, LabChart, LabSettings, LabFlow, LabComposite, HtmlVsGen), registered in src/Root.tsx. Props for every render are in the post folder's props/.
  • Render: bin/render-remotion <Composition> <props.json> <out.mp4>; concurrency 10, --gl=angle, JPEG frames, H.264, then a -c copy -movflags +faststart remux.
  • LTX: ltx_i2v job kind in t2v mode, w 1280, h 704, frames 121, seed 42, prompts P11 to P14 verbatim (in each sample's "Prompt and settings").
  • The player on this page: src/lab/player-lab.tsx, bundled to one HTML file with esbuild (src/lab/build-lab-player.mjs), 624 KB.

Speed and memory

RenderOutputWall timeWall s per s of videoSource
Remotion LabTitle (first of the session)5.0 s, 150 f, 1080p14.2 s2.8render-remotion.log
Remotion LabChart5.0 s7.3 s1.5render-remotion.log
Remotion LabSettings5.0 s7.1 s1.4render-remotion.log
Remotion LabFlow5.0 s7.7 s1.5render-remotion.log
Remotion LabTitle after a text edit5.0 s9.1 s1.8render-remotion.log
Remotion LabComposite (two plates + type)10.0 s13.9 s1.4render-remotion.log
Remotion HtmlVsGen film, layout preview49.0 s, 1470 f48.7 s1.0render-remotion.log
LTX 2.5 t2v, P11 title5.04 s, 121 f, 704p81.1 s16.1tests/195 timing.json
LTX 2.5 t2v, P12 chart5.04 s99.1 s19.7tests/196
LTX 2.5 t2v, P13 UI5.04 s72.1 s14.3tests/197
LTX 2.5 t2v, P14 diagram5.04 s72.1 s14.3tests/198
LTX 2.5 t2v, P06 sign5.04 s72.1 s14.3tests/016

The Remotion numbers are CPU wall time on the Spark's 20 cores while an LTX job held the GPU; Remotion's memory use was not measured. The LTX numbers are GPU wall time per test. Tests 195 and 196 each ran right after image-model jobs on the same server (logs/gpu-queue.log), so their 81.1 s and 99.1 s may include reloading LTX; 196 started with 68 GiB available against 33 to 43 GiB for the other three, which fits a reload. 197 and 198 ran back to back at 72.1 s each. How much of the extra time was loading was not measured. The lowest MemAvailable during the four briefs was 32 GiB (timing.json of tests 195 to 198: 32, 39, 39, 37). The two columns are the same kind of number (wall seconds per second of finished video on one box) measured on different hardware: the Remotion renders ran on the CPU beside the GPU queue without waiting for it.