mieki256's diary



2023/04/25(火) [n年前の日記]

#1 [cg_tools] 実写風画像から線画イラストを生成してみたい

_昨日の実験 で、画像生成AI、Stable Diffusion web UI + Anime Lineart Style LORA を使うと、線画イラストっぽい画像を生成できることが分かったけれど、これを使ったら実写風画像から線画イラストっぽい画像を生成できるのかなと疑問が湧いたので、そのあたりを試してみた。

環境は、Windows10 x64 22H2, CPU: AMD Ryzen 5 5600X, RAM: 16GB, GPU: NVIDIA GeForce GTX 1060 6GB。

元画像は以下。basil_mix という学習モデルデータを使って、txt2imgで生成。

00013-3864758789.basil_mix.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 5, Seed: 3864758789, Size: 512x512, Model hash: 0ff127093f, Model: Basil_mix_fixed


この画像を、線画イラスト風にして出力したい。線画イラスト風を出力しやすくするために、学習モデルデータとVAEを変更する。
そして、前述の元画像を、txt2img の ControlNet の画像入力欄にドラッグアンドドロップ。
プロンプトに、"<lora:animeLineartMangaLike_v30MangaLike:1>, lineart, " を追加しつつ、生成したら以下になった。

00014-331652086.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres, <lora:animeLineartMangaLike_v30MangaLike:1>, lineart, monochrome, greyscale,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 5, Seed: 331652086, Size: 512x512, Model hash: 1d1e459f9f, Model: anything-v4.5, ControlNet Enabled: True, ControlNet Module: softedge_pidisafe, ControlNet Model: control_v11p_sd15_softedge [a8575a2a], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1

結構イイ感じかもしれない…。

解像度を上げると変わってしまう :

txt2img の Hires.fix を使って、512x512 の画像を 1024x1024 として生成してみたところ、以下のような結果になった。

00016-331652086.hires.fix.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres, <lora:animeLineartMangaLike_v30MangaLike:1>, lineart, monochrome, greyscale,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 5, Seed: 331652086, Size: 512x512, Model hash: 1d1e459f9f, Model: anything-v4.5, Denoising strength: 0.7, ControlNet Enabled: True, ControlNet Module: softedge_pidisafe, ControlNet Model: control_v11p_sd15_softedge [a8575a2a], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1, Hires upscale: 2, Hires steps: 8, Hires upscaler: Latent (bicubic antialiased)

前述の生成画像と比べると、随分と絵柄が変わってしまった。これがもし手描きイラストだったら「別の方が描きましたか?」って言われそう。

解像度を上げて生成するだけでも、これほど絵柄が変わってしまうのでは、漫画やアニメのように、ある程度絵柄の統一が期待されるメディアでは使えないよなと思えてきた。いやまあ、背景だけとか、そういう部分では使えるかもしれないけれど。 *1

余談。そういえば、背景制作の一部にAIを使ってみたアニメ作品がある、という話を以前ネットで見かけた気がする。もしかすると、「キャラは絵柄が安定しないから使えないけど、背景だけなら大体は一枚絵で済むし使えなくもないかも」ということだったのかもしれない。分らんけど。

img2imgでは線画にならない :

img2imgだけで ―― ControlNet は未使用状態で試してみたけど、なかなか厳しい結果になった。

00013-3864758789-1475614968.i2i.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres, <lora:animeLineartMangaLike_v30MangaLike:1>, lineart, monochrome, greyscale,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1475614968, Size: 512x512, Model hash: 1d1e459f9f, Model: anything-v4.5, Denoising strength: 0.55

白黒イラストっぽいけれど、これは線画じゃないなと。いやまあ、改めて見直してみたら、前述の2つの生成事例も全然線画じゃない気がしてきたけど…。

ちなみに、最初に試してみた際には、うっすら色がついた感じの画像が生成されてしまった。プロンプトに "monochrome, greyscale," を追加してやることで、無理矢理だけど白黒画像にできた。でも、コレは線画じゃない。

カラーイラスト風で生成するのであれば、img2imgでもイケるのだろうけど…。例えば、下のような結果でも良いのであれば…。

00013-3864758789-1520341489.i2i.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1520341489, Size: 512x512, Model hash: eb4099ba9c, Model: abyssorangemix3AOM3_aom3a3, Denoising strength: 0.58

余談。AIの生成画像なので、やっぱり指がおかしいですね。

cannyで試してみた :

ControlNet のプリプロセッサ種類で、softedge_pidisafe を選んでるのがよろしくないのではないか、canny だったら違うのではと思えてきたので試してみた。txt2img で生成。
  • ControlNet を有効化。
  • プリプロセッサ : canny
  • モデル : control_v11p_sd15_canny

00015-331652086.canny.png
1 girl, beautiful, school uniform, upper body, masterpiece, best quality, highres, <lora:animeLineartMangaLike_v30MangaLike:1>, lineart, monochrome, greyscale,
Negative prompt: EasyNegative, (worst quality:1.4), (low quality:1.4), (normal quality:1.4), lowers,
Steps: 25, Sampler: DPM++ SDE Karras, CFG scale: 5, Seed: 331652086, Size: 512x512, Model hash: 1d1e459f9f, Model: anything-v4.5, ControlNet Enabled: True, ControlNet Module: canny, ControlNet Model: control_v11p_sd15_canny [d14c016b], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1

髪のあたりは線画っぽくなったけど、服の部分は線画のソレではないな…。元画像の服の部分が黒すぎるのだろうか。それはともかく、やっぱり指がおかしいですな。

実験結果 :

結論としては…。
  • 何もない状態から、txt2img + Anime Lineart Style LORA を使って、線画イラスト風画像を生成できることは分かった。
  • 実写風画像を img2img に渡して、カラーイラスト風画像を生成することもできると分かった。
  • しかし、実写風画像を元にして、線画イラスト風を生成するのは難しい。グレースケール画像っぽいイラスト風なら生成できるけど、線画イラスト風にはなってくれない。

まあ、仮に線画イラストを生成できたとしても、ソレを一体何に使うのと問われたら、現時点では使い道が思いつかないのだけど…。それに、権利的にも、これらの学習モデルデータは色々アウトだろうから、そういった面でも使い道は無いよなと…。

VRAMが足りない :

Hires.fix を使って 1024x1024の画像を出力しようとしたら、NaN が大量発生しただの、VRAM が足りないだのエラーが出て処理が中断されてしまった。GTX 1060 6GB では、やはり厳しいのか…。

webui-user.bat 内の指定を変えればVRAMが少ない環境でも動くかも、という話を見かけたので試してみた。

webui-user.bat の2行目に以下を追加。なんでも、VRAM に対してガベージコレクションを行う頻度を指定しているらしい。
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6, max_split_size_mb:128

加えて、webui-user.bat内の、COMMANDLINE_ARGS の指定を増やした。
@rem set COMMANDLINE_ARGS=
set COMMANDLINE_ARGS= --xformers --no-half-vae --medvram
  • --xformers : xformers を使うことで処理が速くなる。その代わり、同じ乱数シードを与えてもビミョーに違う生成画像になる。
  • --no-half-vae : NaN とやらが大量に出て処理が止まってしまう場合、これをつけることで fp16 とやらが fp32 になって、処理が通るかもしれない、ということらしい。
  • --medvram : VRAMが4GBしかない時はコレをつけてみよ、ということらしい。その分処理速度は遅くなるそうで。

上記の指定をしたところ、Hires.fix を使って、512x512の画像を1024x1024として出力することができた。

もっとも、前述の通り、生成される画像は結構盛大に変わってしまうので、処理時間がかかった割に「コレジャナイ」感が…。うーん。

*1: もっとも、背景として使うとしても、パースがめちゃくちゃな画像が平気で生成されたりするらしいので、やっぱり漫画には使えないよ、という話もどこかで見かけた気がする。パース云々が絡んでくると、3DCGを活用するのが妥当という話になるのだろうなと。3DCGであれば、活用している漫画家さんも既に居るから、実績があるし。

#2 [zatta][neta] フレーム間が統一されていないことの魅力

思考メモ。

少し前に、踊っている人の実写映像を、1フレームずつAIで手描き風に変換した動画を目にした。ググってみたら見つかった。以下の動画。

_「AIアニメーション始まりすぎだろ..」実写モデルの動きをアニメに変換するAIの精度が高すぎることに対するクリエイターの反応 - Togetter

初見時は、「うわ、スゴイ」と思ったものの、よく見てみると、1フレームずつ変換してるから、フレーム単位で服の種類も影の付き方もパカパカ変わっていて、これではまだまだ使い物にはならないわな、と…。

ただ、3DCGでレンダリングして作ったセルルックなアニメ映像と比べると、AIが生成したソレに魅力を感じるというか、妙な手描きアニメ感が付加されているようにも思えて、そこからなんだか色々と考え始めてしまった。のでメモ。思考メモ。

機械が描いたような線を求められてた時代 :

大昔、セルとフィルムでアニメを作り始めた頃は、仕上げのお姉さん達が、つけペンを使って、セルに動画の線をトレスしてた(らしい)。その頃は、動画に忠実に、かつ、どれだけ奇麗な線を引くか、そういう能力が仕上げの方々に求められてた。

そのうち、トレスマシンが出現して、機械が、動画用紙上の線をセルにトレスしてくれるようになった。ところが今度は、動画用紙上の線自体にバラツキがあることが問題になってきた。動画を描いてる方々はそれぞれ別人なのでバラツキがあるのは当たり前なのだけど。そこで、動画を描く際にはこういう筆記具を使え、みたいなルールが一部のスタジオ内で強制されるようになったりもした。 *1

つまり、昔の日本の手描きアニメ業界には、「均一な線」「無個性な線」「誰が描いても同じ線」を理想として、そんな線を実現すべく、作業に従事する人間達が努力をしていた時代があった。

機械が描いた線を否定される時代 :

これが、3DCGソフトの出現と、セルルック3DCG映像の普及で、ちょっと状況が変わってくる。3DCGのソレは、機械が描く線なので、人間が引くより、間違いなく奇麗で、均一な線。

やったぜ。とうとう理想の線をアニメ業界は手に入れた。これで視聴者も大喜びすること間違い無し。

とはならなかった…。3DCGというだけで、なんだかんだ言って拒否反応を示す視聴者が結構出てきた。おかしいじゃないか。そこにあるのは、アニメ業界が何十年も追い求めてきた理想の線のはずなのに。まるで機械が描いたような均一な線を実現しようと、皆でずっと苦労してきたのに。なんで文句言われるの。お前等、コレが欲しかったんじゃないの?

顧客が本当に欲しかったもの :

つまるところ、手描きアニメにおける、本当の理想の線には、「ゆらぎ」「ズレ」「ブレ」が求められていたのかもしれないなと思えてくるのです。ブレ過ぎていてもダメだけど、機械のように正確過ぎてもダメなんだろう…。人が手を動かして作ったものには、必ず微妙なブレが入る。そのブレに、見る側は何かを感じていたりするのかもしれないなと。

そんなわけで、前述の、AIが生成したブレブレの動画に、自分は妙な魅力を感じてしまったのかもしれないなと。機械が生成した動画のはずなのに、雑な人間がガリガリと描いた動画のように見えなくもない。そこが見ていて面白い。

おそらく今後、フレーム間で形状に連続性を持たせるように、AIによる変換処理が発展していく可能性は高いのだろうけど。仮にそれが実現した時、「昔のほうが活き活きとした動きに見えたなあ」「これでは3DCGと変わらないじゃん。つまんない」という感想が出てきそうな気もする…。

でもまあ、一度はそういうレベルに達してみないと、その次の目標だって見えてこないのかもしれないな、とも思うのですが。

アナログな何かを付加すること :

そういえば、ここ最近の手描きアニメ業界は、セルとフィルムで作ってた時代のアレコレを再現しようと努力しているように見えなくもないなと。

仕上げは完全にデジタルになって、バケツツールで各面をクリックして塗り潰していくから、もはや塗りムラなんてどこにも無い。セルに絵具をペタペタと塗ってた時代は「塗りムラはダメ」という扱いだったけど、その頃からすると今のアニメ制作の仕上げは、間違いなく理想的な塗りのはず。完全にフラット。完全に均一。

なのに、撮影段階でフィルタをかけて、わざわざ塗りムラを再現してる作品が結構前から出てきている…。ガンダムシリーズのMSの塗りとかそんな感じだけど、アレって何時頃からやり始めたんだろう…。

線についても同様で。バケツツールで塗っていく関係で、動画の線は2値化された状態で仕上げに渡されるけど。これまた撮影段階で、鉛筆で描いたようなボサボサ感等をわざわざ付加してる作品があったりして。元々鉛筆で描いていた(かもしれない)動画を、わざわざ2値化して、鉛筆らしさを無くして均一な線にしているのに、また後から鉛筆らしさを追加するのだから、一体何をやってるのだろうと思わないでもないけど…。 *2

でも、その処理を入れるか入れないかで、映像から受ける印象が随分変わるのだよな…。

セルとフィルムで作ってた頃からすると、デジタルな道具の普及によって、これこそが理想と思える状態が実現したと言える。しかし、実際にその状態になってみると、これじゃ物足りない、アナログ感が欲しいと思い始めるという…。なんとも不思議。

てなあたりを考えると、セルルックの3DCGアニメ映像だって、手描き感を付加して印象を変えてしまうことは可能なはずで。実際そのあたりを試みてる作品も既にあるけれど。例えばEテレを眺めてると、時々そういう映像を見かけたりするし。

そういった、あえて不安定さを付加する処理にAIを使えないものかな。今の画像生成AIはフレーム間を統一させることが苦手だけど、いっそのこと、逆にフレーム間を統一させない方向で仕事をさせられないものか。たぶんソレ、手描きの一枚絵にも使えそうな気が…。などとバカ妄想をしてみたけど、何をどう学習させてどういう処理をかければいいのかさっぱりイメージが湧かないですが。

思考メモです。オチは無いです。

*1: たしか、テレコムやジブリではそういうルールがあったと、どこかで聞いたような…。要するに、宮崎駿監督が渡り歩いてきたスタジオでは、そこまで指定されたりしていた、てな話だったような…。
*2: いやまあ、海外の動画作業はデジタルになっていて鉛筆なんかもう使ってないのだろうし。グレースケールの画像を塗っていく仕上げツールは日本のスタジオ内でほとんど普及しなかったから、色んなスタジオの手を借りなきゃ作れない以上、どうしてもどこかで2値化する段階が必要になるんだろうけど。

以上、1 日分です。

過去ログ表示

Prev - 2023/04 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project