0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flux 2 Pro API入門 — フォトリアリスティック画像生成をPythonで実装する

0
Last updated at Posted at 2026-03-28

Flux 2 Proアーキテクチャ概念図: Prompt → Mistral-3 24B VLM → 32B RFT → Image Output

はじめに

Flux 2 Pro は、Black Forest Labs が2025年11月にリリースしたフォトリアリスティック画像生成モデルです。32億パラメータの Rectified Flow Transformer(RFT)と Mistral-3 24B Vision Language Model(VLM)を組み合わせたアーキテクチャにより、高精度なプロンプト理解と4メガピクセルの高解像度出力を実現しています。

この記事では、Flux 2 Pro の仕組みと主要機能を解説し、fal.aiReplicateTogether AI の3つのAPIプロバイダーを使った Python実装方法を紹介します。

この記事で学べること

  • Flux 2 シリーズのバリアント(Pro / Flex / Dev)の違いと使い分け
  • fal.ai / Replicate / Together AI を使ったテキスト→画像生成の実装
  • 画像編集(Image-to-Image)のAPI呼び出し方法
  • APIプロバイダー別の料金比較と選択指針

対象読者

  • PythonでAI画像生成APIを利用したい開発者
  • Midjourney や DALL-E 以外の画像生成モデルを評価したい方
  • フォトリアリスティックな画像生成をアプリケーションに組み込みたい方

TL;DR

  • Flux 2 Pro は 32B RFT + Mistral-3 24B VLM のハイブリッドアーキテクチャ
  • fal.ai / Replicate / Together AI など複数のAPIプロバイダー経由で利用可能
  • 最大4メガピクセル出力、Hexカラーコード対応、最大8枚のリファレンス画像入力
  • 料金は fal.ai で $0.03/最初の1MP + $0.015/追加MP(メガピクセル単価制)
  • 用途に応じて Pro(最高品質)・Flex(タイポグラフィ強化)・Dev(高速・低コスト)を選択

Flux 2 とは

Black Forest Labs は、Stable Diffusion の主要開発者が設立した画像生成特化スタートアップです。2024年に Flux 1.x シリーズでフォトリアリスティック画像生成の水準を大きく引き上げ、2025年11月に後継となる Flux 2 シリーズをリリースしました。

Flux 2バリアント比較: Pro/Flex/Devの用途・速度・料金を3列で比較

Flux 2 シリーズのバリアント

バリアント 特徴 生成速度 料金(fal.ai) 主な用途
Flux 2 Pro 最高品質・フォトリアリスティック 約10秒 $0.03/最初の1MP ヒーロー画像、プロダクトビジュアル
Flux 2 Flex タイポグラフィ最強・調整幅広い 約12秒 $0.06/MP ブランドビジュアル、マーケティング素材
Flux 2 Dev 高速・低コスト(オープンウェイト) 約2.5秒 $0.012/MP 高頻度API呼び出し、プロトタイピング

この記事では主に Flux 2 Pro を対象に解説します。


アーキテクチャの概要

Flux 2 Pro の技術的な特徴は、2つのモデルを組み合わせた点にあります。

32B Rectified Flow Transformer(RFT)

Rectified Flow とは、ノイズから画像を復元するプロセスを「直線的な経路」で行うアーキテクチャです。従来の拡散モデルが曲がりくねった確率的パスを辿るのに対し、Flux 2 Pro はより少ないステップで高品質な画像を生成できます(公式ブログ)。

Mistral-3 24B VLM 統合

テキストエンコーダーとして Mistral-3 24B VLM を採用しています。これにより、長く複雑なプロンプトの意図を正確に解釈できるようになりました。

主な改善点:

  • Hexカラーコード(例: #FF6B35)を指定すると、その色を正確に再現
  • 最大8枚のリファレンス画像から一貫したスタイル・人物を生成
  • JSONプロンプティングによる高度な構造的制御
  • 人体・手・顔の解剖学的精度向上(Flux 1.1 Pro では指が増えるなどの問題が多発していた)

APIプロバイダーの選択

Flux 2 Pro は公式 BFL API のほか、複数のサードパーティプロバイダーが対応しています。

プロバイダー モデル識別子 料金 特徴
fal.ai fal-ai/flux-2-pro $0.03/1MP + $0.015/追加MP Black Forest Labs公式統合
Replicate black-forest-labs/flux-2-pro $0.055/1024×1024 最安値クラス
Together AI black-forest-labs/FLUX.2-pro 変動制 画像入力(I2I)対応
BFL Direct 公式料金表参照 直接APIアクセス

セットアップ

前提条件

  • Python 3.10以上
  • 各プロバイダーのAPIキー

依存ライブラリのインストール

pip install fal-client replicate together requests Pillow

fal.ai での実装

fal.ai は Black Forest Labs の公式統合パートナーです。テキスト→画像と画像編集の両方に対応しています。

APIキーの設定

export FAL_KEY="your_fal_api_key"

テキスト→画像生成

import fal_client

# 基本的な画像生成
result = fal_client.run(
    "fal-ai/flux-2-pro",
    arguments={
        "prompt": "A macro photograph of morning dew on a spider web, "
                  "golden hour backlight, photorealistic, 8K",
        "image_size": "landscape_16_9",  # "square", "portrait_4_3" など
        "num_inference_steps": 28,       # 10〜50(デフォルト28)
        "guidance_scale": 3.5,           # プロンプト忠実度
        "num_images": 1,
        "output_format": "png",
    }
)

image_url = result["images"][0]["url"]
print(f"生成された画像URL: {image_url}")

Hexカラーコードを使った生成

Flux 2 Pro の特徴的な機能として、Hexカラーコードを指定すると正確な色が再現されます。

result = fal_client.run(
    "fal-ai/flux-2-pro",
    arguments={
        "prompt": "A modern tech company logo on white background, "
                  "primary color #3B82F6 (blue), accent #10B981 (emerald), "
                  "clean flat design, minimalist",
        "image_size": "square_hd",
    }
)

非同期実行(大量生成時)

import asyncio
import fal_client

async def generate_batch(prompts: list[str]) -> list[str]:
    """複数プロンプトを非同期で並列生成"""
    async def generate_one(prompt: str) -> str:
        result = await fal_client.run_async(
            "fal-ai/flux-2-pro",
            arguments={"prompt": prompt, "image_size": "landscape_16_9"},
        )
        return result["images"][0]["url"]

    tasks = [generate_one(p) for p in prompts]
    return await asyncio.gather(*tasks)

prompts = [
    "A futuristic city skyline at night, cyberpunk style",
    "A serene Japanese garden in autumn, soft morning light",
    "Abstract geometric patterns in blue and gold",
]

urls = asyncio.run(generate_batch(prompts))
for url in urls:
    print(url)

Replicate での実装

Replicate は料金が最安値クラスで、1024×1024 画像で約$0.055です。

APIキーの設定

export REPLICATE_API_TOKEN="your_replicate_token"

テキスト→画像生成

import replicate

output = replicate.run(
    "black-forest-labs/flux-2-pro",
    input={
        "prompt": "Portrait of a senior software engineer, "
                  "natural office lighting, shallow depth of field, "
                  "Canon 85mm f/1.4, photorealistic",
        "aspect_ratio": "1:1",          # "1:1", "16:9", "4:3", "2:3" など
        "output_format": "png",
        "output_quality": 90,            # 1〜100
        "safety_tolerance": 2,           # 1〜5(デフォルト2)
    }
)

# output はURL文字列のリスト
print(output[0])

画像をローカルに保存

import replicate
import requests
from pathlib import Path

def generate_and_save(prompt: str, output_path: str) -> Path:
    output = replicate.run(
        "black-forest-labs/flux-2-pro",
        input={
            "prompt": prompt,
            "aspect_ratio": "16:9",
            "output_format": "png",
        }
    )

    image_url = output[0]
    response = requests.get(image_url)
    response.raise_for_status()

    path = Path(output_path)
    path.write_bytes(response.content)
    print(f"保存完了: {path} ({path.stat().st_size / 1024:.1f} KB)")
    return path

generate_and_save(
    "A minimalist product photo of a coffee mug on white background",
    "output_image.png"
)

Together AI での実装(Image-to-Image)

Together AI では画像入力(Image-to-Image)が利用できます。

APIキーの設定

export TOGETHER_API_KEY="your_together_api_key"

画像スタイル変換

from together import Together

client = Together()

image_completion = client.images.generate(
    model="black-forest-labs/FLUX.2-pro",
    width=1024,
    height=768,
    steps=28,
    prompt="Convert to anime style illustration, vibrant colors, "
           "Studio Ghibli inspired, detailed background",
    # リファレンス画像のURLを指定(スタイル参照)
    image_url="https://example.com/reference_photo.jpg",
)

print(image_completion.data[0].url)

複数リファレンス画像の活用

Flux 2 Pro は最大8枚のリファレンス画像入力に対応しており、一貫したキャラクターやスタイルを維持した画像生成が可能です。

from together import Together

client = Together()

# キャラクター一貫性を保った異なるシーンの生成
scenes = [
    "standing in a modern office, business casual outfit, smiling",
    "walking in a park, casual wear, golden hour lighting",
    "sitting at a desk, coding, focused expression",
]

reference_url = "https://example.com/character_reference.jpg"

for scene in scenes:
    result = client.images.generate(
        model="black-forest-labs/FLUX.2-pro",
        width=1024,
        height=1024,
        steps=28,
        prompt=f"A professional person, {scene}, photorealistic",
        image_url=reference_url,
    )
    print(result.data[0].url)

料金の詳細比較

料金比較グラフ: fal.aiとReplicateの解像度別コスト比較

解像度別コスト(概算)

解像度 メガピクセル fal.ai Replicate
512×512 0.26 MP $0.030 $0.028
1024×1024 1.05 MP $0.031 $0.055
1920×1080 2.07 MP $0.046
2048×2048 4.19 MP $0.063

fal.ai は最初の1MPが$0.03の固定、以降は$0.015/MPの可変制です。小解像度では fal.ai が安く、高解像度では差が縮まります(fal.ai 料金表 参照)。

バリアント別コスト(fal.ai, 1024×1024基準)

バリアント コスト/枚 生成速度
Flux 2 Dev 約$0.013 約2.5秒
Flux 2 Pro 約$0.031 約10秒
Flux 2 Flex 約$0.063 約12秒

大量生成が必要な場合は Flux 2 Dev(オープンウェイト)が最適で、品質重視のプロダクションには Flux 2 Pro が推奨されます(GenAIntel 比較 参照)。


Flux 1.1 Pro との比較

公式の比較情報(Ambience AI 参照)によると、主な改善点は以下のとおりです。

項目 Flux 1.1 Pro Flux 2 Pro
パラメータ数 12B 32B
テキストエンコーダー T5 XXL Mistral-3 24B VLM
最大解像度 2MP 4MP
人体精度 指の増加・非対称顔が発生 大幅改善
テキスト描画 部分的 高精度
Hexカラー対応 非対応 対応
リファレンス画像 最大4枚 最大8枚

注意点

コンテンツフィルター

Flux 2 Pro はテキストプロンプト・入力画像・出力画像に対して複数のコンテンツフィルターが適用されます。プロンプトがフィルターに引っかかった場合、APIはエラーを返します。safety_tolerance パラメータで感度を調整できますが、プロバイダーのポリシーを確認してください(Replicate ドキュメント 参照)。

レート制限

各プロバイダーにリクエスト制限があります。大量生成時は非同期処理とリトライロジックを実装することが推奨されます。

import time
import fal_client
from tenacity import retry, stop_after_attempt, wait_exponential

@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def generate_with_retry(prompt: str) -> str:
    result = fal_client.run(
        "fal-ai/flux-2-pro",
        arguments={"prompt": prompt, "image_size": "square_hd"},
    )
    return result["images"][0]["url"]

まとめ

Flux 2 Pro は以下のような用途に適しています。

  • プロダクト画像生成: Hexカラー対応で正確なブランドカラーを再現
  • キャラクター一貫性: 最大8枚のリファレンスで統一されたビジュアルを生成
  • 高解像度コンテンツ: 最大4MPで広告・印刷物に対応
  • フォトリアリスティックなポートレート: 人体の解剖学的精度が向上

API経由での利用は fal.ai・Replicate・Together AI いずれも Python から数行で始められます。まずは無料クレジットのあるプロバイダーで試し、用途に応じて最適なプロバイダーとバリアントを選択するとよいでしょう。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?