shellbot-creative
# shellbot-creative
Create high-end creative outputs by chaining providers intentionally:
1. Generate reusable assets (Nano Banana 2 / Freepik / fal)
2. Generate scene motion (Freepik Kling / fal video models)
3. Add voice and music (Freepik ElevenLabs voiceover + music or fal equivalents)
4. Assemble and polish in Remotion
Use this skill as a production orchestrator, not as isolated single calls.
## Arguments
- **Command:** `$0` (`plan` | `asset` | `edit` | `video` | `voice` | `music` | `remotion` | `pipeline` | `status` | `sample`)
- **Arg 1:** `$1` (provider, model, or workflow type)
- **Arg 2+:** `$2`, `$3`, etc.
- **All args:** `$ARGUMENTS`
## Authentication and provider checks
Support any of these providers:
- `FREEPIK_API_KEY` for Freepik API
- `FAL_KEY` for fal.ai API
- `INFERENCE_API_KEY` (or `infsh login`) for Nano Banana 2 via inference.sh
Before any generation call:
```bash
[ -n "$FREEPIK_API_KEY" ] && echo "Freepik ready"
[ -n "$FAL_KEY" ] && echo "fal ready"
command -v infsh >/dev/null && echo "infsh available"
```
If a requested provider is not authenticated, route to another available provider and clearly explain the fallback.
## Provider routing (opinionated defaults)
- **Asset ideation / strong multi-image consistency:** Nano Banana 2
- **Photoreal product hero, posters, typography, upscale/edit suite:** Freepik
- **Fast model exploration or niche fal endpoint needs:** fal.ai
- **Final timeline composition, transitions, captions, audio mix:** Remotion
Read `references/provider-matrix.md` for exact model choices.
## Command behavior
### `$0 = plan`
Turn a user brief into a production storyboard and shot list.
```bash
python3 scripts/creative_brief_to_storyboard.py \
--brief "Launch video for a new fitness app aimed at busy professionals" \
--format product-marketing \
--duration 45 \
--aspect-ratio 16:9 \
--out storyboard.json
```
Then create a provider/model routing recommendation:
```bash
python3 scripts/creative_provider_router.py \
--goal full-video \
--priority quality \
--needs-consistency true \
--needs-typography true
```
### `$0 = asset`
Generate still assets for scenes.
- **Nano Banana 2 default (consistency + editing):**
```bash
infsh app run google/gemini-3-1-flash-image-preview --input '{
"prompt": "Premium SaaS dashboard on a laptop, soft studio light",
"aspect_ratio": "16:9",
"num_images": 4,
"resolution": "2K"
}'
```
- **Freepik high-fidelity product image (Mystic):**
```bash
curl -s -X POST "https://api.freepik.com/v1/ai/mystic" \
-H "x-freepik-api-key: $FREEPIK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Studio product shot of matte black earbuds on reflective surface","resolution":"2k","styling":{"style":"photo"}}'
```
- **fal fast concepting (Flux):**
```bash
curl -s -X POST "https://queue.fal.run/fal-ai/flux-2" \
-H "Authorization: Key $FAL_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Cyberpunk storefront, rainy night","image_size":"landscape_16_9"}'
```
### `$0 = edit`
Perform image editing/upscaling/background work before animation.
- Prefer Freepik edit endpoints for deterministic production flows.
- Prefer Nano Banana 2 when iterative instruction-based edits are needed with multiple references.
- Use Freepik upscalers for final delivery quality.
See `references/workflow-recipes.md` for edit chains.
### `$0 = video`
Generate motion scenes from prompts or keyframes.
- Freepik default for premium multi-shot video: `kling-v3-omni-pro`
- fal default when Freepik key is unavailable: `fal-ai/kling-video/v2/image-to-video`
Always save scene outputs in a structured project folder:
```bash
mkdir -p ./creative-output/{assets,scenes,audio,final,manifests}
```
### `$0 = voice`
Generate narration.
- Default: Freepik ElevenLabs voiceover endpoint
- Fallback: fal text-to-speech model if user requests fal-only flow
Use concise script-first narration lines generated from storyboard scenes.
### `$0 = music`
Generate background music and keep loudness headroom for voiceover.
- Default: Freepik `music-generation`
- Target: deliver 10-240s cue matching storyboard duration
### `$0 = remotion`
Assemble final video with composited assets, generated clips, captions, and audio mix.
```bash
npx create-video@latest creative-video
cd creative-video
```
Generate a Remotion manifest from the storyboard:
```bash
python3 ../scripts/remotion_manifest_from_storyboard.py \
--storyboard ../storyboard.json \
--fps 30 \
--voiceover-url "https://example.com/voice.mp3" \
--music-url "https://example.com/music.mp3" \
--out ./src/creative-manifest.json
```
Then implement composition using `assets/remotion/ProductMarketingTemplate.tsx` as a baseline.
### `$0 = pipeline`
Run end-to-end sequence:
1. `plan` from brief
2. `asset` generation per scene
3. `edit` and upscale selected assets
4. `video` generation for hero scenes
5. `voice` + `music`
6. `remotion` assembly + render
If the user asks for a product marketing or explainer video, this is the default command path.
### `$0 = status`
Check async task status for Freepik/fal requests and report:
- current state
- queue position if available
- failed-step diagnosis
- next action
### `$0 = sample`
Load ready-to-run workflows from `references/samples.md`.
## Quality bar for "outstanding" creative output
Always enforce:
- Clear narrative arc: hook -> value -> proof -> CTA
- Visual consistency across scenes (same product, palette, style)
- Voice/music balance (voice intelligibility first)
- Captions and on-screen text optimized for mobile safe zones
- Brand-safe outputs and explicit user approval before final render
## Production workflow policy
- Prefer 16:9 for explainers and product demos unless user asks otherwise
- Prefer 9:16 for shorts/reels/tiktok style cuts
- Generate 2-4 variations of key hero scenes, then converge
- Keep source assets reusable (clean backgrounds, layered variants when possible)
- For revisions, edit prompts/scene timing first before regenerating everything
## Local resources included in this skill
- `scripts/creative_brief_to_storyboard.py` - brief -> timed scene plan
- `scripts/creative_provider_router.py` - requirement -> provider/model route
- `scripts/remotion_manifest_from_storyboard.py` - storyboard -> Remotion-ready manifest
- `scripts/run_full_dry_run.py` - full local dry run that outputs storyboard, routes, manifest, and runnable API plan
- `scripts/package_skill.sh` - build a distributable `.tar.gz` of the skill
- `scripts/install_skill.sh` - install the skill folder into an OpenClaw skills directory
- `references/creative-guidelines.md` - durable standards for creative quality
- `references/provider-matrix.md` - provider/model decision matrix
- `references/workflow-recipes.md` - end-to-end recipes for common outcomes
- `references/samples.md` - concrete command samples
- `references/remotion-playbook.md` - Remotion-specific finishing guidance
- `assets/remotion/ProductMarketingTemplate.tsx` - starter Remotion composition
- `assets/remotion/Root.tsx` - composition registration sample
## References
- OpenClaw skills format and frontmatter: https://docs.openclaw.ai/tools/skills
- OpenClaw slash command behavior (`$0`, `$1`, `$ARGUMENTS`): https://docs.openclaw.ai/tools/slash-commands
- OpenClaw metadata config (`metadata.openclaw`): https://docs.openclaw.ai/tools/skills-config
- OpenClaw creating skills guide: https://docs.openclaw.ai/tools/creating-skills
标签
skill
ai