画像生成AIについて、主に2022年夏からの濃厚な半年間を、そろそろまとめとかないと色々忘れそう!、ということで備忘録として残したいなと思い、書いてみました。(基本的に先人の方々がTwitter上で発表されたことを後追いでやっているだけなので、あまり技術的・実用的に役立つことはないと思います)
とりあえず「何か新しいWUGの片山実波ちゃんを見てみたい」というシンプルな理由で色々取り組む原動力があって、こういう「具体的な用」がないとここまでやる気はなかっただろうな、と思います(同人活動も割とそれです)。
まず画像生成AIより前のAI関連から。
2018/2/23 PaintsChainer (自動着色AI)
Preferred Networksさんの自動着色AIのPaintsChainerがおもしろいと思ってその頃たまにワンドロで描いてた絵に着色。その頃迫っていたWake Up, Girls!オンリー(仙台)に用意していたコピー誌で、せっかく表紙をカラー印刷するのに裏表紙が白くては勿体ないと思って使ってみました。
2018年3月4日にあった、Wake Up, Girls!オンリー(仙台)で頒布したコピー誌の裏表紙。
元の絵(サークルカットとワンドロ絵3つ)と自動着色後
※サークルカットのサークルの字が消えてるのは実際に処理にかけたファイルが異なっていたからと思われます。
その時収録した、何か雑誌風解説ページを装ったページ。その中に書いてある通り、この時生成した絵は、ウェブサービスPaintsChainerではなくGithubのものをローカルで実行したもので、少しモデルが異なっていたと思います。
現在はWebサービスのPetalica Paintというものになっているようですね。
3枚は以下の3つのワンドロの絵が元です。
【ウインク】なんとなくりかっち。 #WUG版深夜の真剣お絵描き60分一本勝負 pic.twitter.com/0fn8aHSAlS
— すみちゃん (@shsmta) August 23, 2017
『運動の秋』。毎日のジョギングが気持ちいい季節 #WUG版深夜の真剣お絵描き60分一本勝負 #WUG_drawing pic.twitter.com/zqFXPdE24b
— すみちゃん (@shsmta) October 14, 2017
まゆしぃおめでとう! 「思わず描いてしまったものの、贈るべきか冷静に悶えるしほしほ」 #島田真夢生誕祭 #吉岡茉祐生誕祭 #WUG版深夜の真剣お絵描き60分一本勝負 pic.twitter.com/M0lacPyC2q
— すみちゃん (@shsmta) November 7, 2017
尚、この時以降、自動着色は、手作業でのシンプルな塗りを目指したので出番はない感じです。
2022/5/7と2022/8/13 古のLOGO言語
AIではなく、「絵を描かせる」という点で単なる自動描画の話ですが、アルス・アルマルの魔法陣(公式グッズのTシャツの魔法陣)をストーリーに入れています。
LOGO言語でタートルの代わりにでびちゃんが描くという他愛もない話で完全なフィクション設定。
調べている過程で、LibreOfficeのマクロで実はLOGOが動くと知って驚きました。(実質Pythonに自動変換されている?)これを知ったのが5月のオンリーギリギリのタイミングだったので、再録した8月の方の本にコードとともに掲載しました。
こういう変なページ作るの楽しいんですよね…
2022/8/23 Stable Diffusion 1.4
2022/8/23に使用開始。
8月に入ってからMidjourneyをTLで少し見てましたが、課金制だからどうしようかなあと思っていたところで、Stable Diffusionが登場。CGアート寄りな雰囲気でちょっと好みと離れていたこともありましたが、"kawaii"のキーワードをプロンプトに入れるとアニメ寄りな絵が出るらしいという噂が出始めて、試してみることに。
また、最初の頃はかなりVRAMをたくさん積んだハイエンドのグラフィックスカードがないと生成できない、という話だったのが諸氏の取り組みでどんどん要求スペックが下がってきて、GeForce GTX 1660 SUPERの6GBでもなんとかなるという話にもなったのもあります。
使い始めの頃、よくわからないそれっぽい色の架空のアイドルアニメのジャケ写っぽい何かがみるみる生成できる!ってちょっとおもしろがっていました。
サムネイルぐらいで雰囲気がいいですけど、拡大すると「あっ」となる感じ。
GeForce GTX 1660 SUPERで50ステップで20枚に12分ぐらいかかっていたようです。
2022/9/12 Waifu Diffusion 1.2
Waifu Diffusion 1.2のモデルがリリースされたので導入。
基本的なレベルで大幅に得意になった感じがします。
この時期あたりから徐々にpixivにAI生成の投稿を見かけるようになったと思います。
このあたりから必然的に「どのようにして片山実波ちゃんっぽく出せるか」というのが課題になっていきます。
頭が切れたアップばかりが出てくるというのも今やちょっと懐かしい感じで、同じシードでプロンプトのかかり方を色々検証するという感じの繰り返し。
GTX 1660 SUPERの6GBのVRAMで生成に対応したのが動いたこともあり、この頃からtext to imageでは主にdiffusersを使っています。
2022/9/22 GPU増強とTextual Inversion開始
飽きるかもしれないし、どの程度使うかわからないなと予防線を張りつつ、グラフィックスカードの高騰が収まってきて、40シリーズが見え始めてきたあたりで、GEFORCE RTX3060 12GBにアップグレード実施してスピードアップ。
(生成を回している間に、ゲームの方をもとの1660SUPERでサブPCでするというスタイルになったり)
9/24頃に、(それぞれ、いつも参考にさせていただいている)kohya_ssさんの国木田花丸ちゃんが凄いというのを見て、npakaさんのNoteを参考にTextual Inversionを始める。
Stable Diffusion web UI (AUTOMATIC1111) で Textual Inversion の学習済みモデルを使う|npaka|note
このあたりで、Google Colabを使って、追加学習のTextual Inversionを始めてみる。
たまにいい感じのが出るVictorian-eraスタイル。
2022/9/28 Stable Diffusion web UI (AUTOMATIC1111)、9/30にGoogle Colab Pro使用開始
※追加学習でColabに課金しないで可能かを検証をしていたが、手元のWSL2環境で当時コンパイル済みのライブラリが不足していたか何かで環境が整っていなくてちょっと難しいと感じたのと、今後のことも考えてColab Proも併用開始。
2022/9/29 初期のi2i
image2imageの実験。数分ぐらいのラフで描いた絵でやってみたら意外といい感じに。(この品質で出たのは数百枚分の一の確率)
ことごとく、実波のトレードマークのおさげがどうしてもスルーされてしまう。(Denoisingの調整をすればもっと近づけたかもと、後に判明)
2022/10/1 Waifu Diffusion 1.2のDreambooth学習調整
WD1.2のDreambooth学習も少しステップ数を調整してだいぶ近づいてきた感じの頃。
ただし、髪形が滅多に一致しない感じ。合ったものからi2iしたのが、pixivに上げたものです。
このあたり樋口円香の手づかみラーメンが話題になったころだと思います。
2022/10/3 Waifu Diffusion 1.2ベースでの調整完了
パラメーターを調節した結果、WD 1.2ベースのDreambooth学習で相当近づいたモデルができる。
2022/10/6 ストレージ増強とOS再構築
メインのNVMeを1TBから2TBに増強
ストレージをガンガン使っていたら、次のWindows Updateと原神アップデートが入らない疑いが出てきたので。
ほんとうはAcronisでイメージを移すだけで予定していたが、元々の環境の都合で、結局ほぼフルのWindows 10の再インストール作業になる。
ASUS PRIME X570-P CSMがWestern Digital SN550と2020年1月当時、AMDのRAIDコントローラーを通さないとフリーズするという相性みたいなのがあり、仕方なく「1台のRAID 0」としてCドライブを構成していた(そのメモはこちら)。
Acronis True Imageは本来、環境の差を調整してくれる機能があるが、どの手段(WinPEベースのもの)をとっても認識しなかったので、結局、データはそのままでWindows 10の新規インストールとなった。
2022/10/13 Waifu Diffusion 1.3
Waifu Diffusion 1.3がリリースされたので、それに合わせてDreamboothの追加学習を再度実施。その時の気分でなぜか乾杯させてみた。
かなり驚いたのを覚えていますが、ここまでくると同人というよりも、まるで本物みたいな感じでちょっとそのつもりじゃないって感じになるわけですが…。
とはいえ、なんかお久しぶりです感を感じることができてちょっとおもしろかったです。
このあたりで、学習させる際のパラメーターが大体つかめた(1500step程度)こともあり、ほかのキャラクターを試してみることに。
ということで876PROの日高愛さん、頭が切れてしまってる。茶器がおかしいのを直す+アホ毛をちゃんとするのにinpainting+outpaintingで何段階か調整しました。
当初からそのようにタグ付けしてたわけですが、この絵と前の実波のpixivの投稿絵は10/31に正確にAI生成絵と運営によるタグが付きました。
この頃、Run Girls, Run!の厚木那奈美さんが餃子のお店のコラボをしたので、阿津木いつか&餃子をテーマに生成もしたり。
(どちらかというと餃子があまり餃子っぽくない問題)
2022/11/4 CPUの増強
CPUをRyzen 5 3600からRyzen 7 5700Xに換装。
画像生成関係そのものよりも、Google ChromeのGPUアクセラレーションをオフにした時に、GPUの邪魔をせずに、YouTubeの再生を担当するCPUコアが増えたところに一番増強の効果がある気がする。
AM5/Zen 4が出たのでAM4ベースの少し安くならないかと秋口から狙ってたけど、乱高下した後に納得できる価格になったので。
2022/11/15 初期のi2i動画(ワークフローのみ)
きっかけはTwitterで見かけたミリシタの動画からi2iで高槻やよいのアニメでいいな、と思ったところから。
高槻やよい, 手書き風アニメ, i2i #アイマス
— megane | AI (@megane_ai_memo) November 13, 2022
Handwriting style animation test #WaifuDiffusion pic.twitter.com/KHgnNLJSaS
最初のi2iのビデオ生成の実験を始めるが、この段階では色々不十分だったので成果物はなし。
ただし、素材の整え方やワークフローは大体把握。
(あとでわかったのは、Denoisingを下げるのを知らなかったのであまりi2iが効いてない状態に)
その時のコツなど
- あらかじめ動画編集ソフトでShotcutで512x512や512x768/768x512など、処理しやすい解像度にしておく
- 複数の人が入るのは処理が厳しい
元映像から連番png生成:
ffmpeg -i src.mp4 -vf fps=15 out_%05d.png
i2iした連番pngから15fps動画に戻す:
ffmpeg -framerate 15 -i ./out_%05d.png -vcodec libx264 -pix_fmt yuv420p out.mp4
2022/11/24 速度向上(スケジューラ変更)
diffusers 0.8.1にアップデートして、DPMSolverMultistepSchedulerを使用開始。
20ステップで十分綺麗になるため、結果、512x768で7秒/枚程度に速度が向上する。
(その後、11月後半~12月は普通のコミケ原稿のためAI方面は進捗なし)
2023/1/1-2/1 Waifu Diffusion 1.4
2023年のお正月にリリースされたWaifu Diffusion 1.4で色々プロンプトの違いを検討。そのあとに、Waifu Diffusion 1.4をベースに追加学習をし直し。
この頃課題だったのは、同じ追加学習をしても、WD 1.3よりも、実波の髪形(おさげ)が反映されないケースが多かったこと。結果的に以下をプロンプトに入れて補助すると結構いい感じになることがわかる。
- short under twintails
- short under bunches
- short under twin bunches
※今はそれに"sidelocks"も入れる
2023/2/10-12 バッチスクリプトの強化
実波の調整の気が済んだので、ほかのキャラの追加学習を一括でできるように、Google ColabのPythonスクリプトを調整。
ローカルの生成は、diffusersでプロンプト×キャラ(キャラごとにモデルを切替)できるように。
秋の時点ではコンパイルが必要だったxFormersが効くようになったのと、WSL2環境でもWindowsと同じ生成スクリプトが使えるようにマウント位置を調整したことで、3秒/枚ぐらいまで大幅に速度が向上する。
WebUIが中途半端な状態になっててWaifu Diffusion 1.4が使えなかったのを使えるように直す。
同一シード、ポーズ指定なしでこういう感じで出る感じに。
同一プロンプト・シードでモデル切替するスクリプトと、ななみにゃ以外の学習ができたのでWUG+RGR+のんを同一条件で出力しやすくなった。
— すみちゃん (@shsmta) February 12, 2023
外のんがストイックw (表情指定無し) pic.twitter.com/egiItAu2Da
このあたりでモデル調整が一旦落ち着いたのでPixivに現状として一回投稿しています。
なお、この頃走る題材が多いのは、1/22の田中美海さんの誕生日イベントで10年前のランニングの合宿が話題が出たのもあったり…。
2023/2/13 複数キャラの統一モデルの試行
2023/2/15-18 i2i動画
環境を直してWebUIでWD 1.4モデルが使えるようになったところで、i2iの動画に再度取り掛かってみました。
Denoising strengthを0.4から0.5ぐらいにすると動画に耐えうる一貫性が得られそうな感じがしたので、2020年夏にVRroid Studioで作ってた実波モデル(これは普通にぺたぺた手描き)に3tene FREEの標準モーションを適当にアングルを変えて撮って、それを切り取って動画にしてみるというのをやってみました。
左:元の動画(Vroid 3tene FREEの走るモーション)
実波が走ってるだけ動画のてすと。 (Vroid vrm手描き, 3teneFREEの走るモーション→OBS録画→wd+dbのi2i) pic.twitter.com/DdeaFB99eE
— すみちゃん (@shsmta) February 15, 2023
何フレームかサンプルでDenoisingをちょっとずつ下げて、指示に画像に従うけど絵はプロンプトに従うバランスを見つけたうえで0.4か0.45ぐらいに設定。とりあえずバッチをかけたら、素のi2iで、上の動画になったのでちょっと驚きました。
以前i2iの動画を試行した時は整合性を高める拡張機能(image2image alternative)で試行しましたが、この時は何も特別な処理をしていません。
i2iする段階で、15fpsにフレームレートを落としてアニメっぽくしています(これは単に好み)。
また、この動画は「口閉じてる版」と「口開けてる版」を2回生成しています。6秒目~7秒目の間だけ全フレームを差し替えて、口を開けてるという手動の動画編集しています。
プロンプトは
((kminami)), 1girl, solo, walking, ((short under twin bunches)), brown hair, sidelocks, round brown eyes, smiling, shut mouth, green idol dress, one-piece skirt, bike shorts under skirt, sailor collar, yellow ribbon bow tie, on stage, high quality
パラメーターは
SPM++ SDE Karras Sampling 30 CFG 12 Denoising 0.4
同じく3tene FREEのモーションより、ダンスモーション。 768x768に解像度アップ。
同じく3teneFREEのダンス2モーションみにゃみ。今回は768x768。 pic.twitter.com/d8SEpYsG0l
— すみちゃん (@shsmta) February 17, 2023
こちらはVRM Live PlayerのUNITE IN THE SKY(CRS)の間奏のモーションより。ななみん版で。
ななみん 今回はVRM Live PlayerでUNITE IN THE SKY/CRS間奏モーションより (ななみVroid → wd1.4+db webui i2i) pic.twitter.com/dSFLAuDCNk
— すみちゃん (@shsmta) February 20, 2023
VRoidモデル作っておいてモーションがあればという前提で、10秒~20秒ぐらいのものは、平日の夜に作れる、って感じのワークフローが一応成立。(これは実質所要2時間ぐらい)
i2iをする際はバッチ処理がしやすいのとやはりGUIがないと厳しいのでWebUIを使うけど、text to imageはちょっと微妙になりがち(厳密に同条件になっていない気がする)。逆にdiffusersはi2iが微妙になる。
2023/3/6 写真との合成絵を作る
3月4日に奥野香耶さんのイベントが品川であったので、それに、プライベートで見に行ってる菊間夏夜と片山実波という図。
作ってから、昔、CASIOの「EXILIM」のコラボデジカメ「WUG!コン!」というの思い出しました。(その場に合わせた画像をその場で生成する写真アプリとかそのうち出来そうですね…)
『かやたんの新曲、楽しみだね』 (AI+実写+調整) pic.twitter.com/kKbZtNDyJU
— すみちゃん (@shsmta) March 6, 2023
眼鏡と髪の重なり方が変なので、慌ててかけた感じがします(好意的解釈)。
めがね+髪型違うと更に雰囲気違って変装風で興味深い感じ(昨日のと同時生成のもの pic.twitter.com/UyGrW3Jvox
— すみちゃん (@shsmta) March 7, 2023
ちなみに副産物として眼鏡付きみにゃみが結構できて、これは何かアナザー感か劇中劇感あっていいなと思いました。
公式のブレザー高校生制服ちゃんとあるのに作中あまり出てこないのが勿体ない((
2023/3/9 ControlNet DepthでWUGポーズをしてみる
ControlNetは2月15日ぐらいから急速に界隈で広まってたと思いますが、使っているWaifu Diffusion 1.4ベースのモデルがSD 2.1系であるので、適用できない状態でした。Waifu Diffusion 1.3の旧モデルで色々準備していたところ、3/7頃にControlNet for SD 2.1が公開されてDepthは使えるいうことだったので、さっそく使ってみました。
手を突き出してアップにしている、というのが、OpenPoseが無いと難しいらしく、意外と難航。
最初手のCGモデルをそのまま使っていたが、結果的には、CLIP STUDIOでかなり強く陰影をかけた状態にするのが一番きいた。
Depth用の手のpng (CLIP STUDIOの手モデルより)
Invert input color, Weight 1, diff_control_wd15beta2_depth
ControlNet for SD 2.1(WD1.5b2?)でWD1.4モデルの動作確認&手がdepthで出せるかの実験。まだ怪しいけど基本的には効いてる感じね。手はクリスタのモデル。(こんばんわぐ pic.twitter.com/OqBlnV5yot
— すみちゃん (@shsmta) March 9, 2023
2023/3/17 Bing AI (GPT-4?)にMC原稿を作ってもらう
ちょっと画像生成からずれますが、チャットAIについても。2022年12月にChatGPTを使い始めて例にもれず、遊んでたりしたわけですが。2023/2/8にMicrosoftが発表し、3/16に実はGPT-4でしたと明かされたBing AIのプレビュー版にMCを作ってもらいました。(聞くのを思いついたのがBing AI使ってた時だったのと、OpenAIの方のGPT-4はまだ使えないのでということでBing AIです)
検索特化AIなので、脚本家になったつもりで、とか書いても拒むことが結構ありますが、あれこれ頼むとやってくれる感じがします。
(念のためネタバレ防止)
しっかり、BGM止める指示まで入っていて驚きました。
曲振りをしないと無限に実波がのんちゃんをズバズバ追及する茶番が繰り広げられる(田中美海さんがひたすら忙しい)。
(こちらから返しているのは、Bing AIが提示した返事の選択肢から選んでいます。)
また思いつきで、月ノ美兎の納豆凸に受けるコラボをしたらどうなるかと尋ねてみたら、「あっというまに実波が食べてしまい、企画倒れになる可能性がある」と指摘されました。そのあたりはお互いもっとうまくできそうと思いましたが、そこそこ情報を元に構成してて凄いですね…。
****
現状だとDreamboothベースで割とかなり好みのものができてしまったので、まだ(今主流だと思う)LoRAに取り組んでないのと、ControlNetをフルに使っていないのでそのあたりで遊んでみないとと思っていますのでそのうちまた何かすると思います。
「何か前例のない未定義空間を進行している」感覚がおもしろいです。
さて明日はどっちなんでしょう…(WUG風〆)