地雷系ファッション／メイクの特徴を画像生成AIに覚えさせる（StableDiffusion特徴ファイルLoRAの作り方）

# 画像生成AIが知らない特徴を教えて、思い通りの画像を作る
**【↓地雷系の特徴を学習して生成された画像】**
![00032-2231614046.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/d1f5b03b-3c6f-7cf4-ab53-f90ce48bf384.png)
![00028-2212232601.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/0a290ed1-2957-a1a4-4f05-5e6bdad7dca7.png)

**【今回作った地雷LoRA】**

https://drive.google.com/file/d/1LtB2bt062m1M5cG3YYN2VzGhjgINmeER/view?usp=drive_link

画像生成AI **StableDiffusion** は、言葉を指定するとその画像を生成してくれます。
しかし、**モデルが知らない（そもそもの学習データに含まれない）物や特徴は生成できません**。
例えば、ローカルで新しいファッションの画像は生成できなかったりします。

その場合、２０枚程度の画像を見せるだけで**新しい特徴を学習してファイルとして保存することができます。**
簡単なので、今回は日本の **「地雷系」ファッション／メイクの特徴ファイルを作ってみます。**

>地雷系ファッション／メイクとは？
可愛さの中にダークさのあるファッション。黒やピンクが基調色。
メイクは大きなカラーコンタクトレンズと大きな涙袋（ナメクジ）が特徴。




# 方法

### 画像を集める

まずは「地雷系」ファッションの画像を集めます。
**20枚程度集めました。**
![neruneruPAR55447.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/771d1106-f02d-ad73-9e2d-a8ecb4efdc1c.jpeg)
画像サイズなどは深く考えなくて大丈夫です。

### Colabの手順に従って実行

以下のColabノートブックの手順に従って実行すればLoRAファイルが作れます。
**所要時間は30分ほどです。**

https://colab.research.google.com/github/Linaqruf/kohya-trainer/blob/main/kohya-LoRA-dreambooth.ipynb


#### セル
基本的には**セルの実行ボタンを押していくだけ**ですが、
自分のデータに合わせて**いくつか自分で設定するセルがある**ので
そこだけ🐣マークを記載して解説しています。
**(Optional)のついているセルは、飛ばしても大丈夫です。**

##### 1.1. Install Dependencies
Kohyas_ssをクローンしてセットアップします。

##### 1.2. Start File Explorer (Optional)
ColabのファイルUIを別窓で開けますが、ノートブック画面の左側のファイル表示でも同じです。

##### 2.1. Download Available Model 🐣
特徴を覚えさせるのに使用するStableDiffusionモデルを選びます。
総合的にたくさんのオブジェクトを学習したモデルや、人物やアニメに特化したモデルなどいろいろ種類があります。

##### 2.2. Download Custom Model (Optional)🐣
2.1.の選択肢以外のモデルをダウンロードしたい場合はURLを入力します。2.1.を実行した場合は実行不要です。

##### 2.3. Download Available VAE (Optional)
VAEファイルを使いたい場合は指定します。

##### 3.1. Locating Train Data Directory 🐣
training_dataとregularization_data（覚えさせたい特徴以外の画像。なくてもいい）のディレクトリを指定します。指定するとそこにディレクトリができるのでファイルをアップします。

##### 3.2. Unzip Dataset　(Optional)
データがzipファイルの場合は解凍します。

##### 3.3. Image Scraper (Optional)

##### 4.1. Data Cleaning 🐣
背景を除去したり画像のアルファチャネルを除去したりする場合はconvertにチェックを入れて実行します。

##### 4.2.1. BLIP Captioning 🐣
##### 4.2.2. Waifu Diffusion 1.4 Tagger V2 🐣

画像にキャプションをつける作業で、4.2.1か4.2.2とどちらかを実行します。

##### 4.2.3. Custom Caption/Tag　🐣
カスタムでキャプションをつける場合は指定します。
トリガーワードを入れて実行します。

##### 5.1. Model Config 🐣

**project_name**にこのLoRAの名前を決めて入れます。
**pretrained_model_name_or_path**に2.1でダウンロードしたモデルのパスを入れます。
![スクリーンショット 2023-06-20 2.25.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/cce4e27d-d2c6-41a4-f5f8-2bad1ba4b0f1.png)

##### 5.2. Dataset Config

##### 5.3. LoRA and Optimizer Config
学習のパラメーターを変えられますが、わからなければデフォでいいと思います。

##### 5.4. Training Config
num_epoch で学習エポックの回数を決められます。

##### 5.5. Start Training
**実行すると学習が行われます。**
エラーが出た場合は、LoRA/config/config_file.tomlのpretrained_model_pathが指定したものになっているかなど確認しましょう。

**エポックごとに LoRA/output/ フォルダにLoRAファイル（.safetesor）とテストで生成された画像が保存されます。**

##### 6.3. Inference

作成したLoRAを使って画像を生成できます。
**network_weight:**に学習で作成したLoRAファイルのパスを指定します。
**prompt:**に生成したい画像のプロンプトを入れます。
**model:**にstablediffusionのモデルパスを指定します。

# 使用法

作成したLoRAファイルはStableDiffusion-WebUIなどで使用できます。

WebUIの使い方はこちら。

https://qiita.com/john-rocky/items/1b6dd780d38c63bb64cd


![grid-0000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/39c33839-2629-eef1-c100-f419e595c74c.png)
![grid-0001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/1bff2a5b-74db-4dc8-f777-ee5e4fc8505a.png)

ナメクジもでき、元々知らなかった”地雷"の特徴を学習できました。



🐣
****
フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。

もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…

いずれも中間コストを省いたリーズナブルな価格でお請けできます。

お仕事のご相談はこちらまで
rockyshikoku@gmail.com

機械学習やAR技術を使ったアプリケーションを作っています。
機械学習／AR関連の情報を発信しています。

[Twitter](https://twitter.com/JackdeS11)
[Medium](https://medium.com/@rockyshikoku)
[GitHub](https://github.com/john-rocky)