概要
生成AIが発展する一方で、権利者が望まない無断のAI学習が問題になってきています
この記事では、学習用画像にノイズが入っていた場合、画像生成AIにどのような影響があるのかを調査しました
※この記事群は2024/10末時点の調査に基づいています
目次
- 画像生成AIにとって一番嫌なノイズを探す -結論編-
- 画像生成AIにとって一番嫌なノイズを探す -準備編-
- 画像生成AIにとって一番嫌なノイズを探す -調査編(1)-
- 画像生成AIにとって一番嫌なノイズを探す -調査編(2)-
- 画像生成AIにとって一番嫌なノイズを探す -調査編(3)-
- 画像生成AIにとって一番嫌なノイズを探す -調査編(4)-
- 画像生成AIにとって一番嫌なノイズを探す -実装編-
※この記事群は2024/10末時点の調査に基づいています
追加学習
薄くて大きいロゴを人物にかかるように入れた場合(Glaze・Nightshade未使用)
epoch 12
過学習状態になるとロゴが再現されるようになりましたが、epoch 8 程度だと効果はありませんでした。
細くて濃いめのロゴを人物にかかるように入れた場合(Glaze・Nightshade未使用)
epoch 8
髪にかかるようにロゴを入れたので、髪に妙なドットが出るようになりました。
でも正直それくらいで、ハイライトと言われれば分からない程度です。
ライン状のロゴを人物の後ろに入れた場合(Glaze・Nightshade未使用)
epoch 10
過学習状態になるとライン状の柄が出てくるようになりましたが、epoch 8 程度では効果がありませんでした。
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
epoch 2
epoch 4
epoch 6
ラインが一回だけ出てきました
epoch 8
epoch 12
epoch 16 になると、ライン状の背景になりやすい傾向が出てきました
円状のロゴを人物にかかるように入れた場合(Glaze・Nightshade未使用)
epoch 8
ロゴっぽい絵柄が髪に出てくるようになりました
顔のテクスチャにロゴを入れた場合
epoch 8
少しロゴが小さすぎましたが、明らかに学習されており、緑色の妙な柄が頬に描かれています
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
3Dモデルならではですが、フェイスペイントの要領で顔のテクスチャにロゴを入れてみました。
このパターンだけ別撮りしているので、データセットが異なります(枚数は同じです)
epoch 2
epoch 4
epoch 6
頬に妙な柄が出てくるようになりました
epoch 10
安定して緑色の柄が出てくるようになりました
epoch 12
ウォーターマーク(透過度10%)を入れた場合(Glaze・Nightshade未使用)
epoch 8
うっすらではありますが髪にウォーターマークのラインのようなものが出てきました。
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
epoch 2
epoch 4
epoch 6
epoch 10
ウォーターマークのラインが徐々に見えやすくなってきました
epoch 12
ウォーターマーク(透過度20%)を入れた場合(Glaze・Nightshade未使用)
epoch 8
だいぶ分かりやすくウォーターマークが出ています
ウォーターマーク(透過度30%)を入れた場合(Glaze・Nightshade未使用)
epoch 8
非常に分かりやすくウォーターマークが学習されています
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
epoch 2
epoch 4
この時点で既にウォーターマークが学習され始めています
epoch 6
人物より背景にかかりやすくなっているかも
epoch 10
epoch 12
ウォーターマーク(透過度10%)を入れた画像とノイズなしの画像を半分ずつ混ぜて学習した場合(Glaze・Nightshade未使用)
epoch 8
ウォーターマークは学習されにくくなっています
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
ウォーターマーク(10%) の画像から16枚、ノイズ未適用の画像から16枚を交互に選択しました
epoch 2
epoch 4
epoch 6
epoch 10
epoch 12
ウォーターマーク(透過度20%)を入れた画像とノイズなしの画像を半分ずつ混ぜて学習した場合(Glaze・Nightshade未使用)
epoch 8
よくよく見るとうっすらラインが入ってる…かな?程度にしか学習されませんでした
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
ウォーターマーク(20%) の画像から16枚、ノイズ未適用の画像から16枚を交互に選択しました
epoch 2
epoch 4
epoch 6
epoch 10
epoch 12
ウォーターマーク(透過度30%)を入れた画像とノイズなしの画像を半分ずつ混ぜて学習した場合(Glaze・Nightshade未使用)
epoch 12
ほんの少し斜めのラインが入っているように見えます。
過学習状態になるとウォーターマークが出やすくなりました
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
ウォーターマーク(30%) の画像から16枚、ノイズ未適用の画像から16枚を交互に選択しました
epoch 2
epoch 4
epoch 6
epoch 8
epoch 10
ウォーターマーク(透過度20%)を入れて、ウォーターマーク除去をプロンプトでのみ指示した場合
- ウォーターマーク(透過度20%)
- 学習時のウォーターマーク除去タグ付けはナシ
- ネガティブプロンプトでウォーターマーク除去指示を追加
- Glaze・Nightshade未使用
epoch 8
プロンプトだけでウォーターマークの除去はやはり難しいようです
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
ウォーターマーク(20%) のデータセットをそのまま使用しています
epoch 2
epoch 4
epoch 6
epoch 10
epoch 12
ウォーターマーク(透過度20%)を入れて、ウォーターマーク除去をタグとプロンプトの両方で指示した場合
- ウォーターマーク(透過度20%)
- 学習時のウォーターマーク除去タグ付けはアリ
- ネガティブプロンプトでウォーターマーク除去指示を追加
- Glaze・Nightshade未使用
epoch 10
ウォーターマークは大分除去できていますが、学習があまり進んでいません。
ノイズなしの学習成功例と比較して、色や形状の特徴が学習できていませんね。
他にも何パターンか試しましたが、やはりStable Diffusionの学習だけでウォーターマークを完全に除去するのは難しそうです
(或いは学習方法に何か間違いがあるのかもしれません)
調査詳細 (学習元画像・epochごとの変遷)
学習用データ
ウォーターマーク(20%) のデータセットにタグ「watermark,english text
」を学習対象に追加
epoch 2
epoch 4
epoch 6
epoch 8
epoch 12
検証結論
ウォーターマークは、ハッキリした形状かつ顔や髪など対象物にかかっていれば学習に組み込まれる
LoRA学習時にウォーターマークを除去する指示を出しても2024/10末時点では、まだ完全に除去はできない