
ゴールデンウィーク……それは一年にある連休の中でも年末年始に次いで長く、そして甘美なスウィートスポット。ある人は連休を利用し、海外にでかけたり、普段はできない趣味に没頭するなど待ちに待った瞬間です。
しかし、カレンダー通りで働いてない人は、そんな瞬間はありません。私(筆者)もライター活動は副業であり、働いている会社は休日であっても自身の会社は今この瞬間にもタスクが発生しており、GWでもお仕事をしなければならないのです。
もう少し詳しく私の自己紹介をしておくと、普段はデザイナーとして会社に属しており広告、Webサイトのデザインなどを行っています。もしかしたら普段読者のみなさんが見ているWebサイトや広告、駅で見たポスターも実は私が関わったものかもしれません。そんなデザイナー業はフリーランサーとしても行っており、さらにライター業も並行している……というわけです。
「なんで自己紹介したんですか?」と読者の皆様は思っていることでしょう。その理由は本稿が、クリエイティブを仕事にする上で避けて通れない大きな課題を学び、向き合うためのものだからです。
その課題とは日夜増え続け、成長を続ける「生成AI」です。クリエイティブを生業にしていると避けることのできないこの存在は、向き合うか全力で抵抗するかの二択になりつつあるのが現状です。既にAIだと判別できないクオリティの画像生成も行えるようになってきており、ハイエンドなPC環境があるならば個人がローカルで運用するハードルも下がってきました。

AIに関しては筆者も仕事において多用するAdobeの「Photoshop」では、”Adobe Sensei”といわれるAIを5年以上前から既に搭載しており、現在同アプリケーションでは画像自体を生成してさらに写真の補正や加工までもAIが行えるようになっています。


参考例として10分ほどで雑に加工と補正した一戸建て住宅の写真を用意しました。これは単なる例ではなく、実際に携わっている不動産関係の仕事で、同じような作業をしています。
見栄えの悪い電線を消し、ニュータウン感を出すために明るさを調整したうえで野暮ったさを消し、道路を綺麗にしたうえで電線の影をも消す――。案件によってはマンションにかかる全ての電線や窓に映った風景や洗濯物を消すなどもっと大がかりな加工もあります。今回の例でいえば空の加工は手作業でやっていますが、最近のPhotoshopには空自体を置き換えるAI機能が実装され、昔では時間がかかっていた作業を高精度かつ短時間で終えられるようになってきました。今回道路の加工では生成AI機能を使用して、完全に置き換えています。

このように、実は生成AIは既に制作現場でも実用できる場面もあり、自身の技術と併用することで大幅な時間の短縮とクオリティの向上に繋がっています。ご存知の通りそんな便利に思える生成AIにも問題点はあるのですが、以降で触れるため早速メインであるトピックに移りましょう。
ゲムスパの顔といえば彼……だっけ?

読者の皆様にもお馴染みGame*Sparkのオリジナルキャラクター「スパくん」、本誌を読んでいる聡明な読者は絶対に知っている、知らないわけないよな?
かわいくな……愛される容姿と愛嬌があり、何故か毎回ひどい目にあっているイメージが強い彼。読者にも編集部にもネタにされているものの、実は彼の画像にはそこまでバリエーションがありません。(原作者と音信不通だからという悲しい理由なのですが……。)
そんなスパくんを助けるべく、白羽の矢が立ったのが「Stable Diffusion XL(SDXL)」と呼ばれる生成AIで、イギリスのStability AIが公開したモデルです。「SDXL1.0」であれば商用利用も可能なため、今回の企画ではこのモデルを採用しました。

ですが、先にも述べた問題点をクリアする必要があります。それは、もはや言うまでもないことかもしれませんが、著作権の問題です。特に画像生成の分野において、生成AIの基礎モデルの学習に使用されたデータに著作権的な問題がないのかという議論は根強くあります。
詳細な法律論や、その是非については本稿の主題から外れるので詳述は避けますが、記事を執筆している時点では、基本的に著作権者に直接害を与えない限り、AIの学習を行うこと自体は問題ないと判断されています。(文化庁の指針等を参照)
本企画ではスパくんの権利を管理する編集部と確認の上進めています。これをもってあらゆるAIの画像生成に関する学習に問題はないとするものではありませんし、またこのような使い方でなければならないと規定するものでもありませんので、ご承知おきを……。
そもそもAIはどうやって画像を生み出しているのか

AIの画像生成の仕組みですが、かなりかいつまんで説明すると、まずAIは「形・色・質感・構造」などの特徴を大量の画像や写真から統計的に学習しています。その学習結果をもとに、与えられたプロンプトからパーツのように特徴を組み合わせるようなイメージで新しい画像を生成するというわけです。よくある勘違いですが、AIは「画像そのもの」を描いているワケではなく、ノイズしかないキャンバスの中から該当するパーツを掘り出しているという表現の方が近いといえます。
例えば上のスパくんであれば
A cute mascot character with a large round head, big vertical teal eyes, a small gray nose, and a wide smiling mouth with a pink tongue. White face with blue petal-like cheek marks. Slim light blue body, small white feet, simple cartoon style, with a long black cord tail ending in an electric plug. Friendly and cheerful expression, 2-3 head tall, flat color, simple line art, pop and child-friendly design.
キュートなマスコットキャラクター/丸い大きな頭部/ほっぺたに青い花びら状の模様/細長くシンプルな水色のボディ/尾の先端がコンセント型といった特徴をコマンドプロンプトとして指定することで生み出されています。逆をいえば、この特徴に一致したものがスパくんだということがAIに理解できれば、スパくんそのものをスパっと出せてしまうわけです、スパくんだけに。
そのため、AIはスパくんを「知っている」わけではありません。スパくんの特徴を与えられても、それだけではスパくんがどんな存在か理解できないのです。だから、AIに「これがスパくんです」と特徴や情報を教える必要があります。この「情報を与えること」が、AIにおける「学習」という概念にあたります。
この学習データをもとに作られるのが、LoRA(Low-Rank Adaptation)です。
LoRAは、キャラクターの特徴や画風、ポーズの情報をまとめて圧縮し、長いプロンプトを入力しなくても、「スパくん」という単語だけでイメージを呼び出せるようにする仕組みです。

長くなりましたが、実際にスパくんを学習していきましょう。
使用するのは「Stability Matrix」という管理ソフトと、「Stable Diffusion」いわゆる生成AIを使用するための「ComfyUI」というノード管理型のインターフェースを使用します。そして、学習には「kohya_ss」という学習のみに特化したツールを併用していきます。

ただし、ローカル環境で上記を動かす場合は最低でもGPUはRTX4080以上のハイエンドGPUが望ましいです。それほどにパワーを必要としますが、一度生成を始めると負荷、GPUメモリともにマックスまで使い切ります。学習で使用する場合はビデオメモリ12GB以上が推奨になるなど生成AIは触ってみるまでは気づいていませんでしたが、ローカルで動かす場合にはかなりPCスペックが必要だということが分かったことも大きな勉強成果でした。
下準備がとってもめんどくさい

Stability Matrixでは上記ツール群をインストールから管理まで全て行え、Pythonなどの環境も自動で全て準備してくれます。そのため様々なツールを扱ったり、プログラミングの知識が乏しくても起動までのハードルは全く高くありません。しかし、問題は学習準備を行うハードルの高さです。
SDXLで学習を行うには1024*1024の正方形であることが望ましいとのこと。しかし、編集部から供与されたスパくんの画像集はサイズがバラバラで、必要な画像をPhotoshopで全部正方形に書き出さないといけないし、一緒に学ぶプロンプトも画像毎に用意しなければならないし……とにかく下準備が大変です。


準備した素材をKohya_SSで読み込んでいきます。細かい設定もありますが、このあたりはよくわからないのでSDXLにチューニングされた自動オプションで進めていきます。

しかし、NVIDIA RTX5000シリーズで学習を行おうとするとメインで使われているxFormerというシステム部分が未対応のためエラーを吐き出し進まず……この修正に1日以上かかってしまい、スパくんのためとはいえ前途多難です。やっと進むようになったのでグラボを見守りながら待つこと数時間……。

できました!これがスパくんを生み出すための学習データです。早速試してみましょう。


これはダメですね……いやスパくんという意味でなら正解なんでしょうか。ただ、学習結果が所々確認できるので成果はゼロではありません。もう一度学習プロセスを見直してみましょう。
蛇の道は蛇、AIはAIに聞くのが正解ではないか……?

私はデザイナーではありますが、プログラムやPython(生成AIはPythonで書かれていることが多いです)の知識は全くありません。そのためAIのことはAIに聞くのが早いということで、ChatGPTに今回のコンフィグ設定を読ませてみたところ早速厳しい指摘が返ってきました。しかしながら何が間違っていたのかも明白になったので再学習してスパくんがどういったキャラクターなのか改めて認識させていくことにしましょう。

最初と違い段階的に学習が進んでいる様子がわかります。先ほどはうまくいきませんでしたが今度こそ期待が持てそう……。一旦寝て待つことに。
起きたところで完成していたので改めて見ていきましょう。スパくんのために3日以上時間を費やすことになるなんて考えてもいなかったので今度こそ成功させたい……。

ですが、見ての通り結果は成功?
頬の花びらや尻尾は綺麗に出ていませんが、特徴は再現できるようになってきています。学習を重ねれば近づいていくと思い、画像を整理して再度学習を進めました。


背景がかなり微妙ですが、スパくんと認識できるレベルには出力されるようになりました。

Supakun, front facing, full body, blue outfit, flower cheeks, electric plug tail, smiling, hands together, white face, vector art
前掲の画像は縦方向が学習データの適用割合が0%から200%と横方向が書き込みの精密さを上げていった時のスパくんの生成比較です。スパくんのようなシンプルなキャラクターであれば、そこまで書き込み具合を上げなくてもいい気はします。100%を超えると絵が破綻してしまいますので学習データ自体も80-100%で運用する方が色々なスパくんを作れるかもしれません。
ここから大量にデータを出力し、出来が良いスパくんを学習素材に加え更にブラッシュアップすることも考えられますが、なにしろ時間が足りません。
というのも、一回の学習には3時間近くかかり、学習中はGPUがフルで動いているため他の作業が一切できません。特に(フリーランスとして日夜デザイン仕事をしなければならない)私にとってAdobe製品が全く使えない状況になるのはかなり致命的です。学習後の出力自体は数十秒で済むとはいえ、出来がいいスパくんは100枚以上出力して数枚程度というレベルです。

今回、学習などを自身で行った結果「学習は早くて容易で、絵さえあれば簡単に出力できてしまう」という生成AIを勘違いしていた認識を改めることになり、世間一般的にいわれているような「誰でも簡単に著作物を盗用し、結果が簡単に大量生成できる」はかなり誤解がある気がしました。一方で、スマホでもオンライン(Grokや○○風イラストで話題のChatGPTなど)でも画像生成が気軽にできてしまう現状もあり、今後もそうしたAIサービスにおける学習の是非やモデルについての議論は継続されるかと思います。
しかしながら、自分で学習するところから環境を構築してみる限り、PCスペックもそれなりに必要で、外部のサーバー(GoogleやAmazon)を借りて運用するのであっても非常にお金がかかり、発展途上であるという印象をうけました。しかも、グラボの負荷も非常に大きいため『モンスターハンターワイルズ』を最高グラフィックでプレイするよりもシバき上げているといえます。
勉強を兼ねた実験企画でしたが、色々と学びの多い(しかしスパくんのために捧げるという残念な)連休になりました。今回の結果を見て、スパくん自体の学習は続けてもいいのかもしれませんが、そこは編集部の判断にお任せすることにしましょう……。
注:記事中の学習などの作業はローカル環境で完結しており、文章中にコンフィグをChatGPTに読ませていたりしましたが、本文で言及していないAIやモデルは利用していません。
※コメントを投稿する際は「利用規約」を必ずご確認ください