DreamOmni2
https://cloud.video.taobao.com/vod/HxWB8i8sYkh0DdfvfByoMHqRtezNMCpWJdjzWTOCqdY.mp4
https://pbihao.github.io/projects/DreamOmni2/Project
https://huggingface.co/xiabs/DreamOmni2/tree/mainxiabs/DreamOmni2
https://github.com/dvlab-research/DreamOmni2dvlab-research/DreamOmni2
https://arxiv.org/abs/2510.06679DreamOmni2: Multimodal Instruction-based Editing and Generation
https://huggingface.co/spaces/wcy1122/DreamOmni2-GenDemo (Gen)
https://huggingface.co/spaces/wcy1122/DreamOmni2-EditDemo (Edit)
マルチモーダル指示に基づく画像編集モデルを作るには、指示テキスト・ソース画像・参照画像・ターゲット画像がセットとなったデータセットが必要になる
手動でやってられないので合成データセット作成パイプラインを作成する
https://gyazo.com/5cd374b3d3c4a6ddeee74c516931b702
Stage 1 : 抽出(Extraction)モデルの作成
キーワード/属性名(素材/pose/ライティング...)とその属性を例示する参照画像を与えると、その属性の画像を生成する
https://gyazo.com/0fe5423621ef1d4fd80dae4a2c6fd0fa
データセット
ソース画像・ターゲット画像それぞれのプロンプトでtext2image
ただし、ターゲット画像の方は、attention層でソース側のK,Vを連結して混ぜる (Feature Mixing)
これにより、なにかしらの属性(具体物 or 抽象表現)を共有している2枚の画像ができる
Stage 2 : 指示テキスト・ソース画像・参照画像・ターゲット画像の作成
ターゲット画像をtext2image
ソース画像は、改良FLUX.1 Kontextでターゲット画像を編集
参照画像は、Stage 1で作った抽出モデルにターゲット画像と任意の属性を入力して作成
実際に施した変更をLLMが指示文に
Stage 3 : 画像編集ではなく、reference2imageのためのデータセット増強
Stage 2でソース画像と参照画像ができているので、抽出モデルを使って参照画像を増やす
ベースはFlux.1 Kontext
が基本1枚の画像しか入力できない
ソース画像+複数の参照画像を入力するには?
Index Encoding
参照画像を image 1 / image 2 / … のように番号付き列として投入
それぞれの画像トークンに何番目なのかを表すインデックスを埋め込む
Position-Encoding Shift
位置エンコーディングにオフセットを追加
これがあると参照画像をそのままコピペするcopy-paste artifactが減る
ユーザーの指示プロンプトをQwen2.5-VLにより適切な形へ編集
実装?
https://github.com/HM-RunningHub/ComfyUI_RH_DreamOmni2HM-RunningHub/ComfyUI_RH_DreamOmni2 (ラッパー)
基本はFlux KontextのLoRA + Qwen VLMで編集したプロンプトなので、ソース・参照画像をうまいことKSamplerに入力すればComfyUIネイティブで実装できそうだけど、やり方はわかりませんnomadoor.icon