顔写真が歌って踊る!? 最新AI「Hallo」を使えば、まるで魔法のように、静止画の顔写真に動きをつけて、音声に合わせてアニメーション動画を作ることができます。
この記事では、Halloを動かすために必要なDockerのインストールから、Halloを使った動画生成までを、超初心者の方にもわかりやすく解説します。
Halloとは?
Halloは、音声駆動型の顔画像アニメーションAIです。難しい専門知識は一切不要! 顔写真と音声データを入力するだけで、まるで生きているかのように表情豊かに動くアニメーション動画を自動生成できます。
Halloは日本語歌詞も歌えました!これは熱い!
画像:GPT4
歌:Suno3.5
https://t.co/7Z9VK7AHsr https://t.co/eCEQ0MUKII pic.twitter.com/tW0LHjxDj2— Maki@Sunwood AI Labs. (@hAru_mAki_ch) June 16, 2024
例えば、
- 推しのアイドルの歌声に合わせて、あなたの顔写真が口パクする動画
- 大好きなアニメキャラの声で、あなたの自撮りがセリフを喋る動画
なんてことも、Halloなら簡単に作れちゃいます!
Halloでできること
Halloを使うと、こんな夢のような動画を作ることができます。
- 口パクアニメーション: 音声に合わせて自然に口が動く様子を再現できます。
- 表情のアニメーション: 喜怒哀楽、様々な感情を顔の動きで表現できます。
- 顔の動きの調整: パラメータを調整することで、顔の動きの大きさや滑らかさを細かく調整できます。
従来のアニメーション制作ソフトでは、専門知識や高度な技術が必要でしたが、Halloなら、誰でも簡単にハイクオリティなアニメーション動画を作ることができます。
Halloを使うための準備
Halloを使うには、以下の3つのステップが必要です。
- Dockerのインストール
- Hallo本体と必要なファイルのダウンロード
- ソース画像と音声データの準備
ステップ1: Dockerのインストール
Dockerは、HalloのようなAIプログラムを実行するための、隔離された環境を提供するソフトウェアです。Halloを動かすためには、まずDockerをインストールする必要があります。
- Docker Desktopのダウンロード:
- https://docs.docker.com/desktop/install/windows-install/ にアクセスします。
- "Download Docker Desktop" ボタンをクリックし、インストーラをダウンロードします。
-
Docker Desktopのインストール:
- ダウンロードしたインストーラを実行し、画面の指示に従ってインストールします。
-
Dockerの起動:
- インストールが完了したら、Docker Desktopを起動します。
ステップ2: Hallo本体と必要なファイルのダウンロード
次に、Hallo本体のプログラムと、Halloが動作するために必要なファイル(pretrained models)をダウンロードします。
-
ターミナルを開く:
- Windowsなら「コマンドプロンプト」または「PowerShell」、Macなら「ターミナル」を起動します。
-
Halloのダウンロード:
- ターミナルで以下のコマンドを実行し、Halloをダウンロードします。
git clone https://github.com/Sunwood-ai-labs/hallo.git cd hallo
- ターミナルで以下のコマンドを実行し、Halloをダウンロードします。
ステップ3: ソース画像と音声データの準備
最後に、Halloに入力するソース画像と音声データを準備します。
- ソース画像:
- アニメーションの元になる顔写真です。
- 顔が大きく写っていて、正面を向いている写真を選びましょう。
- 画質が良い方が、よりリアルなアニメーションになります。
- 音声データ:
- 顔の動きに合わせて再生する音声データです。
- 音声データは「.wav」形式である必要があります。MP3などの場合は、変換してください。
Halloの使い方
準備が整ったら、Halloを使ってアニメーション動画を作りましょう!
-
Halloの起動:
- ターミナルで以下のコマンドを実行し、Halloを起動します。
docker-compose up --build
- 起動が完了すると、ターミナルにURLが表示されます。
- ターミナルで以下のコマンドを実行し、Halloを起動します。
-
WebブラウザでHalloにアクセス:
- 表示されたURLをコピーし、Webブラウザのアドレスバーに貼り付けてアクセスします。
- ソース画像と音声データをアップロード:
- HalloのWebページが開いたら、「Source Image」欄にソース画像を、「Driving Audio」欄に音声データをドラッグ&ドロップします。
- パラメータを設定 (任意):
- 必要に応じて、「Pose Weight」「Face Weight」「Lip Weight」「Face Expand Ratio」のパラメータを調整します。これらのパラメータは、アニメーションの滑らかさや顔の動きの大きさを調整します。
-
アニメーション動画の生成:
- 「Submit」ボタンをクリックすると、アニメーション動画が生成されます。
-
動画のダウンロード:
- 生成が完了したら、「Output Video」欄に動画が表示されます。ダウンロードボタンをクリックして、動画をダウンロードしましょう。
さっそくGradioで「Hallo」のアプリ作ってみた②デモ編
こんな感じでGUIで生成できるようにしました! https://t.co/u0XwxnXXYS pic.twitter.com/Jn4eowE9jG— Maki@Sunwood AI Labs. (@hAru_mAki_ch) June 16, 2024
Dockerについてのザックリ解説
Dockerfile:Halloのための魔法陣
Dockerfileは、Halloを実行するための環境を定義する設計図のようなものです。
FROM nvidia/cuda:12.0.1-devel-ubuntu22.04
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
ffmpeg \
git \
wget
WORKDIR /app
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get install -y git-lfs
RUN git lfs install
# COPY download_models.sh .
# RUN chmod +x download_models.sh
-
FROM nvidia/cuda:12.0.1-devel-ubuntu22.04
:- これは呪文の基礎となる "ベースイメージ" を指定しています。
- HalloはNVIDIAのGPUを使って高速に計算を行うので、GPUに対応したUbuntuというOSのイメージをベースにしています。
- このイメージには、Halloに必要なCUDAというGPUを使うためのソフトウェアも含まれています。
-
ENV LANG C.UTF-8
: 文字コードをUTF-8に設定しています。 -
ENV LC_ALL C.UTF-8
: ロケールをUTF-8に設定しています。 -
RUN apt-get update && apt-get install -y ...
:- ここでは、Halloに必要なソフトウェアをインストールしています。
python3
,python3-pip
: Pythonとそのパッケージ管理ツールであるpipをインストールします。ffmpeg
: 動画を扱うためのソフトウェアです。git
: ファイルをダウンロードするためのツールです。wget
: ファイルをダウンロードするためのツールです。
-
WORKDIR /app
:- これは、Dockerコンテナ内の作業ディレクトリを
/app
に設定しています。 - 以降のコマンドはこのディレクトリ内で実行されます。
- これは、Dockerコンテナ内の作業ディレクトリを
-
COPY requirements.txt .
: Halloに必要なPythonパッケージが書かれたrequirements.txt
を、Dockerコンテナ内のカレントディレクトリにコピーします。 -
RUN pip3 install --no-cache-dir -r requirements.txt
:requirements.txt
に書かれたPythonパッケージをインストールします。 -
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash\nRUN apt-get install -y git-lfs\nRUN git lfs install
: これらのコマンドは、"Git LFS" というツールをインストールするためのものです。 -
Git LFSは、大きなファイルを扱うためのGitの拡張機能で、Halloのpretrained models(学習済みモデル)のような大きなファイルをダウンロードする際に必要になります。
-
# COPY download_models.sh .\n# RUN chmod +x download_models.sh
: これらの行はコメントアウトされていますが、pretrained modelsを手動でダウンロードする際に使用します。 -
COPY download_models.sh .
:download_models.sh
スクリプトをDockerコンテナにコピーします。 -
RUN chmod +x download_models.sh
: スクリプトを実行可能にします。
docker-compose.yml:魔法の箱を起動する呪文
docker-compose.yml
は、Dockerfileで定義された環境を元に、実際にHalloを動かすための設定ファイルです。
version: '3'
services:
hallo:
build: .
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
volumes:
- ./:/app
command: sh -c "./scripts/download_models.sh && python3 app/main.py"
tty: true
ports:
- 7860:7860
version: '3'
: docker-composeファイルのバージョンを指定しています。-
services:
: 複数のコンテナを定義できますが、ここではhallo
という名前の1つのコンテナを定義しています。build: .
: 現在のディレクトリにあるDockerfileを使ってイメージをビルドすることを指定しています。deploy:
: デプロイに関する設定を記述します。ここでは、GPUを使うための設定を行っています。resources:
: コンテナが利用できるリソースを指定します。reservations:
: 必ず確保するリソースを指定します。devices:
: 利用するデバイスを指定します。- driver: nvidia
: NVIDIAのGPUを使うことを指定しています。count: 1
: GPUを1つ使うことを指定しています。capabilities: [gpu]
: GPUの機能を使うことを指定しています。
volumes:
: ホストマシンとDockerコンテナ間でファイルを共有するための設定です。- ./:/app
: 現在のディレクトリ(./
)をコンテナ内の/app
ディレクトリにマウントしています。command: sh -c "./scripts/download_models.sh && python3 app/main.py"
: コンテナ起動時に実行するコマンドを指定しています。ここでは、download_models.sh
スクリプトを実行してpretrained modelsをダウンロードし、その後app/main.py
を実行してHalloを起動しています。tty: true
: コンテナの標準入出力を端末に接続します。ports:
: ホストマシンとDockerコンテナ間のポートフォワーディングの設定です。- 7860:7860
: ホストマシンのポート7860番をコンテナのポート7860番にフォワードしています。これにより、ホストマシンのブラウザからコンテナで実行されているHalloにアクセスできるようになります。
まとめ
この記事では、顔写真に命を吹き込むAI「Hallo」の使い方を、Dockerのインストールから動画生成まで、丁寧に解説しました。Halloを使えば、誰でも簡単に、まるで魔法のようなアニメーション動画を作ることができます。ぜひ、あなたもHalloを使って、創造性を解き放ちましょう!
コメント