# Video Generation

> Use when generating video with FLUX 3 tools or contests.

- Skill: `theheavenlyd3mon/video-generation-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add theheavenlyd3mon/video-generation-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/theheavenlyd3mon/video-generation-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: theheavenlyd3mon (https://skillmd.com/u/theheavenlyd3mon)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/theheavenlyd3mon/video-generation-2

---


# Video Generation (FLUX 3)

## Trigger
Any request to generate, animate, or chain video clips, or to produce a short film for a contest/deadline.

## Mandatory first step
Call `bfl_flux3_prompting_guide` before the first generation of any session. It costs no generation budget and carries the prompting rules.

## Tool selection
| Need | Tool |
|---|---|
| Clip from text alone | bfl_flux3_text_to_video |
| Animate a specific still as frame 0 | bfl_flux3_image_to_video |
| Storyboard of 1-10 pinned stills | bfl_flux3_keyframes_to_video |
| Extend an existing clip | bfl_flux3_video_continuation |
| Poll any job | bfl_flux3_get_result |

## Hard constraints (plan around these)
- One generation = one 5-20s clip at 24fps. A 20-40s short film = 2-4 chained segments, or one strong single take.
- video_continuation: input mp4 ≤50MB and ≤15s; the new segment also caps at 15s. Chain a second continuation for longer sequences.
- keyframes_to_video: when pinning keyframe_indices, set an explicit duration — "auto" can resolve shorter than your highest index and the job is rejected.
- Audio is generated by default; write "no music" in the prompt if unwanted.
- Generation takes MINUTES per clip and polling is normal. Budget iteration time: each retry is minutes, not seconds. For deadlines, finish with hours of buffer.
- Media fields accept local paths (auto-uploaded to temporary storage, deleted after) or URLs.
- A generate call returns a job id; nothing exists until bfl_flux3_get_result returns Ready and downloads the clip.

## Companion craft skill
This skill owns MECHANICS only. Prompt-writing craft (consensus prompt anatomy, cinematography vocabulary, suspense-reveal beat sequencing, verbatim prompt library, failure-mode fixes) lives in `flux3-video-directing` (creative category) when present — load it for any "write/improve/storyboard a prompt" work. Built 2026-07-30 from two research digests (~/flux3-video-prompting-research.md, ~/cinematography-ai-video-digest.md) via: research fan-out (2 parallel delegate_task scrapers) → senna writes a spec file deciding ONE-skill-not-a-series → file-relay to creative profile for authoring. Reuse that pattern for building craft knowledge around any new tool.

## Prompt shape
Plain prose, ordered: subject → distinguishing visual specifics → action → camera → lighting → environment → audio → style. Whatever you leave unspecified gets filled in for you — research anything with a real checkable appearance (grounding=true allows a short research pass).

## Timed competition workflow (see references/contest-brief-research.md)
1. RESEARCH THE BRIEF BEFORE DISPATCHING ANYONE. Rules, submission format, tags, exact deadline with timezone, judging criteria. Never dispatch specialists on a rumored brief.
2. Convert deadline to a work-backwards plan: post by deadline minus a multi-hour buffer (iteration is slow).
3. Feasibility check against the constraints above BEFORE promising a film length.
4. Specialists in parallel (concept/storyboard, post copy) → synthesize one plan → user green-light → generate.
5. Deliver the exact submission artifact the rules require (e.g. file + caption + tags), not just the video.

## Rate limits & multi-profile coordination (learned 2026-07-30)
- HARD LIMIT: one new generation per account every ~5 minutes, and only one job active at a time. Submitting early returns a cooldown error naming the wait; submitting while a job runs returns "You already have a BFL video generation running."
- The quota is ACCOUNT-WIDE, not per-Hermes-profile. If another profile (e.g. creative) is generating, YOUR submit fails with the "already running" error — and you don't have their job id to poll. Coordinate out-of-band: only one profile submits at a time.
- When another profile owns the generation slot, hand off work as a prompt FILE (both segment prompts + iteration rules in one .txt) rather than competing for the slot. The user relays between profile sessions.
- A job survives client restarts: re-poll the same job id, never resubmit — resubmitting spends duplicate budget.

## Behaviors worth knowing (from bfl_flux3_prompting_guide)
- Multi-shot works INSIDE one generation: "SHOT ONE ... HARD CUT. SHOT TWO ..." produces real cuts; "one continuous unbroken shot" gets an uncut take. Consecutive shots must contrast in scale, location, or colour or they blend back into one take.
- Audio lands as separate layers — name ambient, music, and speech separately. Leaving audio unspecified gets invented sound, not silence.
- A quoted line becomes speech ONLY with a visible speaker on camera; otherwise it tends to burn in as on-screen text. Add "no on-screen text, no subtitles" when text is unwanted.

## Pitfalls
- Don't chain generations speculatively: each costs minutes and budget. Lock the storyboard first.
- Don't promise a clip length the tools can't make in one pass (>20s needs chaining — say so up front).
- Contests on X: scan what other entrants post so the submission doesn't blend in.
- User taste (suspense/creature trailers): restraint with ONE clear glimpse of the subject (e.g. face held for a beat, then gone) — not pure implication, not full reveal. Confirm the glimpse level before locking a storyboard.

