File size: 5,199 Bytes
cc0ae10
 
 
 
 
 
 
30b29df
cc0ae10
 
 
 
 
 
 
2706625
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
---
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)(存在する場合)