hermes atlas
apr·2026 153·repos hermes·v0.10.0 ★ star this repo

black-forest-labs/skills

Official skills from Black Forest Labs for FLUX image generation models. These skills provide prompting guidelines and API integration patterns following the https://agentskills.io specification.

★ 72 langTypeScript updated2026-02-03

This project provides official image generation skills for FLUX models, offering standardized prompting guidelines and API integration patterns following the agentskills.io specification. It functions as a technical resource for developers to implement text-to-image and image-to-image workflows through structured JSON prompting, hex color specification, and multi-reference editing. The repository includes a model selection guide for FLUX.1 and FLUX.2 variants and can be integrated directly into Claude Code as a plugin. Users can access documented API patterns for asynchronous polling, webhook verification, and rate limit management.

  • Standardized prompting guidelines for FLUX.1 and FLUX.2 model families
  • API integration patterns for polling, webhooks, and error handling
  • Support for JSON structured prompting and precise hex color specification
full readme from github

BFL Skills

Official skills from Black Forest Labs for FLUX image generation models. These skills provide prompting guidelines and API integration patterns following the agentskills.io specification.

Installation

npx skills add black-forest-labs/skills

Or install individual skills:

# FLUX best practices only
npx skills add black-forest-labs/skills --skill flux-best-practices

# API integration only
npx skills add black-forest-labs/skills --skill bfl-api

Claude Code Plugin

You can also add this as a plugin marketplace in Claude Code:

/plugin marketplace add black-forest-labs/skills
/plugin install flux-best-practices@black-forest-labs

Skills Included

1. flux-best-practices

Comprehensive guide for all FLUX models including:

  • Core Principles - Universal prompting best practices
  • Model-Specific Guides - FLUX.2 ([klein], [max], [pro], [flex], [dev]) and FLUX.1
  • T2I Prompting - Text-to-image patterns and techniques
  • I2I Prompting - Image-to-image editing with FLUX.2 reference images
  • JSON Structured Prompting - Complex scene composition
  • Hex Color Prompting - Precise color specification (#RRGGBB)
  • Typography - Text rendering and font styles
  • Multi-Reference Editing - Using multiple reference images
  • Negative Prompt Alternatives - Positive replacements (FLUX doesn't support negatives)
  • Model Selection Guide - Choosing the right model for your use case

2. bfl-api

API integration guide covering:

  • Endpoints - Complete endpoint documentation for all FLUX.2 and FLUX.1 models
  • Polling Patterns - Async polling with exponential backoff
  • Rate Limiting - Handling 24 concurrent requests
  • Error Handling - Error codes and recovery strategies
  • Webhook Integration - Production webhook setup and verification
  • Code Examples - Python and TypeScript clients

Quick Reference

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 support both text-to-image and image editing natively—no need for separate models. FLUX.1 models are also available.

Prompt Structure

[Subject] + [Action] + [Style] + [Context] + [Lighting] + [Technical]

Core Rules

  1. NO negative prompts - FLUX doesn't support them; describe what you want
  2. Be specific - More detail yields better results
  3. Use natural language - Prose style works best
  4. Specify lighting - Has the biggest impact on quality
  5. Quote text - Use "quoted text" for typography
  6. Hex colors - Use #RRGGBB with 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

Author

Black Forest Labs