見出し画像

最近出た高速化技術:DMD2:ComfyUIで試してみた

高速化に関する技術の様です。
高速化に関しては色んなのがあって、これはどうなんでしょうか?

論文がありましたので要約は以下です。
題名: Improved Distribution Matching Distillation for Fast Image Synthesis
発行年: 2024年5月24日
どんなもの?
この論文は、画像生成の効率を向上させるための新しい手法、DMD2(Distribution Matching Distillation 2)を紹介しています。従来のDMD手法の制約を克服し、より高速で高品質な画像生成を実現します。
先行研究と比べてどこがすごい?
従来のDMDは、教師モデルが生成する多数のノイズ-画像ペアを使って回帰損失を計算する必要があり、これが計算コストと生成品質の制約となっていました。DMD2は、この回帰損失を排除し、GAN損失を統合することで、教師モデルを超える性能を達成しています。
技術や手法のキモはどこ?
回帰損失の排除:
安定したトレーニングを維持しながら回帰損失を排除し、データセットの作成コストを削減。
二重時間スケール更新ルール: トレーニングの安定性を向上させるために、異なる頻度でモデルを更新。
GAN損失の統合: 生成画像と実画像を識別するためのGAN損失を導入し、教師モデルの制約を克服。
マルチステップ生成: トレーニングと推論の入力ミスマッチを解消する新しい手法を導入し、マルチステップ生成を可能に。
どうやって有効だと検証した?
ImageNet-64×64やCOCO 2014のデータセットで実験を行い、FIDスコアで従来の手法や教師モデルを上回る結果を得ました。具体的には、ImageNet-64×64で1.28、COCO 2014で8.35のFIDスコアを達成しています。
議論はある?
DMD2は計算コストを大幅に削減し、生成品質を向上させることができる一方で、大規模なモデルや複雑なタスクに対してはさらに改良の余地があります。また、生成画像の多様性や公平性に関する課題も指摘されています。

Githubページから4step demoというがあり、簡単に試すことが出来ます。
以下は試してみたもの。SDXLで、16枚の画像が3秒ちょっとで生成されました。ダウンロードした画像のサイズは1024x1024でしたので、凄いスピードですね。

DMD2はComfyUIで試すことが出来ます。
以下のフォルダにモデルを配置します。
ComfyUI/models/unet

ファイルを「DMD2_sdxl_pytorch_model.bin」に変更してワークフローを読み込みます。

Paperspaceのコマンドはこんな感じですが、容量が9.57GBなので微課金では難しいです。
一時ディレクトリ利用だと可能でした。

!mkdir -p /notebooks/ComfyUI/models/unet
!cd /notebooks/ComfyUI/models/unet && \
wget -nc https://huggingface.co/tianweiy/DMD2/resolve/main/model/sdxl/sdxl_cond999_8node_lr5e-7_denoising4step_diffusion1000_gan5e-3_guidance8_noinit_noode_backsim_scratch_checkpoint_model_019000/pytorch_model.bin?download=true -O DMD2_sdxl_pytorch_model.bin

実際にComfyUIで動かしてみたフローです。

通常生成ではCheckpointからモデルのラインが出ていますが、このワークフローだとUNETのところからでています。
設定されているサンプラーはLCMで、CFG1、4ステップでした。
初回はモデルのロードがあるため時間がかかりますが、2回目からは1枚あたり1.3秒とかでした。

ちなみに、設定するモデルは生成画像に影響はないようです。

サンプラーなどを変更してみると、4ステップで生成出来るものもありましたが、LCMが最も良い画像が出来るような設定のようです。

ちなみにCFGですが、0.6まで下げてもプロンプトにあう画像を生成することが出来ましたが、0.5からはプロンプトと別な画像が生成されました。
生成時間はCFG1の時が最も短い結果でした。

ComfyUIはA1111と違い、CFGが1未満の指定が出来るのは興味深いです。


この記事が気に入ったらサポートをしてみませんか?