Z-Image-Turbo ControlNetガイド:正確なレイアウトのためのDepth、Canny、Pose
Z-Image-TurboのControlNetをDepth、Canny、Poseモードで使いこなす。各モードの使い分け、強度設定、スタイルを変えながら構図を維持する方法を解説します。
やあ、みなさん。お元気ですか?Doraです。スティックフィギュアのポーズで画像をガイドしようとした最初の試み、結果はまるでマネキンがリサイクルショップから逃げ出してきたような仕上がりでした。壊滅的ではないけれど……なんか違う。スタイルを潰さずに、モデルに構造を尊重させたかったんです。そこで2026年1月、いくつかの午後を使って小さくて実用的なタスクでZ-Image-Turbo内のControlNetをテストしました。ナプキンのスケッチをきれいなレンダリングに変換する、建物のジオメトリを保持する、雰囲気を損なわずにキャラクターのポーズを調整する、といったことです。このガイドは、初日に手元にあればよかったと思うメモの軌跡です。静かで実用的で、これがワークフローに合うかどうかを判断するのに十分な内容です。
ControlNetとは?
ControlNetは、エッジ、深度、人体のポーズなどの構造的なヒントで画像モデルを誘導しながら、モデル自身のスタイルで描かせる方法です。プロンプトをより強く押し込んだり、ネガティブトークンを積み重ねたりする代わりに、シーンの骨格を捉えた別の「コントロール」画像を与えます。モデルはそれにより構造とスタイルをブレンドし、理想的にはあまり格闘せずに済みます。
構造とスタイルの分離
実際には、こう考えています:
- プロンプトとモデルのチェックポイントがスタイル(ライティング、テクスチャ、雰囲気)を担当する。
- ControlNetが構造(構図、輪郭、空間関係、ポーズ)を担当する。
この二つが各自の領域に留まっていれば、不気味な結果は減ります。プロンプトのハックで構造を強制しようとすると、たいていおかしなプロポーションや後の反復でのドリフトというツケを払うことになります。
コントロールモードの仕組み
各モードは入力から異なるマップを抽出します:
- Depthモードは3Dの距離を推定します。モデルに前景と背景の感覚を与えます。
- Cannyモードはクリーンなエッジを抽出します。シンプルですが信頼性があります。
- Poseモードは人体のキーポイントとスケルトンを検出します。アクションやフレーム間の一貫性に最適です。
Z-Image-Turbo(2026年1月のテスト時)では、これらをリクエストごとに切り替えられるControlNetモードとして公開しています。プラットフォームによって名前が異なる場合がありますが、考え方は同じです。正式なバージョンが知りたい場合は、ControlNetの論文とStable Diffusion AUTOMATIC1111 ControlNetドキュメントが最良の出発点です。
3つのコントロールモードの解説
Depthモード:3D空間関係
Depthモードは距離が重要なシーン向けです。建築、インテリア、風景など、「このオブジェクトがあのオブジェクトの前にある」という関係を保持する必要があるすべてのシーンです。私のテストでは、Depthはテクスチャや色の変化には寛容でしたが、カメラ距離や大きな形状については保護的でした。深度マップを変更せずに異なるレンズの見た目(より広い画角)を求めると抵抗されましたが、それは良いことだと思いました。
フィールドメモ:ソース画像に不自然なパースペクティブがあれば、Depthはそれも喜んで保持します。参照写真が傾いていれば、結果も傾きます。先にパースペクティブを修正することを学びました。
Cannyモード:エッジ検出
Cannyは3つの中で最も整然としています。エッジを抽出し、内部のテクスチャは無視します。鉛筆スケッチやワイヤーフレームがあって、文字通りモデルに線の中に収まってほしいときに使いました。タイポグラフィブロック、ロゴ、製品の輪郭をDepthよりもうまく保持しました。ただし脆い面があります。強度を高くしすぎると、スタイルが平坦化したり、エッジ周辺のカラーバンディングが生じることがあります。
フィールドメモ:コントラストの低いエッジがCannyマップで消えることがあります。スケッチを送る前にコントラストを上げるようにしました。小さな変更ですが、驚きが減りました。
Poseモード:人体キーポイント
Poseモードは関節と手足の位置をマッピングします。顔の類似性よりも体のリズム、手の位置、膝の曲がり、肩の傾きに関するものです。絵コンテのキャラクタービートを組み上げるとき、Poseは衣装、ライティング、雰囲気を変えながらアクションを読みやすく保つことができました。
フィールドメモ:手は改善しましたが、ポーズの限界の中でのみです。スケルトンが5本の短い指が密集していることを示唆している場合、モデルは優雅な手を生み出しません。Poseは意図を保持します。解剖学的な問題を自動的に修正するわけではありません。
各モードをいつ使うか
Depth:建築、風景
- カメラの位置とスケールが重要な場合に使用する。
- 適している用途:建物、インテリア、製品と環境のショット。
- クリアなラインワークだけが必要な場合はスキップ:Depthはロゴ等の精密な表現には柔らかすぎる場合がある。
私が確認したこと:Depthは光の配置を微妙に誘導しました。深度マップでより近い壁であれば、モデルはそこへの光の落ち方を尊重しました。プロンプトでライティングを過剰に指定する必要がありませんでした。
Canny:スケッチ、精密な形状
- クリーンなシルエットと信頼性の高い位置合わせが必要な場合に使用する。
- 適している用途:UIモックアップ、パッケージング、線画の着色。
- 注意点:強度が高すぎるとスタイルが過度に制約され、フラットなシェーディングになる。
私が確認したこと:Cannyは他のどのモードよりもテキストボックスやアイコンの間隔を保持しました。最終的なテキストをAIに設定することはまだしませんが、レイアウトのアイデア出しに関しては摩擦が減りました。
Pose:キャラクター、アクションシーン
- 正確な顔よりもボディランゲージが重要な場合に使用する。
- 適している用途:キーフレーム、コミック、ファッションポーズ。
- 適さない用途:顔参照ワークフローなしで人物の厳密な類似性を求める場合。
私が確認したこと:Poseはマルチショットシーケンスを安定させました。異なる設定やパレットを探索しながら、同じアクションビートを保つことができました。頭の中での整理が格段に楽になりました。
APIの実装
2026年1月後半に、**Z-Image-Turbo**のControlNetエンドポイントをモードごとに約30リクエストでテストしました。迅速で一貫した結果を得るために、入力を小さく(768px)保ちました。
モードパラメータの選択
ほとんどのAPIは次のようなものを公開しています:
- control_mode: “depth” | “canny” | “pose”
- control_image: サーバーがマップに変換するマップまたはソース画像
- prompt / negative_prompt: スタイルとコンテンツのガイダンス
- seed: 再現性のため
プラットフォームが自動マップ抽出を提供している場合、通常の画像を送信してcontrol_modeを設定すれば、サーバーがdepth/canny/poseマップを生成します。
強度の設定(0.6から始める)
コントロールの強度は、構造がどれほど厳密に適用されるかを決定します。私のベースライン:
- 最初のパスには0.6(バランス良く)
- スタイルの自由度を高めたい場合は0.4
- ロゴやパースペクティブが重要なレンダリングなど、ほぼ固定した精度が必要な場合は0.8
1.0では硬直性が見られることが多かった。0.2ではコントロールがほとんど効いていなかった。0.6がスイートスポットに感じました。
Pythonコード例
以下は最小限の例です。パラメータ名が異なる場合があります。プロバイダーのドキュメントを確認してください。パターンは私が使用したほとんどのRESTラッパーで一貫しています。
import requests
API_URL = "https://api.z-image-turbo.example/v1/images/generate" # placeholder
API_KEY = "YOUR_API_KEY"
payload = {
"prompt": "sunlit modern living room, warm wood, soft textiles, filmic lighting",
"negative_prompt": "distorted furniture, blown highlights",
"seed": 12345,
"width": 768,
"height": 512,
"control_mode": "depth", # "canny" or "pose"
"control_strength": 0.6,
}
files = {
# Send a single reference: server extracts the chosen map
"control_image": open("/path/to/reference.jpg", "rb"),
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.post(API_URL, data=payload, files=files, headers=headers, timeout=60)
resp.raise_for_status()
with open("out.png", "wb") as f:
f.write(resp.content)
基礎となるコントロールマップの詳細については、AUTOMATIC1111のControlNetドキュメントとOpenMMLab’s MMPose(ポーズ用)がシグナルをよく説明しています。
ワークフロー例
スケッチから完成作品へ
これ全体のきっかけとなった小さな不満:ゆるい鉛筆スケッチを見栄えの良いものに変えるのに、たいてい一晩かかっていました。Cannyを0.6に設定して、スキャンしたスケッチを送り、短いスタイルプロンプト(インクウォッシュ、落ち着いたパレット)を加え、バリエーションを生成させました。最初のパスは少しクリーンすぎて、ほぼ無機質でした。強度を0.45に下げると、元の線からの少しのぶれが戻り、より誠実に感じられました。節約できた時間:おそらく30〜40分ですが、より大きな勝利は精神的なもので、マスクをいじる作業がずっと減りました。
摩擦:コントラストを上げるまで、薄い線がエッジマップで消えてしまいました。それ以降は一貫性が保たれました。
建築ビジュアライゼーション
2026年1月22日、スマートフォンで撮影したシンプルなリビングルームのレイアウト写真にDepthモードを試しました。目標:ソファと窓の位置を保持しながら、素材を探索する。control_strengthを0.7に設定すると、モデルは壁の位置と窓のグリッドを尊重しながら、木のトーンと布のテクスチャを入れ替えました。0.85に上げると、素材が過度に固定されすぎて、リテラルすぎて雰囲気がなくなりました。ほとんどのインテリアショットでは0.6か0.65に落ち着きました。
小さな驚き:プロンプトにレンズのヒント(「35mm、浅い被写界深度」)を追加しても、深度マップが主導権を握っていたため、期待ほど効果がありませんでした。異なるカメラの感触が欲しい場合は、新しいアングルから参照写真を撮り直しました。賢くはないけれど、より確実でした。
キャラクターコンセプトアート
Poseモードは、5フレームにわたる走り方のスタンスを繰り返し試行するのに役立ちました。同じキャラクター、異なるムード。ポーズツールからの簡単なスティックフィギュアをコントロール画像として使用し、スタイルプロンプト(ストリートウェア、バックライト、夕暮れ)を重ねました。手は試行を重ねるごとに改善しましたが、まだタッチアップが必要でした。それとは戦いませんでした。内部作業では、読める手で十分です。リリース用アートでは、よりクリーンなパスから指を合成するか、描くことになるでしょう。
保持できたこと:体の弧と視線の方向が一貫していました。それによって、セットが5枚の無関係な画像ではなく、シーケンスのように感じられました。
なぜこれが私にとって重要なのか:ControlNetは、構造が難しい部分である場合のプロンプトのマイクロマネジメントの必要性を減らします。判断を取り除くわけではありません。ただ、注意を向けるべき価値のある部分に移すだけです。
向いている人:
- 大まかな参照写真を手元に置いていて、それを実際に結果に反映させたい。
- ゆるく描いて、ジェスチャーを失わずにクリーンなレンダリングが欲しい。
- 絵コンテを描いていて、スタイルが変わってもポーズを読みやすく保ちたい。
向いていない人:
- 追加のステップなしで正確な類似性が欲しい(顔/IDワークフローが必要)。
- 前処理や参照画像の調整が嫌い。
興味があれば、小さく始めましょう:一つのモードを選び、強度を0.6に設定して、プロンプトだけを変えながら同じ入力を5回実行する。何が変わり、何が変わらないかを観察する。その「変わらないもの」、それがあなたの構造が語りかけているものです。
今でもデスクにメモを置いています:「プロンプトではなく、参照を修正する。」モデルが単純に真実を語っているだけなのに、モデルと議論してしまうのを防いでくれます。





