論文紹介："MagicMix: Semantic Mixing with Diffusion Models"

# 本記事の目的
論文["MagicMix: Semantic Mixing with Diffusion Models"](https://arxiv.org/abs/2210.16056)を~~数式などに深入りせずに~~３行で紹介する事.

## 各種link
https://arxiv.org/abs/2210.16056

https://github.com/mpaepper/stablediffusion_magicmix

https://magicmix.github.io/

# はじめに
本記事は[BrainPad Advent Calendar](https://qiita.com/advent-calendar/2022/brainpad)の一環として書かせていただいております[^1].

私のQiita記事は[一昨年](https://qiita.com/t-ymbys/items/f204dfbb484cbbc9e91e),[昨年](https://qiita.com/t-ymbys/items/cd2e23950b606915952d)の弊社Advent Calendar記事に引き続き3つ目となりました[^2].今回こそ[^3]技術的な記事をと思い,先日弊社内で開催されている"論文読み会"[^4]で発表した内容について簡単に紹介させていただきます[^5].

紹介させていただく論文は["MagicMix: Semantic Mixing with Diffusion Models"](https://arxiv.org/abs/2210.16056)です.この論文はざっくばらんに言えば"画像中の物体A（意味A, 形A, 色A）を物体B（意味B, 形A, 色A）[^6]に変換する手法"を提案しています(下記図は[デモページ](https://magicmix.github.io/)より抜粋):

![スクリーンショット 2022-12-16 4.17.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/52c69e68-5e33-ad60-7596-38eda28f5549.png)

[^1]:体調を崩し遅刻してしまいました.申し訳ありませんでした.
[^2]:本当は定期的に備忘録として記事を書きたいのですが,中々筆が進まず,Advent Calendarが盛大に背中を押してくれてやっと1年に1本書けている状況です.
[^3]:過去の2本はキャリア的な記事で技術的な記事ではありませんでした.
[^4]:"論文読み会"は有志のメンバーが持ち回りで好きな論文について紹介する勉強会です.
[^5]:[BrainPad Advent Calendar 2日目の記事](https://pseudo-theory-of-everything.hatenablog.com/entry/2022/12/02/052046)も"論文読み会"で発表されていた内容です.
[^6]:正確には形A,色Aというより"形Aに近い形,色Aに近い色"と言うべきでしょうが簡単のためこのように記載しております.

<!--
*間違いや解りにくい表現などが多く存在するかもしれませんがご容赦いただき,ご指摘いただけますと幸いです.また,私は文章を書くのが不得手なので,多くの箇所で箇条書きスタイルでの記述となる事もご容赦いただけますと幸いです.
-->

# 概要(3行まとめ)
- 本論文では画像中の物体A（**意味A**, 形A, 色A）を物体B（**意味B**, 形A, 色A）に変換する"**Semantic Mixing**[^9]"手法を提案している.
- [Stable Diffusion](https://github.com/Stability-AI/stablediffusion)[^7]でも活用されている[Latent Diffusion Model](https://arxiv.org/pdf/2112.10752.pdf)[^11]の**一部**を変更している：
  - 元画像をVariational Auto EncoderのEncoderでLatent Space[^10]に写像しDiffusion ProcessでNoiseを加える.
  - Denoiserで復元する際,**意味Bの情報を利用し復元**を行う[^8].
- 結果,元画像に映る物体Aの形や色の(雰囲気を保った)物体Bが映る新しい画像が生成できる.

[^9]:"意味混合"とでも訳すべきでしょうか.
[^7]:Stable Diffusionについては[Stable Diffusion を基礎から理解したい人向け論文攻略ガイド【無料記事】](https://ja.stateofaiguides.com/20221012-stable-diffusion/)や[世界に衝撃を与えた画像生成AI「Stable Diffusion」を徹底解説！](https://qiita.com/omiita/items/ecf8d60466c50ae8295b)などが参考になるかもしれません.
[^8]:Stable Diffusionでは入力画像のキャプション情報を利用し復元を行います.
[^10]:"潜在空間".潜在空間とはデータを圧縮し,意味の近さを反映したようなベクトル空間
[^11]:元々のDiffusion Modelでは画像データそのものに対しDiffusion/Denoise処理を施していましたが,Latent Diffusion ModelではLatent Spaseに対しDiffusion/Denoise処理を施しています.

<!--
# Introduction
- 本論文では"スタイル変換(image+text->image)"や"複数コンテンツの合成画像生成(text+text->image)"ではなく,**画像又はテキストA,そしてテキストBを入力し,画像に映る物体又はテキストAで指定される物体の形や色の雰囲気を持ったテキストBで指定される物体の画像を生成する({(image or text A),text B}->image)タスク**について扱う.

  - 本論文で提案する手法により"コーギーのデザインを持つコーヒーマシン","スイカのデザインを持つランプ","うさぎとトラの合成生物"などの画像が生成可能となる.

![スクリーンショット 2022-12-17 2.53.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/7611edc4-07c9-4154-b44f-1dfa36eec339.png)

- 本論文で提案する手法は,Latent Diffusion Model[^12]を基礎とし,これに**若干の変更を加えた手法**を用いている:

    - Latent Diffusion ModelのDenoise処理において,初期段階では"レイアウトの復元"が行われ,段々と"コンテンツの復元"が行われることに注目し,**コンテンツの復元段階で変更したいコンテンツの情報を加える**ことで提案タスク(Semantic Mixing)を実現した.

[^12]:下記図は[High-Resolution Image Synthesis with Latent Diffusion Models](https://arxiv.org/pdf/2112.10752.pdf)より抜粋.

![スクリーンショット 2022-12-17 3.07.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/153e93db-54da-b633-30ad-412060f88e5c.png)

# Related Works
- 本論文に関係する研究として,Diffusion Model,画像生成,そして画像編集が挙げられる.特に画像編集の**Prompt補間**について少しだけ紹介しておく:
  - Prompt補間はその名の通り,2つのPromptを補間する技術のことで,これはLatent Space上での距離が近い画像に対してはうまく機能するが,そうでない場合はその限りではない.本論文が提案する方法では,Latent Space上の距離の如何に関わらずうまく機能する.

![スクリーンショット 2022-12-17 16.59.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/096e2315-8da5-256c-2431-13bb45925d24.png)

# Method
## SEMANTIC MIXING WITH DIFFUSION MODELS

![スクリーンショット 2022-12-17 17.02.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/0ae51cb6-1d74-8380-8f37-11af1079f4bd.png)

![スクリーンショット 2022-12-17 17.03.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/ece9563e-f3bd-4360-97ea-58cea56d79d7.png)

## Varying time-step for content injection

![スクリーンショット 2022-12-17 17.03.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/7760810c-7426-9bee-1c46-6e2f5d169fef.png)

## Linear interpolation

![スクリーンショット 2022-12-17 17.04.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/618afe52-c8a3-2ddf-4f0a-cb4f38019be0.png)

## Image-text cross-attention re-weighting

![スクリーンショット 2022-12-17 17.05.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/920464/912b389f-0dd5-d92a-9088-e797c1890b21.png)

# まとめ
-->