InstructPix2Pix を用いた Stable Diffusion の指示チューニング
Hugging Face は、InstructPix2Pix のトレーニング戦略を適用することで、Stable Diffusion を指示チューニングし、漫画化や除雨などの特定の画像変換や低レベル処理タスクを実行できることを示しました。このアプローチにより、モデルは一般的な事前学習モデルよりも、入力画像をより忠実に自然言語の指示に従って変更できます。
画像編集のための指示チューニング
指示チューニングは、自然言語プロンプトに基づいてタスクを解決するようにモデルを教える教師あり手法です。もともとは言語モデル(FLAN など)向けに開発されましたが、Hugging Face はこの考え方を InstructPix2Pix フレームワークを用いて Stable Diffusion に適用しました。
事前学習済みの InstructPix2Pix モデルは一般的な編集指示に従うことができますが、特定の変換に対しては苦労することが多いです。これを解決するために、研究者は専門タスク用のペアデータセットを活用して指示付きデータセットを作成し、指示と視覚的変換との間の特定のマッピングをモデルが学習できるようにしました。
データセットの作成と手法
モデルを訓練するために、Hugging Face は入力画像とターゲット出力、そして対応する自然言語の指示をペアにした専門的なデータセットを作成しました。
漫画化データセット
モデルに画像を「漫画化」させるために、チームは3段階のパイプラインを実装しました:
- Instruction Generation: ChatGPT を使用して、指示「画像を漫画化する」の同義文を 50 個生成しました。
- Label Generation: 事前学習済みの Whitebox CartoonGAN モデルを用いて、Imagenette データセットから 5,000 サンプルを処理し、ターゲットとなる漫画化画像を作成しました。
- Exemplar Creation: これらの要素を組み合わせ、元画像、指示、漫画化出力からなる例示を作成しました。
低レベル画像処理データセット
FLAN のマルチタスクアプローチに従い、チームは複数の低レベルタスクを含む単一のデータセットを構築しました。これは、従来の画像処理でモデルが個別のデータセットで独立して訓練されるのとは異なります。
| タスク | プロンプト | データセット | サンプル数 |
|---|---|---|---|
| ぼかし除去 | "ぼやけた画像のぼかしを除去する" | REDS | 1,200 |
| 除雨 | "画像の除雨を行う" | Rain13k | 686 |
| ノイズ除去 | "ノイズの多い画像のノイズ除去" | SIDD | 8 |
| 低照度強調 | "低照度画像を強調する" | LOL | 23 |
訓練実験と結果
訓練は、既存の InstructPix2Pix チェックポイントからのファインチューニングと、InstructPix2Pix 手法を用いて Stable Diffusion v1-5 チェックポイントからのファインチューニングという 2 つの主要な出発点で実施されました。研究者は、InstructPix2Pix のチェックポイントから開始することで、適応が速くなり、生成品質が向上することを確認しました。
パフォーマンス分析
- Cartoonization: 指示チューニングされたモデルは、事前学習済み InstructPix2Pix モデルに比べて、CartoonGAN モデルの出力とより忠実に一致しました。
- Deraining: モデルは、実際の画像と非常に近い説得力のある結果を生成しました。
- Failures: モデルは低照度画像の強調やぼかし除去で苦戦しました。研究者は、これらのタスクに対する訓練例が不足していることが原因と考えています。
- Generalization: 訓練中に十分に見られなかった ImageNette のクラスに対して期待される出力を生成できず、より大規模なデータセットが必要であることが示唆されました。
制限事項と今後の方向性
進展があるものの、研究者は現実的な画像編集アプリケーションにおけるいくつかの重要な課題を指摘しました:
- Resolution: システムは大きく高解像度の元画像に対応できるようにスケールアップする必要があります。
- Hallucinations: 拡散モデルは時折指示を「捏造」したり再解釈したりし、プロフェッショナルな編集には受け入れられない形で画像空間を変更してしまいます。
コミュニティへのオープンな質問
- データセットサイズを拡大(例:元の InstructPix2Pix で使用された 30,000 件以上のサンプルに近づける)すると、品質にどのような影響がありますか?
- タスクの混合を増やす、または訓練期間を長くすると、未見タスクや複合指示(例:「画像のぼかし除去とノイズ除去」)への汎化が改善されますか?
- データセット作成時だけでなく、訓練時に同義の指示を使用することで、性能が向上しますか?
- ControlNet の訓練設定を用いることで、これらの特定の画像変換タスクでより良い結果が得られますか?