1. トップページ
  2. 松下響の天輪返し

松下響の天輪返し

伝説のTSキャラを間違って覚えているAIを教育してみる

こんばんはお久しぶりの松下です。
前回ボーダーブレイクPS4の応援記事らしき物を書いておきながらガチャの空しさと装備を充実させても腕と目がついていかない問題で割とすぐに熱意が減退してしまい、それから艦つくを暫くやってその後Steamでクラフトゲームを梯子してたら4年半の年月が経過しておりましたとか。はて、新手のスタンド攻撃でしょうか?
それはともかくとして、今回は世間様で話題になっているイラスト生成AIについてのお話です。松下自身も先月触り始めたばかりなので初心者目線ですが、目的のイラストをレンダリング出力するところまでやっていきます。

まずAIイラスト生成に関する固有名詞が色々と飛び交っているがこれは何なのか

まず私が最初に目にしたのはNovel AI Diffusionという奴で、web小説の挿絵をこれで作ったぞというのを目にして最近のAIはそういうことが出来るようになったのかと興味を持ったわけですが。
Pixivあたりを見に行くと、大量のAIイラストが投稿されていて、Novel AI以外にもWaifu、Stable Diffusion、Holaraなどの名称が飛び交っています。触ってみようにもまず沢山ありすぎてよくわからんという状態です。
イラストAIの情報は現在かなり錯綜していますが、これらに関してはまだ分かる部類で、結論から言うと描画モデルとそれを使ったサービスに分類できます。

  • Stable Diffusion:大元の描画AIモデルで、無料配布されている。略称SD
  • Novel AI Diffusion:SD標準モデルを元にDanbooruで学習させたモデルで、有料Webサービスの名称でもあり、これが有名。略称NAI
  • Holara AI:同じくモデル兼有料Webサービス。描画能力は高めだが、裸にしても性的部分を省略して描画されるのでマネキンのようになる。またインターフェイスの機能性がやや低い
  • Waifu DiffusionSD標準モデルを元に追加学習を行った比較的有名な無料配布モデル。派生モデルの中では法的にクリーンな方。略称WD

というわけで大元はStable Diffusionで、それを学習やマージ(融合)で派生させたモデルが大量に出回っているというのが現状ですね。
派生モデルは本当に大量にあるので、興味がある方は【2023年版】Stable Diffusion イラスト生成モデル紹介・一覧CIVITAIを見てみると良いでしょう。特にCIVITAIの方はLoRA差分モデルを含めれば毎日大量に増えています。
一つ注意点を述べておくと、モデルの拡張子が.ckptのものと.safetensorsのものがあり、機能としてはほぼ同じなのですが、大雑把に言うと.safetensorsは.ckptのセキュリティ脆弱性(※トロイの木馬判定が出ることもある)を改善した形式なので、.ckptファイルは余程素性がしっかりしているもの以外は使わない方が良いです。

さて、先ほど無料配布モデルという言葉が出てきましたが、モデルだけで動くわけではないのでこれを動かすソフトウェアが必要です。現在使われているのは主に以下の2つです。

  • NMKD Stable Diffusion GUI:スタンドアロンアプリケーションタイプで、インストールがすこぶる簡単なのが強み。ただしWebサービスほどではないものの機能性が比較的低く、LoRAを使えないという大欠点がある。通称NMKD
  • Stable Diffusion web UI:インストールが面倒な代わりに機能性がすこぶる高い。差分モデルであるLoraを使える上にエクステンションを後からインストールして機能を付け足せる。web UIとあるが操作をwebブラウザ経由で行うようになっているローカルアプリケーションで、下手にポート開放しなければ外部からアクセスされることは無い。作者名からAUTOMATIC1111と呼ばれることが多く、長いので1111とも略される。もしくは単純にwebUI、WUI

ちょっと使ってみようかという場合にはNMKDが向いていて、学習機能などをもっと使い倒したい場合には面倒なセットアップを経てAUTOMATIC1111を使うことになります。
というかNMKDにも一応学習機能はついているんですが、要求VRAMが24GBなので市販ビデオカードではGeForceの最上位グレードである3090か4090を持ってないと使えません。Automatic1111やKohya版LoRAの学習機能であればVRAMが8GBしかないGeForce3060Tiでも速度は遅いものの実行が可能です。
そして両者に共通する最大の特徴は無料で使えるということ。無料実行環境に無料配布モデルなんてあったらコスパ最強すぎてそりゃあAIイラストが巷に溢れるのも必然というものです。
まあ最上位ビデオカードでぶん回す場合は設備費用と発熱と電気料金が気になるかもしれませんし、クラウドの計算リソースをレンタルする場合にもその料金がかかりますが。

松下は激怒した。必ず、かのAIに伝説のTSキャラを教えてやらねばならぬと決意した。

とりあえずプロンプトという呪文詠唱の作法を調べながら色々試していって、じゃあ私、松下 響のデザインに沿った感じの出力を出せるだろうかとやってみるわけですが、案外髪型の自由度が低くてvery short hair指定してもボブカットくらいまでしか短くならず、外はねの指定も目立った効果が出ないのでそれだけで松下を出力させる目論見があっさり頓挫しました。
試しにショートカットキャラの中でも特に有名な綾波さんを要求してみると長髪で出てきたりします。……シンエヴァ仕様かな? 同じくshort hair指定してもあの髪型にはなりませんし、そもそも顔つきについての呪文がほぼ無いので、髪型だけ似せてもキャラデザは完成しません。
Pixivに大量のAI出力作品が投稿されているのを見て、絵画も一品ものから工業製品に移行する産業構造の変化がついに訪れたのだろうかと思いましたが、実際使ってみると現状ではまだそれほど自由度が高くないようです。
それでまあ、既に存在するキャラを出せないかと試行錯誤するのは当たり前なわけで、実際やってみるとアスカ・ラングレーさんや涼宮さんは結構素直に出てくるので、有名キャラは結構理解が及んでいるらしいということで、満を持してサジェストに出てくる「ranma-chan」や「saotome ranma」を入力してみたわけですが、これがどういうわけか全く似ない。
微調整で指定ワードの強度を上げてみると紫、ロングヘア、お団子、つり目、赤いアイシャドウという特徴が出てきて……これはどう見てもシャンプーですね?

早乙女らんまを要求したのにシャンプーを出してくるとか流石に許されざる蛮行ですよ?

更に呪文(プロンプト)をこねくり回してred short hair, braided ponytail, blue eyesやらを追加してHolaraで出したのが以下のイメージです。

Holara出力の早乙女らんま

頑張った甲斐があって大分可愛くはなったのである程度成功かと思ったんですが、冷静に元のキャラデザと見比べてみると大きな目や独特の前髪、上向きに尖った鼻(※アニメ後期作画限定の話)などは全く再現されていません。
いやまあ原作漫画版だと前髪はそこまで目立ってないし目も極端に大きくないので比較的似ているかもしれませんが、私が求めているのはアニメ版の方のキャラデザですし、それ以前にシャンプーと誤認されているのが問題なのです。

このシャンプーとの誤認症状はHolaraでもNovel AIでも後述するSD派生モデル各種でも傾向が変わらず、あまつさえCIVITAIで配布されているranmaの名を冠したranma_diffusionですらranma-chan入力でシャンプーの特徴が出ます。
つまり大元のStable Diffusion自体がTSキャラの金字塔を別キャラと完全に間違って覚えているという事実に直面して頭を抱えるしかないわけですが、そもそもの話、AIに怒っても不毛ですので、ならばTSキャラの端くれである松下の意地としては、AIが間違って覚えているのであれば改めて教え込んでやらねばなるまいということになるわけです。

余談ですが、2023/3/18現在においてCIVITAIにも早乙女らんまのキャラ再現モデルは存在せず、天道かすみLoRAモデルが先んじて存在します。かすみさん強いな! 参加してない水着コンテストでアシスタントやってたらいつの間にか優勝してる人は格が違った。

LoRAでAI学習に挑戦

そういうわけでいざ教育だとなるわけですが、この時点でローカルで用意していた環境がNMKDだったのでDream Booth学習機能を使うのにVRAM 24GBが要求されて躓きます。メインPCのGeForce3060Tiの実装VRAM 8GBでは起動すらしません。
しかし色々調べてみるとVRAM 8GBでも学習が実行可能な上に差分モデルとして生成できるLoRAというのがあることが分かりました。
私が使ってるのはKohya版LoRAで参考にしたのはこの記事ですが、AI界隈の状況変化に対応したアップデートでいつの間にか内容が変わってる上にセキュリティ的な保証は無いので、やりたい人は各自で安全性を見極めながら実行してみてください。

なおLoRAは元のモデルに随時追加適用する差分モデルファイルであることが際立っていますがAI学習メソッドの一つでもあるらしく、他にDream Booth、Textual Invension、Hyper Networkといった学習メソッドがありますが、その学習メソッドの一つであるLoRAもDream BoothモードとFine Tuneモードがあるようで、非常にややこしいです。今回のチャレンジをやっているうちにLoraの派生でLyCORISというのも出てきましたが、まだ情報が少なく、実際どういうものなのか禄に把握していません。

奇をてらわずにひとまずの成果が確認できたranma-chan_mk3

で、原作アニメの有料配信サービスから絵を持ってきて実行テスト含め学習3回目(ranma-chan_mk3)で出来たのがこちら。

※合法手段で見る動画から普通にキャプチャしてローカルのデータベースに突っ込むところまでは法に触れないはず、ただし本来キャプチャできないブルーレイのHDCPプロテクトを回避してキャプチャするのは2012年以降の著作権法第30条1項-2的には危ない

ranma-chan_mk3出力結果1

ranma-chan_mk3出力結果2

はい、3回目の割に大分似ましたね。とはいえ歩留まりが悪く、ポーズも限定されるので完璧とは言いがたいです。また、塗りがサンプルと同じアニメ塗りで固定される問題があります。
ポーズが限定されるとは言ってもここにに出したのは学習サンプルのコピーからは大分遠いのですが、学習したポーズの組み合わせから遠く離れたアングルなどは出力できないといった状態です。
ベースに使用したモデルは8528 Diffusion final(※現在非公開)というもので、Stable Diffusion 1.4から独自に学習を進めたものらしく、本来ならばもう少し詳細な階調の塗りが出来ます。
LoRAには適用率の指定があり、これを0~1の範囲で調整することである程度融通は利くのですが、適用率を下げると同時にキャラの特徴も薄くなるので、このままのLoRAモデルでは自由度が低いです。
歩留まりに関してはそもそもイラストAIには審美眼が無いために出力は殆ど毎回何かしらおかしい部分があって、これに対し大量の出力を行うことでその中からまともな結果を選ぶ形になるのは今回に限った話ではありません。しかしそこにLoRA適用率1未満による品質と特徴出力の確率ガチャが加わって更に歩留まりが低くなるということです。
なおLoRA適用率の帯に短したすきに長し問題についてはもっと終盤である程度の解決法が見つかります。

教育とは試行錯誤であるとはよく言ったもので

ここからLoRA差分モデルの完成度を上げるべくトライアンドエラーを繰り返していくわけです。

  • キャラ特徴は主に肩から上なのでそこだけのカットで揃えてみたらポーズの問題が改善されないか→頭身が非常に不安定になった
  • 学習ベースモデルを学習用と銘打っているらしいAcertainlyに替えてみたらどうか→LoRAを8528dで使う限りは8528dで学習させた方が結果が良くなる
  • マージ元の権利問題からして作品出力には使えないが特に描画品質が高いAbyssOrangeMix3A3(AOM3A3)では塗りが改善されないか→アニメ塗りとキャラ再現の二択は変わらず
  • alphaを1にしてステップ数を多くした方が繊細に学習できる?→有意な結果は得られず
  • ranma-chanというタグがシャンプーの特徴を保持していて悪影響が出るのが原因なら新しいタグを作ってしまった方が良いのではないか→osgというタグに替えてmk1~5までトライしたが、学習段階でosgが何なのかという情報が0なのでむしろキャラタグ以外の特徴タグをつけないとまともに特徴が反映されなくなった。ワードをカンマで区切ったタグだけでなく文章形式のキャプションを併用して突き詰めれば良い結果になるかもしれない
  • 学習に無関係な背景はなるべく削った方が良いのではないか→それは間違っていないが輪郭がガタガタになった
  • 切り抜いた輪郭線ががたついているのが輪郭がたつきの原因だとして輪郭だけベジェでなぞったらどうか→輪郭だけはっきりしていて他の線がぼける症状が余計酷くなった上にがたつきが治っていない
  • そもそも背景を透明にしたのが間違っていたのではないか→背景を単色塗りにしたことでがたつきが解決、つまり輪郭線の縁が見た目は半透明の黒であっても学習プロセスにおいて不透明度が無視されてただの黒ドットになっていたのがもう一つのがたつきの原因
  • 輪郭を綺麗に処理したとしても学習素材の解像度がそもそも足りない→素材をひたすら手作業でなぞってベジェ化して解像度フリーにしたが、mk3くらいの品質で納得できるなら必要が無いので作業コストに対する費用対効果が悪い
  • 作業ファイルの解像度を上げても学習サンプルが512×512だと細部が潰れるのでは→学習速度を妥協して768×768(=589,824ピクセル以内の長方形対応)にしてみたがそれでもmk3未満の出来なので他に原因がある
  • 透明PNGではなく1girl, soloの正則化画像を大量に用意した方が結果が良くなるのでは?→1girl, soloタグへのキャラ特徴移り現象防止効果はともかく、ranma-chanタグでのキャラ特徴反映効果に有意な差は見られない
  • それでも微妙にぼやけるのは何故なのか→mk3設定との対照実験の結果、dim=alpha=128→256、ランダムドロップ20%→無し、あたりの設定変更で却って結果が悪くなっていた模様
  • そもそも透明PNGって正則化画像無しとなんか違うの? 何かのおまじないの類いじゃないの?→対照実験の結果、有意なほどの差が見られないので以降正則化無しを選択することにした
  • 塗りまで学習されてしまうのであれば、学習サンプル自体をAIに厚塗りさせてそれを学習させるのはどうか→差が分かりやすいAOM3A3にimg2imgで塗らせてから手動修正した素材を学習させたら確かに効果はあったが、素材修正の手間があまりにもかかりすぎる

はい、mk3の結果を超えるまで迷走を繰り返して20回以上の学習トライを要しました。とりあえず設定変数を同等に戻したことで同等の品質を出せるようにはなったので、どうにか厚塗り出力できないかと苦し紛れにControlNetのhed(色境界認識)を活用して学習サンプルをAIで塗ってみたりもしましたが、大概素直な結果にはならず、これも手作業修正の費用対効果が悪すぎます。 手間がかかりすぎるという問題以外では一応結果が良くなったのでAOM3A3出力に関しては一旦完成かなと思っていたらもっと簡単に解決できそうな方法を発見しました。LoRAの層別適用を可能にするLoRA Block Weightです。

学習したキャラの顔と塗りの適用率を別々に適用するLoRA Block Weight

1つの数字で適用率を決めるから塗りとキャラ特徴の強度が同期してしまうのであれば、モデルデータ構造U-NETの層別に適用率を指定してやればいいじゃなーい? というわけで、LoRA Block Weightを導入してみました。モデルマージの際に層別に配合比率を変えるのとほぼ同じ原理ですね。
そしてranma-chan_mk20で出力した成果がこちらです。

ranma-chan_mk20出力結果1

ranma-chan_mk20出力結果2

特徴再現度が高く、多少は濃淡が効いていて、ポーズの自由度も高いです。とはいえ層ごとに役割が明確に分かれているわけでもない上にどの層が何を担当しているのかもはっきりとは分かっていないので8528dの塗り品質がフルスペックで出ているわけでもありません。最初のHolara出力などと見比べてみるとまだまだ差があります。Holaraは塗りのレベルが高いのに機能に制限がありすぎるからあれは色々と勿体ないんですよね……。R-18用途についてはマネキン状態で出力してInpaintで付け足すような使い方も出来ますが、そもそもキャラが似なくてLoRAも使えないのはどうしようもないですからね。いや逆に制限することでそのあたりの問題に触れるのを回避しているのかもしれませんが。
余談ですが、2枚目の方は単純出力では指がぐちゃぐちゃになっていたのでInpaint機能でマスクをかけて片手ずつ生成ガチャを回しました。また、腹筋が目立ち過ぎていたので同じくInpaintでネガティブにmuscularを入れて修正しました。

LoRAの層の内キャラ固有特徴は概ね10番目~13番目の層(OUT04~07)に入っているので層別適用率は0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0に設定しました。
他の設定方法として0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0で7番目~10番目(IN08,MID00,OUT03,OUT04)を適用してU-NETの深いところだけ使うようにするとより出力用モデルの塗り品質を邪魔しないようになりますが、代わりにキャラの特徴が薄まってコレジャナイ感が増すことがあるのが痛し痒しです。

一方、比較実験用のAOM3A3ではキャラの目が大きいために上まつげを眉毛と誤認してその下に新しいまつげを描き加えしまうという問題がありましたが、これはClip Skip設定を1から2に変更するだけであっさり解決しました。良く見てみるとLoRA学習設定のJsonにClip Skip:2と書いてあり、これがかみ合っていない原因でした。

Clip Skipはtxt2imgの入力画面ではなくSettings→Stable Diffusionの欄にあり、変更のたびにいちいちこれを操作するのは面倒なのでSettings→User InterfaceのQuicksettings listを「sd_model_checkpoint, sd_vae, CLIP_stop_at_last_layers」と書き換えて左上に常に表示できるようにしておくと良いです。ついでにVAE変更も楽になります。
Automatic1111でのClip Skip設定はデフォで1なんですが、2にした方がプロンプト呪文詠唱の効果が正確に出やすいとも言われています。実際AOM3ではその通りですが、8528dでは割と甲乙つけがたい結果になるので変更を簡単にしておくと楽です。

というわけで以下、アニメ塗りのままのサンプルをAOMA3ベースで学習させたmk21からAOMA3でClip Skip:2で出力した結果です。

ranma-chan_mk21出力結果1

ranma-chan_mk21出力結果1

※AOM3はモデルマージ素材に出所がだいぶ怪しいAnythingを使っているので出力結果を作品として表に出すのはお勧めしません。今回は検証結果としての提示です

AOM3A3は8528dより塗り主張が強いのか、学習サンプルがアニメ塗りだったにもかかわらず塗りがかなりの品質で出ています。
半袖5ボタン拳法着とチアリーディングユニフォームを学習サンプルに入れたのでプロンプト詠唱で上半身部分はある程度反映されましたが、OUT04~07に入っているのは頭から胴体までの範囲のようで、プロンプトで何を詠唱してもチアの腰のスカート、道着の袖やズボンに学習衣装が反映されません。
なおこの出力例では前髪が控えめですが、歩留まりが悪いだけで全く出てこないわけではありません。あの前髪、正面から見た状態が3次元的には矛盾しているのでAIも理解に苦労しているようです。

やっぱりあの衣装で動かしたい

さて、目的がAIに早乙女らんまを教え込むことである以上、やはりデフォの拳法着くらいはまともに動かしたいものです。
というわけで学習サンプルに3ボタン長袖拳法着全身像を7枚追加しました。素材調達のためにOPとEDの映像を確認していて気づいたんですが、半袖の方も3ボタン裾出しと5ボタン裾入れのバリエーションがあったりしますね。今更ながらの新しい発見でした。
あとついでに2枚だった体操服を増量して4枚にしました。どうせベジェでなぞって描き直してるので、腕に着ぐるみ師匠がまとわりついてるカットを居ないものとして描き直したり、初期作画を後期準拠の画風に描き直したりしました。
結局解像度フリーのベジェ形式ファイルを合計25個も作ることになり、解像度の都合で潰れていた線の復元や画風の修正までやっているとなんかもう自分で絵を描いた方が早くないかという気もしてきますが、今回の場合は自分で描いても意味が無く、あくまで自動化が目的なのです。つまりSatisfactoryやFactorioでそれぞれ1ヶ月かけて完全自動化ラインを作ってた時と行動方針が全く変わってないですね? んンー、大量ーッ! 生産ーッ!!(工場長ムーブ)

ところでこの作業に使ってるのがFireworksのCS5なんですが、CS6を買い損ねていて32bitのままなのでメモリオーバー警告が度々出て辛いです。ファイル互換性のある代替アプリケーションがまさかシリーズ終了から10年経っても出ないとは思いませんでした。

このサンプル追加作業の終わり際に今までキャプションファイルだと思ってたものが正しくはタグファイル(カンマで区切った特徴ワードの羅列)だったということに気づいて、じゃあキャプション(文章形式)はどうやって用意すればいいんだと色々と調べて実際に自動でキャプションをつけるところまでは動かしてみたんですが、キャプション内容の英文が絵の内容と一致してないことも多く、これ自動で出力する意味あるんだろうかと首を傾げる次第です。また、タグはキャラ固有の特徴を示すワードを削って特徴をキャラタグに収束させるという方針(通称マルゼンスキーム)が分かっているんですがキャプションはどう記述するとうまく機能するのかというのを説明してくれているところが見当たらず、結局タグだけのまま学習を回すことになりました。
なおこのキャプションを自動でつけるエクステンションであるDataset Tag Editorでは確かに文章形式のキャプションも生成できるんですが、タグを羅列した形式も含めて(広義の?)キャプションと呼んでおり、このあたりは情報が大分錯綜しております。
多分新しいタグを定義したときにそれを説明するのに文章形式のキャプションが有効なのではないかとは思っているのですが。

それで追加の衣装サンプルを用意したのはいいとして、OUT04~07だと頭から胴体までしか学習した結果を適用してくれないのが問題でして、衣装制御のためには第1層(BASE)の適用が必須で、加えて5番目~9番目(IN05,IN07,IN08,MID,OUT03)あたりもある程度適用しないといけません。そうすると適用率が上がって塗りが学習素材に近づく上にポーズの自由度が下がり、過学習していると形状崩壊も発生します。
まず過学習に関しては学習途中のLoRAも出力しているので調節はききます。
塗りの問題に関しては、適用する層が少ない状態ならばプロンプトで最後あたりにRealistic Digital PaintingやThick Coating Paintingを強めの強度で置いておくといい感じに脱アニメ塗りしてくれます。以下はその塗りに関する検証出力で、使ったLoRA自体は拳法着本格学習前のmk20です。

ranma-chan_mk20出力結果3

はい、8528dでも大分綺麗に出るようになりましたね。……他に比べるとエフェクトで誤魔化した感はありますが。
なおプロンプト詠唱の最初に塗り指定をすると強度を上げなくてもいいのですが、代わりにあの前髪を描画してくれなくなるので最後につけることになりました。あの造形はリアル的に許容できないので拒否されてるんでしょうか?

ポーズ自由度に関してはそのために7枚の全身像を追加しました。ただこの7枚、エンディングから持ってきたものなので5頭身程度しかなく、そのまま出力すると子供のような体躯で描画されて本編の体躯(6~7頭身)とは大分離れたイメージになってしまいます。これに関してはプロンプト入力でmature female, perfect female bodyなどとして体格を指定することである程度何とかなりましたが、根本的には素材の方を描き直した方が安定すると思います。

それで体格はどうにかなるのですが、実際にBASEその他の適用率を上げて学習した衣装を着せてみるとですね、必要な層が一気に増えたことで総合適用率が上がって形状崩壊が起こりやすくなる上に塗り指定がより一層効きにくくなって制御か困難になります。
なので衣装制御に最低限必要なBASEとそれをOUT側に中継するMID00、ズボンのだぶつき描写に必要なOUT03、顔の根幹であるOUT04,05は1で固定するとしてそれ以外のIN05,IN07,IN08,OUT06,OUT07あたりの適用率を下げて顔を保持しつつ確率で衣装と必要な着色が出来るようにするわけですが、そうなるとLoRA単純適用率を下げるのとあんまり変わらないガチャ数になるんですよね……。 以下mk26による出力です。層別適用率は長袖拳法服が1,0,0,0,0,0.4,1,1,1,1,1,0,0,0,0,0,0、足の部分を気にしなくてよい体操服は0.5,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0としました。

ranma-chan_mk26出力結果1

ranma-chan_mk26出力結果2

どちらも形は比較的まともに出ていますが、塗りがアニメ塗りと大して変わらない上に爪や袖に変な色がついており、また、背景の自由度も死んでいます。
これでもそれぞれ50回出力ガチャで服がまともに出たのを選んで更に50回バリエーションガチャで指や袖が比較的まともに出たのを選んだ結果なのですが。
CIVITAIを見てみるとこんな面倒なことをしなくても単純適用率とClip Skipの設定だけで着替えに対応してプロンプト指定も無く出力モデルの塗りで出せるLoRAが存在するので、もっといいLoRAモデルの作り方がある筈なのですが、情報が混乱していてそれが学習の方法の違いなのか学習後のマージで何とかしているのかもよく分からないのでそのあたりは今後の課題とします。

召喚にかけた呪文、でもみんな手が死んでる

Stable Diffusionは対象の立体構造ではなく見たまんまのイメージをノイズと拡散で学習するものらしいので、それ故に2次元の嘘も一応学習可能なのですが、反面身体構造に関する理解は基本的に無く、故にプロンプト呪文詠唱により召喚したキャラは大体手が複雑骨折しています。ネガティブプロンプトにbad fingers, bad hands, missing fingers, bad hands, bad anatomyあたりを入力しておけばいくらかはマシになりますが、それでも歩留まりは片手で1割もあればいい方で、両手同時の描写となるとかなり絶望的な確率になります(※成功率はモデルの完成度にも依存します)。一応InPaintで片手ごとに修正するという手段もありますが、なかなか捗らない作業です。1回生成するごとに料金が発生するwebサービスでこのガチャを実行するとどうしようもないことになるという意味でも自前の環境を作ってしまう方がお勧めです。
最近では3Dアプリケーションからポーズを出して手の形状を指定する試みなどもなされているようで、今後の発展に期待したいところです。

ところで全くの余談ですが、無修正の性的出力結果を配布するのは日本の法に触れますが、自分で見る分には自由ですし、体型も自由にアレンジできるのでAIイラストは他人の出力を当てにするより自分でやってみた方が旨みがあります。ぶっちゃけると私も性癖の根源に根ざすキャラコンテンツの二次供給を待たずとも自分で気軽に製造できるということで自動製造ラインの構築を目指してよく分からんことを分からんなりにやっているところがあります。
実際イラストAI関連の昨今の進化速度には目を見張るものがあり、LoRAもまだ満足に使えていないのに早くもLyCORISなどという新しい学習メソッドが出てきて、情報がまとまる前にもう次に進んでいるような状態です。

なお早乙女らんまLoRA配布の予定はありません。勿論生成物を同人で売る予定もありません。

取り沙汰されている法的問題など

今回の最後にこの辺りに触れておきますが、現状取り沙汰されているAIイラストの法的争点は大まかに4つくらいありまして、大体以下のような感じです。

  1. 有名どころのNovel AIがDanbooruとかいう無断転載を含むサイトで学習させているようだがこれはどうなのか
  2. そもそも他人のイラストを勝手に学習させて問題ないのか
  3. AIを使って出力したものに関する著作権はAIを操作した人間の物になるのか
  4. 配布されているモデルによってアウトに近かったりセーフに近かったりするのは何の違いがあるのか

1についてはアメリカ人がアメリカのサービスを利用する限りは特に断りの無い転載であってもフェアユースの範囲内ならば法に触れないという事情があります。そしてこれは大元が日本で作られた著作物であっても同じです。
どういうことかと言うと、まずベルヌ条約加盟国では著作権が保護されるわけですが、その著作物の保護は属地主義により各国の法律によってなされるため、アメリカで利用された場合にはアメリカの法律により判断されてアメリカのフェアユースが適用される、ということです。日本人がアメリカに行って何かする場合にアメリカの法律に従うことになるのと同じです。

2に関しては、まず人間でも絵の勉強をするには他人の絵を当たり前のように参考にしているわけで、それをAIに限って制限する法制度が現状存在しないしwebで公開されている画像データを再配布せずに手元のデータベースに放り込むのを禁止できるわけでもないので、仮に大元の作者が学習禁止と意思表示したとしても法的根拠が無いというのが現状です。
大分上の方で触れましたが、ブルーレイのHDCPコピープロテクトを回避して本来出来ないキャプチャを撮って高解像度学習素材にしたりすると日本の現行著作権法的にアウトになりかねないので注意が必要です。

3に関しては、アメリカではAI生成物の著作権は認められないという判例が出たそうですね。
まあ売ったりしなければ全く問題ないので自分の娯楽用途としては関係ないのですが、生成物を販売するなり作品製作の一助にするなりする人は気をつけておいた方が良いでしょう。

4に関してはNovel AIのリークデータを流用した疑いが強いモデル(具体的にはAnything系)というのが出回っており、これがモデルデータというプログラム著作物の権利関係で黒いという話です。 大元のStable DiffusionやStable Diffusionを元に独自学習させたNovel AI Diffusion、Waifu Diffusion、8528 Diffusionなどはこの辺りがこじれていないのでプログラム権利関係はクリーンと言えます。残念ながら8528 Diffusionは現在既に公開されていませんが、同作者がWaifu Diffusion 1.5派生のhako A & Bを新たに公開しているのでこれも大丈夫そうです。

法的問題については今後も流動的ですが、とりあえず複数の問題点をごっちゃにせず個別に認識しておいた方が混乱しないと思います。
もっと詳しい話は専門家による記事、例えばMidjourney、Stable Diffusion、mimicなどの画像自動生成AIと著作権あたりをご覧下さい。
なお版権キャラの扱いについてはAIに限った話ではないので除外しました。

関連記事

TS/TSFレビュー : らんま1/2

高橋留美子原作、らんま1/2 についてのレビューです。TS/TSF嗜好者の見地から、アニメーションTVシリーズを中心に述べています。

無断転載などの不正利用行為と二次創作の違い

二次創作活動と著作権と黙認と暗黙の了解に関する見解です。

カテゴリー: AI, 雑記 | タグ: , , | コメントする

コメントを残す

最近の投稿

松下 on twitter

サイト更新履歴

情報を取得するにはjavascriptを有効にしてください。