見出し画像

写真の「顔だけ入れ替える」技術について

この note では、例えばある人物写真があるとして、その顔だけを別の人物に入れ替える、という技術や手法について書き連ねていきます。

便利なものは何でも取り入れる、というポリシーの下、使えそうだなと思った技術やツールについては積極的に試し、常に作業フローをアップデートしていくつもりです。そしてその都度それらを紹介できればと思ってます。

AIを使った画像加工

もはや手作業で加工するなんて考えられない。AI画像加工をフル活用して、高品質かつ高効率な画像加工を目指します。

ここで解説する手法は:


LoRA トレーニングを行った顔画像情報を元に

指定した人物画像の顔部分を入れ替える


という内容となります。

顔だけを入れ替える

前提

入れ替え対象となる人物の顔写真が複数枚必要となります。解像度が高く、はっきりと写っており、なおかつ数多く準備されているほうが望ましいです。当然ながら、肖像権を侵すような用法については行うべきではありません。

ここで紹介する方法については、利用に応じた費用が発生します。ただし、初期費用はほとんどかからないので、総合的なコストメリットは小さくないと考えます。

クラウド環境を活用する

AI画像加工には高機能かつ高価な機材が必要となりますが、私はこれらの機材は一切使用せず、クラウドサービスを活用することによって作業を行います。その利点と難点をまとめてみました。

利点

  • 初期投資が不要、高価なグラフィックカードを買わなくて良い

  • 非力なマシンでも作業ができる

  • 作業の場所を選ばない

  • 超強力なGPUが気軽に利用できる

難点

  • 月額費用がかかる

  • ストレージの上限が気になりがち

  • 設定が面倒、情報が少ない

AI画像に取り組む場合、強力なGPUを搭載したマシンを組み上げてローカルで作業を行うか、Midjourney, imagen3 などのクラウドサービスをつかうか、の2択になりがちです。前者は投資金額が嵩みがちだし、後者は設定の自由度が低く、NSFW(いわゆるエロ)の出力が絶望的、という問題があります。クラウドGPUの上に自分で作業環境を構築することにより、両者の良いとこ取りをしよう、というのが私の目標としてきたところです。

現時点の作業環境

ハードウエア:

  • Macbook Pro M1

  • Wacom ペンタブレット(自宅で作業するときのみ)

ソフトウエア:

  • Adobe Photoshop (Creative Cloud)

クラウドサービス:

  • RunPod.io (クラウドGPUホスティング)

  • fal.ai (LoRA トレーニングを行う)

AI 加工に必要なツール群:

  • ComfyUI

  • Flux.1 dev

Photoshop については、あれば大変に便利ですが、なくてもたぶんなんとかなるはず。最近のPSは画像生成機能をフル活用した超便利なツールが用意されていますが、そうしたツールはほとんど使用しません。最低限、レイヤー管理のできる画像編集アプリがあれば大丈夫。

環境構築

作業を行うに当たり、事前に準備しておく環境について解説します。

クラウド作業環境の構築

現在は RunPod というクラウドGPUホスティングサービスを利用しています。

こちらは月額基本料は不要で、GPUを利用した時間により課金されます。強力なGPUを使うと単価が高くなりますが、48GBのVRAMを持つ一般的には超強力なGPUを使っても、1時間で70円〜100円程度です。また、別途ストレージの契約も可能です。画像加工にはいくつもの設定ファイルが必要となりますが、これらは数十GBのサイズになることもあります。あらかじめストレージを確保しておけば、いちいちデータを転送しなくても良いので便利です。

画像加工作業は ComfyUI というツールを利用します。AI画像加工においては、ほぼデファクトスタンダードとなっているようで、RunPod にはこれを導入するためのテンプレートが用意されています。後述する Flux.1 と共に、面倒な設定が不要で簡単に導入できます。

必要なファイルの導入

RunPod のテンプレートにより ComfyUIFlux.1 のセットアップが完了しました。ただしそれだけではAI画像加工はできません。この後、様々な画像加工を実現させるための各種設定ファイルを準備する必要があります。

私が目指す「顔だけを入れ替える」作業において、必要となる設定ファイルは以下の通りです。

  • Flux.1 dev モデルファイル

  • Flux.1 tools inpaint / outpaint モデルファイル

  • 好みに応じた LoRA モデルファイル

これらは huggingfacecivitai などで入手できます。RunPod 上に構築した環境の、然るべきディレクトリにこれらを保存します。

ワークフローファイルの入手

ComfyUI はワークフローファイルと呼ばれる、一連の作業をまとめた手順書を用いて作業を行います。画像を生成したり、画像の一部を変更したり、画像の解像度を上げたりなど、それぞれの目的ごとに準備された(あるいは自分で作った)手順書を準備し、それらを ComfyUI に読み込んで利用します。以下のサイトから入手可能です。

設定ファイルを準備し、ワークフローファイルが準備できれば、ComfyUI 上で Flux.1 を使った画像加工を行うことができます。

作業フロー

以下、実際の作業について解説します。

  1. 顔を入れ替えたい画像を準備する

  2. fal.ai を使い、顔LoRA ファイルを作成する

  3. ComfyUI 上の Flux.1 tools を使い、対象の人物画像の顔部分にたいして顔LoRA を適用する(顔を入れ替える)

実際は一旦「顔LoRA」を作っておけば、以降は 3. のみを行うことになります。

ComfyUI 上の Flux.1 tools inpaint のワークフロー

まずは初期設定状態で触ってみることをおすすめします。そのうち、各設定値を変えてみると出力結果が変わってくる、ということに気づくはずです。積極的に色々な設定を試してみて下さい。私も日々色々な数値をいじりながら出力の最適化を目指しています。

出来上がった出力物は、必要であれば Photoshop で仕上げを行います。

終わりに

今回は今私が日々の作業で行っていることの概要を説明しました。ここまでは結構な試行錯誤を重ねてきましたので、折を見てそれぞれの詳しい説明をここで発表していきたいと考えています。


いいなと思ったら応援しよう!