見出し画像

イラストをAI学習から守るMist-v2の簡単な利用法


この記事は、強力なGPUを持っていない個人でも自分の絵がAI学習に利用されることに同意しない意志を示す権利があると考え、画像生成AIの学習からイラストを守る「Mist-v2」の簡単な利用法を紹介するものです。

AI技術の進歩はめざましく、それを活用した試みは歓迎したいところですが、学習に利用されたデータの権利について疑問視する声も上がっています。
イラストやその他創作物において、権利者が望まない形で、制約なく利用されるのは流石にアンフェアと言わざるを得ません

現時点では法の整備も追いついておらず、議論も尽くされておらず、多くが検討段階にあります。そんな状況でも技術開発は進んでおりWebに上げたイラストは随時クローリング対象となっているでしょう。

このような状況を憂慮する声は世界中で上がっており、Glaze、Nightshade、Mistなどの、画像にフィルタをかけることでAI学習を阻害するツールが開発されました。
それぞれが学習の阻害に一定の効果があると発表されています。


Glazeの概要とかけ方に関しては以下の記事をご参照ください。

Mist-v2はLoRAに効果があるとされますが、i2iには効果がないとされています。一方、Mist-v1はi2iに効果的であるとされています。
それらを使い分けたり、後述の制約を避けてMistをかけたい場合はイラスト保護サービス「emamori」のご利用をおすすめします。

これらのフィルタは、実際に試すとわかりますが、処理時間は長めです。
強力なGPUがあれば1000px程度の画像1枚の処理が数分未満で済みますが、GPUのない環境では1枚の画像に20〜60分ほどかかります。

Colab NotebookでMistを利用する

ここで紹介する方法は1枚あたり数分で複数画像をまとめてMist-v2処理可能です。
手順は慣れていない方にはやや複雑ですが、Googleが提供するColab NotebookのT4 GPUを利用するので手元にGPUは不要です。 処理対象の画像はColab Notebookの仮想マシンにアップロードしますが、アップロード先の仮想マシンは外部からはアクセスできないため安全です。

まずMist処理がどのようなものなのかを試してみたい方も利用してみてください。

💡なおここで説明している内容はMist-v2公式githubで紹介されている方法を非エンジニア向けに噛み砕いて日本語で記述したものです。プログラミングに精通していて英語が理解できる方は公式githubの「For end users, Colab Notebook」の項を読んだ方が早いと思われます。

💡2024/03/25現在、処理できる画像形式はpngファイルのみです。

下準備

💡下準備の手順は初回のみ必要です。 二回目以降はgdriveの「Colab Notebooks」から、コピーして作成した「mist-v2.ipynbのコピー」を開いて「手順」に進んでください。

(1) 以下のリンクから mist-v2.ipynb の Colab Notebookにアクセスします。 https://colab.research.google.com/drive/1k5tLNsWTTAkOlkl5d9llf93bJ6csvMuZ?usp=sharing
以下のような英語の説明つきのページが表示されるので、「ドライブにコピー」を選択します。

スマホの場合は左上のメニューボタン「」から「ファイル」→「ドライブにコピーを保存」を選んでください

(2) ファイル名が「mist-v2.ipynb のコピー」になります。 コピーされたファイルの実体は、ログインしているGoogleアカウントのGdriveのマイドライブ直下の「Colab Notebooks」にコピーされています。 https://drive.google.com/drive/

二度目以降の実行時は、このmist-v2.ipynbのコピー を開いてからはじめてください。


次に、Mist-v2公式が用意しているStableDiffusionモデルファイルが格納されたGdriveへのショートカットを作ります。

(3) 以下のリンクをクリックします。https://drive.google.com/drive/folders/1vg8oK2BUOla5adaJcFYx5QMq0-MoP8kk
表示された Diffusers を右クリック→「整理」→「ショートカットを追加」を選択します。

「すべての場所」タブから「マイドライブ」→「追加」を選択します。

(4) Gdriveのマイドライブ直下に「Diffusers」のショートカットができていることが確認できればOKです。

手順

画像処理の方法を解説します。
下準備でコピーして作成したColab Notebook 「mist-v2.ipynbのコピー」 を開きます。

(1) Notebookを実行します。
「ランタイム」→「すべてのセルを実行」を選択します。
※スマホの場合は左上のメニュー「」→「ランタイム」→「すべてのセルを実行」です。

(2) ファイルアクセス権限を与えます。
ファイルアクセス許可のダイアログが表示されるので、「Googleドライブに接続」を選択します。

ポップアップダイアログが開くので、「ログインしているアカウント」→「次へ」→「続行」を選択します。

(3) セル実行を待ちます。
「mist-v2.ipynbのコピー」のセル実行が徐々に進んでいきます。

下にスクロールして「Step 3: Boot Mist-v2」というセクションを確認します。
Running on local URLRunning on public URL の2種類のURLが表示されていたら次へ進んでください。 だいたい5分くらいでこのセクションまで実行されるはずです。

(4) 処理するファイルをアップロードします。
ここで左メニューのファイルマークをクリックします。

スマホの場合は左上メニューボタン「」から「ファイルブラウザを表示」を選択します。

ファイルツリーが表示されるので mist-v2/data/img とたどります。
mist-v2/data/img を右クリックして「アップロード」を選択し、ローカルマシンから適当なpngファイルをアップロードします。

アップロードが完了すると img の下にファイルが表示されます。

以下のような警告が出るので「OK」を選択します。

(5) Mistの設定をして実行します。
Step 3: Boot Mist-v2」のRunning on public URL に表示されているURLをクリックします。

新しいタブでフィルタの設定画面が開きます。

それぞれの値を設定します。

  • Strength: かけるMistフィルタの強度です。値が大きいほど効果がありますが見た目にノイズが目立ちます。

  • Device: gpuを選びます。

  • Resizing the output image to the original resolution: これをオンにすると処理後の画像が元画像と同じサイズになります。 オフのままだと500x500 pixel に変換されます。

  • Mode: Mode 1 を選びます。

  • Precision: fp16 を選びます。

  • Data Path: 入力する画像を入れたフォルダパスです。
    data/img を入れます。
    ※適宜変えても大丈夫です

  • Output Path: 変換したファイルの出力先フォルダパスです。 /content/drive/MyDrive/output を入れます。
    ※適宜変えても大丈夫です

  • Target Model Path: Stable-Diffusionのモデルパスです。
    stable-diffusion/stable-diffusion-1-5 を入れます。

  • Path to place contrast images: data/contrast を入れます。

最下部の「Mist」ボタンをクリックします。
これでMistの処理が開始されます。

(6) 処理完了を待ちます。
元のNotebookタブに戻り、「Step 3: Boot Mist-v2」のセルを確認します。 Saved misted image to … のようなテキストが表示されたら処理完了です。 ファイル数やサイズによりますが、5ファイルで10〜20分くらいをみてください。

(7) ファイルをダウンロードします。
Gdrive マイドライブの「output」にファイルが出力されています。これらをまとめてダウンロードしましょう。

手順は以上です。

💡 続いて別のファイルも処理したい場合は (4)処理するファイルをアップロードしますから繰り返します。
その際アップロード先を mist-v2/data/img ではなく新しいフォルダ(mist-v2/data/img2 等)を作って指定すると楽です。

クロージング処理

処理をかけ終わったらT4 GPUを解放するため、 右上から「ランタイムを接続解除して削除」を選択してください。
利用した仮想マシンが削除されます。

注意点

Google ColabのT4 GPUは無制限に利用できるわけではありません。
使用上限に達すると以下のようなエラーが表示されます。
一定時間が経過すると再び利用できるようになりますが、Googleはそのインターバルを公開していません。

他にも、Colab Notebook使用時に「実行中のコードは許可されていない可能性があるため、今後のColabの使用を制限する場合があります」といった旨の警告が出ることがあります。
有料プランのColab Proを利用することで避けられるとの話もありますが定かではありません。
その場合は大事を取って使用をやめた方がよいかと存じます。
ちなみにGoogle Colabで禁止されているアクティビティは以下のページに一覧されています。
https://research.google.com/colaboratory/faq.html?hl=ja#disallowed-activities

また、2024/03/25現在このColab Notebookはpngファイルのみ処理可能になっています。jpgは対象外です。 (コミットによってはできるので仕様ではなく不具合の可能性もあります)

このような制約が厳しいという方や、手順が上手くいかなかった方はイラスト保護サービス emamori などの利用を検討してはいかがでしょうか。 一日あたりのアップロード枚数制限はありますが、GoogleのGPU時間制約よりも軽い制約で利用することができます。 詳しくは公式サイトをご参照ください。

最後に

Glaze、Nightshade、Mistのどれもが学習への対策として『一定の効果がある』という評価にとどまっています。 学習されたくない場合、フィルタ処理をかければ万全というわけではありません。

またWebはすでに手描きと偽ったAI生成画像によってデータ汚染が進んでいます(※手描きと偽って生成画像を上げることはデータを汚染し、将来的なAIの発展も阻害する行為です)。
これらのフィルタは『人間が手描きした著作物である』というマークとしてはたらき、もし今のまま学習に何の規制もかからなければ長い目では権利者の不利益となる可能性すらある、という声もあります。

先述の通り、議論は尽くされていません。
現状を憂慮しているのであれば、 今とれる有効な手段は 「関心を持つこと」「声を上げること」です。

創作者にとっては、現在Web上で声を上げることは非常にリスキーでしょう。ですが、その場合は黙ってGlazeやMistを利用し自己を守ることも選択肢です。これは著作者の自由です。
多くの人がアクションを起こすことでデータの質が変化すれば、それが新たな問題として議論の対象となるでしょう。

もし今、誰も声を上げなければ、法整備をする側は「なーんだ、何も問題ないならこのままでいいんだ」と解釈し、何の対策もなされないままになります。

この記事の公開については悩みましたが、Xで漫画家の方や創作者の方が被害に遭われながらも問題について発信されているのを目にして公開を決めました。
記事を読んだ方の自衛の役に立てば幸いです。
ありがとうございました!