第3回:【2026年最新版】Pythonで動画の顔入れ替え!実写を『超高画質』で書き換える完全攻略

未分類

第3回:Pythonで動画の顔入れ替え!実写を『超高画質』で書き換える完全攻略

前回の静止画編、無事に成功しましたか? 1枚の写真が魔法のように変身する体験は、もう忘れられないはずです。

でも、本当の魔法はここからです。 今回は、ついに**「動画」の顔入れ替え**に挑戦します。あなたの顔が、驚くほどリアルに、クッキリと動き出す――。

巷のアプリのようなロゴ(透かし)は一切なし。完全無料で、何分でも生成可能です。AI特有のボヤけを一瞬で消し去る**「GFPGAN」の魔法**をかけた、実写クオリティを体感してください!


1. 準備:動画ならではの「2つの追加ルール」

動画処理は、静止画よりも繊細です。失敗しないために、以下の2つを守ってください。

① 素材動画(target.mp4)の選び方

  • プロのアドバイス: 顔が大きく、正面を向いている動画を選びましょう。横顔が多いと、入れ替えが不自然になります。

② 【超重要】GFPGANモデルの配置

動画の高画質化には、AIモデルファイル GFPGANv1.3.pth が必須です。


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動画クリエイター」です。

しかし、「途中で赤いエラーが出て進めない…」「エラー文の英語が読めない…」という方も安心してください。

次回は、ここまでで躓いてしまった方を全員救済する**「よくあるエラーと解決法」**を徹底解説します!

コメント

タイトルとURLをコピーしました