DreamOmni2
https://cloud.video.taobao.com/vod/HxWB8i8sYkh0DdfvfByoMHqRtezNMCpWJdjzWTOCqdY.mp4
マルチモーダル指示に基づく画像編集モデルを作るには、指示テキスト・ソース画像・参照画像・ターゲット画像がセットとなったデータセットが必要になる
手動でやってられないので合成データセット作成パイプラインを作成する
https://gyazo.com/5cd374b3d3c4a6ddeee74c516931b702
Stage 1 : 抽出(Extraction)モデルの作成
キーワード/属性名(素材/pose/ライティング...)とその属性を例示する参照画像を与えると、その属性の画像を生成する
https://gyazo.com/0fe5423621ef1d4fd80dae4a2c6fd0fa
データセット
ソース画像・ターゲット画像それぞれのプロンプトでtext2image
これにより、なにかしらの属性(具体物 or 抽象表現)を共有している2枚の画像ができる
Stage 2 : 指示テキスト・ソース画像・参照画像・ターゲット画像の作成
ターゲット画像をtext2image
参照画像は、Stage 1で作った抽出モデルにターゲット画像と任意の属性を入力して作成
実際に施した変更をLLMが指示文に
Stage 3 : 画像編集ではなく、reference2imageのためのデータセット増強
Stage 2でソース画像と参照画像ができているので、抽出モデルを使って参照画像を増やす
ベースはFlux.1 Kontext
が基本1枚の画像しか入力できない
ソース画像+複数の参照画像を入力するには?
Index Encoding
参照画像を image 1 / image 2 / … のように番号付き列として投入
それぞれの画像トークンに何番目なのかを表すインデックスを埋め込む
Position-Encoding Shift
位置エンコーディングにオフセットを追加
ユーザーの指示プロンプトをQwen2.5-VLにより適切な形へ編集
実装?
基本はFlux KontextのLoRA + Qwen VLMで編集したプロンプトなので、ソース・参照画像をうまいことKSamplerに入力すればComfyUIネイティブで実装できそうだけど、やり方はわかりませんnomadoor.icon