Spaces:
Sleeping
Sleeping
| title: Flux2 | |
| emoji: 🏆 | |
| colorFrom: yellow | |
| colorTo: yellow | |
| sdk: gradio | |
| sdk_version: 6.2.0 | |
| python_version: 3.11.6 | |
| app_file: app.py | |
| pinned: false | |
| license: mit | |
| Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
| # FLUX.2 Inference | |
| FLUX.2 のオープンウェイトモデルをローカルで実行するための推論コードです。画像生成・編集に対応し、テキストエンコードから画像生成まで完全にローカルで処理できます。 | |
| by Black Forest Labs: https://bfl.ai | |
| API ドキュメント: https://docs.bfl.ai | |
| ## 概要 | |
| - **完全ローカル実行**: テキストエンコーダー(Mistral3 Small)、フローモデル、オートエンコーダーをすべてローカルGPUで実行 | |
| - **プロンプトアップサンプリング**: ローカルまたはOpenRouter経由でプロンプトを拡張(任意) | |
| - **モデル自動取得**: Hugging Face Hub から `black-forest-labs/FLUX.2-dev` を自動ダウンロード、または手元の `weights/` を利用 | |
| - **柔軟な実行方法**: CLI(対話モード・単発実行)、Diffusers パイプライン、Jupyter Notebook | |
| ## 動作要件 | |
| - **Python**: 3.10以上、3.13未満(推奨: 3.11) | |
| - **GPU**: CUDA対応GPU(推奨) | |
| - VRAM: 約20GB以上(4-bit量子化構成) | |
| - VRAM不足時: `--cpu_offloading=True` でCPUへ一部オフロード可能 | |
| - **OS**: Linux / macOS / Windows(WSL2推奨) | |
| ## 環境構築 | |
| ### uvによるセットアップ(推奨) | |
| ```bash | |
| # uvのインストール(未インストールの場合) | |
| pip install uv | |
| # 依存関係のインストール | |
| uv sync | |
| # 仮想環境の有効化 | |
| source .venv/bin/activate # Linux/macOS | |
| # .venv\Scripts\activate # Windows | |
| ``` | |
| ### Hugging Face ログイン | |
| モデルを自動取得する場合、Hugging Face へのログインが必要です: | |
| ```bash | |
| # gated モデルへのアクセス承認を事前に取得 | |
| # https://huggingface.co/black-forest-labs/FLUX.2-dev | |
| uv run hf auth login | |
| ``` | |
| ## モデルウェイトの指定(任意) | |
| 同梱の `weights/` ディレクトリを利用する場合、環境変数で指定できます: | |
| ```bash | |
| export FLUX2_MODEL_PATH="$(pwd)/weights/flux2-dev.safetensors" | |
| export AE_MODEL_PATH="$(pwd)/weights/ae.safetensors" | |
| ``` | |
| 自動ダウンロード時のキャッシュ場所: | |
| ``` | |
| ~/.cache/huggingface/hub/ | |
| ``` | |
| カスタムキャッシュディレクトリを使う場合: | |
| ```bash | |
| export HF_HOME=/path/to/custom/cache | |
| ``` | |
| ## デモの利用方法 | |
| 詳細は[Flux2 README](./README_origin.md)を参照。 | |
| ### Diffusers パイプライン(Python) | |
| ローカルでテキストエンコードを実行する例: | |
| GPUのVRAMが24~32GBの場合は、以下の4bit量子化したモデルで完全にローカル環境で実行可能。 | |
| ```python | |
| import torch | |
| from diffusers import Flux2Pipeline | |
| from PIL import Image | |
| repo_id = "diffusers/FLUX.2-dev-bnb-4bit" | |
| device = "cuda:0" | |
| torch_dtype = torch.bfloat16 | |
| # パイプラインの初期化 | |
| pipe = Flux2Pipeline.from_pretrained( | |
| repo_id, torch_dtype=torch_dtype | |
| ).to(device) | |
| # メモリ最適化(任意) | |
| pipe.enable_model_cpu_offload() | |
| # 画像生成 | |
| prompt = "a photo of a forest with mist swirling around the tree trunks" | |
| input_image = Image.open("input.jpg") # 任意 | |
| image = pipe( | |
| prompt=prompt, | |
| image=[input_image], # 省略可能 | |
| generator=torch.Generator(device=device).manual_seed(42), | |
| num_inference_steps=28, | |
| guidance_scale=4.0, | |
| ).images[0] | |
| image.save("output.png") | |
| ``` | |
| ### 4. Jupyter Notebook | |
| プロジェクト内の `test.ipynb` にサンプルコードがあります: | |
| ```bash | |
| uv run jupyter notebook test.ipynb | |
| ``` | |
| ## パラメータ説明 | |
| | パラメータ | 説明 | デフォルト | | |
| | ---------------------- | ----------------------------------------------------- | ---------- | | |
| | `prompt` | 生成する画像の説明文 | - | | |
| | `width` / `height` | 出力画像サイズ(ピクセル) | 1360 / 768 | | |
| | `num_steps` | デノイジングステップ数 | 50 | | |
| | `guidance` | ガイダンススケール(高いほどプロンプトに忠実) | 4.0 | | |
| | `seed` | 乱数シード(再現性確保) | ランダム | | |
| | `input_images` | 入力画像パス(編集モード) | なし | | |
| | `match_image_size` | 入力画像のサイズに合わせる(インデックス指定) | なし | | |
| | `upsample_prompt_mode` | プロンプト拡張モード: `none` / `local` / `openrouter` | `none` | | |
| | `cpu_offloading` | CPUオフロード有効化 | False | | |
| ## 参考ドキュメント | |
| - [Diffusers経由の利用方法](docs/flux2_dev_hf.md) | |
| - [プロンプトアップサンプリング解説](docs/flux2_with_prompt_upsampling.md) | |
| - [オリジナルREADME](README_origin.md)(存在する場合) | |