背景
最近、生成AIの進化が著しくて、面白いので何かを作れないかと思いました。そこで、アニメの静止画を実写化し、あるシーンを再現できないかとトライしてみました。結果は、いまいちでしたが、実験としては面白かったです。もっとうまいやり方があると思うので、再挑戦したいと考えています。
技術選定
シーン選定は、鬼滅の刃の炭次郎が全集中を使ったときのものを再現しようと思いました。
以下のような技術
- Stable Diffusionを使って、静止画を実写化
- Elevenlabsで音声生成
- runway Gen3-Alpha Turboを使って静止画を動画にする
- runway Gen3-Alpha Turboを使って動画リップシンクを加える。
Stable Diffusionを使って静止画を実写化
作成構想
実写化した理由は、runway Gen3-Alpha Turboが実写に強いのではという推測からです。この推測が正しいかどうかは確実ではありませんが、実験を進める上での仮説として採用しました。なお、細かい技術的詳細については、興味のある方はLLM(大規模言語モデル)を使って調べるのが良いでしょう。ここでは割愛させていただきます。
プロセスの最初のステップとして、キャラクターの輪郭を保持しながら、実写的な質感を追加するためにControlnetを使用しました。具体的には、エッジ検出の特徴を持つcontrol_sd15_cannyというControlnetのモデルを選択しました。このモデルは、キャラクターの特徴的な輪郭を維持しつつ、実写風の質感を付加するのに適していると判断したためです。
Stable Diffusionの基本設定
Restore Faces: 有効
顔の表情やバランスが崩れるのを防ぐために、顔の修正機能を有効にしています。実写化の際にキャラクターの顔が不自然になりすぎないように調整されるため、リアルさを損なわずにキャラクター性を保持できます。
Sampling Method: DPM++ 2M Karras
「DPM++ 2M Karras」は、リアルで安定した描写が得られるサンプラーです。特に、キャラクターの質感や細部を精緻に再現するのに適しているため、今回のアニメから実写への変換に最適です。
Sampling Steps: 20
最初は時間を短縮するために20ステップで十分です。ステップ数が多すぎると生成に時間がかかりますが、ディテールが求められる場合は、最終的に30〜50ステップに上げることで、より多くのディテールを生成できます。
CFG Scale: 9
CFG Scaleは、プロンプトに従った生成結果の強度を調整します。11〜12の範囲だとプロンプトの影響が強すぎるため、最終的には9に設定しました。これにより、プロンプトの指示がリアルさに反映されすぎるのを防ぎ、全体のバランスを取ることができます。
Denoising Strength: 0.45
Denoising Strengthは、生成プロセスでどれだけノイズを取り除き、元の画像をどれだけ変化させるかを制御します。0.45という値は、リアルさを追加しながら、フィギュアやアニメキャラクターの特徴を崩しすぎないようにするために設定しました。この値は、高すぎると元の特徴が消えすぎてしまいます
ControlNetの設定
Control Weight: 0.55
ControlNetの影響を調整する値です。0.55に設定することで、フィギュアの形状やキャラクターの特徴が変形しすぎないようにしながら、実写的な質感を加えることができます。この値を下げると、元のキャラクター性がより保持されます。
Canny Low Threshold 80 / High Threshold 180
この値は輪郭をどのくらい保つか設定しています。
- Low Threshold は細かい特徴(髪の毛の質感、服のしわなど)のパラメータです。値を下げると細かく表現できる分、ノイズもも増えます。
- High Thresholdは輪郭のパラメータです。値が大きいと、輪郭が無視され、シンプルな画像になります。
プロンプト
prompotは以下です。
A highly realistic version of Tanjiro Kamado from Demon Slayer, keeping the original anime design, realistic skin textures, highly detailed facial features, photorealistic hair, natural lighting, realistic clothing with anime-inspired colors and patterns, 8k resolution, cinematic atmosphere.
negative promptは以下です。
deformed, extra limbs, disfigured, ugly, cartoon, 2D, low resolution, flat, unrealistic, oversaturated colors, distorted face, inaccurate proportions
一応設定値の画像を張り付けておきます。
生成物
元画像です。フィギアの画像を使ってます。
生成された画像です。実写っぽいですが、おっさんぽくなりましたね。
Elevenlabsで音声生成
音声生成はElevenlabsを使用しました。生声を録音したり、TTSで音声を作成した後で、RVCやMMVCなどのボイチェンにかける手法もあると思いますが、今回の目的はあるシーンを再現するだけなので手っ取り早い音声生成を使ってみました。とても早く、近い音声を生成してくるサービスです。クローンの音声はStarterプラン以降なので、5ドル/月ほどかかります。
【特長】
- 高速に音声生成できる
- 感情があるかのような
- マルチリンガル
以下のVoicesからInstant Voice Cloningを選択します。
VoicesからAdd a new voiceを選択し、音声データを入れるだけです。今回は炭次郎の音声をバッググランド音声無いものを30秒ほど選び、モデルを作成してみました。
日本語のできも素晴らしいのですが、英語だともっとすごくて本人の特徴をとてもよくつかんでるように思います。
これでInstantなので、Professional Voice Cloningがどれほど高いレベルなのか気になりますね。
一旦、音声生成は完了です。
runway Gen3-Alpha Turboを使って動画にする
動画作成
やっとここまできました。Runwayでおもしろ動画が作成できれば思ったのですが、text to imgはかなり良い感じですが、img to imgはプロンプトを拘っても、反映されず、結局、以下を試しました。
He stands up
おっさん炭次郎が立ち上がります。当初の目的のあるシーンを再現するというは別のアプローチでやりたいと思います。人類の進化みたいになっていて少し面白かった。
リップシンクをつける
リップシンクをつけました。これは以下のように生成された動画の編集から、Lip Syncというボタンがあるので、そこをクリックし、音声を付与するだけです。
そして、完成動画がこちらになります。動画は微妙かもしれませんが、音声とリップシンクは良い感じがしますね。
まとめ
- 生成AIを使ってアニメキャラクター(鬼滅の刃の炭治郎)の実写化を試みました
- 想定したよりも面白い方向になってしまった
- 他手法も試していきたい