Z-Image-Turbo Image-to-Imageガイド:strengthパラメータ徹底解説
Z-Image-Turbo Image-to-Image APIをマスターしよう。strength(0〜1)が微細な補正から完全な再構成まで、変換をどのように制御するかを解説。コード例付き。
1月下旬、ニュースレター用のヘッダー画像を一括修正していた。構図は同じで、週だけが違う。細かい調整のためにPhotoshopへファイルをドラッグし続けた——少し明るく、コントラストを調整、雰囲気を保つ。必要以上に……重かった。
私はDoraです。そのとき、Z-Image-Turboの image-to-imageフローを改めて見直した。トレンドだからではなく、ゼロから作り直さずに画像をリフレッシュできる、安定した負荷の少ない方法が欲しかったからだ。2月に何度かにわたって実際に使い、穏やかな補正、スタイル変換、そして奇妙に役立つ方向で脱線したいくつかの実験を行った。本当に役立ったこと、役立たなかったこと、そして「strength」パラメータが全体の静かな中心になっていった経緯をまとめる。
Image-to-Image生成とは何か?
Image-to-imageは既存の画像を受け取り、モデルに新しい画像を生成させる手法だ。目的は全く新しいシーンをゼロから作ることではない——構図・被写体・レイアウトといった有用な構造を保ちながら、ライティング、スタイル、細かい修正、あるいは大きな再解釈など、変えたい部分だけを変えることだ。
Z-Image-Turboでは、入力画像とテキストプロンプトの対話として機能する。画像が「これがアンカーです」と言い、プロンプトが「この方向へ押してください」と応える。strengthの値を設定することで、モデルがどれだけ元の画像を尊重するかも決められる。実際のところ、この一つの値が体験全体を左右する。
私がこれを使う理由:
- 思考の負荷が減る。新しいビジュアルが欲しいたびに、フレーミングやタイポグラフィを一から考え直す必要がない。
- バッチワークフローに向いている。プロンプトのセットとベース画像があれば、一貫したバリエーションを生成できる。
- 正直さを保てる。質の悪い写真を良い写真に変えようとしても、ベースの品質が足りないところをモデルが教えてくれる。
期待値についての一言: image-to-imageは「完璧にする」ワンクリックのツールではない。仕様ではなく雰囲気に従うのが得意な、気のきいたアシスタントに近い。入力と制約が明確なほど、結果は良くなる。
Strengthパラメータの解説
一つだけ調整するなら、strengthを調整しよう。2026年2月、実際の仕事用アセット——バナー画像、プロダクトモックアップ、いくつかのイラスト風ヘッダー——で各レンジをテストした。私の経験での挙動をまとめる。
0.0〜0.3:補正モード
このレンジは元の画像をほぼそのまま保つ。私が使う場面:
- ライティングとコントラストの仕上げ、
- 軽いクリーンアップ(ノイズの軽減、バンディングの平滑化)、
- 控えめなアップスケーリング。
気づいたこと: プロンプトは依然として効くが、微妙なニュアンスとして働く。「柔らかな朝の光」はオブジェクトを変形させずにトーンをシフトさせる。顔、ロゴ、テキストの配置は安定している。元の画像がシャープで適切な露出であれば、このレンジはそれを保持する。元が弱ければ救えない——同じ問題のよりきれいなバージョンが得られるだけだ。
摩擦点:特定のカラーグレード(例:ティールのハイライト)を求めたとき、ベース画像がそれに抗うと、結果は中間地点に落ち着いた。許容範囲ではあるが、正確ではない。
0.3〜0.6:バランスの取れた変換
「違う雰囲気にしたいが、骨格は残す」場合のデフォルト設定だ。レイアウトは認識できる範囲で残る。マテリアルとライティングはより自信を持って変化する。
向いているケース:
- ブランドに合わせた配色変更、
- 同じメイン画像の季節バリエーション、
- 穏やかなリアル → イラスト調への傾き。
予想外だったこと: タイポグラフィがずれやすい。画像内にライブテキストがある場合は、実行前にマスクするか、後からテキストを再適用する計画を立てておく。また、小さなアクセサリー(イヤリング、小さなボタンなど)も、プロンプトが別のディテールを持つスタイルを示唆していると変形することがある。
0.6〜0.8:スタイルトランスファー
このあたりでモデルはより大きな自由を取る。使う場面:
- 絵画的またはグラフィカルな再解釈、
- バラバラなソース画像への一貫したアートディレクション適用、
- レイアウトはあるがビジュアルがない段階のムードボード作成。
観察:
- 顔がスタイライズされることがある。手は求めるスタイルによって良くなったり悪くなったりする。
- ライティングの方向がプロンプトの雰囲気に合わせてシフトすることがある(例:「ノワールのリムライト」)。
- エッジが柔らかくなる。ピクセル精度のプロダクトエッジが必要なら、後処理のパスを計画するか、マスクを用意しておく。
0.8〜1.0:クリエイティブな再創造
ほぼリミックスだ。モデルはおおまかな構図を尊重しつつも、要素を自由にデザインし直す。
行き詰まったときにここへ進む。ヒーロー画像が平坦に感じたら、0.9に設定して大胆なプロンプトを添え、何が提案されるか試す。半分は使えないが、もう半分は自分では思いつかなかった方向を示してくれる。
限界:ブランド上重要な要素(ロゴ、特定の衣服、規制のある製品詳細)がシフトしたり消えたりすることがある。それらを保護しなければならない場合はここまで上げないか、実行前にそのリージョンをセグメントアウトする。
API実装
小さなスクリプトにZ-Image-Turboを組み込んで、バッチ実行と設定のバージョン管理ができるようにしている。基本はシンプルだ——入力画像、プロンプト、strength値、そしてアカウントがサポートするクオリティ制御(サイズ、ステップ、ガイダンス、シード)を送信する。
実践からの小メモ:
- 参照画像はきれいな状態で、適切なサイズにしておく。長辺1024〜1536pxの範囲で作業することが多い。
- 出力にメタデータを一緒に保存する(プロンプト、strength、シード、日付)。後で良い結果を再現したくなったときに助かる。
必須パラメータ
これで実行の90%をカバーした:
- image:ソース画像(ファイルアップロードまたはURL)。高品質のPNGまたは高ビットレートのJPEGを使う。
- prompt:凝った表現より短くシンプルな言葉の方が効果的。
- strength:0.0〜1.0。低いほど保持、高いほど創造。
- size または width/height:最初に決めておく。一貫性が重要ならデフォルトに頼らない。
よく使ったオプションの制御:
- seed:再現性のためにランダム性を固定する。
- steps / quality:ステップ数を増やすと通常ディテールが洗練されるが時間が増える。Z-Imageの公式ドキュメントによると、Z-Image-Turboは8〜9ステップで高品質を達成し、非常に高速だ。
- guidance / cfg:モデルがプロンプトをどれだけ強く取り込むか。
- output_format:パイプラインに合わせてpngまたはjpg。
正確な名称と現在の制限については公式ドキュメントを確認すること。プロバイダーは気づかぬうちに名称を変更することがある。
Pythonコード例
手元に置いているシンプルなスクリプトだ。意図的にシンプルに保っている。ENDPOINTとAUTH_TOKENは実際の値に置き換えること。
import base64
import json
import requests
from pathlib import Path
ENDPOINT = "<YOUR_IMAGE_TO_IMAGE_ENDPOINT>" # e.g., provider URL
AUTH_TOKEN = "<YOUR_API_KEY>"
def run_image_to_image(
input_path: str,
prompt: str,
strength: float = 0.45,
width: int = 1024,
height: int = 1024,
seed: int | None = None,
guidance: float = 3.5,
steps: int = 28,
output_path: str = "output.png",
):
# URLの問題を避けるためbase64で画像を読み込む
img_bytes = Path(input_path).read_bytes()
img_b64 = base64.b64encode(img_bytes).decode("utf-8")
payload = {
"model": "z-image-turbo", # プロバイダーがモデル名を必要とする場合
"image": {"type": "base64", "data": img_b64},
"prompt": prompt,
"strength": strength,
"width": width,
"height": height,
"guidance": guidance,
"steps": steps,
}
if seed is not None:
payload["seed"] = seed
headers = {
"Authorization": f"Bearer {AUTH_TOKEN}",
"Content-Type": "application/json",
}
r = requests.post(ENDPOINT, headers=headers, data=json.dumps(payload), timeout=120)
r.raise_for_status()
data = r.json()
# レスポンスにbase64またはURLが含まれる場合、両方を処理する
if "image_base64" in data:
out = base64.b64decode(data["image_base64"])
Path(output_path).write_bytes(out)
elif "image_url" in data:
img = requests.get(data["image_url"], timeout=120)
img.raise_for_status()
Path(output_path).write_bytes(img.content)
else:
raise RuntimeError("No image in response")
return output_path
if __name__ == "__main__":
out = run_image_to_image(
input_path="input.png",
prompt="softer morning light, subtle warm highlights, clean contrast",
strength=0.35,
width=1280,
height=720,
seed=1234,
)
print("Saved:", out)
画像URLの扱い
リモートURLよりもbase64アップロードの方が失敗が少なかった。URLを使う場合は:
- 公開アクセス可能であることを確認する(実行途中に有効期限切れのサイン付きリンクは避ける)。
- HTTPSと安定したホストを優先する。
- 事前にサイズを正規化しておく。プロバイダーが自動リサイズを行うと、アスペクト比がずれることがある。
小さなコツ:URLを使わなければならない場合(例:画像がCMSにある場合)、ファイルをダウンロードし、mimeタイプとサイズを確認して一時的に再ホストするシンプルなプロキシを追加する。これで「生成中の404」エラーのクラス全体がなくなる。
実用的なユースケース
Z-Image-Turboが私の週に組み込まれた仕事はこれらだ。派手さはないが、信頼できる。
写真の補正とアップスケーリング
strength 0.2〜0.35で「クリーンなコントラスト、自然なスキントーン、カラーノイズの軽減」のような短いプロンプトを使う。最初のパスでは少し調整するので時間が節約されるわけではないが、3回目には精神的な負荷が減っていることに気づいた。Lightroomで細かい判断をするのではなく、軽く指示して次に進む感覚だ。
アップスケーリングには、width/heightをターゲット値に設定してステップ数を中程度に保つ。単純なリサイズよりきれいな出力が得られるが、ハードエッジにハロが出ることがある。それが見えたら、0.15のstrengthで「シャープなエッジ、ハローなし」のメモをつけた2回目のパスを実行する。
スタイルトランスファーのワークフロー
チームが共通のルックを求めているが素材がバラバラな場合、strengthを0.65〜0.75に固定する。マテリアルとライトについて一〜二文書く(例:「マットな紙のテクスチャ、左からの柔らかい方向性ライト、ミュートなパレット」)。これでバラバラなセットを素早くまとめられる。ブランドの完全な統一には銀の弾丸ではないが、70%のところまでは持っていける。その後、細かい手動修正を行う。
「スタイルライブラリ」も持っている——基本的に名前付きプロンプトのYAMLファイルだ。これにより、説明を書き直さずにコードでスタイルを切り替えられる。プロンプトを一つの画像に過剰フィットさせることも防げる。
プロダクト画像のバリエーション
ECバナーでは、プロダクトのエッジを保持する。二つの習慣が役立つ:
- 実行前にライブテキストをマスクまたはクロップアウトする。後からテキストを再適用する。
- モデルにマテリアルを創造させたい場合を除き、strength 0.5以下に抑える。
「柔らかなスタジオライティング、ニュートラルグレーの背景、製品の下に優しい影」のようなプロンプトが効果的だ。反射が乱れる場合は、シードを設定してガイダンスをやや下げて再実行し、プロンプトの引力を弱める。





