Case Study · Episode 01 · July 2026

How this video was made entirely with free AI

An AI-generated host, a synthesized voice, an open-source animation model and a code-built edit — the complete production pipeline behind Episode 01, from a blank page to a published video, at a total cost of zero dollars.

Runtime70 seconds
Production cost$0.00
Tools used6 — all free
HostSofia (AI avatar)
Episode 01 · rendered with Remotion, 1920×1080
Overview

Four steps, six tools, zero budget

Every asset in the video — the host's face, her voice, the animation and the edit itself — was produced with freely available AI tools, orchestrated with Claude Code.

$0Total spend
1Text prompt → one host
256pxFace render (hence the small frame)
~2hEnd-to-end production
The Pipeline

Step by step

01

The Image

Sofia began as a single text prompt describing her hair, glasses and wardrobe, generated with a state-of-the-art image model. A front-facing pose with softly parted lips was specified deliberately — it's what the lip-sync model animates best.

ChatGPT · image generation
Prompt
3D animated character portrait in modern Pixar style, a young Brazilian woman, dark brown wavy hair, gold-rimmed glasses, black turtleneck, front-facing, softly parted lips, cinematic studio lighting
Sofia, the AI-generated host
The result
Fig. 1 — one prompt in, one host out.
02

The Voice

The script was drafted collaboratively with Claude Code — structured in five beats, with pauses engineered for clean lip-sync and graphic cut-points. ElevenLabs turned it into Sofia's voice on the free tier.

Claude Code · script ElevenLabs · TTS
“Hi! My name is Sofia — welcome to my channel…”
Fig. 2 — a written script becomes a voice.
03

The Animation

SadTalker — a free, open-source lip-sync model — took the still portrait and the voiceover and animated the face: lips, blinks, micro-movements. It ran on Google Colab's free T4 GPU, with three small compatibility patches along the way.

SadTalker · lip-sync Google Colab · free GPU
Still portrait
Still photo
Animated, talking Sofia
Talking video
Fig. 3 — the same face, before and mid-sentence. Frames taken from the actual generated footage.
04

The Assembly

Claude Code wrote the entire edit as a Remotion project — the glass graphics, animated captions, the typing-prompt intro, all driven by the channel's design system in code. The final video renders locally, no editing software involved.

Claude Code · orchestration Remotion · programmatic video
The Image
The Voice
The Animation
This Video
Fig. 4 — every asset flows into a code-built edit.
Behind the Scenes

What actually broke (and the fixes)

Honest production notes — the parts tutorials usually skip.

2023 code, 2026 Python

SadTalker predates NumPy 2 and Python 3.12. Three patches were needed: a torchvision import fix in basicsr, replacing the removed np.float alias, and a ragged-array fix in its preprocessing.

The save-step crash

The first full render completed — then crashed writing the file, thanks to an outdated imageio. Upgrading it and re-running cost ten minutes. The lesson: check I/O libraries before a 30-minute GPU job.

Design around the weakness

SadTalker renders faces at 256px, which looks soft at full screen. Instead of fighting it, the edit keeps Sofia in a small rounded frame — graphics carry the video, and the limitation disappears.

Toolbox

Everything used, and what it did

ChatGPT
Avatar image generation
FREE
Claude Code
Script, orchestration, the entire edit
FREE*
ElevenLabs
Text-to-speech voiceover
FREE TIER
SadTalker
Photo + audio → lip-synced video
OPEN SOURCE
Google Colab
Free T4 GPU for the animation
FREE TIER
Remotion
Programmatic video rendering
FREE ≤3 PPL