Need help for youtube automation of kids cartoon

i want 2 things in free if anyone know about any free tool or like free api provider or something that can fulfill these two

1 generate simple cartoon for kids for youtube shorts ??

2 voice over like human.

i have full automated everything without video generation

my flow is working like > download images & videos from royallity free images videos website > edit them > voice over > post on youtube

my server is low end PC so i can ru any module to generate video but if there is something for voice over toa deploy on system i can deploy .

Try meta ai, flow (limited credits), grok etc for video video+image generation.
For voice generation, use anyvoice, SpeechSter, and google ai studio etc or you can build your own through simple vibe coding.

is there any playbook? or do they provide free API ??

Youtube is banning channels for AI animation with the demonetization waves of the last months

Grok no longer offers free image or video generations. You need to subscribe to their premium to generate.

Two holes in your flow were cartoon frames + a human voice. Below is the whole machine β€” every stage, every free tool, the rare ones nobody posts. Brains on free API tiers, media on your CPU, heavy lifting on free cloud GPU. $0 forever.



:brain: the brain β€” free scripts at volume

The script is the channel. These write hooks + narration for free:

  • Groq β€” no card. Llama 3.1 8B = 14,400 requests/day, sub-second. OpenAI-compatible endpoint, drop-in.
  • OpenRouter β€” add :free to a model name β†’ 28+ free models (DeepSeek R1, Llama 3.3 70B). 50/day free; a one-time $10 top-up (never expires) β†’ 1,000/day.
  • Puter.js β€” keyless, no backend. puter.ai.chat() in browser JS hits GPT/Claude/Gemini free. Rare: genuinely no key.
  • Pollinations text β€” keyless GET, returns plain text, seed for repeatable output.
  • Ollama β€” local Llama/Qwen/Gemma, fully offline, zero limits. A 3B model runs on weak hardware.

Script prompt that works β†’ force JSON out: hook (first 2s, a question), beats (5–8 scenes), narration (one simple sentence each), visual_prompt (with a fixed character block prepended every time = consistency), caption_keywords, cta.


:artist_palette: cartoons from a link β€” no key, no signup

Pollinations.ai β†’ hit a URL, get a JPG. No account, no API key.

import requests, urllib.parse
p = urllib.parse.quote("cute cartoon bear, flat design, bright, kids, simple")
url = f"https://image.pollinations.ai/prompt/{p}?width=720&height=1280&nologo=true"
open("scene.jpg","wb").write(requests.get(url, timeout=120).content)

720x1280 = vertical Short baked in. Ugly frame? Call it again, it’s free. Swap engines with ?model= β†’ flux nanobanana seedream qwen-image gptimage.

Backups + keyless alts:

  • :key: Puter.js txt2img() β€” keyless image gen (Flux/SD/DALLΒ·E) from frontend code.
  • :desktop_computer: Offline: SD/AUTOMATIC1111 + toonyou/anything-v3 from Civitai. Local API on localhost:7860.
  • :cloud: Google AI Studio β€” free key, ~15 req/min Β· 1,500/day, ~1M-token context (feed a whole series bible).
  • :paintbrush: Canva AI free tier β€” manual, good for cover frames.
  • :globe_with_meridians: No-signup web: Perchance, Craiyon, Mage.space β€” fallback when APIs throttle.

Same character every scene (the hard part):

  • :bullseye: Seed lock β€” fix the seed across a batch for stable style.
  • :dna: IP-Adapter FaceID (in ComfyUI) weight 0.7–0.85 = face lock; + a character LoRA for outfit.
  • :film_frames: No-LoRA trick: generate one 360Β° orbit clip with LTX-Video, extract frames β€” the video model forces consistency for free.
  • :scissors: rembg β€” cut character off background. Model isnet-anime is built for cartoons. CPU ~0.5s/img.
  • :magnifying_glass_tilted_left: Real-ESRGAN (anime model) β€” crisp 1080Γ—1920 from cheap low-res.

:clapper_board: make stills move β€” for free, on CPU

Faceless motion = the FFmpeg Ken Burns pan/zoom. No compute cost:

ffmpeg -i scene.jpg -vf "scale=8000:-1,zoompan=z='min(zoom+0.0015,1.5)':d=125:\
x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=1080x1920" -t 5 motion.mp4
  • :parachute: Parallax: rembg the character out, zoompan foreground + background at different speeds, overlay β†’ cheap 2.5D depth.
  • :high_voltage: LTX-Video β€” fast imageβ†’video, runs on 12GB VRAM (or free Kaggle T4). Real motion from a still.
  • :cyclone: AnimateDiff-Lightning β€” 8GB VRAM, keeps your style, adds looping motion in few steps.

Talking-character cartoons (lip-sync, free, needs GPU β†’ use Kaggle):

  • :speaking_head: SadTalker β€” 1 image + audio β†’ talking head w/ head motion.
  • :mouth: Wav2Lip β€” most accurate mouth sync, zero-shot.
  • :gem_stone: MuseTalk β€” newer, sharper, real-time on GPU.

:studio_microphone: the voice MS left sitting in plain sight

Edge TTS = Microsoft neural voices, free, no key. pip install edge-tts.

The cheat: en-US-AnaNeural is Microsoft-tagged β€œCartoon, Cute.” A kid voice, built-in, free.

import edge_tts, asyncio
asyncio.run(edge_tts.Communicate("Hello friends! Meet a sleepy bear.",
    voice="en-US-AnaNeural").save("voice.mp3"))

Swap voice β†’ new presenter: JennyNeural AriaNeural AvaNeural GuyNeural en-GB-SoniaNeural (400+).

The rare upgrade β€” clone any voice, add emotion, free:

  • :performing_arts: Chatterbox (MIT) β€” clone a voice from ~7s, emotion control, [laugh] tags, 23 languages. Resemble’s blind test: 63.75% preferred it over ElevenLabs. Commercial-safe.
  • :floppy_disk: Kokoro TTS β€” 82M, CPU, 4GB RAM, offline. Voices: af_bella af_sarah am_michael bf_emma bm_george.
  • :penguin: Piper (repo moved here β€” old one archived) β€” runs on a Raspberry Pi, <1GB, instant offline narration.
  • :level_slider: MeloTTS (MIT) β€” real-time on CPU, multi-accent.
  • :wrench: Coqui β€” local, tts_models/en/vctk/vits. gTTS β€” dead-simple drafts. Fish Audio β€” premium cloud, free ~8k credits/mo.

:warning: Monetizing? License check: XTTS-v2, F5-TTS, Bark, open Fish Speech = non-commercial. Safe for money: Chatterbox Β· Kokoro Β· Piper Β· MeloTTS Β· Edge TTS.


:memo: the retention multiplier nobody mentions: captions

Word-by-word animated captions = the single biggest Shorts watch-time lever. All free:

  • :bullseye: ai-video-captions (MIT) β€” self-hosted Submagic clone: Hormozi / MrBeast / Karaoke styles, word-level, 100+ languages. Docker, CPU-viable.
  • :high_voltage: faster-whisper β€” 4Γ— faster transcription, int8 = CPU-efficient, word-level timestamps. Best low-end pick.
  • :microphone: WhisperX β€” sub-100ms forced alignment = true karaoke sync.
  • :package: Captacity (MIT) β€” one-command Hormozi word-highlight burner. pip install captacity.

:musical_note: sound that doesn’t get you struck

  • :musical_notes: Pixabay API β€” free key, 120k+ royalty-free music + SFX, no attribution, commercial-safe.
  • :speaker_high_volume: Freesound API β€” huge SFX (filter by license).
  • :shield: YouTube Audio Library (in Studio) β€” safest for monetization.
  • :level_slider: Auto-duck music under narration (FFmpeg sidechain β€” music dips when voice talks):
ffmpeg -i music.mp3 -i voice.wav -filter_complex \
"[0:a][1:a]sidechaincompress=threshold=0.03:ratio=8:attack=20:release=300[a]" \
-map "[a]" mixed.wav

:puzzle_piece: the glue: image + voice β†’ mp4

FFmpeg welds them. -shortest auto-matches video length to the voice.

import subprocess
subprocess.run(["ffmpeg","-y","-loop","1","-i","scene.jpg","-i","voice.mp3",
    "-c:v","libx264","-tune","stillimage","-c:a","aac","-pix_fmt","yuv420p",
    "-shortest","short.mp4"])

More assembly: MoviePy (Python editing), auto-editor (auto-cuts silence β†’ tighter retention), Pexels API (free keyword B-roll from your caption_keywords). Vertical-fit landscape = blurred-bg fill + centered overlay, no black bars.


:clipboard: steal this β€” full pipeline, one run

import requests, urllib.parse, asyncio, edge_tts, subprocess

def img(prompt, f):
    p = urllib.parse.quote(prompt)
    u = f"https://image.pollinations.ai/prompt/{p}?width=720&height=1280&nologo=true"
    open(f,"wb").write(requests.get(u, timeout=120).content)

async def vo(text, f):
    await edge_tts.Communicate(text, voice="en-US-AnaNeural").save(f)

def vid(i, a, o):
    subprocess.run(["ffmpeg","-y","-loop","1","-i",i,"-i",a,"-c:v","libx264",
        "-tune","stillimage","-c:a","aac","-pix_fmt","yuv420p","-shortest",o])

img("cute cartoon bear, flat, bright, kids", "scene.jpg")
asyncio.run(vo("Hello friends! Meet a sleepy bear.", "voice.mp3"))
vid("scene.jpg", "voice.mp3", "short.mp4")

:film_frames: multi-scene version (slideshow Short)

Each scene = its own clip β†’ stitch. Picture stays up exactly as long as its line, so audio never drifts.

import requests, urllib.parse, asyncio, edge_tts, subprocess

scenes = [
    {"img":"cartoon student in Germany, flat, kids", "line":"Germany has free university."},
    {"img":"cartoon kid with laptop, shield, cyber, kids", "line":"Cybersecurity is the fastest-growing job."},
    {"img":"cartoon graduation, confetti, kids", "line":"Your journey starts with one application."},
]
def img(prompt,f):
    p=urllib.parse.quote(prompt)
    u=f"https://image.pollinations.ai/prompt/{p}?width=720&height=1280&nologo=true"
    open(f,"wb").write(requests.get(u,timeout=120).content)
async def vo(t,f): await edge_tts.Communicate(t,voice="en-US-AnaNeural").save(f)
def clip(i,a,o):
    subprocess.run(["ffmpeg","-y","-loop","1","-i",i,"-i",a,"-c:v","libx264","-tune",
        "stillimage","-c:a","aac","-pix_fmt","yuv420p","-vf","scale=720:1280","-shortest",o])

clips=[]
for n,s in enumerate(scenes):
    img(s["img"],f"i{n}.jpg"); asyncio.run(vo(s["line"],f"a{n}.mp3"))
    clip(f"i{n}.jpg",f"a{n}.mp3",f"c{n}.mp4"); clips.append(f"c{n}.mp4")
open("list.txt","w").write("".join(f"file '{c}'\n" for c in clips))
subprocess.run(["ffmpeg","-y","-f","concat","-safe","0","-i","list.txt","-c","copy","final.mp4"])
pip install requests edge-tts kokoro-onnx soundfile faster-whisper captacity
# FFmpeg β†’ Win: winget install ffmpeg | Linux: apt install ffmpeg | Mac: brew install ffmpeg

:outbox_tray: post it on autopilot β€” free

YouTube Data API v3 = free uploads. videos.insert sets title/desc/tags + status.publishAt for native scheduling. Must set selfDeclaredMadeForKids (COPPA). Shorts = 9:16, <60s, #Shorts in title.

  • :warning: Quota math: one upload = 1,600 units, daily cap 10,000 β†’ ~6 uploads/day/project (resets midnight PT). Need more β†’ spin up extra Google Cloud projects (free).
  • :link: n8n (free self-hosted) β€” visual glue: idea β†’ script β†’ TTS β†’ images β†’ FFmpeg β†’ upload, all wired, no custom code.
  • :framed_picture: Bulk thumbnails: Pillow/PIL text-overlay on a frame. (Note: custom thumbnails don’t apply to Shorts.)

:telescope: free ideas + free GPU farm

  • :magnifying_glass_tilted_left: Trends free: YouTube search autocomplete (ranked by real volume) + Google Trends + vidIQ/TubeBuddy free keyword tools.
  • :rocket: Kaggle Notebooks β€” free dual-T4 GPU, ~30 hrs/week, no decay, 32GB RAM. Run ComfyUI/LTX-Video/lip-sync your weak PC can’t. Colab free T4 = backup.
  • :hugs: HF Spaces + ZeroGPU β€” free A100 bursts, no install.
  • :shuffle_tracks_button: Stack tiers as lanes: Groq (speed) β†’ OpenRouter free β†’ Pollinations/Puter. Cache the system prompt on Groq β€” cached tokens don’t count against limits.

:bar_chart: the whole kit

Stage Free pick Type Weak PC
Script Groq / OpenRouter / Ollama cloud / local :white_check_mark:
Image Pollinations / Puter / SD cloud / local :white_check_mark: / :warning: GPU
Consistency IP-Adapter + seed lock local :warning: GPU
Motion FFmpeg zoompan / LTX-Video local / cloud :white_check_mark: / :warning:
Lip-sync Wav2Lip / SadTalker cloud GPU :warning: Kaggle
Voice Edge TTS / Chatterbox / Piper cloud / local :white_check_mark:
Captions faster-whisper + ai-video-captions local :white_check_mark:
Music Pixabay API / YT Audio Library cloud :white_check_mark:
Assembly FFmpeg / MoviePy local :white_check_mark:
Upload YouTube Data API v3 cloud :white_check_mark:
GPU farm Kaggle dual-T4 cloud :white_check_mark: free

Weak-PC lane: Pollinations + Edge TTS + faster-whisper + FFmpeg (CPU barely wakes).
Offline lane: SD + Kokoro/Piper + whisper.cpp.
Quality lane: Kaggle GPU + Chatterbox + IP-Adapter + ai-video-captions.


:brain: where this actually prints

  • :sleeping_face: Queue overnight β†’ wake to 20 Shorts done while you slept.
  • :microphone: No mic, no face β€” clone one voice once (Chatterbox), narrate forever.
  • :laptop: No GPU? Cloud tools never touch your CPU; offload the rest to free Kaggle T4.
  • :repeat_button: Run 5 channels at once β€” same code, swap prompt + voice, $0 extra.
  • :chart_increasing: Karaoke captions auto-burned = the retention bump paid tools charge $30/mo for.
  • :test_tube: Test a niche cheap β€” pump 10 videos, kill it if it flops, nothing burned.

A studio that fits in one script and runs on a machine you’d throw away.

thank you so much .

this whole will create images > convert it to video like slides > Voice over > done ?

Yes! :white_check_mark: That exact reply already contains everything needed for the full pipeline.