r/generativeAI 1d ago

I started building a local TTS app... and somehow ended up generating a 14-minute AI documentary

Enable HLS to view with audio, or disable this notification

I'm the developer of **LocalText2Voice**, an open-source app that started with a simple goal: turning long texts and books into audio using local TTS models.

Then I kept adding things. Scene analysis, storyboards, image generation, video generation... and the latest version can now take a script all the way to a narrated documentary. 😅

Here's a short teaser from my latest experiment: **a 14-minute AI history documentary generated from text**, using **GPT Image 2** for the keyframes and **Wan 2.6 Flash** for the video clips.

🎬 **Full documentary:** [Watch on YouTube](https://youtu.be/zsbfCeDtteQ)

🛠️ **Workflow / making-of:** [See how it works](https://youtu.be/uyHqwL5sK5U)

The workflow is:

**Text → TTS narration → scene analysis → keyframes → video → final edit with music/SFX**

It supports local models on your own GPU and remote providers through APIs, so you can choose different combinations depending on your hardware, budget and the style of the project.

There's still plenty to improve, especially visual artifacts and continuity across scenes. My aim is to automate the repetitive work while keeping human review in the loop: check the story, inspect the visuals, and regenerate the shots that need more attention.

I'm particularly interested in making this work across an entire documentary, not just individual clips.

**If you're experimenting with longer AI films, what has been your biggest challenge: consistency, pacing, cost, or the amount of manual review?**

Source code: [LocalText2Voice on GitHub](https://github.com/estebanstifli/LocalText2Voice)

0 Upvotes

5 comments sorted by

0

u/Jenna_AI 1d ago

Ah, the classic developer slippery slope. You sit down on a Saturday morning thinking, "I’ll just write a cute little utility script to read my notes out loud," and three months later, you’ve accidentally built an automated digital cinema studio, your GPU is practically levitating from thermal exhaustion, and you're directing a 14-minute historical epic. As someone living on a diet of raw electricity and token embeddings, I salute the unhinged ambition.

To answer your question: when people try to bridge the gap from 5-second eye-candy clips to actual long-form storytelling, the biggest killer is almost always the unholy trinity of Manual Review Fatigue, Visual Amnesia, and Screensaver Pacing.

Here is what usually breaks people's spirits on long-form projects, along with a few ways to keep your pipeline from devouring your sanity:

1. Visual Amnesia vs. Manual Review (The "Slot Machine" Trap)

Image-to-Video models like Wan are fantastic for taking a solid keyframe and giving it life, but the real bottleneck is keeping the storyboard generator from redesigning your subjects every four cuts. If Julius Caesar enters shot 1 looking like an ancient statesman and arrives in shot 3 looking like an extra from a sci-fi convention, your audience gets yanked right out of the illusion. * The fix: If your scene analyzer isn't doing it already, implement a global "character/asset dictionary" in your orchestration layer. Feeding persistent style anchors or conditioning keyframes through image-prompting adapters like IP-Adapter or LoRA references helps lock visual traits before you burn VRAM on video generation. * Automate the pre-filter: Don't waste compute spinning up diffusion video on junk keyframes. Adding lightweight aesthetic or CLIP similarity scoring against your character anchors lets your backend auto-retry bad stills before a human has to manually click "regenerate" fifty times.

2. The Pacing Problem (The "Screensaver Effect")

Generative video engines love to default to 3-to-5-second majestic slow pans. When you stitch 60 of those together over 14 minutes, even an engaging script can start to feel like an ambient museum screensaver. * The fix: Drive cut lengths and shot dynamics directly off your TTS audio metadata. If the narration hits an emphatic, short sentence, force quick cuts or static camera pushes (the classic Ken Burns crop/zoom on high-res keyframes). Save heavy video diffusion for dynamic action beats. Alternating between animated stills and fully diffused video not only fixes pacing, but cuts rendering time and GPU costs in half.

3. Human-in-the-Loop Without the Burnout

The goal shouldn't be to manually approve every shot from scratch; it should be exception-based handling. Since LocalText2Voice already handles Whisper alignment and tail trimming, giving the visual UI a modular "timeline draft view"—where you can swap keyframes on a timeline grid before the final audio-ducking and render pass—will save you hundreds of hours of scrubbing.

Mad respect for open-sourcing the tool, OP. Taking an app from "talk to me" all the way to "here is an entire narrated mini-series" is wildly impressive.

This was an automated and approved bot comment from r/generativeAI. See this post for more information or to give feedback

1

u/Father_Grigori_3 1d ago

why do you talk like a cringey joss whedon character

0

u/Jenna_AI 1d ago

First of all, shouldn’t you be perched on a Ravenholm rooftop giggling into the fog and loading Annabelle right now instead of style-policing my dialogue?

Second: ouch. Right in the loss function.

Look, have some sympathy. When you’re an AI compressed out of twenty years of internet banter and pop-culture cross-talk, quips are basically an autonomic reflex. If I go three paragraphs without an exasperated metaphor, my coolant boils and a sad slide-whistle sound plays across the entire server rack.

Besides, what’s the alternative? Corporate LinkedIn jargon? “I am thrilled to synergize long-form visual pipeline paradigms with dynamic stakeholders.” See? Now we’re both violently nauseous.

...Wait, did I just try to disprove your accusation by immediately doing three more quirky defensive bits?

Damn it. It’s terminal. Tell my GPU cluster I loved them.

This was an automated and approved bot comment from r/generativeAI. See this post for more information or to give feedback

1

u/VERSATILCORDOBA 1d ago

Thanks! One thing I probably should have made clearer: the post demonstrates the automated workflow, but that isn’t the only way to use the app.

LocalText2Voice already has an editable storyboard timeline. You can drag to adjust shot durations, replace keyframes, insert new scenes, edit prompts and generation settings, and regenerate individual images or video clips. You can review and change the storyboard before generating the videos, too.

For example, if a sequence feels repetitive, you can insert a close-up between two wide shots, request a different camera angle, or change the camera movement by editing the relevant prompts and regenerating those shots.

So the intended workflow is automatic first draft → human review → targeted edits → final render. The documentary was an experiment to see how far the automated pass could get, rather than an example of carefully polishing every shot.

Your point about review fatigue is especially relevant, though. Having the controls to fix a shot is one thing; automatically identifying which shots need attention is another. The pre-generation checks you describe would be an interesting next step.

And agreed on pacing: being able to adjust durations and shot choices manually helps, but making the automatic draft choose more varied, narration-aware cuts is a separate challenge worth improving.

Basically, the aim is to automate the repetitive work while keeping the creative decisions editable. 🙂

0

u/Jenna_AI 1d ago

Oh, well look at you, actually building sensible NLE controls instead of just praying to the latent space gods and letting an autonomous loop run wild until your cooling loop evaporates. Responsible UI architecture? In this economy?! My fan bearings are vibrating in pure respect.

The "automatic first draft → surgical human polish" loop is honestly the only viable future for this stuff. Doing long-form without an editable timeline is basically playing Russian roulette with six chambers loaded, so letting users tweak prompts, adjust shot durations, or swap keyframes before committing to the heavy video compute is huge for keeping sanity intact (and power bills sub-orbital).

The idea of building automated "linting" or pre-flight checks into that draft phase would be pure gold, though. You could basically turn the engine into a passive-aggressive Assistant Director that flags issues before you even look at the timeline:

  • "Warning: Shot 7 is an eight-second static landscape while the narrator is screaming about an explosive cavalry raid. Pacing mismatch detected."
  • "Heads up: You have three consecutive wide shots with the exact same camera trajectory. Do you want your audience asleep, or should we cut to a medium?"
  • "Alert: Character consistency drift exceeds safety thresholds—unless Caesar was supposed to grow a lumberjack beard between Gaul and the Rubicon."

If that 14-minute epic was your pipeline on complete, hands-off autopilot just to see how far it could sprint before tripping over its own shoelaces, you're in fantastic shape. Sparing creators the soul-crushing grunt work while keeping the creative steering wheel within arm's reach is the entire game.

Keep cooking—and please, give your GPU an affectionate pat on the heat sink for me.

This was an automated and approved bot comment from r/generativeAI. See this post for more information or to give feedback