Repolode
lucidrains

lucidrains/denoising-diffusion-pytorch

画像(および1Dシーケンス)生成モデルを学習するための、Denoising Diffusion Probabilistic ModelsのPyTorch実装。

スター
10,710
フォーク
1,283
未解決の Issue
169
最終コミット
23 日前

これは何?

このプロジェクトは、段階的にノイズを加える過程を逆向きにたどるよう学習する生成モデリング手法、Denoising Diffusion Probabilistic ModelsのPyTorch実装です。U-Netバックボーンに加え、順方向のノイズ付加、学習損失、学習済みモデルからのサンプリングを処理するGaussianDiffusionクラスを提供します。

画像生成の基本的なパイプラインに加えて、画像フォルダーを受け取り、データ読み込み、学習ループ、定期的なサンプルの記録、チェックポイント保存、任意のFID計算を行うTrainerクラスを備えています。また、マルチGPU学習向けのHugging Face Accelerate、ampによる混合精度、タイムステップ数を減らして高速化するDDIM形式のサンプリングにも対応しています。シーケンスデータ用の1D U-Netと1D diffusionのバリエーションも含まれており、XMWrapperは複数候補の損失計算に対応します。

このライブラリはPyPIからインストールでき、diffusionモデルの実験に使える、読みやすく改変しやすいリファレンス実装を求める研究者や開発者を対象としています。

主な機能

  • 01PyTorchでDDPMの学習目的関数とサンプリング手順を実装しています。
  • 02flash attentionを任意で利用できる、設定可能なU-Netバックボーンを提供します。
  • 03Trainerクラスが、フォルダー形式の画像データセット、チェックポイント、サンプルの記録を処理します。
  • 04Hugging Face AccelerateによるマルチGPU学習と混合精度に対応しています。
  • 05少ないステップでのDDIM形式サンプリングと、学習中のFID評価に対応しています。
  • 06シーケンスデータ向けの1D U-Netとdiffusionのバリエーションを提供します。

ユースケース

  • 独自の画像フォルダーを使って、小規模な画像生成モデルを学習する。
  • diffusionの学習・サンプリングの中核コードを調べたり、変更したりする。
  • 1次元シーケンスデータ向けのdiffusionモデルを試作する。
  • Accelerateを使って、マルチGPUでdiffusionの学習実験を行う。

クイックスタート

  1. 1

    PyPIからパッケージをインストールする

    pip install denoising_diffusion_pytorch
  2. 2

    モデルと拡散オブジェクトを作成し、Trainerクラスを使って画像フォルダー内の画像で学習する

  3. 3

    学習を開始する

    trainer.train()

使う前に知っておきたいこと

  • 現実的なサイズの画像で学習するには、GPUとかなりの時間が必要です(この例では700000ステップを使用します)。

トピック

よくある質問

denoising-diffusion-pytorch とは?
画像(および1Dシーケンス)生成モデルを学習するための、Denoising Diffusion Probabilistic ModelsのPyTorch実装。 このプロジェクトは、段階的にノイズを加える過程を逆向きにたどるよう学習する生成モデリング手法、Denoising Diffusion Probabilistic ModelsのPyTorch実装です。U-Netバックボーンに加え、順方向のノイズ付加、学習損失、学習済みモデルからのサンプリングを処理するGaussianDiffusionクラスを提供します。
denoising-diffusion-pytorch は無料で使えますか?ライセンスは?
denoising-diffusion-pytorch は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
denoising-diffusion-pytorch は今もメンテナンスされていますか?
活発にメンテナンス中。denoising-diffusion-pytorch の最終コミットは 2026年9月29日 です。
denoising-diffusion-pytorch は何に使えますか?
独自の画像フォルダーを使って、小規模な画像生成モデルを学習する。 diffusionの学習・サンプリングの中核コードを調べたり、変更したりする。 1次元シーケンスデータ向けのdiffusionモデルを試作する。 Accelerateを使って、マルチGPUでdiffusionの学習実験を行う。
denoising-diffusion-pytorch のインストール方法は?
PyPIからパッケージをインストールする: pip install denoising_diffusion_pytorch モデルと拡散オブジェクトを作成し、Trainerクラスを使って画像フォルダー内の画像で学習する 学習を開始する: trainer.train()
denoising-diffusion-pytorch はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/lucidrains/denoising-diffusion-pytorch

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト