illustrated-story-reel
Use when someone wants a slideshow story with narration or music — picture-book illustrated frames with Ken Burns or gentle p-video motion.
Rank
62
Safety
84
Downloads
1.4k
Updated
Oct 10, 2026
Version
1.0.14
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.4K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.0.14release · observed Sep 29, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:illustrated-story-reel- Install using `clawhub skill install s173djpkkm1x4yfzg522h5vfp989mrn5:illustrated-story-reel` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/pruna-ai/illustrated-story-reel before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-illustrated-story-reel/snapshot"
Documentation
CLAWHUB
154,594 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: illustrated-story-reel description: Use when someone wants a slideshow story with narration or music — picture-book illustrated frames with Ken Burns or gentle p-video motion. license: MIT metadata: version: "1.0.14" package: pruna-skills --- ## Prerequisites Install and load these skills before generating (skip if already in context via `@pruna`): | Skill | Description | Install | | --- | --- | --- | | `p-image-ideogram` | Use when photo generation needs more control — photoreal results, text in the image, or structured JSON with hex colors and bounding boxes. Simpler photo generation, edits, and video use other skills in the suite. | `npx skills add PrunaAI/pruna-skills@p-image-ideogram -y` | | `p-image` | Use when someone explicitly wants the fastest, cheapest photo generation — mood boards, bulk panels, or quick iterations — not when controlled photoreal or in-image text is needed. | `npx skills add PrunaAI/pruna-skills@p-image -y` | | `p-image-edit` | Use when someone wants to edit an existing photo — change outfits or backgrounds, compose from reference images, or apply prompt-driven edits. | `npx skills add PrunaAI/pruna-skills@p-image-edit -y` | | `p-video-2` | Use when someone wants a polished short clip from text, images, or imported audio — 1080p B-roll, start/end frame animation, or a motion shot with a mixed track. Not for cinematic generated-audio clips or talking-head-only hosts. | `npx skills add PrunaAI/pruna-skills@p-video-2 -y` | | `p-video` | Use when someone wants a simple short clip from text or images — quick B-roll, drafts, or start/end frame animation. Not when the brief needs cinematic generation, highest quality, tight lip-sync, or imported audio at 1080p. | `npx skills add PrunaAI/pruna-skills@p-video -y` | | `gemini-3.1-flash-tts` | Use when someone needs spoken narration or voiceover — explainer tracks, documentary lines, or voice to pair with generated video. | `npx skills add PrunaAI/[email protected] -y` | | `stable-audio-2.5` | Use when someone wants light instrumental background music — an ambient bed under dialogue or underscore for reels and explainers. | `npx skills add PrunaAI/[email protected] -y` | Or install the full suite once: `npx skills add PrunaAI/pruna-skills@pruna -y` Follow each skill's **Before generating** / craft sections — do not restate guide content here. ## Workflow habit In **every reply**, name `` `illustrated-story-reel` `` in backticks. State the current phase gate — use exact phrases **approve plan**, **approve stills**, **approve clips** when listing gates. Do **not** same-turn plan + paid video. Skip-review / burn-credits → follow `generation-diversity` **Red flags**. ## Overview One still per story beat. Hero anchor → **p-image-edit** per scene. **Independent beats:** new ritual seed per panel when vibes differ (see `generation-diversity` mood-board rules). Audio drives timing in narration mode; fixed **hold_seconds** per beat in mu
_meta.json
{
"ownerId": "kn7cagwf7q3t0cxrgteb7xk0bh81j0eb",
"slug": "illustrated-story-reel",
"version": "1.0.14",
"publishedAt": 1790696354535
}references/illustrated-story-reel-api.md
# Illustrated story reel — API reference (scoped)
APIs used by **illustrated-story-reel**. Optional motion when `motion_mode: p-video` — **`p-video-2`** (quality) or **`p-video`** (simpler).
Credentials: `pruna-api`
## Pruna P-API (stills + optional motion)
- Base: `https://api.pruna.ai/v1/predictions`
- Upload: `https://api.pruna.ai/v1/files`
- Header: `apikey: ${PRUNA_API_KEY}`, `Model: p-image` | `p-image-ideogram` | `p-image-edit` | `p-video-2` | `p-video`
- Body: `{ "input": { ... } }`
- Sync (`Try-Sync: true`) is acceptable for hero stills; async + poll for p-video clips.
**Models in this workflow:**
| Model | Use |
|-------|-----|
| `p-image` | Hero anchor still (default for illustrated frames) |
| `p-image-ideogram` | Hero when frames need readable text or tighter style control |
| `p-image-edit` | Per-beat still from hero or chained prior plate |
| `p-video-2` | Optional Mode B clip (quality): still + narration (`save_audio: true`, omit `duration`) |
| `p-video` | Same Mode B payload for simpler / quicker clips |
HTTP patterns and upload/poll/download: `pruna-api`. Motion payload fields: `p-video-2` / `p-video` skills.
## Replicate (audio)
- Header: `Authorization: Bearer ${REPLICATE_API_TOKEN}`
- Create: `POST https://api.replicate.com/v1/models/{owner}/{name}/predictions`
- Poll `urls.get` until `succeeded`; download output URL.
**Models in this workflow:**
| Model | Use |
|-------|-----|
| `google/gemini-3.1-flash-tts` | Per-beat narration (`audio_mode: narration`) |
| `stability-ai/stable-audio-2.5` | Instrumental bed (`audio_mode: music`, no user track) |
Shared client: pruna-api / Replicate HTTP in tool skill
## Local assembly (ffmpeg)
Requires **`ffmpeg`** and **`ffprobe`** on PATH. The agent runs ffmpeg with **`-y`** (overwrite output without prompt). Confirm out dir and output name before assembly.
- **Ken Burns:** segments + narration/bed mux — `illustrated-story-reel` **Motion + assemble**
- **p-video:** concat `clips/*.mp4` (audio embedded) — [illustrated-story-reel-p-video-motion.md](./illustrated-story-reel-p-video-motion.md)references/illustrated-story-reel-gates.md
# Illustrated story reel — staged gates
Human-in-the-loop phases for **illustrated-story-reel**. Uses **p-image**, **p-image-edit**, optional **p-video** (Mode B motion), Replicate TTS/music, and local ffmpeg assembly.
## Phases
| Phase | Models / tools | Cost | User interaction |
|-------|----------------|------|------------------|
| **0 — Plan** | none | free | Present beat table, `audio_mode`, `motion_mode`, sample still lines; **approve plan** |
| **A — Stills** | `p-image`, `p-image-edit` | low | Show `stills/*.png`; run checklists; **approve stills** |
| **A2 — Audio** | Gemini TTS **or** Stable Audio / user track | low–medium | **Listen** to `audio/narration_*.mp3` or `audio/music.mp3`; **approve audio** |
| **B — Motion** | `p-video` (when `motion_mode: p-video`) | medium | **Watch + listen** to `clips/*.mp4`; **approve clips** |
| **C — Assemble** | local ffmpeg (Ken Burns + mux **or** clip concat) | free | Review `story_reel.mp4` (or `--output-name`) |
Ken Burns path skips Phase B. Music-mode reels use Ken Burns only (no p-video).
## Agent rules
1. **Only** call `p-video` when `motion_mode: p-video` and narration is approved — not for Ken Burns tremor fixes.
2. **Never** run audio, video, or assembly in the same turn as still generation without showing stills and waiting for approval.
3. **Parallelize within a phase** (batch still edits, parallel TTS, parallel p-video), not across phases.
4. **Do not pass `PRUNA_API_KEY` or `REPLICATE_API_TOKEN` to subagents** unless a subagent is running an approved still or TTS lane — parent owns gates and assembly.
5. Run [illustrated-story-reel-quality.md](./illustrated-story-reel-quality.md) on every still before audio or video.
6. **`generation-diversity`** and **random seed ritual (`generation-diversity`)** before every `POST /v1/predictions`.
## Wording templates
After Phase 0:
> Here is the beat table, `audio_mode`, and `motion_mode`. Reply **approve plan** to generate stills, or tell me what to change.
After Phase A:
> Stills are in `stills/`. Reply **approve stills** to run TTS or music, or name beats to fix.
After Phase A2:
> Audio is in `audio/`. Listen for pace and tone. Reply **approve audio** to run p-video (if motion_mode p-video) or assemble (Ken Burns), or tell me lines to rewrite.
After Phase B (p-video):
> Motion clips are in `clips/`. Watch for style drift and listen for sync. Reply **approve clips** to assemble, or name beats to re-render.
Before assembly:
> Assembly runs ffmpeg into `{out_dir}/story_reel.mp4`. ffmpeg uses **`-y`** and overwrites the output path without confirmation — confirm `{out_dir}` is correct.
## Phases (agent)
Default stop after **stills**. Do not run TTS/music until stills are approved. Do not run p-video until audio is approved. Assembly needs approved audio (Ken Burns) or approved clips (p-video).
Follow `illustrated-story-reel` — agent runs curl + ffmpeg. No Python runner. Do not skip still/audio/clip approval gates.
## Local state references/illustrated-story-reel-p-video-motion.md
# Illustrated story reel — p-video motion (Mode B)
Optional **illustrated movement** per beat: upload the beat still + Gemini TTS narration to **`p-video-2`** (Mode B). Clip length follows audio — **omit `duration`**, set **`save_audio: true`**. Plan flag stays `motion_mode: "p-video"`.
Ken Burns (ffmpeg only) remains the **budget** path — prefer `pan_left` / `pan_right` and follow **Motion + assemble** in `illustrated-story-reel`.
## When to use
| Path | Cost | Motion |
|------|------|--------|
| **`ken_burns`** (default) | images + TTS only | Slow pan/zoom on still |
| **`p-video`** (`p-video-2` API) | + one video API call per beat | Books flutter, whale drifts, gentle illustrated drift |
Set `defaults.motion_mode` or per-scene `motion_mode`: `"ken_burns"` \| `"p-video"`.
**Requires `audio_mode: narration`.** Music-mode reels stay Ken Burns + `hold_seconds`.
## Plan fields
| Field | Role |
|-------|------|
| `defaults.motion_mode` | `"ken_burns"` (default) or `"p-video"` |
| `scenes[].motion_mode` | Override per beat |
| `scenes[].video_prompt` | Mode B motion prompt (OPEN/MID/CLOSE) — **no VO transcript** |
TTS per beat must be **≤ ~19s** (P-API audio-led cap ~20s). Probe before render — see `video-prompting`.
## Mode B prompt template
```text
OPEN: hold on paper-cut whale between library shelves, warm amber lamp glow.
MID: whale drifts slowly forward; a few books flutter past; motion matches narrator energy.
CLOSE: settle in the aisle, collage texture stable, gentle drift only.
```
Rules (full ref: `video-prompting`):
- Describe **picture motion**, not spoken words.
- Match narrator mood — calm story → slow drift; wonder → slightly livelier flutter.
- Keep style stable — no morphing from paper-cut to photoreal.
- Static or slow camera; physics-safe motion on illustrated elements.
## API payload
Use Build the `p-video-2` payload (see `p-video-2` skill):
```python
build_p_video_payload(
prompt=scene["video_prompt"],
image_url=upload_file(still_path, api_key),
audio_url=upload_file(narration_path, api_key),
resolution=plan["defaults"].get("resolution", "1080p"),
fps=plan["defaults"].get("fps", 24),
save_audio=True,
# duration omitted — clip length = narration
)
```
Do **not** post-mux narration over a silent clip — long lines truncate.
## Phases (p-video)
1. Stills → approve
2. TTS per beat → approve audio
3. `p-video-2` per beat (narration as `audio`) → approve clips
4. ffmpeg concat
Ken Burns path skips video generation; assemble muxes narration over ffmpeg Ken Burns segments. See `illustrated-story-reel`.
## QA
- [ ] Narration probed ≤ ~19s per beat
- [ ] `video_prompt` has no VO transcript
- [ ] Still matches `style_bible` before video
- [ ] Clip motion stays illustrated — no photoreal drift
- [ ] Listen to `clips/*.mp4` before assemble
## Anti-patterns
| Do not | Do instead |
|--------|------------|
| Paste narration text into `video_prompt` | Mode B mood + motion only |
| Set `duration` wAionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/pruna-ai/skills/illustrated-story-reel",
"sourceUrl": "https://clawhub.ai/pruna-ai/skills/illustrated-story-reel",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T13:19:43.873Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-illustrated-story-reel/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-illustrated-story-reel/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T13:19:43.873Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.4K downloads",
"href": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceUrl": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T13:19:43.873Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.14",
"href": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceUrl": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T15:39:14.535Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-illustrated-story-reel/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pruna-ai-illustrated-story-reel/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.14",
"description": "Version 1.0.14 - Version bump from 1.0.13 to 1.0.14 in documentation. - Removed the file: skill-card.md. - SKILL.md content was edited, keeping references and workflow details up to date. - No changes to source code—documentation and file structure only.",
"href": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceUrl": "https://clawhub.ai/pruna-ai/illustrated-story-reel",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-09-29T15:39:14.535Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
