メインコンテンツへスキップ
見出し画像

AIで特定キャラを描く(DreamBoothで追加学習)

    概要

    DreamBoothとは追加学習することで、AI(StableDiffusion)で特定のキャラや物を描くためのモデル(データ)作るツールです。

    例えば、ドラゴンクエスト10オンラインというゲームのアンルシアというキャラがいます。

    画像
    ドラゴンクエスト10のアンルシア
    公式サイトより引用
    https://hiroba.dqx.jp/sc/election/queen2021/vote/confirm/1/nologin

    このキャラの画像を18枚ほどAIに読み込ませ、追加学習し、AIに描かせた絵が以下の絵になります。

    画像
    画像
    画像

    これ見ると、単なる髪型や顔が似ているレベルではなく、服の模様レベルまで再現できている事がわかります。
    今までStableDiffusionの欠点として、同じキャラを安定して描くのが苦手というのがありましたが、DreamBoothを使うことで克服することが出来ます。
    これにより、AIでマンガを描くための敷居が下がり有効活用される可能性が広がりそうです。

    著作権について

    日本やアメリカの著作権法では、ソフトウェアの学習のために著作物を利用することは合法的とされています(マンガの違法アップロードなど、入手ルートに問題がある場合は別です)。
    ただし、生成した画像が既存の既存の著作物に似ていた場合には、著作権侵害に当たる可能性があるのでご注意ください。
    私は法律には詳しくありませんので、AI関連の著作権が気になる方はmimicが公開された時に出されたニュース記事等を参考にしていただけると良いかと思います。

    DreamBoothを使う準備

    Googleアカウント

    無料アカウントでも良いので、Googleアカウントを用意してください

    512x512の学習画像

    学習対象にもよりますが、10~20枚ぐらいあれば十分そうです。
    学習画像は512x512のサイズでトリミング・リサイズしてください。
    学習対象の服装はなるべく同じものを揃えたほうが効率が良さそうです。
    今回、DQ10のアンルシアを学習するにあたっては、公式画像の他、Pixiv等で公開されているファンアート18枚を使わせていただきました。

    画像はGoogleドライブにフォルダを作成し、保存しておいてください。

    画像
    学習画像


    Google Driveの空き容量6GB以上

    学習結果を保存するのに必要です。
    容量が足りない場合は新しいGoogleアカウント作ってそちらで作業するのが手っ取り早いです。
    私はPC版のGoogleDriveのソフトを使って、今使わないファイルをPC側に移動し、Driveから削除する運用をしてました。
    月額250円の課金で容量を15GB→100GBに増やすことも出来るので、ヘビーユーザはそちらも検討してみるといいでしょう。

    (任意)GoogleColabへの課金

    今回の記事では、Googleの機械学習サービスGoogleColabを使います。
    Colabは無課金でも利用できますが、DreamBoothは時間がかかるので、無課金だと途中で失敗する可能性があります。
    無課金で実行する場合は、途中で終了しないように祈りながら実行してください。
    一応、この記事を書くにあたり無課金アカウントでもステップ数2000で学習・画像作成まで出来ることは確認しました。

    課金する場合は、1000円のクレジット購入 or サブスク月額1000円課金で十分です。
    1000円分で50時間ぐらい遊べるようになります。

    hugginfaceのログイントークン

    huggingface とは、機械学習のデータを公開しているサイトです。
    お絵かきAIのStableDiffusionのデータを利用するに当たり、登録が必要となります。
    持っていない人は、以下のGigazineの記事を参考にトークンを取得し、メモしておいてください。

    DreamBoothでの学習の実行

    今回は、わたしが作成したGoogleColabを利用して追加学習・お絵かきする方法を紹介します

    0.GoogleColabノートブックを開く

    Googleアカウントにログインした状態で、Google下記のリンクを開き、上から順番に実行していきます

    1.GPUのリセマラ

    ▶ボタンを押して、実行します。
    まずは、メモリ12GBのメモリが出るまでがんばります。
    基本は12GB以上のGPUが出るはずですが、万が一NGだった場合はリセマラして下さい

    画像

    2.パッケージのインストールと再起動

    ▶ボタンを押して実行します。
    「RESTART RUNTIME」ボタンが表示されたら、ボタンを押して、ランタイムを再起動します。

    画像

    3.パッケージのインストールとGoogleドライブへの接続

    ▶ボタンを押して実行します。
    Googleドライブへのアクセス許可を求められるので、適当に許可して下さい。

    画像

    4.huggingfaceへログイン

    ▶ボタンを押して実行します。
    Tokenにhuggingfaceのトークンを入力し、Loginを押します

    画像

    5.設定を記入し、学習を実行


    設定を記入し、▶ボタンを押します。
    3000ステップで1時間以上かかります

    • dream_booth_base_model

      • 元となるStable-Diffusionのモデルを選択します

      • アニメ・マンガなどのキャラを学習するならhakurei/waifu-diffusionが向いています

      • 実写の人物やペットの猫など、一般的な物を学習するなら素のStable-Diffusion(CompVis/stable-diffusion-v1.4)を使うのが良いかもしれません

    • dream_booth_input_dir

      • 学習画像を保存したフォルダを入力して下さい

    • dream_booth_base_model

      • 学習したい対象の単語を入力して下さい

    • dream_booth_steps

      • 学習にかけるステップ数です

      • 学習素材にもよりますが、画像枚数×150~200程度が良さそうかもです

        • 例: 画像枚数が20枚なら3000で試してみて、再現度が微妙だったら4000で試す

    • dream_booth_new_model

      • 保存先のフォルダ名です

    6.セッションの切断

    セッションを繋いだままだとクレジットを消費するので切断
    このノートブックはもう使わないので閉じてOKです

    学習結果を使ってお絵かきを実行

    今回はわたしが作成したGoogleColabのノートブックでのお絵描き方法を紹介します。
    Diffuserで利用できる形式なので、Diffuserのデータが読み取れるツールなら他のツールでも利用可能です

    0.お絵かき用のGoogleColabノートブックを開く

    1.お絵かき用の準備を実行

    「1-1.お絵かき準備」と「1-3.【上級者向け】DreamBoothで学習したモデルを使う」を実行します。

    「1-1.お絵かき準備」は▶で実行したらGoogleドライブの接続許可画面が表示されるので、許可して下さい。

    「1-3.【上級者向け】DreamBoothで学習したモデルを使う」のモデル名に、先程決めたモデルの保存名を入れて、▶を押して下さい。
    モデル名を忘れた人はGoogleドライブの diffusion/user-data/DreamBooth を見て確認して下さい。

    画像

    2.コマンドを実行して、お絵描きを実行する

    dc.text2imgのようにコマンドを書いて、▶ボタンを押すと、画像の生成が始まります

    画像

    サンプルの場合、「"sample/dream_booth/text2img"」という保存先に、10枚、512x512の画像を以下のプロンプト(文章)で作成するというコマンドです。
    beautiful concept art illustration of Kawaii perfect beautiful excellent girl, ultra realistic, concept art, intricate details, highly detailed, photorealistic, octane render, 8 k

    コマンドの事がよくわからない人は、サンプルのgirlの部分を自分が描きたいものに変更するだけでOKです(例:男のキャラならboy)

    作成した画像はGoogleドライブで閲覧することが出来ます

    画像

    補足:プロンプト・呪文について

    今回、画像を作成するにあたり、ツールには「girlを描いて!」ではなく「beautiful concept art …..を描いて!」という長い呪文みたいな文字で指示を出してます。
    この長い指示のことを、プロンプトや呪文と言います。
    girlとだけ指示しても、ぼやけた画像が出来たり、可愛くない・美しくない画像が出力されるので、きれいな絵を描くために色々な装飾語をつける方が良いとされてます。
    より可愛い・よりかっこいいキャラクターを描くためには、この呪文の習得が重要になってくるので、よりよいイラストを描くためには呪文の勉強が重要になってきます

    • 参考になりそうなサイト

    他にも、https://lexica.art(プロンプト投稿サイト)で探したり、Twitterで #StableDiffusionKawaii や #WaifuDiffusion と検索すると、参考になる画像を上げてくれてい人が多いです。
    Twitterの場合、ALTというアイコンをクリックすると元の呪文を見ることが出来る場合もあります

    まとめ

    いかがでしたか
    以上が、DreamBoothを利用して、既存のキャラをAIで描く方法の紹介でした。
    DreamBoothは二次創作だけでなく、AIによるマンガやゲームの素材作成など応用範囲が広い技術です。
    ぜひ、みなさんAIを活用して創作活動をしましょう!

    参考文献


    あなたへのおすすめ