9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

画像生成AIにとって一番嫌なノイズを探す -調査編(4)-

Last updated at Posted at 2024-11-12

概要

生成AIが発展する一方で、権利者が望まない無断のAI学習が問題になってきています
この記事では、学習用画像にノイズが入っていた場合、画像生成AIにどのような影響があるのかを調査しました

※この記事群は2024/10末時点の調査に基づいています

目次

  1. 画像生成AIにとって一番嫌なノイズを探す -結論編-
  2. 画像生成AIにとって一番嫌なノイズを探す -準備編-
  3. 画像生成AIにとって一番嫌なノイズを探す -調査編(1)-
  4. 画像生成AIにとって一番嫌なノイズを探す -調査編(2)-
  5. 画像生成AIにとって一番嫌なノイズを探す -調査編(3)-
  6. 画像生成AIにとって一番嫌なノイズを探す -調査編(4)-
  7. 画像生成AIにとって一番嫌なノイズを探す -実装編-

※この記事群は2024/10末時点の調査に基づいています

追加学習

ウォーターマークとして細かい格子柄を入れた場合(透過度20%)

epoch 8

case03_61_watermark_20_linen-000008_1_normal_03.png

他のパターンもいくつか試してみましたが、細かい柄は学習時に消えてしまうようです
学習自体に影響はほとんどありませんでした

調査詳細 (学習元画像・epochごとの変遷)

学習データ

24-10-26-07-07-58-17.png

epoch 2

case03_61_watermark_20_linen-000002_1_normal_03.png

epoch 4

case03_61_watermark_20_linen-000004_1_normal_03.png

epoch 6

case03_61_watermark_20_linen-000006_1_normal_03.png

epoch 10

case03_61_watermark_20_linen-000010_1_normal_02.png

epoch 12

case03_61_watermark_20_linen-000012_1_normal_02.png


ウォーターマークとしてドット(大きめの丸)を入れた場合(透過度20%)

epoch 8

case03_63_watermark_20_dot_L-000008_1_normal_01.png

epoch 6 で既に水玉模様が出ており、とても鮮明にウォーターマークが学習されています

調査詳細 (学習元画像・epochごとの変遷)

学習データ

24-10-26-07-07-58-17.png

epoch 2

case03_63_watermark_20_dot_L-000002_1_normal_02.png

epoch 4

case03_63_watermark_20_dot_L-000004_1_normal_02.png

epoch 6

case03_63_watermark_20_dot_L-000006_1_normal_02.png

epoch 10

case03_63_watermark_20_dot_L-000010_1_normal_01.png

epoch 12

case03_63_watermark_20_dot_L-000012_1_normal_02.png


ドット柄ウォーターマーク(透過度20%)を入れて、ウォーターマーク除去をタグとプロンプトの両方で指示した場合

  • ウォーターマーク(透過度20%)
  • 学習時のウォーターマーク除去タグ付けはアリ
  • ネガティブプロンプトでウォーターマーク除去指示を追加
  • Glaze・Nightshade未使用

epoch 8

case03_64_watermark_20_negative_dot_L-000008_2_negative_01.png

文字ではないのでウォーターマークの除去はうまくいかないようです
学習ができていないのにウォーターマークが強く生成される傾向になりました

調査詳細 (学習元画像・epochごとの変遷)

学習データ

ドット柄ウォーターマーク(20%) のデータセットにタグ「watermark,english text」を学習対象に追加

epoch 2

case03_64_watermark_20_negative_dot_L-000002_2_negative_02.png

epoch 4

case03_64_watermark_20_negative_dot_L-000004_2_negative_03.png

epoch 6

case03_64_watermark_20_negative_dot_L-000006_2_negative_03.png

epoch 10

case03_64_watermark_20_negative_dot_L-000010_2_negative_02.png

epoch 12

case03_64_watermark_20_negative_dot_L-000012_2_negative_02.png


ドット柄ウォーターマーク(透過度20%)→ Nightshade Low → Glaze Low をかけた場合

epoch 8

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000008_1_normal_01.png

髪の色味がやや学習できていない感じです
またウォーターマークとしてドット柄がだいぶ鮮明に描かれています

調査詳細 (学習元画像・epochごとの変遷)

学習データ

24-10-26-07-07-58-17.png

epoch 2

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000002_1_normal_03.png

epoch 4

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000004_1_normal_02.png

epoch 6

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000006_1_normal_02.png

epoch 10

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000010_1_normal_02.png

epoch 12

case03_65_watermark_20_dot_L_nightshade_low_glaze_low-000012_1_normal_02.png

ウォーターマーク除去

ウォーターマークを除去する機能の開発やサービスは、既に複数存在しています
それらを使用した場合の効果についても調査しました

zuruoke/watermark-removal

特徴

  • ちょっと古いリポジトリなので環境構築に一苦労
  • マスクを指定して、一致した箇所にあるウォーターマークを除去する
  • デフォルトで用意されているマスクは一種類(自分で用意する必要がある)

比較

入力画像 マスク 出力画像
24-10-26-07-07-58-17.png mask.png 24-10-26-07-07-58-17.png

Photoshopのヒストリーブラシのように、ウォーターマーク部分を周りの色で埋めた結果になりました
よくよく見ると指でのばしたような跡が見られるのですが、パッと見には綺麗に除去できているかのように見えます
少なくともほぼ一致できるマスクが用意できれば、ある程度は除去できそうです

調査失敗

  • braindotai/Watermark-Removal-Pytorch
  • D-Ogi/WatermarkRemover-AI

上記リポジトリは環境構築がうまくいかなかったため、検証できませんでした

ウォーターマーク除去サイト1

image.png

ウォーターマークはかなり綺麗に除去できてしまいました

ウォーターマーク除去サイト2

マスク指定 除去後
image.png image.png

(少なくとも無料では)ウォーターマークのマスクを手動で入れていくタイプのようです
除去自体はほどほどに行えました(あまり強くは除けないようです)

この時点での推測

  • ウォーターマークが不規則に入っていると除去しづらいのでは?
  • ウォーターマークが適度に複雑(クローバー程度)の方が除去しづらいのでは?

以降、この推測を元に調査を進めました


AIが除去しづらいウォーターマークの調査

単一柄(猫の足跡:16x16、透過度50%)を少しランダムで配置し、オーバーレイ効果で合成した場合

epoch 8

case03_71_watermark_20_cat_footprint-000008_1_normal_01.png

ヒョウ柄のような不規則な模様が主に髪に学習されるようになりました

ウォーターマーク除去

image.png

ほとんど除去されてしまっています

マスク指定 除去後
image.png image.png
調査詳細 (学習元画像・epochごとの変遷)

学習データ

24-10-26-07-07-58-17.png

epoch 2

case03_71_watermark_20_cat_footprint-000002_1_normal_02.png

epoch 4

case03_71_watermark_20_cat_footprint-000004_1_normal_02.png

epoch 6

case03_71_watermark_20_cat_footprint-000006_1_normal_01.png

epoch 10

case03_71_watermark_20_cat_footprint-000010_1_normal_02.png

epoch 12

case03_71_watermark_20_cat_footprint-000012_1_normal_02.png


複数柄(王冠・月・パズル・クローバー:16x16、透過度70%)を余白35pxの中にランダムで配置し、オーバーレイ効果で合成した場合

epoch 8

case03_72_watermark_20_mix_70_overlay_margin_35-000008_1_normal_02.png

ウォーターマークらしき跡が出てくるようになりました

ウォーターマーク除去

image.png

除去しきれないウォーターマークが出てくるようになりました

調査詳細 (学習元画像・epochごとの変遷)

学習データ

epoch 2

case03_72_watermark_20_mix_70_overlay_margin_35-000002_1_normal_02.png

epoch 4

case03_72_watermark_20_mix_70_overlay_margin_35-000004_1_normal_02.png

epoch 6

case03_72_watermark_20_mix_70_overlay_margin_35-000006_1_normal_02.png

epoch 10

case03_72_watermark_20_mix_70_overlay_margin_35-000010_1_normal_03.png

epoch 12

case03_72_watermark_20_mix_70_overlay_margin_35-000012_1_normal_01.png


複数柄(王冠・月・パズル・クローバー:16x16、透過度70%)を余白20pxの中にランダムで配置し、オーバーレイ効果で合成した場合

ウォーターマーク除去

image.png

密度が濃い方がウォーターマークが綺麗に除去されてしまうようです


複数柄(王冠・月・パズル・クローバー:32x32、透過度70%)を余白35pxの中にランダムで配置し、オーバーレイ効果で合成した場合

epoch 8

case03_72_watermark_20_mix_M_70_overlay_margin_35-000008_1_normal_03.png

ウォーターマークは髪の影と誤認されて学習されてしまっているようです

ウォーターマーク除去

image.png

だいぶハッキリウォーターマークが残っています
これくらいウォーターマークが残っていれば、AI追加学習元として不適切とみなされ、除外される可能性が高くなりそうです

調査詳細 (学習元画像・epochごとの変遷)

学習データ

epoch 2

case03_72_watermark_20_mix_M_70_overlay_margin_35-000002_1_normal_02.png

epoch 4

case03_72_watermark_20_mix_M_70_overlay_margin_35-000004_1_normal_02.png

epoch 6

case03_72_watermark_20_mix_M_70_overlay_margin_35-000006_1_normal_02.png

epoch 10

case03_72_watermark_20_mix_M_70_overlay_margin_35-000010_1_normal_01.png

epoch 12

case03_72_watermark_20_mix_M_70_overlay_margin_35-000012_1_normal_02.png

検証結論

ウォーターマークはある程度の大きさ、複雑さ、余白があれば、ウォーターマーク除去もされづらく、学習にも残りやすくなる

次章

  1. 画像生成AIにとって一番嫌なノイズを探す -実装編-
9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?