本文へスキップ

Z-Image Turbo LoRAが画像を変えるかを確かめる方法

同一シードでZ-Image Turbo LoRAの効果を検証。対照リクエスト、変化の見方、アダプターの互換性、成人向け生成の限界まで解説します。

執筆
Lydia
公開
読了時間
約 11 分
更新
暖かい照明の写真ギャラリーで、4人の大人が色調の異なる3枚のポートレートを見比べている

LoRAを付けて完成したポートレートを受け取ったのに、ベースモデルの結果とそっくりに見えることがあります。ジョブが成功したというだけでは、アダプターが画像に影響したかどうかは分かりません。 確かめるには、同じプロンプトと同じシードで3回生成します。LoRAなしで2回、LoRAありで1回です。3枚の出力は、1枚あたり$0.012なら合計$0.036です。3枚を比べて、狙ったスタイルや人物の変化が、ベースモデル本来のばらつきを超えて現れているかを確認します。

この2つ目の問いは、成人向けの用途で特に重要です。ベースモデルはもともと成熟した内容の指示もフィルターなしで描くため、アダプターを付けた結果のほうが露骨に見えても、その原因はベースモデルにあるかもしれません。どちらが原因かは、対照実験でしか分かりません。

まずPlaygroundで試す

z-image-turbo-lora PlaygroundをForm viewで開き、3回とも同じ値に設定します。

  1. Promptにシンプルなポートレート用プロンプトを貼り付け、Aspect ratioを1:1、Output formatをPNG、Seedを42にします。JPEG圧縮はノイズを加え、ピクセル比較に影響します。
  2. Style LoRAsでRemove itemを使ってリストを空にし、2回実行します。これが2つの対照です。
  3. Add itemを選び、LoRA fileに.safetensorsへの直接リンクを貼り、Strengthは1のままにして1回実行します。(PlaygroundではLoRAのスケールを「Strength」と表示しますが、APIのフィールドはscaleです。後述の画像から画像で使うstrengthとは別物です。)
  4. 3つの出力を並べます。狙ったスタイルや人物の変化は、2つの対照の差を超えて現れていますか。

Realismアダプターは、すでに写真的なポートレートには控えめな変化しか与えないことがあります。最初の確認で変化を見やすくしたいときは、Turbo対応の絵画調またはカラーグレーディング系のLoRAと、その作者のトリガーワードを選んでください。Realismの差が小さくても、読み込みに失敗したとは限りません。

APIで3ジョブの検証を実行する

差を目視ではなく数値で測るには、同じ3つのジョブをPythonから実行します。spicyapiとpillowをインストールし、SPICY_API_KEYを設定して、次を実行します。

python
import os
import uuid
import urllib.request
from io import BytesIO
from PIL import Image, ImageChops, ImageStat
from spicyapi import SpicyClient, output_assets

client = SpicyClient()
MODEL = "alibaba/z-image-turbo-lora/text-to-image"
inputs = {"prompt": "Realism, studio portrait of a woman in a burgundy blazer, soft window light, grey backdrop",
          "aspect_ratio": "1:1", "output_format": "png", "seed": 42,
          "loras": [{"path": "https://huggingface.co/suayptalha/Z-Image-Turbo-Realism-LoRA/resolve/8dc179cb56844d4ddc6e4527c30e98347eeae971/pytorch_lora_weights.safetensors", "scale": 1}]}

images = []
for name, loras in [("base-1", []), ("base-2", []), ("lora", inputs["loras"])]:
    body = {**inputs, "loras": loras}
    quote = client.quote_task(model=MODEL, input_data=body)
    if input(f"{name}: maximum ${quote['maxCharge']}. Create? [y/N] ") != "y":
        raise SystemExit("Stopped")
    task = client.create_task(model=MODEL, input_data=body, idempotency_key=str(uuid.uuid4()),
                              quote_id=quote["quoteId"], expected_cost=quote["estimatedCost"])
    final = client.wait_for_terminal(task["taskId"])
    url = output_assets(final)[0]["url"]
    request = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
    data = urllib.request.urlopen(request, timeout=120).read()
    open(name + ".png", "wb").write(data)
    images.append(Image.open(BytesIO(data)).convert("RGB"))

for label, other in [("control gap", images[1]), ("LoRA gap", images[2])]:
    diff = ImageStat.Stat(ImageChops.difference(images[0], other)).mean
    print(label, sum(diff) / 3 / 255 * 100)

タスクの扱いはPython SDKで説明されています。バージョンを固定した直接のLoRAファイルと、作者のトリガーワードを使ってください。対照のあいだにファイルを変えると比較が成り立ちません。同じシードでもピクセルが変わることがあるため、アダプターのスコアを解釈する前に、まず2つの対照どうしを比べてください。

結果の読み方

対照とLoRAの差(対照どうしの差と比較)意味対応
ノイズの水準とほぼ同じで、画像も似ているこのプロンプトでは、アダプターの効果は見えない学習元のベース、トリガーワード、ファイル形式(後述)を確認し、ファイル作者の推奨スケールを使う。推奨がなければ0.5、1、1.5を比較する
対照間の差を明確に上回る(差がゼロの対照も含む)。狙った見た目が出ていて、被写体も保たれている狙ったアダプター効果の裏付け。さらに多くのシードで確認する採用する。ほかの2〜3個のシードで繰り返す
ノイズの水準を大きく上回るが、被写体、顔、構図が変わった変化は大きいが、まだ使える結果ではない0.8や0.6など、より低いスケールを同じ対照と比較する
対照がすでに指示どおりになっているアダプターは必要なものを何も加えていない使わない。LoRAはスタイルや人物の調整手段であり、必須ではない

数値は一次選別にすぎず、判断するのは自分の目です。カメラがわずかにずれるだけで多くのピクセルが動き、顔が変わっても動くピクセルは少ないことがあります。パーセンテージを信用する前に、人物、スタイル、構図、頼んでいない衣装や小物を確認してください。パーセンテージは、ほかのファイルやサイズに使える基準値ではありません。成人向けのシーンでは、拒否と、完了したものの控えめになった画像も見分けてください。後者は課金され、仕上がりがきれいでも指示を満たしていないことがあります。

LoRAが効かない理由

ジョブは完了したのに狙った効果が見えない場合は、次の順に確認します。

  • 互換性が明記されていない。 Turbo専用のファイル、またはBaseで学習していて作者がTurboとの互換性を明記しているファイルを選んでください。Baseで学習したアダプターが、そのままTurboの代わりになるわけではありません。スケールを上げれば非互換が直ると考えず、作者のTurbo向け設定に従い、LoRAなしの対照を実行してください。
  • アダプターの種類が違う。 安全なのは標準のLoRA形式です。ComfyUIの報告では、Z-Image TurboのLoKRアダプターが「lora key not loaded」と記録されて無視され、標準のLoRAは動作したと述べられています(ComfyUI issue 10973)。これはローカルのComfyUIローダーに関する報告です。このエンドポイントがLoKRファイルに対応していると考えず、ここでは標準のTurbo用LoRAを使ってください。
  • トリガーワードがない。 スタイル用やキャラクター用のファイルは、トリガーワードに反応します。プロンプトの先頭に入れてください。
  • スケールが低すぎる、または効果が控えめなファイル。 ほかの条件を固定したまま、0.5、1、1.5を試します。
  • リンクの問題。 ページのURLや非公開のファイルは、送信時またはその後に失敗します。直接アクセスできるモデルファイルを使ってください。

画像から画像には2つの調整項目がある

画像から画像のタスクでは、image_url、resolutionに加えて、別のstrength(0〜1、デフォルト0.8)が加わります。これは結果が元画像からどこまで離れてよいかを決めます。値が低いほど元画像の影響が強く残り、1に近いほど大きな変化を許します。顔を保てる万能の設定はなく、1を超える値は拒否されます。strengthをシードと一緒に固定したままscaleを試してください。そうしないと、どちらの調整項目が画像を動かしたのか分からなくなります。

成人向けの用途ではどちらを使うか

2026年9月のLoRAなしのテストでは、テキストから画像は、きわどい内容から露骨な内容までの18件すべてを出力しました。画像から画像は18件中15件を出力しました。親密な行為の編集3件は、要求した行為が抜けていました。一方で、より極端なテストは完了しています。結果は段階の名称だけでなく、タスクとシーンによって決まります。そのため、シーンをゼロから書けるときはテキストから画像で始め、既存のポートレートや構図を残したいときは画像から画像を使ってください。LoRAはどちらの上にも見た目やキャラクターを加えます。クラスごとの結果はモデルレビューにあります。

3面鏡の前に立つエメラルド色のドレスの成人女性。公開されているZ-Image Turbo LoRAの例

エメラルド色のドレスのポートレートと、鏡に映る3色の反射です。アダプターの寄与を判断するときは、対応するLoRAなしの対照と比べてください。

1行の記録を残す

各画像のそばに、プロンプト、シード、アスペクト比、{path, scale}のリスト、使った場合はstrength、出力URLを保存します。すべてのpathは、変わらないファイルバージョンに固定してください。コミュニティのURLは、作者が重みを差し替えても開けたままになることがあり、固定したコミットなら各実行で使ったアダプターのバージョンを特定できます。

写真家とアートディレクターが、同じ成人女性のスタイリングだけを変えた3枚のポートレートを見比べている

確認の手順を描いたイラストです。同じ人物を3通りに仕上げると、スタイルの変化を判断しやすくなります。

FAQ

同じシードならピクセル単位で同一の画像になりますか?

確実ではありません。LoRAの差を信用する前に、LoRAなしのジョブをもう一度実行し、最初の結果と比べて測ってください。

3つのLoRAを同時に試せますか?

1回のリクエストに最大3つ読み込めますが、まず1つで試してください。複数のファイルを使うと、どれが変化を起こしたのか分かりません。2つ目はスケール0.5前後で加え、その見た目が現れるまで上げていきます。

LoRAを付けると、より強い内容が使えるようになりますか?

それだけではなりません。アダプターの効果は、対照と比べて現れたものだけに帰してください。

Z-Image TurboはLoRAに対応していますか?

はい。1回のリクエストに最大3つのLoRAを指定でき、それぞれZ-Image Turboとの互換性が明記された.safetensorsファイルへの直接リンクです。scaleは0〜4(デフォルト1)です。エンドポイントは重みを読み込むだけで、学習はしません。重みは別途学習してください。完成したファイルの渡し方は、ホスト型LoRA APIガイドで説明しています。

料金はいくらですか?

LoRAの読み込みに、アダプター用の別料金はかかりません。各タスクの前に、リアルタイムの見積もりで合計額を確認できます。

どのスケールを使えばよいですか?

作者の推奨範囲を使ってください。推奨がない場合、プラットフォームのデフォルトは1です。同じプロンプトとシードで、0.5、1、1.5を比較してください。被写体がずれるときは、スケールを下げます。別のベースで学習したファイルに対して、スケールを上げることは万能の解決策ではありません。

すでにZ-Image Turbo用のファイルがあるなら、バッチ処理がそれに依存する前に、テキストから画像で3ジョブの検証を実行してください。

呼び出しはAgentに任せる

入力の準備と結果の取得をAgentに任せ、価格と創作上の判断だけ自分で承認したいときに使います。

  • CLI: 同じ入力オブジェクトをinput.jsonとして保存し、npx @spicyapi/cli tasks create --model alibaba/z-image-turbo-lora/text-to-image --input-file input.json --waitを使います。CLIは価格を確認します。復旧用に、返されたタスクIDを保管してください。
  • MCP: アシスタントに、spicyapi_task_createでalibaba/z-image-turbo-lora/text-to-imageのタスクを作成し、続けてspicyapi_task_waitを使うよう依頼します。MCPサーバーは、作成前に価格の確認を求めます。
  • Skill: npx skills add spicyapi-ai/spicy-skillでインストールし、"Use the spicyapi skill to run this three-job check and stop for my approval."と依頼します。Skillは、設定済みのCLIまたはMCP接続を使います。

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

このガイドを実践する

ワークフローを見る

LoRAでNSFWキャラクターに独自のスタイルを。

互換性のあるキャラクターや画風の LoRA を Z-Image Turbo に組み込み、NSFW ギャラリーの見た目を作ります。ComfyUI のキャンバスに LoRA、強度、プロンプトをまとめ、さらに展開したい画像を保存します。

実際に試してみる

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

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