Stable Diffusionの制御フレームワークであるControlNetは強力だが、依存関係の解決に多大な労力を要する。構築済みのConda環境を他の計算機へ直接転送する手段を用いることで、このセットアップの複雑さを回避できる。
リポジトリの取得
移行作業の前提として、対象のソースコードをローカルにダウンロードする。
git clone https://github.com/lllyasviel/ControlNet.git
この操作により、設定ファイルやスクリプト群を含むコードベースが手元に配置される。
移行の仕組み
Condaのエクスポート機能を活用し、インストール済みのパッケージ構成をYAML形式で書き出し、転送先でその定義ファイルから同一環境を再構築する仕組みを利用する。
実行手順
1. 設定のエクスポート
環境構築が完了しているシステム上でターミナルを開き、対象の仮想環境を有効化した状態で以下を実行する。
conda env export > cnet_env_spec.yml
カレントディレクトリに
2. 定義ファイルの転送
生成された
3. 環境のインポート
移行先のマシンでターミナルを起動し、該当ディレクトリへ移動後、次のコマンドを実行する。
conda env create -f cnet_env_spec.yml
YAMLファイルの内容に基づき、元の環境と同一の仮想環境が自動で構築される。
動作確認
環境が正常に構築されたか確認するため、作成された環境をアクティベートし、サンプルスクリプトを起動する。
conda activate cnet_env
python run_cldm_pose.py
GradioのWebUIが正常に起動すれば、移行プロセスは完了である。
トラブルシューティング
パッケージのインストールエラー
一部のライブラリが導入できない場合、YAMLファイルから該当箇所を除外し、個別にインストールを試みる。
pip install <target_lib>
CUDAのバージョン不整合
移行先のGPUドライバとCUDAバージョンの不一致によりPyTorchが動作しないことがある。この場合は、
CPUアーキテクチャの差異
x86系とARM系など、異なるアーキテクチャ間での移行では、ビルド済みのバイナリが動作しない可能性がある。このようなケースでは、コンテナ技術を用いた隔離環境の利用を検討すべきである。