0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AITuber-KitをDocker Desktopで試す

0
Last updated at Posted at 2026-07-16

これは何?

AITuberKitをWindowsPC(GPUあり)で Docker Desktop を使ってローカルで試した記録です。個人的なDockerの学習を兼ねています。

AITuberKit とは

pixivのChatVRMをフォークして開発された、AIキャラクターと音声チャットできるWebアプリを構築できるオープンソースのツールキットであり、Next.jsアプリです。ライセンスは以下のとおりとなっています。

  • 無償利用
    • 営利目的以外での個人利用、教育目的、非営利目的での使用は無償で利用可能です。
  • 商用ライセンス
    • 商用目的での使用に関しては、別途商用ライセンスの取得が必要です。

2026年7月にPRTIMESの記事があがっています。

開発者はニケちゃんという方ですが、2025年11月に開発停止が宣言されているので、その点ご留意ください(クリティカルな不具合の修正、商用ライセンス販売等は継続となっています)。

確認環境

  • Windows 11 Pro(25H2)
  • NVIDIA GeForce RTX3060(12GB)ドライバインストール済み
  • WSL2有効化済み
  • Docker Desktop 4.81 インストール済み
  • Git インストール済み

Docker Desktop は下記のとおり一定規模以上の組織での商用利用は有償ですので、ご留意ください。

Commercial use of Docker Desktop in larger enterprises (more than 250 employees OR more than $10 million USD in annual revenue) requires a paid subscription.

前提知識

  • キットの性質上、バックエンドに自然言語対話サービス、音声合成サービスを必要としますが、これらの構築を Docker Compose に任せます。ここではローカルで ChatGPT のようなことができる ollama とずんだもんで有名な VOICEVOX を利用します

  • 「Docker上でGPUを使うには、NVIDIA Container Toolkit が必要なのでは?」と思うかもしれませんが、Docker Desktop が橋渡しをしてくれるので、不要となっています
    (参考:Windows版Docker DesktopにおけるGPUサポート)

セットアップ手順

1. レポジトリのクローン

git clone https://github.com/tegnike/aituber-kit.git
cd aituber-kit

ここで取得したバージョンはv2.59.0でした。

2. 設定ファイル(.env)の作成と更新

cp .env.example .env
  • 環境変数を設定します。設定は compose.yaml でも行えますが、compose.yaml の方が変更コストが重いので .env の方で設定します(個人で試す分にはあまり関係しませんが…)
  • サーバー側秘匿キーのAPI利用制御である AITUBERKIT_SERVER_SECRET_ACCESS_MODE を unprotected 「従来互換。公開URLでは非推奨」に設定していることに特に注意してください
.env
-NEXT_PUBLIC_SELECT_LANGUAGE="en"
+NEXT_PUBLIC_SELECT_LANGUAGE="ja"

-AITUBERKIT_SERVER_SECRET_ACCESS_MODE="disabled"
+AITUBERKIT_SERVER_SECRET_ACCESS_MODE="unprotected"

-NEXT_PUBLIC_SELECT_AI_SERVICE="openai"
+NEXT_PUBLIC_SELECT_AI_SERVICE="ollama"

-NEXT_PUBLIC_SELECT_AI_MODEL="gpt-4o-2024-11-20"
+NEXT_PUBLIC_SELECT_AI_MODEL="gemma4:e2b"

-NEXT_PUBLIC_LOCAL_LLM_URL=""
+NEXT_PUBLIC_LOCAL_LLM_URL="http://ollama:11434"

-VOICEVOX_SERVER_URL="http://localhost:50021"
+VOICEVOX_SERVER_URL="http://voicevox:50021"

-NEXT_PUBLIC_VOICEVOX_SPEAKER="46"
+NEXT_PUBLIC_VOICEVOX_SPEAKER="0"

3. compose.yaml の作成

  • 元々docker-compose.ymlがありますが、compose.yamlを作ってやればこちらが優先されます
  • コンテナイメージに latest を使っているのは再現性の面でよくないかもしれませんが、とりあえずこれで
compose.yaml
services:
  app:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - .:/app
      - /app/node_modules
    env_file:
      - .env
    command: npm run dev
    depends_on:
      - ollama
      - voicevox

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama_data:/root/.ollama
    restart: unless-stopped
    gpus: all

  voicevox:
    image: voicevox/voicevox_engine:nvidia-latest
    container_name: voicevox
    restart: unless-stopped
    gpus: all

volumes:
  ollama_data:

4. Docker Compose で起動

Docker Desktop を起動したのち、レポジトリのディレクトリから compose を実行します。

docker compose up -d

コマンドの意味は「compose.yaml に定義された、コンテナ群を作成・起動し、バックグラウンドで実行する」です。

しばらく待つと、Docker Desktop の Containers のところが以下のようになります。

docker_image_trim.png

5. 言語モデルの取得

ollama のコンテナ環境に言語モデルを取得します。
gemma4 のうち軽量なエッジモデルを選択します。

docker exec -it ollama ollama pull gemma4:e2b

コマンドの意味は「Dockerコンテナ ollama の中で ollama pull gemma4:e2b コマンドを実行し、ダウンロードの進捗を対話的に表示する」です。

6. ブラウザアクセスと設定、動作確認

あとはブラウザでアクセスすれば、音声対話可能になります。自分は Chrome で試しました。なお、初回の応答には時間がかかります。

うまくいかない場合は Webアプリの「設定」内容や、Docker Desktop の Containers からログを確認しましょう。また、AITuberKit には充実したドキュメントサイトがあります。昨今であれば、表示されたメッセージ、遭遇した現象、疑問に思った内容を生成AIに聞いた方が早いかもしれません。

7. コンテナ群の停止

サービスを停止する場合は、Docker Desktop を終了させればよい気がしますが、コマンドで止める場合は以下のとおりです。

docker compose stop

upと対応するdocker compose downだと、コンテナをすべて削除してしまいますので。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?