LoRAを付けて完成したポートレートを受け取ったのに、ベースモデルの結果とそっくりに見えることがあります。ジョブが成功したというだけでは、アダプターが画像に影響したかどうかは分かりません。 確かめるには、同じプロンプトと同じシードで3回生成します。LoRAなしで2回、LoRAありで1回です。3枚の出力は、1枚あたり$0.012なら合計$0.036です。3枚を比べて、狙ったスタイルや人物の変化が、ベースモデル本来のばらつきを超えて現れているかを確認します。
この2つ目の問いは、成人向けの用途で特に重要です。ベースモデルはもともと成熟した内容の指示もフィルターなしで描くため、アダプターを付けた結果のほうが露骨に見えても、その原因はベースモデルにあるかもしれません。どちらが原因かは、対照実験でしか分かりません。
まずPlaygroundで試す
z-image-turbo-lora PlaygroundをForm viewで開き、3回とも同じ値に設定します。
- Promptにシンプルなポートレート用プロンプトを貼り付け、Aspect ratioを1:1、Output formatをPNG、Seedを42にします。JPEG圧縮はノイズを加え、ピクセル比較に影響します。
- Style LoRAsでRemove itemを使ってリストを空にし、2回実行します。これが2つの対照です。
- Add itemを選び、LoRA fileに
.safetensorsへの直接リンクを貼り、Strengthは1のままにして1回実行します。(PlaygroundではLoRAのスケールを「Strength」と表示しますが、APIのフィールドはscaleです。後述の画像から画像で使うstrengthとは別物です。) - 3つの出力を並べます。狙ったスタイルや人物の変化は、2つの対照の差を超えて現れていますか。
Realismアダプターは、すでに写真的なポートレートには控えめな変化しか与えないことがあります。最初の確認で変化を見やすくしたいときは、Turbo対応の絵画調またはカラーグレーディング系のLoRAと、その作者のトリガーワードを選んでください。Realismの差が小さくても、読み込みに失敗したとは限りません。
APIで3ジョブの検証を実行する
差を目視ではなく数値で測るには、同じ3つのジョブをPythonから実行します。spicyapiとpillowをインストールし、SPICY_API_KEYを設定して、次を実行します。
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色の反射です。アダプターの寄与を判断するときは、対応するLoRAなしの対照と比べてください。
1行の記録を残す
各画像のそばに、プロンプト、シード、アスペクト比、{path, scale}のリスト、使った場合はstrength、出力URLを保存します。すべてのpathは、変わらないファイルバージョンに固定してください。コミュニティのURLは、作者が重みを差し替えても開けたままになることがあり、固定したコミットなら各実行で使ったアダプターのバージョンを特定できます。

確認の手順を描いたイラストです。同じ人物を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接続を使います。





