TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

拡散モデルの実装を理解できるノートブック

拡散モデルの実装を理解するために、こちらのノートブックがとても分かりやすかったので紹介する。
diffusion-models-class/unit1 at main · huggingface/diffusion-models-class · GitHub

拡散モデル(DDPM)を、以下のように段階的に実装して確認できるようになっている。

  1. 画像に一様ランダムのノイズを加える
  2. UNetでノイズを加えた画像から元画像を予測する
  3. ランダム画像から段階的にUNetでノイズを除くことで鮮明な画像を生成する
  4. UNetをDiffusersのUNetに置き換えることでより鮮明な画像が生成できることを確認する
  5. ノイズを一様ランダムではなくガウス分布に変更し、あるタイムステップでのノイズを算出する
  6. 元画像ではなくノイズを予測するようにする
元のノートブックにGoogle翻訳を追加したノートブック

説明を読みながらセルを順番に実行していくことで、実装の概要が理解できた。
論文へのリンクもあって、より深く調べる際にも参考になる。