Paper Collage Explainer Generator
tl2012tl/comfyUI-llama-TE
For creators, educators, and social-video editors who need a tactile paper-collage language for narration, knowledge points, opinions, or abstract topics.
Converts storyboard markdown (bilingual Chinese + English narration per shot) into speech audio via IndexTTS2 (same stack as ai-text-to-speech).
$ npx skills add godot-fun/gai --skill storyboard-tts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install godot-fun/gai storyboard-tts --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/storyboard-tts .claude/skills/storyboard-tts && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .claude/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-ttsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add godot-fun/gai --skill storyboard-tts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install godot-fun/gai storyboard-tts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/storyboard-tts .agents/skills/storyboard-tts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .agents/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add godot-fun/gai --skill storyboard-tts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install godot-fun/gai storyboard-tts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/storyboard-tts .cursor/skills/storyboard-tts && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .cursor/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/godot-fun/gai.git --path .agents/skills/storyboard-tts--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add godot-fun/gai --skill storyboard-tts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install godot-fun/gai storyboard-tts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/storyboard-tts .gemini/skills/storyboard-tts && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .gemini/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install godot-fun/gai storyboard-ttsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add godot-fun/gai --skill storyboard-tts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/storyboard-tts .github/skills/storyboard-tts && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .github/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add godot-fun/gai --skill storyboard-tts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install godot-fun/gai storyboard-tts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/godot-fun/gai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/storyboard-tts .opencode/skills/storyboard-tts && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "storyboard-tts" agent skill from https://github.com/godot-fun/gai/tree/main/.agents/skills/storyboard-tts into .opencode/skills/storyboard-tts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "storyboard-tts", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
storyboard-ttsConverts storyboard markdown (bilingual Chinese + English narration per shot) into speech audio via IndexTTS2 (same stack as ai-text-to-speech).
Storyboard Tts is an agent skill from godot-fun/gai. Converts storyboard markdown (bilingual Chinese + English narration per shot) into speech audio via IndexTTS2 (same stack as ai-text-to-speech). Batch-writes WAVs under Chinese/ and English/ named by shot id (model loaded once), pads 0.4 s edge silence in place, then a speech-timeline.md and one concatenated SRT per language (Chinese.srt / English.srt). Use when the user wants storyboard TTS, storyboard to speech, narration VO, storyboard-to-speech, bilingual VO export, subtitles, or batch TTS from a storyboard.md.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Text to speech and voice, Comics and storyboards and Transcription. It works with Python. The repository describes itself as: A lightweight AI agent and skill workflow framework built with Godot. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6394686. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Storyboard Tts loads about 2.2k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 664 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from godot-fun/gai at commit 6394686, republished under its MIT licence (© godot-fun). 664 words, ~2,215 tokens.
.claude/skills/storyboard-tts/SKILL.md (or your agent's skills folder).Take a storyboard deliverable and batch-synthesize Chinese + English voice-over with IndexTTS2 (shared setup with ai-text-to-speech).
| Output | Path |
|---|---|
| Chinese VO | <storyboard-dir>/<voice-stem>/Chinese/<shot-id>.wav |
| English VO | <storyboard-dir>/<voice-stem>/English/<shot-id>.wav |
| Duration doc | <storyboard-dir>/<voice-stem>/speech-timeline.md |
| Chinese subs | <storyboard-dir>/<voice-stem>/Chinese.srt |
| English subs | <storyboard-dir>/<voice-stem>/English.srt |
Shot id from headers (### Shot 01 — … → 01.wav).
Subtitles: one SRT per language. Shots are laid end-to-end on the VO timeline (shot N starts when N−1 ends). Inside a shot, text is split on sentence punctuation (.!?;… and CJK equivalents) into multiple cues; cue lengths share that shot’s WAV duration by non-whitespace character weight. Skip (no VO) / missing audio.
When this skill applies, read and follow skill-dependency-manager — run scripts as documented, install missing tools into .dependency/.
.ai/storyboard-tts/synthesize.py with the index-tts interpreter. Do not hand-write IndexTTS loops, temporary batch drivers, or N× single tts.py calls for a full storyboard.tts.py, or synthesize.py --limit 1.python (.dependency/python/python).<audio-dir>/.(no VO) / empty lines — no empty WAVs or empty subtitle cues.<audio-dir> is <storyboard-dir>/<voice-stem>/. Do not use <storyboard-stem>-speech.| Required | Notes |
|---|---|
Storyboard .md | ### Shot NN — title with - **Chinese:** / - **English:** |
| Reference voice | WAV/MP3 for IndexTTS (--voice, or --voice-zh / --voice-en) |
| Optional | Default |
|---|---|
| Output dir | <storyboard-dir>/<voice-stem>/ (reference audio filename, no extension) |
| Language | both (--lang chinese / english) |
--fp16 / emotion / --device | same meaning as ai-text-to-speech |
--force | off (skip existing WAVs) |
--limit N | 0 = all jobs (use 1 for trial) |
--report | write speech-timeline.md + Chinese.srt / English.srt after synth |
--no-subtitles | with --report, skip SRT files |
| Edge pad | on (0.4 s); --no-pad / --pad-duration / --pad-threshold |
<storyboard-dir>/<voice-stem>/ # e.g. narrator-self-fast/ from narrator-self-fast.wav
Chinese/
01.wav
…
English/
01.wav
…
shots.json
speech-timeline.md
Chinese.srt # all Chinese cues, continuous timeline
English.srt # all English cues, continuous timeline
_text/ # only with --write-textFrom project root:
.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --storyboard path/to/storyboard.md --voice path/to/ref.wav --fp16 --reportTrial run (first line only):
.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --storyboard path/to/storyboard.md --voice path/to/ref.wav --fp16 --limit 1Writes under <storyboard-dir>/<voice-stem>/ (override with --audio-dir only when needed).
This will:
<audio-dir>/shots.jsonChinese/<id>.wav and English/<id>.wav (skip existing unless --force)--no-pad to skip)speech-timeline.md and Chinese.srt / English.srt when --report.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --storyboard path/to/storyboard.md --voice-zh path/to/zh_ref.wav --voice-en path/to/en_ref.wav --fp16 --report.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --storyboard path/to/storyboard.md --voice path/to/ref.wav --lang chinese --fp16 --report.dependency/python/python .ai/storyboard-tts/parse_storyboard.py path/to/storyboard.md -o path/to/<audio-dir>/shots.json.dependency/python/python .ai/storyboard-tts/duration_report.py --storyboard path/to/storyboard.md --audio-dir path/to/<audio-dir> --shots path/to/<audio-dir>/shots.json -o path/to/<audio-dir>/speech-timeline.md.dependency/python/python .ai/storyboard-tts/write_subtitles.py --audio-dir path/to/<audio-dir> --shots path/to/<audio-dir>/shots.jsonResume from an existing shots.json:
.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --shots path/to/<audio-dir>/shots.json --voice path/to/ref.wav --fp16 --report| Flag | Notes |
|---|---|
--storyboard / --shots | Source (one required) |
--audio-dir | Output root (default: <storyboard-dir>/<voice-stem>/) |
--voice | Shared speaker ref |
--voice-zh / --voice-en | Per-language refs |
--lang | both (default), chinese, english |
--limit N | First N pending jobs only |
--force | Overwrite existing WAVs |
--report | Write timeline + SRT subtitles |
--report-out | Custom timeline path |
--no-subtitles | Skip SRT when using --report |
--write-text | Dump lines under _text/ |
--no-pad | Skip in-place 0.4 s edge padding (off by default — padding is on) |
--pad-duration | Target silence per edge in seconds (default: 0.4) |
--pad-threshold | Silence detect threshold in dB (default: -50) |
--fp16 / --device | Runtime |
--emotion-* / --random / --verbose | Same role as tts.py |
On partial failure: script continues remaining jobs, prints Failed jobs: …, exit code 1. Fix install/voice per ai-text-to-speech troubleshooting, re-run (existing OK files are skipped).
synthesize.py invocation for a full board; model reload cost is the reason.audio-dir (<storyboard-dir>/<voice-stem>/), counts, path to speech-timeline.md, Chinese.srt / English.srt, Chinese/English total seconds — no full transcripts unless asked. Omit --audio-dir unless overriding.pad.py). Use --no-pad only when they want raw TTS with no extra silence; --pad-duration if they want a different length.write_subtitles.py alone (stdlib python). Re-running synthesize.py --report without --force still pads existing WAVs, then rewrites the timeline/SRT.Stdlib scripts (from repo root):
.dependency/python/python .ai/storyboard-tts/test_parse_storyboard.py
.dependency/python/python .ai/storyboard-tts/test_write_subtitles.pyIndexTTS batch driver (requires populated index-tts; see cli/storyboard-tts.md):
.dependency/index-tts/.venv/Scripts/python.exe .ai/storyboard-tts/synthesize.py --storyboard path/to/storyboard.md --voice .ai/test/audio/han.wav --fp16 --limit 1 --report© godot-fun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/storyboard-tts of godot-fun/gai.
Open the folder on GitHubat commit 6394686
Storyboard Tts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Storyboard Tts this skillgodot-fun/gai | 183 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Paper Collage Explainer Generatortl2012tl/comfyUI-llama-TE | 241 | 4 repos | ~5.2k | Automated safety check: Pass | None | |
| Web Demo Video SynthesisSven-LI-sankyuu/presentation-skills | 175 | — | ~3.2k | Automated safety check: Pass | None | |
| Edu Math Videowy51ai/edulab | 1.4k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 | |
| Whiteboard Videognipbao/codex-whiteboard-video-skill | 327 | — | ~7.2k | Automated safety check: Notes | MIT | |
| Content To Videoarchitectds/modeldock | 117 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 |
tl2012tl/comfyUI-llama-TE
For creators, educators, and social-video editors who need a tactile paper-collage language for narration, knowledge points, opinions, or abstract topics.
Sven-LI-sankyuu/presentation-skills
用于“网页 demo 分段配音 + timeline 驱动录屏 + 后期合成”的 workspace 协作流程:先搭建一个可审计工作目录(cues/timeline/segmentaudio/video/subtitles/final),再由人类 + Codex 迭代维护这些文件,按需只重跑局部步骤,最终合成高质量 MP4。适用于强调可复盘、可编辑、清晰度与字幕安全区可控的场景。
wy51ai/edulab
A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot…
gnipbao/codex-whiteboard-video-skill
Generate smooth hand-drawn whiteboard and story videos directly inside Codex from text scripts, GPT Image 2 color storyboards, scene plans, SVGs, line art, or local images.
architectds/modeldock
Turn arbitrary source content (README, article, story, slides, deck, data/report, product description, tutorial text, audio/transcript, or a bare topic) into a finished, high-quality MP4 video.
elevenlabs/skills
Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.
godot-fun/gai
Zero-shot text-to-speech with voice cloning via IndexTTS2 (index-tts).
godot-fun/gai
Reduces background noise in a single audio file using FFmpeg afftdn.
godot-fun/gai
Applies fade-in and fade-out at the start and end of a single audio file using FFmpeg.
godot-fun/gai
Normalizes a single audio file to consistent LUFS loudness with true-peak limiting using FFmpeg.
godot-fun/gai
Standardizes a single audio file to 44100 or 48000 Hz and exports 16-bit PCM WAV using FFmpeg.
godot-fun/gai
Splits a single audio file into two segments (part 1 before the split point, part 2 after) using FFmpeg.
Works with
Categories
Converts storyboard markdown (bilingual Chinese + English narration per shot) into speech audio via IndexTTS2 (same stack as ai-text-to-speech). Storyboard Tts is an agent skill from godot-fun/gai. Converts storyboard markdown (bilingual Chinese + English narration per shot) into speech audio via IndexTTS2 (same stack as ai-text-to-speech).
Storyboard Tts fits situations like: the user wants storyboard TTS; storyboard to speech; storyboard-to-speech; bilingual VO export.
Run `npx skills add godot-fun/gai --skill storyboard-tts -a claude-code`. Or copy the skill folder (.agents/skills/storyboard-tts in godot-fun/gai) into .claude/skills/storyboard-tts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add godot-fun/gai --skill storyboard-tts -a codex`. Or copy the skill folder (.agents/skills/storyboard-tts in godot-fun/gai) into .agents/skills/storyboard-tts in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add godot-fun/gai --skill storyboard-tts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/storyboard-tts, .gemini/skills/storyboard-tts, .github/skills/storyboard-tts and .opencode/skills/storyboard-tts in your project.
Going by SKILL.md and its folder, Storyboard Tts needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Storyboard Tts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Storyboard Tts: Paper Collage Explainer Generator (tl2012tl/comfyUI-llama-TE, 241 stars), Web Demo Video Synthesis (Sven-LI-sankyuu/presentation-skills, 175 stars), Edu Math Video (wy51ai/edulab, 1.4k stars) and Whiteboard Video (gnipbao/codex-whiteboard-video-skill, 327 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
godot-fun (a GitHub organization) maintains it in godot-fun/gai, which has 183 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 10, 2026.
Source: godot-fun/gai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.