論文解説 Stable-Pose: Leveraging Transformers forPose-Guided Text-to-Image Generation

arxiv : https://arxiv.org/pdf/2406.02485
github : https://github.com/ai-med/StablePose

ひとこと要約

ポーズ入力のControlNetの精度を大きく改善した

概要

StableDiffusionのようなT2IモデルはControlNetのような追加条件を与えることで条件に沿ったきれいな画像を生成できる
しかし、人の側面や背面など難しいポーズの場合は正しく生成できない問題が多く発生する

そこで、独自のViTをControlNetの前に追加することで高い精度を実現した

提案手法

提案手法はControlNet(StableDiffusionのEncoderのみ)にViTをつけたような構成になる。ControlNetとの違いはEncoder部分の入力が条件画像から、ViTで前処理をしたノイズ画像になっている点である

PMSA(Pose-Masked Self-Attention) ViT

前処理を行うViTは、Pose情報をうまく処理するためにAttentionの計算方法を変更している。まず、このViTのAttention MaskはPose情報が存在する範囲の近くでのみAttentionが計算されるような仕組みになっているが、後半にいくにつれて範囲が小さくなっていく(Figure 3参照)
つまり、最初は粗くポーズ関連の情報がありそうな範囲から、最後は細かくポーズが確実に存在する部分へと絞り込んでいく (Coarse-to-fine)
このViTを導入することで、この後に入力するStableDiffusionのEncoder部分がより正確にポーズ情報を処理できるようにnoiseを調整することができる

また、PoseEncoderはポーズ画像の情報をノイズに埋め込むCNNで、ViTで利用できなかった色情報をノイズに加える役割を持つ

Pose-mask guided loss

損失関数は以下のようにマスク部分のみ強調する

ただし、$${\alpha}$$は1以上である。
これにより、Pose情報がある部分の損失が強くなり、モデルがより正確にポーズ情報から画像生成に必要なデータを取り出すように学習する。

実験

提案手法はControlNetなどの画像条件を追加したモデルに対してポーズの再現精度が非常に高いことがわかる

また、生成画像を見ると、提案手法は人の前面、背面を正しく描画することができ、また他の手法では難しいような腕の位置や角度でも正確に描画していることがわかる

まとめ

  • ViTのSelf-Attentionのマスクをポーズによって調節することで、正確なポーズ条件付けを行う方法を提案した

  • 提案手法は他の手法よりもポーズ再現度が高く、背面を向くなどの複雑な画像を正確に生成できる



この記事が気に入ったらサポートをしてみませんか?