3月は画像生成AIに全振りした1ヶ月でした

3月があっという間に過ぎていきました。振り返ると、この1ヶ月はほぼすべての時間を画像生成AI関連に注ぎ込んでいたように思います。

今回の記事は技術検証の話ではありません。Patreonでの画像投稿プロジェクト「春語廊(はるごろう)」の制作を通じて感じたことや、試行錯誤の中で得た気づきについて書いていきます。

春語廊とは

春語廊は、筆者がPatreonで展開している画像投稿のプロジェクトです。画像生成AIを使って作品を制作し、公開しています。

正直に言えば、まだまだ素人に毛が生えた程度のスキルしかありません。うまくなるには試行回数を増やすしかないので、とにかく手を動かし続けることを重視しています。最初からうまくいくはずがないのは、わかっています。

モデルの「露出癖」との戦い

この1ヶ月で最も印象に残っているのは、モデルの癖との戦いでした。具体的に言うと、露出の傾向です。

こちらが意図していないにもかかわらず、生成される画像がことごとく衣装の着崩れや露出方向に引っ張られてしまいます。「露出させないなら自爆するぞ」とでも言わんばかりの勢いで、あの手この手で衣装が崩壊していく様子は、なかなかに手強いものでした。

物語の後半であれば、表現としてそれが合う場面もあります。しかし、物語の前半や投稿用として使う画像では、衣装をきちんと保ってほしいわけです。

結果として、「なんとしても着崩れを許さない自分」と「なんとしても露出・着崩れ方向に持っていきたいモデル」との、意地と意地のぶつかり合いのような状態になりました。人間臭いと言えば人間臭い、しかし不毛と言えばかなり不毛な戦いでした。

プロンプト制御への過信

当初は、プロンプトの工夫や各種機能の活用で制御できると思っていました。ネガティブプロンプトの強化、重みづけの調整、ControlNetの併用――思いつく手段はひと通り試しました。

しかし結果は、ほぼ全敗でした。

モデルの学習データに強く刻まれた傾向に対して、推論時のプロンプト操作だけで逆らうのは、根本的に難しいようです。答えが決まっているところを無理に曲げようとしても、そもそも成功する見込みが薄いということを身をもって学びました。

戦わないという選択

最終的にたどり着いた結論は、「いかに戦わないか」ということでした。

わからせるつもりが、逆にわからされた形です。

具体的には、衣装用のモデルと通常使用のモデルを分けるという方針に切り替えました。衣装を正確に維持したい場面では、衣装の再現性が高いモデルで一度生成し、その出力を別のモデルに渡して仕上げるという二段構成です。

手間は増えます。しかし、何度生成しても意図しない露出画像が出続ける状態――言うなればSSR排出率0%のガチャを延々と回し続けるようなもの――で時間を浪費するよりは、はるかに効率的です。

これから

改善はまだまだ続きます。春語廊としては、深淵を覗くような雰囲気の作品を制作し、パトロンの方々にお届けできればと思っています。

画像生成AIは楽しい反面、思い通りにならない場面も多いです。ただ、その「思い通りにならなさ」の中にこそ、ワークフローを工夫するヒントが隠れていました。戦わない戦い方を選ぶのも、立派な戦略です。