Skip to content
Marketing
Skill

/generate

Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable

BOOST
From plugin
blotato-skills
1958 skills
Install
$ npx -y skills add blotato-inc/blotato-skills --skill generate --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/generate

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable

SKILL.md

generate.SKILL.md
name: generate
description: Generate faceless video content cheaply and consistently. Draft a still on a cheap model, run a pre-animate quality check, then animate the approved still through kie.ai, always routing to the lowest cost model. Enforces a running spend cap with a cost ledger, applies reusable style and character presets so a whole channel stays consistent, and outputs a publish-ready clip that hands off to Blotato for scheduling. Triggers on /generate, generate image, generate video, make a POV clip, animate this.
allowed-tools: Read, Write, Edit, Bash, Glob

/generate

Make faceless video content for pennies, keep a channel visually consistent, and never blow the budget. Draft a cheap still, check it before you spend on animation, then animate only the still you approve. Output lands publish-ready.

Built for vertical social video (9:16), with a running budget ceiling, reusable presets, and a quality gate plus a Blotato publish hand-off.

Models

| Task | Default model | Provider | Recipe | |---|---|---|---| | Image (default) | nano-banana-2 | kie.ai | models/nano-banana-2.md | | Image (text or UI in frame) | gpt-image-2-text-to-image | kie.ai | models/gpt-image-2.md | | Video (DEFAULT) | Seedance 1.0 Pro `bytedance/v1-pro-image-to-video` | kie.ai | models/seedance-1-0-pro-image-to-video.md | | Video (budget) | Seedance 1.0 Lite `bytedance/v1-lite-image-to-video` | kie.ai | models/seedance-1-0-lite-image-to-video.md | | Video (newest, EXPLICIT ONLY) | Seedance 2.5 `bytedance/seedance-2-5` | kie.ai | models/seedance-2-5-image-to-video.md |

Read the recipe file before every generation. Use gpt-image-2-text-to-image whenever the frame has readable text, a sign, a poster, or an app UI mockup. Use nano-banana-2 for everything else.

**Video model routing.** Default every standard short vertical clip to **Seedance 1.0 Pro**. Use **Seedance 1.0 Lite** as the budget option. Use **Seedance 2.5 only** when I explicitly ask for it.

**Duration.** Seedance 1.0 accepts **5 or 10 second clips only** — there is no 8-second option. **Default to 10 seconds.** If any other value is requested, **round to 5 or 10 and tell me what you did** (do not fail silently, do not stop).

**Aspect ratio / dimensions.** The clip inherits the input still's exact dimensions. So **the still IS the aspect ratio and the resolution**: generate the still at **1080x1920** (9:16). If the still isn't 1080x1920 the clip won't be either. Seedance 1.0 has no aspect ratio parameter. Do not send one.

**Resolution floor: 1080p. This is hard.** Default vertical output is **1080x1920**. Lower resolutions are not offered — do not quote them or fall back to them to save credits. A sub-1080p clip is unpublishable on TikTok (min 540x960) / Instagram Reels, so it is wasted money, not a saving. If a request cannot be served at 1080p, STOP and say so rather than dropping resolution.

Provider routing

1. Default to the LOWEST COST provider that runs the model well. kie.ai first. 2. If the cheapest route lacks the model, fails auth, or errors, fall back to fal.ai, then WaveSpeed AI. 3. Never hide a provider swap. Say which route ran and why.

Presets (channel consistency)

A preset is a saved style so every clip in a series looks like it came from the same channel. Presets live in `presets/`, one markdown file each. A preset holds:

  • a locked prompt fragment (the character, the look, the era),
  • the aspect ratio and resolution,
  • pinned reference images in `generations/refs/` (a character sheet, your app logo, a watermark).

Invoke with a preset: "/generate using the pov preset: you wake up as a Roman senator." Load the preset, merge its locked fragment and its refs into the prompt, and never drift from them across the series.

Ship with these starters (edit them to your channel):

  • `presets/pov.md` the POV wake-up format.
  • `presets/app-watermark.md` pins your product logo as a reference so it rides on every frame.
  • `presets/brand-style.md` your channel look, colours, grade, aspect ratio.

The workflow

1. Load preset (if named). Merge its locked fragment, aspect ratio, and refs. 2. Draft the still (cheap). nano-banana-2, or gpt-image-2-text-to-image if the frame has text or a UI. Save the file and its prompt. Show me the still. Do not animate yet. 3. Pre-animate QA gate (see below). If any check fails, stop and report. Do not spend on video. 4. Budget gate (see below). Quote the credits, the dollars, and the remaining session budget. Wait for my explicit go. 5. Animate the approved still. Poll, download the mp4, write the log line with the real cost, append to the ledger. 6. Publish-ready hand-off (see below).

Budget and ledger (never blow the spend)

Keep a running ledger at `generations/ledger.json`. Every generation appends one line: timestamp, model, type, cost_credits, cost_usd, description.

Two caps, editable here:

  • SESSION_CAP: $10 per run of work.
  • MONTHLY_CAP: $50 per calendar month.

Before ANY paid generation: 1. Sum the ledger for this session and this month. 2. If this run would cross a cap, STOP and tell me how far over, do not generate. 3. Otherwise, quote it like this: "This clip is 140 credits, about $0.70. Spent this session $4.10, remaining $5.90 of the $10 cap. Go?"

One approval equals one run. Never batch paid videos past the cap without a fresh go.

Pre-animate QA gate (stop wasting video spend)

Video is the expensive lane, so check the still BEFORE animating. These are the real failure modes (wrong ratio gives black bars, drift breaks the illusion):

  • Aspect ratio is vertical 9:16.
  • Still dimensions are exactly 1080 x 1920 (the clip inherits them).
  • No text baked into the image, unless it was made on gpt-image-2-text-to-image on purpose.
  • Subject and point of view match the concept and the preset. First person stays first person.
  • Requested duration fits the platform (TikTok, Reels, Shorts all take 5 or 10 seconds comfortably).

If any check fails, stop, say which one

Read more
Ships withblotato-skills

Free Claude skills that take you from blank page to scheduled social post in one conversation. This repo is a Claude Code plugin marketplace.

Get the whole plugin
Stats
196
Stars
44
Forks
Maintained
Maintenance
Shell
Language
2mo ago
Last commit
3mo ago
Created
3d ago
Added

Repo: blotato-inc/blotato-skills

Other skills on blotato-skills.