第3回:Pythonで動画の顔入れ替え!実写を『超高画質』で書き換える完全攻略
前回の静止画編、無事に成功しましたか? 1枚の写真が魔法のように変身する体験は、もう忘れられないはずです。
でも、本当の魔法はここからです。 今回は、ついに**「動画」の顔入れ替え**に挑戦します。あなたの顔が、驚くほどリアルに、クッキリと動き出す――。
巷のアプリのようなロゴ(透かし)は一切なし。完全無料で、何分でも生成可能です。AI特有のボヤけを一瞬で消し去る**「GFPGAN」の魔法**をかけた、実写クオリティを体感してください!
1. 準備:動画ならではの「2つの追加ルール」
動画処理は、静止画よりも繊細です。失敗しないために、以下の2つを守ってください。
① 素材動画(target.mp4)の選び方
- プロのアドバイス: 顔が大きく、正面を向いている動画を選びましょう。横顔が多いと、入れ替えが不自然になります。
② 【超重要】GFPGANモデルの配置
動画の高画質化には、AIモデルファイル GFPGANv1.3.pth が必須です。
- 入手先: GitHubの公式リリースページからダウンロードしてください。
- 配置場所:
C:\my_projectの中に置きます。
2. コピペでOK!「main.py」の全コード
以下のコードをコピーして、main.py という名前で保存し、C:\ai_project フォルダに置いてください。
Python
import sys, cv2, insightface, os
from insightface.app import FaceAnalysis
from gfpgan import GFPGANer
from moviepy.editor import VideoFileClip
print("--- 【完全再起動】AI生成を開始します ---")
# 1. モデル準備
app = FaceAnalysis(name='buffalo_l', providers=['CPUExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
swapper = insightface.model_zoo.get_model('inswapper_128.onnx', download=False)
# GFPGANの読み込み(同じフォルダにある前提)
restorer = GFPGANer(model_path='GFPGANv1.3.pth', upscale=1, arch='clean', channel_multiplier=2)
# 2. 素材確認
if not os.path.exists('source.jpg') or not os.path.exists('target_video.mp4'):
print("エラー: 素材ファイルが足りません!")
sys.exit()
source_img = cv2.imread('source.jpg')
faces_source = app.get(source_img)
source_face = sorted(faces_source, key=lambda x: (x.bbox[2]-x.bbox[0])*(x.bbox[3]-x.bbox[1]))[-1]
# 3. 処理関数
def process_frame(frame):
frame_bgr = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
faces_target = app.get(frame_bgr)
if faces_target:
res = frame_bgr.copy()
for face in faces_target:
res = swapper.get(res, face, source_face, paste_back=True)
_, _, res = restorer.enhance(res, has_aligned=False, only_center_face=False, paste_back=True)
return cv2.cvtColor(res, cv2.COLOR_BGR2RGB)
return frame
# 4. 実行
clip = VideoFileClip('target_video.mp4')
new_clip = clip.fl_image(process_frame)
new_clip.write_videofile('output_final.mp4', audio=True, codec='libx264')
input("成功しました!エンターキーで閉じます...")
3. 【衝撃】ボヤけ vs クッキリ!GFPGANのビフォーアフター
普通に動画の顔を入れ替えると、AIの仕様で顔の部分だけが「128×128ピクセル」という超低画質になり、不自然に浮いてしまいます。
そこでコードに入れた GFPGANer が発動します! これを入れるだけで、AIが「目・鼻・口」を認識し、まるで一眼レフで撮り直したかのような**「実写クオリティ」**まで自動で復元してくれます。百聞は一見に如かず、こちらの結果をご覧ください。
[ここに画像挿入:以前作成した「日本人モデルの完璧なイラスト融合」画像をベースに、再生バーなどを付けた動画の1フレームとして切り出したビフォーアフター画像を設定]
4. いざ実行!…の前に(プロのリアルな体験談)
コードの準備ができたら、コマンドプロンプトで python main_video.py を実行するだけです。しかし、ここで1つ重要な注意点があります。
動画の処理は、静止画の何百倍もPCのパワーを使います。 実際、私のPC環境で「28秒の動画」を処理するのに、なんと約40分かかりました!
エラーで止まっているわけではないので、黒い画面に文字が出始めたら、焦らずコーヒーを飲む準備をして、気長に待ちましょう! 待った分だけ、完成した時の感動はひとしおです。
5. まとめ:あなたはもうAIマスターです
お疲れ様でした!無事に output.mp4 は生成されましたか? 静止画から始まり、ついに動画の高画質化まで。ここまで自力でやり遂げたあなたは、すでに立派な「AI動画クリエイター」です。
しかし、「途中で赤いエラーが出て進めない…」「エラー文の英語が読めない…」という方も安心してください。
次回は、ここまでで躓いてしまった方を全員救済する**「よくあるエラーと解決法」**を徹底解説します!


コメント