本文へスキップ

FLUX.1 Dev LoRA:シーンを成立させるスタイルブリーフの作り方

被写体を崩さずにFLUX.1 Dev LoRAを使う方法:アダプターなしの対照実験、最初に使うスケールとガイダンス値、マスク編集に切り替えるタイミング。

執筆
Lydia
公開
読了時間
約 14 分
更新
陶芸スタジオの机に向かい、クリーム色のリネンの上のコバルト色の水差しを2人の大人が見ている

FLUX.1 Dev LoRAをAPIで実行するには、重みのURLとスケールをlorasリストに送ります。 被写体を保つには、アダプターなしでそのシーンを1回実行し、同じシード・ガイダンス・ステップのままファイルを足して、LoRAスケールだけを変更します。実用的な開始値はスケール1、ガイダンス3.5、28ステップ、正方形の画角です。リアリズムのファイルはガイダンス2.5から3のほうがよく見えることがあります。対照1回と3段階のスケールで4枚になり、1枚$0.018、合計$0.072です。見た目が最も強い結果ではなく、オブジェクトがそのまま使える結果を残してください。

実際に扱うシーンは、クリーム色のリネンの上に置いた、マットなコバルト色の架空の水差しです。取っ手は三日月形を1つだけ持ちます。

アダプターが何をすべきか決める

このシーンに要るのは、判別できる水差し1つ、短い注ぎ口、開いた取っ手、リネンとの接地、そして柔らかい照明と控えめな陶器の質感です。アダプターが劇的な光沢や凝った装飾を足してくるなら、その動作は正しくても、このブリーフには合いません。

大人キャラクター版にする場合は、水差しを、ボタンを留めたネイビーシャツを着た35歳の架空の大人1人に置き換え、条件を変えてもポーズと服装を同一に保ちます。

クリーム色のリネンの上で、取っ手の開口がはっきり見えるコバルト色の陶器の水差し

イラストであり、FLUXの出力ではありません。対象の被写体で、胴は1つ、取っ手の開口は1つ、注ぎ口は短くしています。

FLUX.1 Devに合ったファイルを選ぶ

互換性のあるファイルは、FLUX.1 Devを学習ベースとして明記しています。別のFLUXリリース用のLoRA、編集専用のアーキテクチャ、SDXL、Z-Image、Qwen-Image用のLoRAは読み込んでも変化がほとんどありません。まずベースを確認してください。pathには重みファイルへの直接リンクを入れ、説明しているウェブページは使いません。ページURLは送信時に拒否され、ログインを要求する限定公開リポジトリも送信時に拒否されます。

たとえばXLabsのフォトリアリズムのモデルカードはFLUX.1 Devをベースとして挙げ、下のコードで使う直接リンクは/resolve/main/lora.safetensorsで終わります(およそ22 MB)。このカードはFLUX.1 Devの非商用ライセンスをファイル自体に適用しています。クライアントの案件で成果物を使う前に、条件を確認してください。

カードがトリガーフレーズを記載しているなら、書かれたままを正確にプロンプトの先頭に置いてください(XLabsのカードには記載がありません)。推奨強度が示されていればそこから始めてください。なければ下記の目盛りを用います。

まずPlaygroundで試す

FLUX.1 Dev LoRA テキストから画像をPlaygroundタブのForm表示で開き、入金済みのアカウントでログインして実行します。まず重みなしの対照実行から始めてください。

  1. 下のプロンプトをPromptに貼り付けます。FLUXは長く具体的なプロンプトに従うので、完全な文で書いてください。ネガティブプロンプトの欄はないので、除外項目を並べる代わりに("one handle"、"no lettering")のように欲しいものを書いてください。
  2. Aspect ratioを1:1にします。
  3. Style LoRAsのRemove itemを、リストが空になるまで押します。
  4. Advanced parametersを開き、Prompt adherenceを3.5、Sampling stepsを28、Output formatをPNG、Seedを17231に設定します。
  5. モデルを実行して画像を保存します。

One matte cobalt ceramic pitcher with a rounded body, short spout and one crescent handle on cream linen. Whole vessel visible, open handle against a quiet cream wall, oak stool behind without overlap. Soft daylight from the left, natural ceramic texture, contact shadow. Square composition, no lettering or extra vessels.

この対照で取っ手が2つあったり、底が浮いていたりする場合は、まずシーンを直してください。スツールを取っ手の開口部から離すか、より明確な四分の三正面を要求するか、スツールを取り除きます。プロンプトを変えると同じシードでも画像は変わるので、以後の実行ではテキストを完全に同一に保ってください。

次にアダプターを1つ追加します。Add itemを押し、重みへの直接リンクをLoRA fileに貼り付け(到達できて使う権限のあるファイル)、Strengthを1に設定します。他は何も変えずに再実行してください。強度1はファイルが作者の訓練どおりに適用される強さで、この欄は0から4まで受け付けます。目盛りとして0.8、1.0、1.2を実行してください(0.8でも強すぎる場合は0.5を追加)。見た目が重いときは0.8まで下げます。強いイラスト調のスタイルには1を少し超える値が必要になることもあります。1つが有効と確認できる前に、3つのファイルを積み重ねないでください。ファイルにトリガーが必要な場合は、LoRAなしでトリガーだけを単独でも実行してください。テキストだけでもベース画像が変わることがあります。

リアリズムのファイルが蝋のように見えたり、輪郭が硬すぎる場合は、最高の強度でPrompt adherenceを2.5、同じシードで再実行してください。Prompt adherenceは画像がプロンプトにどれだけ厳密に従うかを決めるもので、アダプターの強度ではありません。

続いてコードから実行する

同じ対照と3段階の強度を使い、シードと他のすべての項目を固定します。Python SDK(pip install spicyapi)をインストールし、サーバー環境でSPICY_API_KEYを設定して実行してください。

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

PROMPT = ("One matte cobalt ceramic pitcher with a rounded body, short spout and one crescent handle "
          "on cream linen. Whole vessel visible, open handle against a quiet cream wall, oak stool "
          "behind without overlap. Soft daylight from the left, natural ceramic texture, contact "
          "shadow. Square composition, no lettering or extra vessels.")
WEIGHTS = "https://huggingface.co/XLabs-AI/flux-RealismLora/resolve/main/lora.safetensors"  # XLabs realism, FLUX.1 Dev; swap in your own file
# 4 images x $0.018 = $0.072

for scale in (None, 0.8, 1.0, 1.2):  # None = control with no adapter
    task = client.create_task(
        model="black-forest-labs/flux-1-dev-lora/text-to-image",
        input_data={
            "prompt": PROMPT,
            "aspect_ratio": "1:1",
            "loras": [] if scale is None else [{"path": WEIGHTS, "scale": scale}],
            "guidance_scale": 3.5,
            "steps": 28,
            "seed": 17231,
            "output_format": "png",
        },
        idempotency_key=str(uuid.uuid4()),
    )
    final = client.wait_for_terminal(task["taskId"])
    if final["state"] != "succeeded":
        raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
    assets = output_assets(final)
    if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
        raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before running more images")
    print(scale, assets[0]["url"])  # copy the image to your own storage now

作成、待ち受け、ダウンロード、リトライ、エラーコードはtasksガイドとPython SDKリファレンスで説明されています。重みはジョブごとに取得されるため、大きなファイルでの初回呼び出しは通常の実行より遅くなります(ホスト型APIで自作LoRAを動かすを参照)。

Agentに実行させる方法

アシスタントに比較を実行させる場合、3つの公式ツールはいずれも価格を表示し、有料呼び出しの前に確認を求めます。

  • CLI。 1つの条件のinputオブジェクトをinput.jsonに入れてから、次を実行します。

``bash spicyapi tasks create --model black-forest-labs/flux-1-dev-lora/text-to-image --input-file input.json --wait ``

CLIのドキュメントも参照してください。npx @spicyapi/cliはインストールなしでも動きます。

  • MCPサーバー。 アシスタントにMCPサーバーを追加して、こう依頼します。"Run FLUX.1 Dev LoRA with this prompt, seed 17231, no LoRA, then again with this weights link at strength 0.8, 1 and 1.2." これがspicyapi_task_createを呼ぶと価格確認のため停止し、続いてspicyapi_task_waitが呼ばれます。
  • Skill。 npx skills add spicyapi-ai/spicy-skillでAgent Skillをインストールすると、コーディングアシスタントがフィールドを推測せずに実際のモデルスキーマを読むようになります。

コントロールを取り違えない

コントロールテキストから画像タスクの範囲この比較での使い方
loras(Style LoRAs)最大3件、それぞれpathとscale1つから始める。ファイルなしの対照は[]を使う
LoRAスケール(Strength)0〜4、1はファイルそのままの訓練値を適用他の設定を固定したまま、この値だけを変える
guidance_scale(Prompt adherence)0〜20、既定3.53.5のまま。蝋のようなリアリズムなら2.5を試す
steps(Sampling steps)1〜50、既定28条件がさらに変わるのを避けるため28のまま
seed0〜2147483647実行同士を比較できるように17231に固定
フォーマットJPEG(既定)、PNG、WebPPNG

このタスクは画面比を9種類(21:9から9:21、いずれも約1メガピクセル・同一価格)で使えますが、解像度や独立した幅と高さの項目、画像入力、マスクはありません。scale: 0の項目でもファイルを取得することがあるので、空リストでの対照の代わりにはなりません。

失敗したアダプター実験を直す

問題次に具体的に行うこと
リクエストが拒否された、または後で失敗したpathがログインなしで.safetensorsファイルを返すことを確認し、モデルカードのページではないことも確認します。ホスト名のタイプミスや、後で消えるファイルは送信時は受理されて後で失敗します。
画像がほとんど変わらないファイルのベースがFLUX.1 Devであること、必要なトリガーがプロンプトの先頭にあることを確認し、その後スケールを0.2上げます。
スタイルがオブジェクトを押し流すスケールを0.8または0.6まで下げます。
リアリズムが蝋のように見える同じシードでガイダンスを2.5に下げます。
取っ手が潰れるか二重になるスケールを下げるか、この被写体にはそのファイルを不採用にします。
トリガーだけでその見た目が出るその見た目はファイルではなく言葉から来ています。トリガーのみの画像に対して、ファイルが何を加えているかだけを基準に評価してください。
スタイルは有用だが商品の形が変わるマスク付きのエディタ(次のセクション)を使うか、商品レイヤーを合成します。

器、取っ手の縁、壁を同じ表示サイズで比較し、どれだけ変わったかではなく、処理と使える構造で選んでください。

元画像が画像を導く必要があるときにエディタを使う

FLUX.1 Dev LoRA 編集は同じモデル上の2つ目のタスクで、1枚$0.018です。image_urlとpromptが必要で、同じlorasリスト、ガイダンス、ステップを受け付けます。新しいコントロールが2つあります。strength(0〜1、既定0.8)は結果が元画像からどれだけ離れるかを決め、加えてmask_urlは任意で、白色が描き直され黒色が保持される、同じサイズの白黒画像です。元画像とマスクはそれぞれ10 MBまでで、いずれもファイルへの公開リンクを指定できます。

既定の0.8ではポーズとレイアウトが保たれ、0.95付近ではモデルがほぼすべてを描き直します。0.8から始めて0.05刻みで進め、1回の実行で変更するのはstrengthとLoRAスケールのどちらか一方だけにしてください。元画像が透けて見えるならstrengthを上げ、形がずれるなら下げます。マスクを使う場合は白い領域が実際に変わるように0.9〜1を使い、白い領域に入るものだけを説明してください。

このブリーフでの実用的な使い方:承認した水差しを残して、その周りをすべて書き換えます。Playgroundで編集タスクを開き、対照画像をInput imageに入れ、同じサイズの画像に壁とリネンを白、水差しを黒で塗ってAdvanced parametersのMaskとして追加し、Transformation strengthを0.95に設定して、Style LoRAsに重みを追加します。プロンプトは新しい表現だけを書きます:"Cream linen with deep folds and a quiet plaster wall, soft daylight from the left, restrained film grain." シード、Prompt adherenceの3.5、Sampling stepsの28は対照のときと同じに保ちます。APIリクエストでは同じ項目はモデルblack-forest-labs/flux-1-dev-lora/editのimage_url、mask_url、strength、lorasです。

マスクの縁をぼかすか、オブジェクトの輪郭に従ってください。硬い矩形だと継ぎ目が見えます。編集は元画像の形に従うのでaspect_ratioの項目はなく、結果は約0.7メガピクセルで返ります(1024 x 1536の元画像なら672 x 1008で返ります)。テキストから画像の画角より小さいサイズです。商品のピクセルを厳密に一致させる必要がある場合は、元の商品レイヤーを別に用意した背景の上に置いたままにして、その合成を仕上げの工程として扱ってください。

コバルト色の水差しの写真、鉛筆の画、釉薬のタイルを工房の机で整理する両手

ブリーフの参考資料:写真1点、描画1点、釉薬のサンプル。

アダルトコンテンツ:LoRAが変えるもの、変えないもの

FLUX.1 Dev LoRAは規制なしの経路です。SpicyAPIはプラットフォームのコンテンツフィルターを追加せず、アダルト向けのLoRAは読み込まれて描画されます。LoRAを読み込んでもコンテンツの範囲は決まらず、何が返るかはベースモデルが判断します。2026年9月のテストに基づくところ、素のモデルはテキストから示唆的なNSFW画像と上半身のNSFW画像を生成し、全身や2人の要求は和らいだ形になりました。アダルト用のLoRAを読み込んだ場合、最も強い検証でも高度なNSFW画像は生成されましたが、最高強度のシーンには到達しませんでした。編集では、服を着た人物像への上半身の要求は、strength 0.95(LoRAの有無にかかわらず)とマスクありの1ではそのまま返り、0.85では穏やかになったため、strengthを上げてからモデルを切り替えてください。FLUXは規制なしですか?に段階ごとの結果があります。

写真調のスタイルLoRAが変えるのは見た目であって、コンテンツの範囲ではありません。架空の大人か、書面で同意を確認済みの人だけを使ってください。

次はどこへ進むか

素の実行だけでブリーフを満たせるなら、LoRAは外したままにしてください。ライブラリ全体で新しいファイルのリンク切れと効かない重みを検査するにはホスト型APIで自作LoRAを動かすを、別のベースでの対照先行メソッドはZ-Image Turbo LoRA 同じシードでのテストを参照してください。

他の言語 English · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

このガイドを実践する

実際に試してみる

支払いは実行した分だけ。プランもサブスクリプションもありません。

使用モデル:MiniMax H3 · ByteDance Seedance 2.0 Fast