FLUX.1 requires local execution or third-party services. This article compares API parameter differences between third-party providers and summarizes payment methods.
相模原市で IoT 設計を受託しているファームロジックスです。
アップデート(10月4日): 価格体系が更新されたようなので加筆しました。
アップデート(9月25日): Black Forest Labs 社から、同社の API を直接利用できるようになったという連絡を貰い、FLUX.1 [pro] の公式 API が明確になりました。それを参考に加筆します。
以前に、AI イラストレーションの新星、Black Forest Labs FLUX.1 について御紹介しました。FLUX.1 が DALL-E や Ideogram と異なるのは、現状、Black Forest Labs 社自身ではウェブインターフェイスによる FLUX.1 のイラストレーション作成サービスを提供していない、という点です。Black Forest Labs 社自身による API サービス提供が始まっているようです。
API は提供されているようなのですが、現状は preview 中ということで、一般の参加者は API を利用することができません。が API を直接に利用できるまでには、少し時間がかかりそうです。
そのため、われわれが FLUX.1 でイラストを作成するには、自分で FLUX.1 のバイナリをビルドして([pro] 版を除く)ローカルで実行するか、各種サードパーティのサービスを利用することになります。
サードパーティのサービス
FLUX.1 のイラスト生成を提供しているサードパーティは多くありますが、そのうち [pro] 版を提供しているのは、現状以下の 3つだけです。(2024年9月18日現在)
サードパーティそれぞれで、価格や支払い方法にも若干違いがあるのですが、最初に API(パラメタ)の違いを見てみましょう。
各サードパーティで指定できるパラメタの相違
Black Forest Labs の GitHub では、(公式情報として?)FLUX.1 [pro] の API を呼び出すためのコードが示されています。これを参考にしつつ、API パラメタを比べてみましょう。
加筆: API の詳細なドキュメントを参照できるようになったので、これを公式 API として、表を見直しました。
- ○: Black Forest Labs の公式 API と同一のパラメタが提供されている
- —: 提供されていない
- 別の名前で同等と思われる機能がある場合は、そのパラメタ名を示します。
公式 API | Replicate | Fal.ai | Mystic AI |
prompt | ○ | ○ | ○ |
width | — | ○ | ○ |
height | — | ○ | ○ |
aspect_ratio | image_size | ||
variant ※2 | ※1 | ※1 | ○ |
steps | ○ | num_inference_steps | ○ |
prompt_upsampling | — | — | ○ |
seed | ○ | ○ | ○ |
guidance ※3 | ○ | guidance_scale | ○ |
safety_tolerance ※3 | ○ | ○ | ○ |
interval ※3 | ○ | — | ○ |
output_format | |||
output_quality | |||
sync_mode | |||
num_images |
※1: 異なる種類の API 呼び出しでモデル名を設定するようになっているので、このパラメタは定義されていない。
※2: 公式 API で指定できる variant は、flux.1-pro あるいは flux.1-dev のみ。
※3: GitHub の api.py には記述がない。(9月25日現在)
考察
これを見ていると混乱してきませんでしょうか。なぜ、サードパーティのサービス間でこのような差異があるのか、よく分かりません。output_format のように、lack Forest Labs の公式 API サービスで生成されたイメージに後から適用できるパラメータもあれば、guidance や interval のように、生成プロセス中にしか使用できないものもあります。
サードパーティ間で差を付けないと、各サードパーティの特色を出せないのだろうとは思いますが、ちょっと分かりにくいですね。
FLUX.1 [pro] パラメタの理解
Black Forest Labs のドキュメントや GitHub 上のソースを見ても、あまり詳細な説明は見つかりません。設計上のノウハウもあってやむを得ないところでしょうが、もう少し詳しい説明が欲しいです。以下は、いろいろなサイトを参考にまとめた、私の理解です。間違っていたらすみません。(いずれも、9月25日に得た情報に基づきます。)
なお、prompt、seed は一般的な用語なので省きます。
steps
拡散モデルがデータを生成する際に、どれだけのステップを経て結果を出力するかを決定する重要なパラメタ。ステップ数が増えることで、ノイズ除去や推論の精度が向上し、より高品質な生成結果が得られる一方、計算コストや処理時間も増加する。
- 型: int
- 範囲: 1〜50
- デフォルト値: 25(Replicate), 28(fal.ai), 15(Mystic AI)
prompt_upsampling
プロンプト(入力されるテキスト)の質を向上させるための手法で、生成される画像の品質やプロンプトへの忠実度を改善させる。(プロンプトの内容をモデルがより正確に理解し、より良い画像生成が可能となるようにする。)
- 型: boolean
- 範囲: False, True
- デフォルト値: False(Black Forest Labs, Mystic AI)
guidance
拡散モデルがプロンプトにどの程度忠実であるか、またはどれだけ自由に解釈できるかを制御するためのもので、プロンプトと生成される画像の関連性と創造性のバランスを決定する。値を大きくするとプロンプトに厳密に従う画像となり、小さくすると、より自由で多様な画像を生成する。
- 型: float
- 範囲: 1.5〜5
- デフォルト値: 2.5(Black Forest Labs), 3(Replicate, Mystic AI), 3.5(fal.ai)
safety_tolerance
生成されたコンテンツの安全性を確保するためのフィルタの厳しさを制御し、不適切なコンテンツを生成しないようにする。低い値ではより厳格なフィルタを適用し、高い値では不適切なコンテンツを許容する。
- 型: int
- 範囲: 0〜6
- デフォルト値: 2(Black Forest Labs, Replicate, fal.ai, Mystic AI)
interval
拡散モデルが生成プロセス中にどのような間隔でステップを進めるかを制御するパラメタ。これを調整することで、出力にどの程度の変化や多様性を許容するか、またはどれだけ安定した出力を維持するかが変わる。インターバルの値を小さくすると、生成物はプロンプトに対して一貫性を保ち、安定した結果をもたらす。インターバルを大きくすると、より多様で創造的な出力が得られる。
- 型: float
- 範囲: 1〜4
- デフォルト値: 2(Black Forest Labs, Replicate, Mystic AI)
支払い方法の違い
次に、上で挙げたそれぞれのサードパーティにおいて、サービス(API)の使用料の支払い方法について調べてみました。(追記: Black Forest Labs 社自身の API サービスについて加筆しました。)
Black Forest Labs 公式
現在 preview モードとなっていてすぐには利用できませんが、メールアドレスを登録しておくと、後で招待メールが来るようです。
料金はクレジット制となっていて、1000クレジットが US$ 10 に相当します。
- 試用: 初期登録時に 50 クレジットを貰える。
- 支払い方法: クレジットカード、Cash App Pay、あるいは銀行引き落とし(日本国内からはクレジットカードのみ?)
- 備考: 使用した分を支払うのではなく、1000クレジット以上(1クレジット単位)を予めチャージして利用する。
Replicate
- 試用: クレジットカード等を登録しなくても、ある程度の試用は可能。しかし、しばらく利用しているとクレジットカード情報の登録を要求される。
- 支払い方法: クレジットカードのみ(Stripe 社のサービスを使用している模様)
- 備考: 毎月初めに、前月に使用した分が請求される(At the beginning of each month, we charge you for what you used in the previous month)。利用限度額を設定可能。
Fal.ai
- 試用: サインアップ時に US$1 のクレジット(有効期限あり)を貰えた(と記憶している)。また、API サービスを初めて利用したとき、US$10 ほどのクレジット(有効期限なし?)を貰えた。
- 支払い方法: クレジットカードあるいは Link 社の支払いサービス
- 備考: 使用した分を支払うのではなく、US$10 以上を予めチャージして利用する。
Mystic AI
- 未調査
利用コスト
加筆(10月4日): FLUX 1.1 [pro] が発表されましたが、価格体系も更新されたようです。steps や画像サイズにかかわらず、コストが一定になった感じです。まだ試していませんが、御注意ください。(ちなみに、FLUX 1.1 [pro] の API では、steps を指定できなくなりました。)
- FLUX 1.1 [pro]: fixed price of 0.04$ per image.
- FLUX.1 [pro]: fixed price of 0.05$ per image.
- FLUX.1 [dev]: fixed price of 0.025$ per image.
Black Forest Labs 社のコストは、以下の通りです。なお、クレジットは 0.0001 単位で消費されるように見えています。つまり、0.0001 セント(現在のレートで約 0.00014円)単位です。(なんと細かい。。。)
FLUX.1 [pro]:
コスト = US$ 0.05 × (width / 1024) × (height / 1024) × (steps / 50)
FLUX.1 [dev]:
width, height, steps に関わずコストは常に US$ 0.03 0.025 固定
注意: 先の説明からも分かるように、各サードパーティは steps のデフォルト値を小さめに設定しています。Mystic AI 社は、コストの計算に steps を反映すると明示していますが、そうでないサードパーティもあります。
以下のリンクから、最新価格を御確認ください。
おまけの Python クライアント
勉強を兼ねて、Black Forest Labs 公式 API を使うための Python クライアントを書いてみました。
特徴
- Bashラッパー(macOS専用):
pbpaste
を使用してクリップボードの内容を直接 Python スクリプトにパイプします。Cmd-C でプロンプトテキストをコピーする macOS ユーザーに最適です。確認プロンプトと引数の処理により、使用を簡素化します。 - 柔軟なシード処理: ランダム、固定、および null のシード値をサポートします。
- 詳細モード: デバッグや洞察のために詳細なログ出力を有効にします。
なぜ --seed rand
が必要なのか
- 現在公開されている仕様では、サーバーは画像生成に使用されたシードを返しません。
- シードを知らないと、同じシードを再利用して同じ画像を再生成できません。
- そのため、
--seed rand
が使用されるとき、クライアント側でシードを生成し、追跡します。これにより再現性が確保されます。
情報の提供をお待ちしております
FLUX.1 のサービスは始まって間もないこともあり、API 利用サービス、サードパーティの使い勝手など、分かりにくい点がまだあります。当記事の誤り、新たな情報などございましたら、御遠慮なくお知らせください。