Skip to content
OMNI Labs
WorkLookbookMusicJournal
TalentMethodCertificationWardrobe
BuildAutomationEmbodimentAutonomyPen
Contact
Creative AI Production Studio
OMNI Labs
01Home02Work03Lookbook04Music05Journal
StudioTalentMethodCertificationWardrobe
LabBuildAutomationEmbodimentPen
06Contact
hello@omnilabs.studioIstanbul · Global

Start a project →

© OMNI Labs · Creative AI Production Studio

← Journal
  1. Home
  2. Journal
Cost & Workflow

On-Screen Text in AI Ad Films: Why We Composite It

Generated text fails; every title, legal row, and disclaimer is composited in code using Remotion, precise typography metrics, and safe zone rules.

OMNI Labs5 Aug 2026Updated 26 Oct 2026

Synthetic model Vaelara Soryn holding a smartphone in a draped silk gown against an illuminated luxury archive in an AI ad film

On this page

  1. Remotion compositing mandates and the Fontconfig failure
  2. Legal typography metrics and background band rejections
  3. Social platform chrome safe zones and opacity auditing
  4. Remotion runtime traps: fonts, interpolation, and overscan
  5. Audio rebuilding, timing verification, and glassmorphism

Key takeaways

  • Any on-screen text or mandatory disclaimer requirement forces the production timeline into Remotion.
  • ffmpeg drawtext fails on local Windows workstations due to unhandled Fontconfig runtime errors.
  • The legal row lands at the bottom edge at 32 px with 13.5 px type and logo height 42 px without background bands.
  • Instagram chrome on 1080x1916 frames requires corner logos below y=250 and bottom 400 px clear for captions.
  • Image-to-video source clips require a 2% overscan (scale to 1102x1959, center-crop to 1080x1920) to remove white edges.

Remotion compositing mandates and the Fontconfig failure

Rule: any on-screen text, including the mandatory disclaimer, forces the reel into Remotion. ffmpeg drawtext is not a fallback on our machine; it fails with a Fontconfig error.

In commercial video advertising, typography conveys critical brand identity, campaign messaging, and mandatory regulatory compliance disclosures. Relying on generative video models to render on-screen text directly produces illegible, vibrating letterforms that violate brand standards. Furthermore, attempting to burn in text using automated shell utilities like ffmpeg drawtext fails on local Windows development environments due to missing Fontconfig library dependencies. Consequently, our studio enforces an absolute rule: any project requiring on-screen typography must be composited programmatically within Remotion.

Every source clip is upscaled before it enters the timeline. Our default is ArtPlayer Fast at 2x, about 2 minutes per clip. We use Fast, not Quality, for photoreal footage because Quality over-sharpened skin and fabric into plastic.

Source media must be pre-processed before timeline assembly. Raw generative video clips are upscaled 2x using ArtPlayer Fast, requiring approximately 2 minutes of compute per take. Our testing demonstrated that the Quality tier over-sharpens dermal textures and textile weaves into synthetic plastic, whereas Fast preserves authentic filmic softness.

Legal typography metrics and background band rejections

The legal line sits on the bottom edge at about 32 px with 13.5 px text and no background band. A 0.9-opacity black strip placed mid-frame over the product was rejected in review.

Integrating compliance disclosures into luxury commercial films requires delicate graphic calibration. During creative reviews, an initial proposal featuring a 0.9-opacity black banner running across the lower third was rejected for obscuring hero product geometry. In our refined layout, the legal disclaimer sits cleanly along the bottom margin at an offset of approximately 32 px, rendered in 13.5 px typography directly over video without an opaque container.

Remotion typography compositing specifications and safe zone rules · measured 4 Aug 2026
Graphic ComponentFrame CoordinatesTypography / Scale SpecificationStudio Production Protocol
Legal Disclaimer RowBottom margin offset ~32 px13.5 px text, side margins 40 pxLogo height 42 px (30 illegible; 46 orphans words)
Instagram Safe Zones1080x1916 vertical canvasCorner logo at top 268 (below y=250)Keep bottom ~400 px clear for captions and UI
Timeline NormalizationImage-to-video source clipsScale 1102x1959, center-crop 1080x19202% overscan eliminates white generative edge lines
Video Upscaling PassPrior to timeline assemblyArtPlayer Fast at 2x (~2 min/clip)Fast avoids plastic over-sharpening from Quality tier
Overlay Opacity AuditMid-composition defaultVerify opacity equals 1.0 (not 0.44)Frame 235 of 242-frame cut showed 0.44 fade opacity
Measured on 2026-08-04; any on-screen text forces timeline into Remotion.

The landed legal row on a 1080-wide frame: logo height 42, text 13.5 px, side margins 40. At logo height 30 the wordmark was illegible; at 46 the text wrapped and orphaned a word.

Balancing wordmark scale against accompanying text requires sub-pixel precision. On a standard 1080-pixel wide vertical canvas, fixing logo height at 42 px paired with 13.5 px text and 40 px side margins creates a balanced row. Shrinking the logo to 30 px rendered the brand mark unreadable on mobile screens, while enlarging it to 46 px forced text to wrap onto a secondary line, creating an unsightly orphaned word.

Social platform chrome safe zones and opacity auditing

Instagram chrome on a 1080x1916 frame: keep the corner logo below y=250 (we landed it at top 268). The bottom ~400 px holds the caption and action rail.

Designing for mobile social distribution requires respecting platform interface overlays. When rendering vertical video for Instagram Reels at 1080x1916, top-level account headers and audio indicators obscure content above y=250. Our layout anchors corner brand marks at top 268 px to ensure visibility beneath platform navigation. Similarly, the lower 400 px of the screen must remain free of vital narrative action to prevent overlap with user comments, captions, and engagement icons.

A still taken at frame 235 of a 242-frame composition showed the disclaimer at 0.44 opacity. Before judging an overlay, compute its opacity at that frame and pick one where it is 1.0; mid-composition is the safe default.

Evaluating graphic legibility requires verifying timeline keyframe states. During QA review, a test still extracted at frame 235 of a 242-frame cut revealed the disclaimer rendered at only 0.44 opacity because a fade-out curve had already initiated. Quality control audits must inspect frames during peak hold states where opacity equals 1.0.

Remotion runtime traps: fonts, interpolation, and overscan

loadFont with no arguments pulled every weight and subset and timed the render out. We scope weights and subsets explicitly.

Unoptimized web font loading can stall headless rendering pipelines. In Remotion, calling loadFont without parameters causes the script to download every available font weight and regional language glyph set, causing render processes to exceed CI/CD timeout thresholds. Studio code must explicitly scope font requests to utilized weights and subsets.

Remotion interpolate needs a strictly increasing inputRange. A fade whose first keyframe is 0 crashes; we hand-roll piecewise opacity for simple fades.

Animation functions enforce strict mathematical constraints. Remotion's interpolate utility requires strictly increasing numeric values across input ranges; passing duplicate zero values causes runtime crashes. For simple linear fades, our engineers implement hand-rolled piecewise opacity calculations.

White edge lines on image-to-video clips are removed at normalize time with a roughly 2% overscan: scale to 1102x1959, center-crop to 1080x1920.

Generative video outputs frequently display white edge seam artifacts along canvas borders. During clip normalization, our pipeline applies a 2% overscan, scaling clips to 1102x1959 and center-cropping to 1080x1920 to eliminate border defects.

Audio rebuilding, timing verification, and glassmorphism

Remotion renders silent. The audio mix is rebuilt after every trim change, padded and trimmed to the composition's exact duration.

Remotion does not multiplex audio tracks automatically during video synthesis. Following any timeline revision, the master audio mix must be programmatically recompiled, padded with silence, and trimmed to match the exact composition length.

Clip re-timing uses setpts on a pre-speed master. Verify the frame count with ffprobe -count_frames: the duration metadata lies after PTS edits.

When altering playback velocity, container duration headers often report inaccurate timestamps following presentation timestamp (PTS) edits. Engineers must verify true frame counts using ffprobe -count_frames.

Clip-to-clip cuts use a 14-frame (0.47 s) cross-dissolve. Cards dip to black instead of overlapping, because an overlapping card puts its text over video.

Glassmorphism only reads over video, where the blur has pixels to frost. On a flat card background it looks fake.

OMNI Labs is a creative AI production studio.Everything in the Journal comes from our own productions and tests.Start a project

Related

  • Synthetic actor Maren Veldt in tennis whites outdoors on a sunlit lawn, framing a shot through a shoulder-mounted camcorder

    essay25 Oct 2026

    How an AI Ad Film Gets Made: The Studio Workflow

    From story sign-off to decoupage lint and Remotion composites, no money enters before the story passes. How our studio pipeline structures eight gates.

  • Talk-show desk with a vintage microphone and a rotary telephone in a wood-panelled 1970s studio

    test25 Oct 2026

    Local Voice Acting Speed Is Set by Layers, Not VRAM

    Eight expert layers ran at 2.5 frames per second; twenty ran at 22.1. VRAM sat near 16 GB at every setting, so memory was never the speed knob in our AI voice acting TTS runs.

  • Beauty close-up of synthetic model Milena Lindqvist: pale skin with freckles and fine texture, side-lit

    test25 Oct 2026

    Upscaling AI Video Without Plastic Skin

    The upscaler with the best sharpness score was the one a producer rejected. Here is what we tested, what each one did to faces and products, and how to check an upscale properly.