Make Ai Short logo

Make Ai Short

Community
hassancs91
make-ai-short

Build a GENERATIVE-pixels vertical short (1080×1920, ~35-40s) end-to-end — a recurring locked character animated by a fal video model (Seedance 1.5 Pro default) under a philosophical/story VO, composited in Remotion with word-synced captions, SFX audition, seamless frame-0==last-frame loop. Use when the user wants to "make an AI video short", "make an ai short", "make a blue-man video", or any short where the pixels come from a VIDEO MODEL — not TSX animation (that is make-short) and not layered collage (that is make-vox). Defers model choice re-litigating to ai-shorts/IDEAS.md, TSX crash rules to vidtsx-2d-generator, SFX taste to suggest-sfx + brand §7.

Overview

Publisherhassancs91
Repositoryclaude-faceless-shorts-creator
Skill namemake-ai-short
Stars
279
Forks
105
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by hassancs91 on GitHub. Read the source before you install it.

Installation

Install the Make Ai Short AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-ai-short
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/hassancs91/claude-faceless-shorts-creator.git /tmp/claude-faceless-shorts-creator
mkdir -p .claude/skills
cp -r /tmp/claude-faceless-shorts-creator/.claude/skills/make-ai-short .claude/skills/make-ai-short
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Make Ai Short in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Make Ai Short on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Make Ai Short is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

make-ai-short — generative shorts, end to end

The pixels come from a video model; Remotion only composites clips + captions. Proven on blue-man #1 "The Door". Sibling of /make-short (100% TSX) — same discipline, plus three gates TSX never needed: cost stated before generating, character locked from character.json, loop pinned via end-frame conditioning.

Run everything from the repo root. Needs FAL_KEY (clips + images) and ELEVENLABS_API_KEY (voice) in .env.

The three iron rules

  1. NEVER generate a character from text twice. ai-shorts/<char>/character.json + character.png is the locked reference. Every still that needs the character is gen_image.py --ref character.png; every clip is image-to-video from a frame that already contains him. If a character sheet doesn't exist yet, making ONE (and getting the user's eye on it) is its own step before anything else.
  2. STATE THE COST BEFORE SPENDING IT. Derived, not quoted: Seedance 1080p audio-off = h×w×24×dur/1024 tokens × $1.2/1M ≈ $0.0583/s (fal pricing API validated 2026-07-14 — see ai-shorts/IDEAS.md for the full table + the Wan/Veo-Lite traps). Always generate_audio:false — voice is ElevenLabs, sound is our SFX pipeline.
  3. Loop by CONSTRAINT, not luck. Shot 1's true frame 0 (extracted from the clip, not the prompt image) is the loop target. The final shot passes it as end_image_url (Seedance/Kling), and the composition settles onto that exact still over the last ~10 frames (LoopSettle pattern in remotion/src/shots/ai-1/Ai1Door.tsx).

Artifact contract

ai-shorts/<name>/
  script.md · beats.json      — same contract as /make-short (vo[] with real word times)
  character.json              — THE LOCKED REFERENCE (+ video_model block = the picked model)
  shots/NN-slug.png           — per-shot START frame (gen_image.py --ref character.png [--ref scene])
  shots/NN-slug.json          — gen_clip sidecar (model, payload, request id)
  shots/upload-urls.json      — fal storage urls (uploads are reusable across re-rolls)
  voice/ · sfx-plan.json · output/                                          [voice/output gitignored]
remotion/src/shots/ai-N/      — composition + vo.gen.ts
media/projects/<name>/        — THE clip copies for staticFile() (committed — pixels are
                                not reproducible; shots/*.mp4 working copies are gitignored)

Order of operations (voice before pixels)

  1. Script — script.md + beats.json. Hook composed at frame 0; thesis should WANT the loop (blue-man #1: "arrival is a myth" → ending = walking toward the same door). ~80-100 words, 2.5-2.7 wps windows. No engagement-CTA outro, ever — end on the payoff, loop is the ending.
  2. Voice FIRST — python tools/gen_voice.py --beats ... --emit-ts remotion/src/shots/ai-N/vo.gen.ts (George JBFqnCBsd6RMkjVDRZzb + eleven_v3 tags for narrators). Real word times decide the shot windows; Seedance takes integer 4-12s durations, so round shot lengths UP from windows.
  3. Start frames — one per shot, python tools/gen_image.py --model pro --aspect 9:16 --ref character.png (+ the shot-1 scene still as a 2nd ref when a location/prop must match across shots). QA every PNG before any video call — this is where drift is cheap to fix.
    • Watch hands, clothing details, proportions — name them explicitly in the prompt on re-rolls.
    • Geometry must be walkable (the shot-6 lesson, cost 2 re-rolls): with an end-frame pin, the start frame must let the motion REACH the end state by walking forward — if the end frame's character is CLOSER to camera than the start's, the model spawns a clone instead. Start him larger/nearer than the end state so forward motion shrinks him into it.
  4. Clips — state the total derived cost, then python tools/gen_clip.py per shot in parallel (--set image_url=<fal storage url> --set 'duration="N"' --set resolution=1080p --set generate_audio=false, final shot --set end_image_url=<frame0 url>). Upload refs once via bakeoff_clip.upload_ref; keep urls in shots/upload-urls.json. Prompt every clip with: exact character phrase + "EXACTLY ONE character in the scene for the entire shot" (clones are the #1 failure) + camera move + "no morphing" + style line.
  5. Clip QA, frame by frame — start/mid/end strip per clip + a side-by-side of the final clip's last frame vs the loop target. Re-roll failures (state the re-roll cost); a 5s 1080p re-roll is ~$0.29 — cheap next to shipping a clone.
  6. Composition — Sequences of OffthreadVideo over ONE timeline, ~8-frame crossfade underlaps (clips are ~1s longer than their windows — that's the slack), Captions + ProgressBar at root, LoopSettle dissolve at the tail. Copy final clips to media/projects/<name>/. npm run gen, frames.mjs at boundaries + heroes, READ every PNG, then render-all --scale=1 and mux voice.wav.
  7. SFX — /suggest-sfx flow. Gappy-VO calibration (blue-man #1): cues in VO gaps get no masking and no duck — they need ~7-8 dB LESS than the dense-narration table (gap whooshes -9..-13, not -3..-5). Verify with volumedetect RMS against a speech-mean reference; hero layer may kiss voice level once. Audition mix awaits the user's ear (hard gate).
  8. Save back — catalog used_in, beats.json real timings (gen_voice writes them), sidecars committed, cost ledger in the final report.

Done =

character consistent in every frame of every clip (frame-by-frame QA'd) · loop verified (last frame vs frame 0 side-by-side) · captions on real word times · costs stated before each spend and totalled after · SFX audition rendered, awaiting the user's ear · no CTA outro.

Frequently asked questions

What does the Make Ai Short AI skill do?

Build a GENERATIVE-pixels vertical short (1080×1920, ~35-40s) end-to-end — a recurring locked character animated by a fal video model (Seedance 1.5 Pro default) under a philosophical/story VO, composited in Remotion with word-synced captions, SFX audition, seamless frame-0==last-frame loop. Use when the user wants to "make an AI video short", "make an ai short", "make a blue-man video", or any short where the pixels come from a VIDEO MODEL — not TSX animation (that is make-short) and not layered collage (that is make-vox). Defers model choice re-litigating to ai-shorts/IDEAS.md, TSX crash r...

Why use Make Ai Short on TypingMind?

Because you install it once and use it with any model. Make Ai Short is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Make Ai Short in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/hassancs91/claude-faceless-shorts-creator/tree/main/.claude/skills/make-ai-short. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Make Ai Short?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Make Ai Short?

As many as you like. As long as a model supports skills, you can use Make Ai Short with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Make Ai Short AI skill free?

Yes. It is published on GitHub by hassancs91 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇