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.
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.
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 generation3D 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

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 · TTSSadTalker — 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

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 videoHonest production notes — the parts tutorials usually skip.
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 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.
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.