DragDiffusion: 拡散モデルを利用してインタラクティブなポイントベースの画像編集を行う
ユジュン・シー・チューフイ・シュエ・ジュンハオ・リュー・ジアチュン・パン
ハンシュウ ヤン・ウェンチン チャン・ヴィンセント YF タン・ソン・バイ
免責事項
これは研究プロジェクトであり、商用製品ではありません。ユーザーにはこのツールを使用して画像を作成する自由が与えられていますが、現地の法律を遵守し、責任ある方法で使用することが求められます。開発者は、ユーザーによる潜在的な誤用に対して一切の責任を負いません。
ニュースと最新情報
- [1月29日] ディフューザー==0.24.0に対応するアップデート!
- [10月23日] DragBenchのコードとデータを公開しました!詳細については、「drag_bench_evaluation」の README を参照してください。
- [10月16日] 生成された画像をドラッグする際にFreeUを統合しました。
- [10 月 3 日] 実画像編集時の LoRA トレーニングを高速化します。 (今はA100で20秒くらいしかない! )
- [9月3日] v0.1.0 リリース。
- 拡散生成画像のドラッグを有効にします。
- ドラッグ結果の品質を大幅に向上させる新しいガイダンス メカニズムを導入しました。 (MasaCtrl からインスピレーションを得た)
- 任意のアスペクト比で画像をドラッグできるようにする
- DPM++Solver (生成されたイメージ) のサポートの追加
- [7月18日] v0.0.1 リリース。
- LoRA トレーニングをユーザー インターフェイスに統合します。トレーニング スクリプトを使用する必要はなく、すべてが UI で簡単に実行できます。
- ユーザーインターフェイスのレイアウトを最適化します。
- 目と顔に対するより優れた VAE の使用を有効にする (こちらを参照)
- 【7月8日】v0.0.0リリース。
インストール
Linux システムを備えた Nvidia GPU でコードを実行することをお勧めします。他の構成ではまだテストしていません。現在、このメソッドを実行するには約 14 GB の GPU メモリが必要です。メモリ効率の最適化を継続します
必要なライブラリをインストールするには、次のコマンドを実行するだけです。
conda env create -f environment.yaml
conda activate dragdiff
ドラッグディフュージョンを実行する
まず、コマンド ラインで次のコマンドを実行して、gradio ユーザー インターフェイスを開始します。
UI の使用法を段階的に示した上の GIF を確認してください。
基本的には、次の手順で構成されます。
ケース 1: 入力実画像のドラッグ
1) LoRA をトレーニングする
- 入力画像を一番左のボックスにドロップします。
- 「プロンプト」フィールドに画像を説明するプロンプトを入力します。
- [Train LoRA] ボタンをクリックして、入力画像を指定して LoRA をトレーニングします。
2) 「ドラッグ」編集を行う
- 左端のボックスにマスクを描画して、編集可能な領域を指定します。
- 中央のボックス内のハンドルとターゲット ポイントをクリックします。また、「ポイントを元に戻す」をクリックすると、すべてのポイントをリセットすることができます。
- 「実行」ボタンをクリックしてアルゴリズムを実行します。編集結果が右端のボックスに表示されます。
ケース 2: 拡散生成画像をドラッグする
1) 画像を生成する
- 生成パラメータを入力します (例: ポジティブ/ネガティブ プロンプト、[Generation Config] および [FreeU Parameters] の下のパラメータ)。
- 「イメージの生成」をクリックします。
2) 生成された画像上で「ドラッグ」します。
- 左端のボックスにマスクを描画して、編集可能な領域を指定します
- 中央のボックスでハンドル ポイントとターゲット ポイントをクリックします。
- 「実行」ボタンをクリックしてアルゴリズムを実行します。編集結果が右端のボックスに表示されます。
ライセンス
DragDiffusion アルゴリズムに関連するコードは、Apache 2.0 ライセンスの下にあります。
ビブテックス
私たちのリポジトリが役に立ったと思われる場合は、スターを残すか、論文を引用することを検討してください :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
接触
このプロジェクトに関するご質問は、Yujun ([email protected]) までお問い合わせください。
了承
この作品は素晴らしい DragGAN からインスピレーションを受けています。 lora トレーニング コードはディフューザーの例から変更されています。画像サンプルはunsplash、pexels、pixabayから収集したものです。最後に、すべての素晴らしいオープンソース拡散モデルとライブラリに大声で叫びます。
関連リンク
- GAN をドラッグ: 生成画像マニホールドでのインタラクティブなポイントベースの操作
- masaCtrl: 一貫した画像の合成と編集のためのチューニング不要の相互セルフアテンション制御
- 画像拡散による緊急対応
- DragonDiffusion: 拡散モデルでドラッグ スタイルの操作を有効にする
- FreeDrag: インタラクティブなポイントベースの画像編集にはポイントトラッキングは必要ありません
一般的な問題と解決策
- インターネットの制約により、huggingface からモデルを読み込むのに苦労しているユーザーは、1) このリンクに従ってモデルをディレクトリ「local_pretrained_models」にダウンロードしてください。 2) 「drag_ui.py」を実行し、「アルゴリズム パラメーター -> ベース モデル構成 -> 拡散モデル パス」で事前トレーニング済みモデルのディレクトリを選択します。
拡大する