Spaces:
Sleeping
Sleeping
| Metadata-Version: 2.4 | |
| Name: flux | |
| Version: 0.1.0 | |
| Summary: Inference codebase for FLUX.2 | |
| Author-email: Black Forest Labs <support@blackforestlabs.ai> | |
| License: Apache License | |
| Version 2.0, January 2004 | |
| http://www.apache.org/licenses/ | |
| TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | |
| 1. Definitions. | |
| "License" shall mean the terms and conditions for use, reproduction, | |
| and distribution as defined by Sections 1 through 9 of this document. | |
| "Licensor" shall mean the copyright owner or entity authorized by | |
| the copyright owner that is granting the License. | |
| "Legal Entity" shall mean the union of the acting entity and all | |
| other entities that control, are controlled by, or are under common | |
| control with that entity. For the purposes of this definition, | |
| "control" means (i) the power, direct or indirect, to cause the | |
| direction or management of such entity, whether by contract or | |
| otherwise, or (ii) ownership of fifty percent (50%) or more of the | |
| outstanding shares, or (iii) beneficial ownership of such entity. | |
| "You" (or "Your") shall mean an individual or Legal Entity | |
| exercising permissions granted by this License. | |
| "Source" form shall mean the preferred form for making modifications, | |
| including but not limited to software source code, documentation | |
| source, and configuration files. | |
| "Object" form shall mean any form resulting from mechanical | |
| transformation or translation of a Source form, including but | |
| not limited to compiled object code, generated documentation, | |
| and conversions to other media types. | |
| "Work" shall mean the work of authorship, whether in Source or | |
| Object form, made available under the License, as indicated by a | |
| copyright notice that is included in or attached to the work | |
| (an example is provided in the Appendix below). | |
| "Derivative Works" shall mean any work, whether in Source or Object | |
| form, that is based on (or derived from) the Work and for which the | |
| editorial revisions, annotations, elaborations, or other modifications | |
| represent, as a whole, an original work of authorship. For the purposes | |
| of this License, Derivative Works shall not include works that remain | |
| separable from, or merely link (or bind by name) to the interfaces of, | |
| the Work and Derivative Works thereof. | |
| "Contribution" shall mean any work of authorship, including | |
| the original version of the Work and any modifications or additions | |
| to that Work or Derivative Works thereof, that is intentionally | |
| submitted to Licensor for inclusion in the Work by the copyright owner | |
| or by an individual or Legal Entity authorized to submit on behalf of | |
| the copyright owner. For the purposes of this definition, "submitted" | |
| means any form of electronic, verbal, or written communication sent | |
| to the Licensor or its representatives, including but not limited to | |
| communication on electronic mailing lists, source code control systems, | |
| and issue tracking systems that are managed by, or on behalf of, the | |
| Licensor for the purpose of discussing and improving the Work, but | |
| excluding communication that is conspicuously marked or otherwise | |
| designated in writing by the copyright owner as "Not a Contribution." | |
| "Contributor" shall mean Licensor and any individual or Legal Entity | |
| on behalf of whom a Contribution has been received by Licensor and | |
| subsequently incorporated within the Work. | |
| 2. Grant of Copyright License. Subject to the terms and conditions of | |
| this License, each Contributor hereby grants to You a perpetual, | |
| worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
| copyright license to reproduce, prepare Derivative Works of, | |
| publicly display, publicly perform, sublicense, and distribute the | |
| Work and such Derivative Works in Source or Object form. | |
| 3. Grant of Patent License. Subject to the terms and conditions of | |
| this License, each Contributor hereby grants to You a perpetual, | |
| worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
| (except as stated in this section) patent license to make, have made, | |
| use, offer to sell, sell, import, and otherwise transfer the Work, | |
| where such license applies only to those patent claims licensable | |
| by such Contributor that are necessarily infringed by their | |
| Contribution(s) alone or by combination of their Contribution(s) | |
| with the Work to which such Contribution(s) was submitted. If You | |
| institute patent litigation against any entity (including a | |
| cross-claim or counterclaim in a lawsuit) alleging that the Work | |
| or a Contribution incorporated within the Work constitutes direct | |
| or contributory patent infringement, then any patent licenses | |
| granted to You under this License for that Work shall terminate | |
| as of the date such litigation is filed. | |
| 4. Redistribution. You may reproduce and distribute copies of the | |
| Work or Derivative Works thereof in any medium, with or without | |
| modifications, and in Source or Object form, provided that You | |
| meet the following conditions: | |
| (a) You must give any other recipients of the Work or | |
| Derivative Works a copy of this License; and | |
| (b) You must cause any modified files to carry prominent notices | |
| stating that You changed the files; and | |
| (c) You must retain, in the Source form of any Derivative Works | |
| that You distribute, all copyright, patent, trademark, and | |
| attribution notices from the Source form of the Work, | |
| excluding those notices that do not pertain to any part of | |
| the Derivative Works; and | |
| (d) If the Work includes a "NOTICE" text file as part of its | |
| distribution, then any Derivative Works that You distribute must | |
| include a readable copy of the attribution notices contained | |
| within such NOTICE file, excluding those notices that do not | |
| pertain to any part of the Derivative Works, in at least one | |
| of the following places: within a NOTICE text file distributed | |
| as part of the Derivative Works; within the Source form or | |
| documentation, if provided along with the Derivative Works; or, | |
| within a display generated by the Derivative Works, if and | |
| wherever such third-party notices normally appear. The contents | |
| of the NOTICE file are for informational purposes only and | |
| do not modify the License. You may add Your own attribution | |
| notices within Derivative Works that You distribute, alongside | |
| or as an addendum to the NOTICE text from the Work, provided | |
| that such additional attribution notices cannot be construed | |
| as modifying the License. | |
| You may add Your own copyright statement to Your modifications and | |
| may provide additional or different license terms and conditions | |
| for use, reproduction, or distribution of Your modifications, or | |
| for any such Derivative Works as a whole, provided Your use, | |
| reproduction, and distribution of the Work otherwise complies with | |
| the conditions stated in this License. | |
| 5. Submission of Contributions. Unless You explicitly state otherwise, | |
| any Contribution intentionally submitted for inclusion in the Work | |
| by You to the Licensor shall be under the terms and conditions of | |
| this License, without any additional terms or conditions. | |
| Notwithstanding the above, nothing herein shall supersede or modify | |
| the terms of any separate license agreement you may have executed | |
| with Licensor regarding such Contributions. | |
| 6. Trademarks. This License does not grant permission to use the trade | |
| names, trademarks, service marks, or product names of the Licensor, | |
| except as required for reasonable and customary use in describing the | |
| origin of the Work and reproducing the content of the NOTICE file. | |
| 7. Disclaimer of Warranty. Unless required by applicable law or | |
| agreed to in writing, Licensor provides the Work (and each | |
| Contributor provides its Contributions) on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | |
| implied, including, without limitation, any warranties or conditions | |
| of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | |
| PARTICULAR PURPOSE. You are solely responsible for determining the | |
| appropriateness of using or redistributing the Work and assume any | |
| risks associated with Your exercise of permissions under this License. | |
| 8. Limitation of Liability. In no event and under no legal theory, | |
| whether in tort (including negligence), contract, or otherwise, | |
| unless required by applicable law (such as deliberate and grossly | |
| negligent acts) or agreed to in writing, shall any Contributor be | |
| liable to You for damages, including any direct, indirect, special, | |
| incidental, or consequential damages of any character arising as a | |
| result of this License or out of the use or inability to use the | |
| Work (including but not limited to damages for loss of goodwill, | |
| work stoppage, computer failure or malfunction, or any and all | |
| other commercial damages or losses), even if such Contributor | |
| has been advised of the possibility of such damages. | |
| 9. Accepting Warranty or Additional Liability. While redistributing | |
| the Work or Derivative Works thereof, You may choose to offer, | |
| and charge a fee for, acceptance of support, warranty, indemnity, | |
| or other liability obligations and/or rights consistent with this | |
| License. However, in accepting such obligations, You may act only | |
| on Your own behalf and on Your sole responsibility, not on behalf | |
| of any other Contributor, and only if You agree to indemnify, | |
| defend, and hold each Contributor harmless for any liability | |
| incurred by, or claims asserted against, such Contributor by reason | |
| of your accepting any such warranty or additional liability. | |
| END OF TERMS AND CONDITIONS | |
| APPENDIX: How to apply the Apache License to your work. | |
| To apply the Apache License to your work, attach the following | |
| boilerplate notice, with the fields enclosed by brackets "[]" | |
| replaced with your own identifying information. (Don't include | |
| the brackets!) The text should be enclosed in the appropriate | |
| comment syntax for the file format. We also recommend that a | |
| file or class name and description of purpose be included on the | |
| same "printed page" as the copyright notice for easier | |
| identification within third-party archives. | |
| Copyright [yyyy] [name of copyright owner] | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| Requires-Python: <3.13,>=3.10 | |
| Description-Content-Type: text/markdown | |
| License-File: LICENSE.md | |
| Requires-Dist: torch==2.8.0 | |
| Requires-Dist: torchvision==0.23.0 | |
| Requires-Dist: einops==0.8.1 | |
| Requires-Dist: transformers==4.57.3 | |
| Requires-Dist: safetensors==0.4.5 | |
| Requires-Dist: fire==0.7.1 | |
| Requires-Dist: openai==2.8.1 | |
| Requires-Dist: bitsandbytes>=0.48.2 | |
| Requires-Dist: jupyter>=1.1.1 | |
| Requires-Dist: diffusers>=0.35.2 | |
| Requires-Dist: accelerate>=1.12.0 | |
| Requires-Dist: matplotlib>=3.10.7 | |
| Requires-Dist: gradio>=6.2.0 | |
| Requires-Dist: googletrans>=4.0.2 | |
| Provides-Extra: dev | |
| Requires-Dist: ruff==0.6.8; extra == "dev" | |
| Dynamic: license-file | |
| # 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)(存在する場合) | |