Part 3: 3エンジン対決 — PASTA-GAN++ vs Nano Banana vs Vertex AI VTO

はじめに

Part 2では、Nano Banana単体での仮想試着の有効性を確認しました。しかし、Googleの専用モデルであるVertex AI Virtual Try-Onと比較するとどうか。そして両者を元のPASTA-GAN++と比較すると?

この最終回では、これらの問いに答えるために設計された12の追加テストケースを記録します。比較スクリプト(compare_vto.py)がすべてのエンジンに同一の入力を処理させ、結果を横並びの画像にまとめます。差異は一目で分かります。

ソースコード: github.com/matu79go/metafit


比較の仕組み

比較システムはNano BananaとVertex AI VTOを同じ画像ペアに対して実行し、結果を1枚の横並び画像に合成します。3エンジン比較では、旧システムのPASTA-GAN++の結果もパネルとして追加しています。

def create_comparison(person_img, clothing_img, nano_result, vto_result,
                      pasta_result=None, description=""):
    panels = [person_img, clothing_img]
    labels = ["Person", "Clothing"]

    if pasta_result:
        panels.append(pasta_result)
        labels.append("PASTA-GAN++")

    if nano_result:
        panels.append(nano_result)
        labels.append("Nano Banana")

    if vto_result:
        panels.append(vto_result)
        labels.append("Vertex VTO")

    # すべてのパネルを同じ高さにリサイズして横に並べる
    target_h = 800
    resized = []
    for panel in panels:
        ratio = target_h / panel.height
        resized.append(panel.resize(
            (int(panel.width * ratio), target_h), Image.LANCZOS
        ))
    # ... 1枚の画像に合成

Nano Banana vs Vertex VTO:clothingモード

最初のテストセットでは、2つのエンジンをclothingモード——商品画像を人物写真に適用——で比較しました。これはVertex VTOの主要な用途です。

テスト:女性 + 赤ドレス

赤ドレス比較

左から:ターゲット人物、衣服商品、Nano Banana結果、Vertex VTO結果

観点Nano BananaVertex AI VTO
色の正確さ赤→ピンクに変色正確な赤を保持
デザインの忠実度ロングプリーツドレスに改変元の丈感・形状を再現
ポーズ保持良好良好

Vertex VTOの明確な勝利。 Nano Bananaはドレスのデザインを「解釈」して大きく変えてしまいました。VTOは商品画像そのままを再現しました。

テスト:男性 + パーカー

パーカー比較

左から:ターゲット人物、衣服商品、Nano Banana結果、Vertex VTO結果

両エンジンとも良好な結果。Vertex VTOの方が背景をより正確に維持しました。

テスト:男性 + スーツ

スーツ比較

左から:ターゲット人物、衣服商品、Nano Banana結果、Vertex VTO結果

両エンジンで同等のパフォーマンス。シンプルで明確な衣服では差が小さくなりました。

clothingモードまとめ

パターンNano BananaVertex AI VTO
特徴的なデザイン(ドレス等)デザインを改変する傾向忠実に再現
シンプルな衣服(Tシャツ、パーカー)良好良好
背景保持やや変化安定

商品の忠実度が重要なECサイト用途では、Vertex VTOが明確な選択肢です。


Nano Banana vs Vertex VTO:transferモード

transferモード——ある人物から衣服を抽出して別の人物に着せる——では、2つのエンジンの根本的な違いが明らかになりました。

テスト:ダンスポーズの着せ替え

transferモード比較

左から:ターゲット人物、ソース人物(抽出する衣服)、Nano Banana結果、Vertex VTO結果

  • ターゲット: ダンスポーズの女性(タンクトップ着用)
  • ソース: Tシャツの立ち姿女性
観点Nano BananaVertex AI VTO
衣服の抽出ソースのTシャツを正しく抽出・適用ターゲットの元のタンクトップに戻ってしまった
靴の転写靴は転写されず靴を正確に転写

これは決定的な発見でした。 Vertex VTOは商品画像(平置き、白背景)向けに設計されています。人物画像を「商品」として渡した場合、衣服を正しく抽出できません——ターゲットの元の衣服に戻ってしまいます。

transferモードではNano Bananaが唯一の選択肢です。 Vertex VTOはこの用途をそもそもサポートしていません。

セーフティフィルターの違い

セーフティフィルター比較

左から:ターゲット人物、ソース人物、Nano Banana結果、Vertex VTO結果

  • ターゲット: ふくよかな女性(159cm)
  • ソース: ダンスポーズの女性(露出の多い衣服)
観点Nano BananaVertex AI VTO
結果IMAGE_SAFETYでブロック成功
体型保持ふくよかな体型を維持

Nano Bananaのセーフティフィルターは、露出の多い衣服に対してVTOより厳格です。スポーツウェア、水着、イブニングドレスが標準的な商品カテゴリであるファッション用途では、これは実用上の制約となります。

ただしVTOのセーフティフィルターにも一貫性のなさが見られました——類似の状態でも女性モデルをブロックする一方、男性モデルは通すケースがありました。


3エンジン対決

最も示唆的なテストでは、2つの生成AIエンジンにPASTA-GAN++の結果を加えました。PASTA-GAN++が歴史的に苦手としていたケース——学習データに少ない体型と複雑な衣服パターン——を意図的にターゲットしています。

テスト:大柄男性 + ボーダーセーター(5パネル比較)

3エンジン比較:多様な体型でのボーダーセーター

左から:ソース人物、PASTA-GAN++結果、Nano Banana結果(Vertex VTOは失敗 — 服が着せ替わらなかった)

  • ターゲット: 大柄な男性
  • ソース: ボーダーセーターとカーキショーツの細身男性
観点PASTA-GAN++Nano BananaVertex AI VTO
ボーダー柄再現できているきれいに再現
体型保持やや「スリム化」忠実に保持
ショーツの転写転写された転写された
顔の品質劣化高品質
総合動作はする優秀失敗——服が着せ替わっていない

Vertex VTOは完全に失敗しました。 APIは画像を返しましたが、被写体の服は変わっていませんでした。ソースの人物画像を「商品」として解釈できなかったのです。これでVTOはtransferモードに対応不可であることが確定しました。

Tests 10-12: ふくよかな女性(159cm) × 3種類の衣服 — 決定的な比較

この3つのテストでは、同一のふくよかな女性被写体に異なるソースの衣服を適用し、3エンジンの最もコントロールされた比較を実施しました。

Test 10: 花柄シャツ + デニム(Desigual)

3エンジン比較:ふくよかな体型での複雑な花柄

左から:ターゲット人物、ソース人物、PASTA-GAN++、Nano Banana、Vertex VTO

観点PASTA-GAN++Nano BananaVertex AI VTO
花柄の再現崩壊——衣服が判別不能きれいに再現まずまず
体型保持スリム化忠実に保持ソースのポーズに引っ張られる
デニムの再現失敗正確まずまず

Test 11: グレースウェット + 黒パンツ(H&M)

3エンジン比較:ふくよかな体型でのシンプルな衣服

左から:ターゲット人物、ソース人物、PASTA-GAN++、Nano Banana、Vertex VTO

観点PASTA-GAN++Nano BananaVertex AI VTO
衣服の再現崩壊正確まずまず
体型保持スリム化忠実に保持ソースのポーズに引っ張られる

Test 12: 白T + ジーンズ(男性服 → 女性)— 最注目

3エンジン対決のハイライト:男性の服をふくよかな女性に着せ替え

左から:ターゲット人物、ソース人物、PASTA-GAN++、Nano Banana、Vertex VTO

観点PASTA-GAN++Nano BananaVertex AI VTO
衣服の再現崩壊正確正確
体型保持スリム化脚の太さが忠実に再現ソースのポーズに引っ張られる
異性間着せ替え失敗自然まずまず

Nano Bananaの際立つ結果: ジーンズが159cmのふくよかな被写体の実際の脚のプロポーションに合わせて描画されました。太ももの周囲に布地が自然にストレッチし、体に沿う様子が正確に表現されています。モデルが汎用テンプレートを当てはめるのではなく、衣服が異なる体型とどう相互作用するかを真に理解していることを示しています。

3エンジンまとめ

ふくよかな体型の全テストにわたって、パターンは明確でした。

PASTA-GAN++: 全面的に失敗。すべてのテストで衣服が視覚的ノイズに崩壊し、被写体の体型は体系的にスリム化されました。GANの学習データバイアスを反映しています——モデルは主にスリムなモデルから学習しており、その分布を超えた汎化ができませんでした。

Nano Banana: transferモードで一貫して優秀。体型が忠実に保持され、複雑なパターンも正確に再現され、異性間の着せ替えも自然に機能しました。

Vertex AI VTO: transferモードに対応不可。clothingモードでは信頼性が高いが、被写体のポーズがソース画像のポーズに引っ張られる傾向がありました。


最終比較マトリクス

機能PASTA-GAN++Nano BananaVertex AI VTO
clothingモード(商品→人物)N/A△〜○
transferモード(人物→人物)× 非対応
体型保持(ふくよか)× スリム化○(clothingモード時)
複雑な柄× 崩壊
顔品質
靴・アクセサリーN/A×
色の忠実度(clothing)N/A△ 色が変わる
セーフティフィルターなし(ローカル)△ 厳格△ 基準にばらつき
セットアップ高(Docker + GPU)(APIキー)中(GCP必要)
1枚あたりコストGPU計算~無料枠~$0.02-0.04
商用ライセンス× 非商用
異性間着せ替え×

最適なアーキテクチャ

28テストケース(Part 2の16 + 本記事の12)に基づく、推奨される本番アーキテクチャは以下の通りです。

入力タイプエンジンモード最適用途
商品画像(平置き、白背景)Vertex AI VTOclothingモードEC商品ページ、色の忠実度、靴・アクセサリー
人物画像(服を着た状態)Nano Banana(Gemini)transferモードSNS/UGC、体型多様性、異性間着せ替え

どちらのエンジンも単独ではすべての用途をカバーできません。入力の種類に応じてエンジンを切り替えるハイブリッドアプローチが、仮想試着のあらゆるシナリオで最良の結果を提供します。


20年を振り返って

仮想試着システムを最初に構想したのは、およそ20年前のことでした。当時はフォトブースのコンセプト——まだ存在しないハードウェアを、まだ発明されていないAIで動かすという構想でした。

その間、PF-AFN、PIFu、PASTA-GAN++を用いた実装を構築してきました。それぞれがその時代の最良の技術を代表するものでした。そしてそれぞれが、有望でありながら結局は不十分な結果を出しました。多様な体型で崩壊する衣服、GPUクラスタを必要とする処理、商用利用を阻むライセンス。

生成AIの到来が方程式を変えました。APIキーと適切なプロンプトが、マルチステージGANパイプラインの成果を凌駕する結果を生み出します。GANでは解決できなかった体型の多様性が自然に処理されます。処理速度は1枚あたり数分から数秒に。インフラはDocker + NVIDIA GPUから1回のHTTPリクエストに。

課題は残っています。セーフティフィルターが正当なファッションコンテンツをブロックすること、手足の末端ポーズが変わることがあること、大規模なリアルタイム処理にはコスト最適化が必要なこと。しかしこれらは明確な解決策がある技術的課題であり、アプローチの根本的な限界ではありません。

20年前に描いた夢——購入前に服を着た自分を見る——は、もはや「できるかどうか」の問題ではありません。生成AIの時代がそれを「どれだけうまくできるか」の問題に変えました。そしてその答えは、すでに十分に良好です。


META FIT GenAIシリーズ:


関連:

この記事をシェア

関連記事