Faceless AI video generation workflows with BlitzReels (voices, visual styles, jobs, exports).
Resources
3Install
npx skillscat add blitzreels/agent-skills/blitzreels-faceless Install via the SkillsCat registry.
This skill automates faceless AI video generation through a command-line workflow that converts topics or scripts into videos using AI-generated voices, visual styles, and scene assembly. It requires user approval before executing due to AI credit consumption and supports configurable duration, image and video models, and output modes including full videos or storyboards. Developers use it to generate short-form faceless content without manual editing.
BlitzReels Faceless Video Generation
Generate AI-powered faceless videos from a topic or script.
Cost Warning: Faceless generation consumes AI credits (AI script writing, image generation, voiceover, video assembly). You MUST present a plan to the user and get approval before calling any expensive endpoint.
Quick Start
# Full pipeline: topic → video
bash scripts/faceless.sh --topic "5 productivity tips" --duration 30 --voice rachel --style cinematic
# Dry run — show plan without executing
bash scripts/faceless.sh --topic "5 productivity tips" --dry-run
# From a user-provided script (paragraph breaks = scene breaks)
bash scripts/faceless.sh --script "First scene narration.\n\nSecond scene narration." --duration 60Required Workflow
Always use plan mode. Before generating, present this plan to the user for approval:
- Topic or script — What the video is about
- Duration — 10–120 seconds (drives scene count)
- Visual style — See
references/visual-styles.mdorGET /visual-styles - Voice — See
references/voices.mdorGET /voices - Image model — See
references/models.md(default: gemini-2.5-flash) - Video model — See
references/models.md(default: kling-2.1) - Output mode — Full video, storyboard-only (images), or images + audio
- Captions — Enabled by default; optionally pick a caption style
- Plan summary — Present all choices + "this will consume AI credits" warning
- User approval → Execute
Input Modes
| Mode | Flag | Behavior |
|---|---|---|
| Topic | --topic "..." |
AI writes the script based on the topic |
| Script | --script "..." |
User provides exact narration. Paragraph breaks (\n\n) become scene breaks. |
If both are provided, --script takes precedence.
Scripts
scripts/faceless.sh
Purpose-built end-to-end pipeline. Handles: create project → generate → poll → export → download URL.
faceless.sh --topic TEXT [--duration 30] [--voice rachel] [--style cinematic]
[--image-model ID] [--video-model ID] [--video-duration SEC]
[--storyboard-only] [--no-animated-video]
[--aspect 9:16] [--captions true] [--caption-style ID]
[--resolution 1080p] [--name TEXT] [--yes] [--dry-run]Run bash scripts/faceless.sh --help for full usage.
scripts/blitzreels.sh
Generic API helper for ad-hoc calls. Requires BLITZREELS_ALLOW_EXPENSIVE=1 for expensive endpoints.
bash scripts/blitzreels.sh METHOD PATH [JSON_BODY]Environment Variables
| Variable | Required | Description |
|---|---|---|
BLITZREELS_API_KEY |
Yes | API key for authentication |
BLITZREELS_API_BASE_URL |
No | Override base URL (default: https://www.blitzreels.com/api/v1) |
BLITZREELS_ALLOW_EXPENSIVE |
No | Set to 1 to allow expensive calls via blitzreels.sh |
API Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /projects |
Create a new project |
| POST | /projects/{id}/faceless |
Start faceless generation (expensive) |
| GET | /jobs/{job_id} |
Poll job status |
| GET | /projects/{id}/context?mode=timeline |
Inspect generated timeline |
| POST | /projects/{id}/export |
Start export (expensive) |
| GET | /exports/{export_id} |
Get export status + download URL |
| GET | /voices |
List available voices |
| GET | /visual-styles |
List available visual styles |
| GET | /caption-styles |
List caption style presets |
Faceless Request Body
{
"topic": "5 morning routine tips",
"duration_seconds": 30,
"visual_style": "cinematic",
"voice_id": "21m00Tcm4TlvDq8ikWAM",
"captions": true,
"caption_style": "bold-center"
}| Field | Type | Required | Description |
|---|---|---|---|
| topic | string | one of topic/script | AI generates script from this |
| script | string | one of topic/script | Exact narration text, paragraph breaks = scenes |
| duration_seconds | number | yes | 10–120 |
| visual_style | string | no | Style ID (default: cinematic) |
| voice_id | string | no | ElevenLabs voice ID (default: Rachel) |
| captions | boolean | no | Enable captions (default: true) |
| caption_style | string | no | Caption style preset |
| imageModelId | string | no | Image generation model (default: google-gemini-2.5-flash-image) |
| videoModel | string | no | Video generation model (default: kling-2.1) |
| videoDuration | number | no | Per-clip duration in seconds, 3–10 |
| storyboardOnly | boolean | no | Generate images only, skip video/audio (default: false) |
| generateAnimatedVideos | boolean | no | Set false to skip video animation (default: true) |
Generation Modes
| Mode | Flag | What's Generated |
|---|---|---|
| Full video (default) | — | Images → video clips → voiceover → music → captions |
| Storyboard only | --storyboard-only |
Scene images only (no video, no audio). Cheapest option for previewing. |
| Images + audio | --no-animated-video |
Scene images + voiceover + music (slideshow-style, no video animation) |
References
references/models.md— All image and video generation models with costs and capabilitiesreferences/voices.md— All available voice IDs, categories, and descriptionsreferences/visual-styles.md— All available visual style IDs and descriptions
Safety
faceless.shprompts for confirmation before calling expensive endpoints (bypass with--yes)blitzreels.shrequiresBLITZREELS_ALLOW_EXPENSIVE=1for/facelessand/exportpaths- Always present cost/plan to user before generation
Notes
- Use
https://www.blitzreels.com/api/v1as your base URL.https://blitzreels.comredirects towww, and some HTTP clients drop theAuthorizationheader on redirects. POST /projects/{id}/facelessreturns aplanandinput_warningsto help you predict what will be generated.- Full OpenAPI spec:
https://www.blitzreels.com/api/openapi.json
Rate Limits
| Plan | Requests/min |
|---|---|
| Free | 10 |
| Creator | 30 |
| Pro | 60 |
| Agency | 120 |