見出し画像

【入門】各種AIソフトウェアのインストールを一気に解説していく【Windows】

割引あり

想定している読者

  • 【難しい内容ではなく入門者向けですが、どちらかと言うと、ガッツリ理解したい人向けです】

    • ※ 単に Stable Diffusion を動かしたいだけなら、現状は StabilityMatrix が最適です。

    • ※ github に公開されているAIソフトウェアを、誰かの解説なしに利用したい人向けです。

  • 【ローカルでさまざまな画像系AIソフトウェア利用を本格的にはじめたいと考えている人】

  • 【Anaconda で Python パッケージ管理をはじめて行う人】

    • ※ 非開発者・非 Python プログラマ向けの内容です。利用者側の視点で記述しています。

  • 【Windows コマンドプロンプトを利用した事がある人】

    • ※ すべて Windows コマンドプロンプトで説明します。Powershell は利用しません。

  • 【以下ソフトウェアの同時インストール&保守したいと考えている人】

    • A1111 Stable Diffusion webUI ▢

      • AI画像生成ソフトウェア

    • ▢  Stable Diffusion WebUI Forge ▢

      • 上記 A1111 版から派生。動作速度やメモリ使用量等を改善したもの

    • ComfyUI

      • ノードエディタ型のAI画像生成&処理ソフトウェア

    • IOpaint ▢

      • AIインペイント(修正)ソフトウェア。以前は lama cleaner と呼ばれていたもの

    • openOutpaint

      • webUI および WebUI Forge で利用可能なアウトペイント機能拡張

    • rembg

      • コマンドラインAI背景削除ソフトウェア

    • NMKD Stable Diffusion GUI

      • Windows GUIアプリとして Stable Diffusion が利用できる。簡単な LoRA 作成も可能。

    • Marigold

      • ※ 画像の深度をAIで生成するソフトウェア(手法・Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation)です。

      • ※ webUI の ControlNet のモデルとして利用できますが、解像度やさらに高精度なオプションを利用するには、独立してインストールする必要があります。

    • ▢ GFPGAN ▢

      • 顔修正ソフトウェア

    • ▢ InstantMesh ▢

      • 画像→3Dモデル生成ソフトウェア

はじめに

ローカルでのAI画像生成をはじめる際の最初の壁はインストール作業です。Windows PC に慣れた人であっても、インストールウィザードのないソフトウェアは、あまり馴染みがないのではないでしょうか。

もちろん、Stable Diffusion webUI などの人気ソフトウェアでは、ワンクリックで自動インストール&管理してくれるものがあります。特に最近話題の StabilityMatrix では、

人気 Stable Diffusion ソフトウェアをシンプルな GUI で一括管理できます。Civitai と Huggingface のモデル検索や管理機能も備えています。おそらく、これから最も利用者の多い定番の自動インストールツールになると思われます。今までも似たようなソフトウェアがありましたが、イマイチで問題が多く、おすすめ出来るようなものではありませんでした。一方で StabilityMatrix は質も高く、かなりおすすめです。

が、

自動ツールであるがゆえに、トラブルが起こった際の対処が難しくなります。そしてAIソフトウェアにはトラブルしかありません。はっきり言うと、AIソフトウェアの品質は(商用ではないので)悪いです。バグだらけです。結局のところ、本格的に管理するには、ユーザ側が最低限の知識と共に自分で対応するしかありません。たとえ StabilityMatrix のような自動インストールソフトを利用したとしても、トラブルに対処するには基本を知っておく必要があります。

この記事では、(開発者ではなく)一般的な Windows ユーザーを対象に、AIソフトウェアをコマンドラインで丁寧にインストール&設定&保守する方法を解説していきます。慣れれば github 等で公開されている無数の最新AIソフトウェアを自分でインストールして試してみる事もできます

【注意】上記の(少し古くなってしまった) BOOTH で販売しているPDF書籍のインストール解説部とほぼ同じ内容になります。購入頂いた方にとって新しい内容はあまりありません。

Anaconda と Python 言語

AIソフトウェアは Python 言語で記述されています。つまり、AIソフトウェア管理とは、Python ソフトウェアとライブラリのパッケージ管理と言えます。そのパッケージ管理として業界デファクトスタンダードのソフトウェアが Anaconda です。

Anaconda とは、主に機械学習(の開発)をターゲットにした 基本無料のPython 言語のパッケージ管理ソフトウェアです。

一方で、なぜそのようなパッケージ管理が必要かという話ですが、Python 言語の良い部分でもあり悪い部分でもある「自由さ」です。自由すぎるがゆえに、バージョンの上位・下位互換がほとんどないと考えてください。つまり依存するモジュールのバージョンがすべて決め打ちになります。恐ろしい事ですが、場合によっては数百にも及ぶモジュールのバージョンを管理しなければならなくなります。そんな行為は人間にはできないため、パッケージ&バージョンを一括管理する仕組みが必要になります。

さらにバージョン決め打ちである事の必然として、異なるソフトウェアをインストールした際に起こる共通モジュールのバージョン競合が問題になります。この問題を解決するために「仮想化」という機能を利用します。(※ エミュレータや仮想マシンとは関係ありません)

つまりバージョン互換性の貧弱な Python のための「依存モジュール解決」「バージョン管理」「仮想化」機能を利用するために、Anaconda が必要になるという話です。

Anaconda は基本無料で利用できますが、大企業利用などでは別ライセンスになるので注意が必要です(※ 觝触するライセンスを省いた minicondaという選択肢もあります)。

実は、Python 言語にも標準でパッケージ管理(pip)や仮想化機能(venv)がインストールされます。拡張として pyenv 等もあります。異なるインストール・バージョンを切り替える py ランチャーもあります。利用者側からすると、機能が微妙にかぶっているので、どれか一つにしてほしいという感はありますが、開発者が pip で公開したり conda 指定で公開している場合もあるので、技術者でない利用者側だと、どれか一つだけというのは難しいのが現状です。(※ もちろん深い理解があれば、自分好みの方法で統一できます)

おすすめの方法が、Anaconda(condaコマンド)でアプリケーションごとに独立した conda 仮想環境を作り、それぞれの環境で独自の管理(それぞれの開発者が推奨するインストール方法)を行うというものです。

Anaconda を利用したアプリ管理

というのが、Anaconda を利用せずに、複数のPythonバージョンを共存させるのが非常に面倒だからです。たとえば、a1111 Stable Diffusion webUI は Python 3.10.6 を要求します。しかし、Python 3.10 系の最新版は 3.10.13 とマイナーバージョンが異なります。そしてPython側の機能だけでマイナーバージョンをスマートに切り替える術はありません。

Anaconda のインストール

Anaconda のインストールは簡単です。通常の Windows ソフトウェアと同じで、Windows ストアアプリ版もあります。

インストール前の注意事項です。

  • インストール先のパスに日本語文字が含まれていないか確認が必要です。デフォルトではプロファイル・フォルダ直下に anaconda3 ディレクトリが作成されるため、ユーザー名に日本語文字を利用している場合だと、Python 実行時にトラブルが起きる可能性があります。半角英語文字だけのディレクトリをCドライブ直下等に別途作成して指定する必要があります。

  • anaconda3 ディレクトリにすべての仮想環境やキャッシュが保存されます。すぐに数十ギガを超えます。いらないキャッシュの削除方法や圧縮なども後に紹介します。

Anaconda インストール①

Anaconda の公式ページよりインストーラをダウンロードします。筆者環境だと、Anaconda3-2024.02-1-Windows-x86_64.exe がインストーラになります。ダブルクリックで起動します。

Windowsのユーザ名に日本語文字を利用していない限り、すべてデフォルト設定で問題ありません。正常に終了すればインストール完了です。

Anaconda Prompt 実行

Anaconda インストール②

Anaconda をインストールすると、開発者用パッケージもインストールされますが、利用するのは Anaconda Prompt のみです。(※ Powershell でなく、Windows プロンプトを利用する場合)

Anaconda Navigator は GUI で管理を行うものですが、この記事では何をしているのか明確にするために、すべてコマンドで説明します。フレームワークさえ理解できれば、GUI 操作も自然と理解できるはずです。

Anaconda Prompt

Windows のスタートメニューから「Anaconda Prompt」を選択するとコマンドプロンプトが起動します。左側の(base)は仮想環境名を意味します。base仮想環境とは、最初から作成されている基本仮想環境です。base 環境にインストールされた Phython のバージョンは 3.11.7 で、

C:\Users\usr01\anaconda3\python.exe

プロファイルフォルダ直下に作成された anaconda3\python.exe が利用されている事がわかります。

base 環境に関しては、何か不具合がない限り、アップデートも含めて「何も変更しない」のが基本です。新しいバージョンの Python を試したい場合は、新たに仮想環境を作ります。base 環境は、それらの仮想環境を管理する操作のみに用います。

conda 仮想環境の作成

それでは例として、画像から背景を自動削除できるAIソフトウェア rembg を、 conda 仮想環境上にインストールしてみます。

rembg の公式リポジトリはこちら

まずは、現状の仮想環境の一覧を表示します。Anaconda Prompt 上で 「conda env list」 と入力すると、一覧が表示されます。

conda env list

もちろん、まだ何も作成していないので、base 仮想環境のみです。これに、rembg という仮想環境を追加してみましょう。

conda create -n "rembg" python=3.10

Python バージョン3.10系の rembg 仮想環境を作成するという意味です。3.10系の最新版(3.10.14)の仮想環境が作成されます。バージョンを詳細に固定したい場合は、python=3.10.6 とできます。Stable Diffusion webUI が明示的に指定しているバージョンです。

Anaconda で仮想環境を作成①
Anaconda で仮想環境を作成②

作成が完了すれば、conda activate rembg として仮想環境に入る事ができます。

Anaconda で仮想環境を作成③

左側のプロンプトが(rembg)に変わりrembg 仮想環境に入りました。この状態で Anaconda 制御下にあるコマンドを利用しても、外部環境に影響を及ぼしません。仮想環境下でインストールしたモジュールやダウンロードキャッシュは、プロファイルフォルダ直下の Anaconda3 フォルダへインストールされます。

次に rembg のインストールを行います。上記公式ページ README.md には次のコマンドを打ってくださいとあります。

pip install rembg[cli]

pip とは Python 標準付属のパッケージ管理コマンドです。スマホのアプリストアのように、ネット上に登録されたPyPI ライブラリから、アプリやライブラリをコマンドひとつでインストールする事ができます。

つまり conda と機能がかぶっています。混ぜて利用すると conda 管理が壊れる事もあります。しかし安心してください。壊れたとしても、この仮想環境 rembg だけです。それに rembg の開発者は pip しか簡単な方法を用意していません。ならば迷わずに pip を利用しましょう。もし環境が壊れたとしても、その rembg 仮想環境だけをコマンドひとつで作り直せばいいだけですから。

仮想環境先の pip

pip コマンドも python.exe と同じくベース環境のものが利用されるわけではなく、rembg 仮想環境下のコマンドが利用される事がわかります。

rembg インストール成功

しばらく時間がかかりますが、「pip install rembg[cli] 」コマンドが正常に終了すれば、rembg コマンドが利用可能になります。インストール先も anaconda3 フォルダ以下に作られた仮想環境フォルダ「envs\rembg」に保存されている事がわかります。

実際にコマンドを利用します。

rembg i <入力画像> <出力画像>

として、背景を自動削除できるようになります。

rembg コマンド使用例

仮想環境を抜ける場合は、次のコマンドを入力します。ただ単にプログラムを終了させるだけなら、コマンドプロンプト・ウインドウを閉じるだけでかまいません。

conda deactivate
仮想環境から抜ける

左側のプロンプトが(rembg)から(base)へ切り替わりました。

バッチファイルで利用する

実際に rembg コマンドを利用する時は注意が必要です。「Anaconda prompt」→「仮想環境に入る」→「rembgコマンドの実行」の手順となるので、非常に面倒です。

これらを解決するために、一連の処理をバッチファイルに記述しておきます。

@ECHO OFF

call %userprofile%\anaconda3\Scripts\activate.bat %userprofile%\anaconda3
call conda activate rembg
cd "%userprofile%"

call rembg i "%~1" "%userprofile%\Desktop\out.png"

たとえば、上記バッチファイルを rembg.bat ファイルとしてデスクトップに配置しておけば、画像をドラッグ&ドロップするだけで、その画像の背景を削除した結果をデスクトップ上に out.png ファイルとして保存する事ができます。また、マウス右クリックの「送る」メニューに登録する事も可能です。

rembg.bat へドラッグ&ドロップ

Anaconda 仮想環境の削除

仮想環境の利用は環境を分離できるメリットがある半面、共通モジュールを共有できないため、ディスク容量を大量に消費してしまうというデメリットもあります。同じモジュールでも、マイナーバージョンが異なるだけで複数のファイルを保持しなければならないので、当然ではあります。

rembg 仮想環境フォルダ

ここでは仮想環境の削除方法を紹介します。

まずは、「conda env list」 で仮想環境の一覧を確認しましょう。

仮想環境一覧

rembg 仮想環境を削除するコマンドです。

conda remove -n "rembg" --all
rembg 仮想環境の削除

試しに導入してみたものの、利用しないなという環境は積極的に削除しましょう。仮想環境フォルダ以下のファイル以外にも、ダウンロードしたファイル類は共通のキャッシュとして残っています。サーバーに迷惑をかけないという意味では保持してる方がいいのですが、conda のキャッシュを削除する場合は、次のコマンドを利用します。

conda clean --all

A1111 Stable Diffusion webUI インストール

公式リポジトリはこちらです。

github で公開されている AI ソフトウェアの README.md には、インストール方法が記載されていますのが一般的です。基本は各開発者が指定した方法の手順に従うのが鉄則です。

  1. Python 3.10.6 をインストールして環境変数を設定する

  2. git をインストールする

  3. git コマンドでリポジトリのクローンをする

  4. webui-user.bat バッチファイルを実行する

とあります。ただし、Anaconda を利用した Python 管理を行うので、Python をシステムにインストールしたり、Windows の環境変数などを変更する必要はありません。

まずはインストール先を決めます。Cドライブ直下に「SD-WebUI.d」フォルダを作成します。Anaconda Prompt を起動して、次のコマンドでフォルダを作成します。もちろん Explorer で作成しても構いませんが、作成後に「cd "C:\SD-WebUI.d"」として作成フォルダへ移動してください。

C:
mkdir "C:\SD-WebUI.d"
cd "C:\SD-WebUI.d"

注意点は、最低でも20Gバイト以上を確保できるようなストレージで、パスに日本語を含まない事を確認してください。フォルダ名は何でも構わないのですが、後に紹介するバッチファイルを利用する場合は、そのままの名前にしてください。

仮想環境の作成

Python 3.10.6 の仮想環境を作成します。

conda create -n "sd-webui" python=3.10.6

仮想環境にはいります。

conda activate sd-webui

コマンドプロンプトの左側が(sd-webui)となっている事を確かめてください。

ここから先は

19,738字 / 45画像
この記事のみ ¥ 250〜

この記事が気に入ったらサポートをしてみませんか?