skills
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 106 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Official agent skills from Black Forest Labs for FLUX image and video generation — prompting guides and API integration patterns for Claude Code, Codex, and any agentskills.io-compatible agent.
BFL Skills
Official Black Forest Labs skills for FLUX image and video generation.
Installation • What's inside • FLUX 3 reference • Image reference • Documentation • License
Each skill teaches your coding agent how to prompt a FLUX model well and drive the BFL API correctly, following the agentskills.io specification.
Every clip in the reel below came out of FLUX 3 in one request, sound and all: a night-market conversation in Thai, a honey macro, a paper boat in stop motion, sparklers on Super 8, rain in a noir alley.
Installation
Everything at once:
npx skills add black-forest-labs/skills
Or start with one skill and add specialists as you need them:
# FLUX 3 video: the router pulls in the right specialist per request
npx skills add black-forest-labs/skills --skill flux-3-video
# Image prompting for every FLUX model
npx skills add black-forest-labs/skills --skill flux-image-best-practices
# BFL API integration (polling, webhooks, error handling)
npx skills add black-forest-labs/skills --skill bfl-api
Install individual FLUX 3 specialists
npx skills add black-forest-labs/skills --skill flux-3-prompt-doctor
npx skills add black-forest-labs/skills --skill flux-3-cinematic-inserts
npx skills add black-forest-labs/skills --skill flux-3-keyframes-continuation
npx skills add black-forest-labs/skills --skill flux-3-audio-dialogue
npx skills add black-forest-labs/skills --skill flux-3-generate
npx skills add black-forest-labs/skills --skill flux-3-archival-formats
npx skills add black-forest-labs/skills --skill flux-3-product-ads
Claude Code plugin
/plugin marketplace add black-forest-labs/skills
# Image skills
/plugin install flux-image-best-practices@black-forest-labs
# FLUX 3 video suite
/plugin install flux-3-video@black-forest-labs
What's inside
| Skill | What it teaches your agent |
|---|---|
flux-image-best-practices |
Prompting for every FLUX model: T2I and I2I patterns, JSON structured prompts, hex colors, typography, multi-reference editing, model selection |
bfl-api |
The BFL API end to end: endpoints, async polling, rate limits, error recovery, webhooks, Python and TypeScript clients |
flux-3-video (suite, below) |
Video generation with native audio, from a single shot to a finished product ad |
The FLUX 3 video suite
Eight skills that hand off to each other. Install the router alone and it names the specialist a request needs; install only the specialists you use.
| Skill | Use it to |
|---|---|
flux-3-video |
Route a general FLUX 3 request to the right specialist |
flux-3-prompt-doctor |
Get a readiness verdict (READY / NEEDS INFO / REVISE) before spending a generation |
flux-3-cinematic-inserts |
Write text-to-video prompts with real shot craft, from a field guide of proven concepts |
flux-3-keyframes-continuation |
Build from your own images (i2v) or continue a clip (v2v) |
flux-3-audio-dialogue |
Direct speech, voiceover, ambience, effects, and music |
flux-3-generate |
Construct requests, poll, download, and validate the result |
flux-3-archival-formats |
Give a shot a period look by naming the format: Super 8, VHS, 16mm, Hi8 |
flux-3-product-ads |
Assemble a finished product ad: voiceover, action-to-word sync, QC gates |
FLUX 3 quick reference
Modes
Every request names its mode and carries the matching media field:
mode |
Media field | What the model does |
|---|---|---|
t2v |
none | Generates the clip from your text alone |
i2v |
keyframes |
Puts your images on screen, pixel-exact, as pinned frames |
v2v |
start_video |
Continues from the final frames of your clip |
draft_enhance |
draft_cache |
Replays a chosen draft at full quality |
Draft, then commit
A full render takes several minutes. Adding draft: true returns a fast, low-step preview plus a draft_cache, so you can settle concept and composition cheaply before paying for finish. draft_enhance then replays that cache at full quality with the same prompt and settings, so the final render is the shot you approved rather than a fresh attempt.
Judge a draft on event legibility, composition, and continuity. Softness and coarse texture are artifacts of low-step rendering and resolve at full quality.
FLUX image quick reference
Four FLUX.2 [max] generations, one prompt each, no retries. Clockwise from top left: exact quoted typography, hex-specified colors (#2F5D50, #E8A13D, #F2EDE4), flat-vector illustration, photoreal macro detail.
![]() |
![]() |
![]() |
![]() |
Model selection
| Model | Best for | Pricing |
|---|---|---|
| FLUX.2 [klein] | Fastest generation, real-time | from $0.014/image |
| FLUX.2 [pro] | Production balanced | from $0.03/MP |
| FLUX.2 [flex] | Typography/text | from $0.06/MP |
| FLUX.2 [max] | Highest quality, grounding search | from $0.07/MP |
| FLUX.2 [dev] | Local development | Free (non-commercial) |
All FLUX.2 models handle both text-to-image and image editing natively. FLUX.1 models are also available.
Prompt structure
[Subject] + [Action] + [Style] + [Context] + [Lighting] + [Technical]
Core rules
- No negative prompts. FLUX doesn't support them; describe what you want instead.
- Be specific. More detail yields better results.
- Use natural language. Prose beats keyword lists.
- Specify lighting. It has the biggest impact on quality.
- Quote text. Use "quoted text" for typography.
- Hex colors. Use #RRGGBB alongside color names.
API quick start
import requests
import time
API_KEY = "your-api-key"
BASE_URL = "https://api.bfl.ai"
# Submit request
response = requests.post(
f"{BASE_URL}/v1/flux-2-pro",
headers={"x-key": API_KEY},
json={"prompt": "A serene mountain landscape"}
)
polling_url = response.json()["polling_url"]
# Poll for result
while True:
result = requests.get(polling_url, headers={"x-key": API_KEY})
data = result.json()
if data["status"] == "Ready":
print(f"Result: {data['result']}") # Expires in 10 min
break
time.sleep(2)
Documentation
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found




