【Azure】ローカル環境でLamaCleanerを構築してみた

Azure VirtualMachine
この記事は約19分で読めます。

ローカル環境のLamaCleanerを構築して実際に利用してみました。

今回はGPUが搭載されたAzureVM(WindowsOS)を利用して構築しています。

また、GPUを利用せずにCPUを利用してLamaCleanerを実行する方法もまとめています。

広告

0.LamaCleanerとは

消しゴムマジックのような機能を持った、オブジェクトの削除に特化した画像編集のソフトウェアです。

左の画像を右のように修正できます。

LamaCleaner修正前の画像
LamaCleaner修正後の画像

今回はこの LamaCleaner をローカル環境で利用できるようにしていきます。

1.環境準備

1-1. VM構築

VMは以下のコマンドで作成します。
リソースグループやVnetも合わせて作成します。
パブリックIPやNATGWなどは必要に応じて追加してください。

OSは WindowsServer2025 、VMサイズは Standard_NC4as_T4_v3 を選択しています。

$rg_name = "rg-test-001"
$location = "japaneast"
$vnet_name = "vnet-test-001"
$vnet_address = "10.0.0.0/24"
$subnet_name = "subnet-test-001"
$subnet_address ="10.0.0.0/26"
$nsg_subnet_name = "nsg-subnet-test-001"
$nic_vm_name = "nic-vm-test-001"
$vm_name = "vm-test-001"
$vm_image_urn = "MicrosoftWindowsServer:WindowsServer:2025-datacenter-g2:26100.7462.251206"
$vm_size = "Standard_NC4as_T4_v3"
$vm_authtype = "password"
$vm_adminname = "xxxxxxxx"

 # リソースグループ
az group create `
 -l $location `
 -g $rg_name

 # 仮想ネットワーク
az network vnet create `
 -n $vnet_name `
 -g $rg_name `
 -l $location `
 --address-prefix $vnet_address `
 --subnet-name $subnet_name `
 --subnet-prefix $subnet_address

 # NSG(サブネット用)
az network nsg create `
 -n $nsg_subnet_name `
 -g $rg_name

 # NSGをサブネットと連携
az network vnet subnet update `
 -g $rg_name `
 -n $subnet_name `
 --vnet-name $vnet_name `
 --network-security-group $nsg_subnet_name

 # ネットワークインターフェース
az network nic create `
 -n $nic_vm_name `
 -g $rg_name `
 --vnet-name $vnet_name `
 --subnet $subnet_name

 # 仮想マシン
az vm create `
 -n $vm_name `
 -g $rg_name `
 --nics $nic_vm_name `
 --image $vm_image_urn `
 --size $vm_size `
 --os-disk-size-gb 256 `
 --enable-secure-boot "false" `
 --security-type "Standard" `
 --authentication-type $vm_authtype `
 --admin-username $vm_adminname

もし、–security-type の部分でエラーが出た場合には、UseStandardSecurityType の登録ができていない可能性があるので以下のコマンドで登録してから再度実行してみてください。

 # UseStandardSecurityType の登録
az feature register --namespace Microsoft.Compute --name UseStandardSecurityType

 # 登録状況の確認(Registered になっていればOK)
az feature show --namespace Microsoft.Compute --name UseStandardSecurityType --query properties.state -o tsv

1-2.OS内設定(日本語化/GPUドライバ)

OS内の設定をしていきます。

1-2-1.日本語化

日本語化は以下を参考にして、必要であれば実施してください。
日本語化せずともLamaCleanerは起動できます。

1-2-2.NVIDIA GRID/vGPU ドライバーのインストール

以下の記事を見るとVMの拡張機能をインストールすることでできそうなのですが、実際にやってみるとうまくいかなかったので今回は手動でインストールしていきます。

Windows 用 Azure N シリーズ NVIDIA GPU ドライバーのセットアップ - Azure Virtual Machines
Azure で Windows Server または Windows を実行する N シリーズ VM 用の NVIDIA GPU ドライバーの設定方法

といっても↑のページに手動でのインストール方法があるのでその通りに実施するだけです。

NVIDIA GRID/vGPU ドライバー」の項目の「24H2 までの Windows 11 (24H2 を含む)、22H2 までの Windows 10 (22H2 を含む)、Server 2022:」と記載ある部分のGRIDのexeファイルをダウンロードして、インストールします。(20260107時点)

Server2025の記載はここにはありませんが、ダウンロードしたファイル名に2025も含まれているのでおそらく大丈夫です。

インストールオプションは「推奨」を選択します。

NVIDIAドライバーのインストールオプション画面

インストールしたらVMを再起動します。

[参考] NVIDIA GRID/vGPU ドライバーのインストール前後の状態

ちなみに、GPUドライバーをインストールする前ではタスクマネージャーにもGPUの表示はなく、nvida-smi のコマンドも実行できない状態です。

●インストール前の状態

GPUドライバーをインストールする前のタスクマネージャーの画面
PS C:> nvidia-smi
nvidia-smi : The term 'nvidia-smi' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ nvidia-smi
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (nvidia-smi:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundExceptionCategoryInfo : ObjectNotFound: (nvidia-smi:String) [], CommandNotFoundException

PS C:>

しかし、インストール後には以下のようにGPUの表示が追加され、コマンドも実行できるようになります。

●インストール後の状態

GPUドライバーインストール後のタスクマネージャーの画面
PS C:> nvidia-smi
Wed Jan 7 13:40:10 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 573.76                 Driver Version: 573.76         CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  Tesla T4                     WDDM  |   00000001:00:00.0 Off |                  Off |
| N/A   35C    P8             14W /   70W |     218MiB /  16384MiB |      2%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1156    C+G   C:\Windows\System32\LogonUI.exe       N/A      |
|    0   N/A  N/A            1164    C+G   C:\Windows\System32\dwm.exe           N/A      |
|    0   N/A  N/A            2504    C+G   C:\Windows\System32\WUDFHost.exe      N/A      |
|    0   N/A  N/A            4584    C+G   ...yb3d8bbwe\WindowsTerminal.exe      N/A      |
|    0   N/A  N/A            5144    C+G   C:\Windows\System32\dwm.exe           N/A      |
|    0   N/A  N/A            6912    C+G   C:\Windows\explorer.exe               N/A      |
|    0   N/A  N/A            6932    C+G   ...indows\System32\ShellHost.exe      N/A      |
|    0   N/A  N/A            6988    C+G   ...p\Systray\AzureArcSysTray.exe      N/A      |
|    0   N/A  N/A            7312    C+G   ...xyewy\ShellExperienceHost.exe      N/A      |
|    0   N/A  N/A            7352    C+G   ..._cw5n1h2txyewy\SearchHost.exe      N/A      |
|    0   N/A  N/A            7360    C+G   ...y\StartMenuExperienceHost.exe      N/A      |
+-----------------------------------------------------------------------------------------+

Memory-Usage も218MiBとなっていますし、Processes: も記載があるのでGPUが利用されていることが分かります。

これでGPUも利用できる状態になったので、LamaCleanerをインストールする環境準備が整いました。

またここで表示される CUDA Version: はメモしておいてください。

今回は CUDA Version: 12.8 と表示されているので、GPU ドライバがサポートしている CUDA の最大バージョンは12.8となります。

なので、このあとインストールする CUDA toolkit も 12.8 以下のものを選択することになります。

2.LamaCleanerの構築

2-1.Pythonのインストール

最初にPythonをインストールします。

以下の公式サイトからダウンロードできますが、今回は 3.10.11 をインストールします。
 ※今時点(2026/1/7)での最新版は3.13.xxですが、試してみたところ、3.12や3.11ではエラーが起きたので、動くバージョンを選択しています。

Python Releases for Windows
The official home of the Python Programming Language

インストーラを起動して出てくる最初のダイアログボックスで、「Add python.exe to PATH」をオンにして、PATHを通しておくことを忘れずにしましょう。

[参考] 3.12と3.11でLamaCleanerをインストールするとエラーとなる

Python 3.12.10を入れた状態でLamaCleanerをインストールすると以下のエラーが出て、LamaCleanerをインストールできませんでした。

ERROR: Failed building wheel for tokenizers

Python 3.11.9 を入れた状態ではLamaCleanerをインストールすることはできましたが、LamaCleanerを起動する際に以下のエラーが出て起動できませんでした

OSError: [WinError 1114] A dynamic link library (DLL) initialization routine failed. 

3.10.xxを利用しましょう。

2-2.CUDA Toolkitのインストール

先ほど nvidia-smi のコマンドで確認したように、12.8以下のバージョンをインストールします。

今回は12.8以下のバージョンの中で一番新しい 12.8.0 をインストールします。

CUDA Toolkit Archive

以下のようにOSやバージョンを選択して、インストーラーをダウンロードしてインストールします。

CUDA Toolkitのインストーラーのダウンロード

インストール時のオプションは「高速(推奨)」を選択します。

[参考] PyTorch の対応バージョンについて

結論、PyTorchのインストールコマンドで指定するCUDAのバージョンとCUDATookitのバージョンはあまり関係ないと思います。
 ※正確にはよくわかりませんが、PyTorchではcu121を指定してインストールしないと起動できませんでした。
  今回も、CUDATookitのバージョンは 12.8.0 ですが、PyTorchのコマンドは cu121 を実行しています。

仮想環境内でインストールする PyTorch の対応するCUDAのバージョンに合わせる必要があると思ったので、PyTorch が対応している CUDAのバージョンを調べました。

以下のサイトから PyTorch をインストールするコマンドを取得できますが、その際に選択できる(対応している)CUDAのバージョンがあるので確認したところ、

Get Started
Set up PyTorch easily with local installation or supported cloud platforms.
PyTorchが対応しているCUDAドライバーのバージョンを調べる

今時点(2026/1/7)でのPyTorchの対応しているCUDAToolkitは 12.6~13.0 のように見えますが、これのどれを選択しても、LamaCleaner起動時にエラーとなり、起動することができませんでした。

エラーも以下のようなDLLのエラーであり、どうしようもない感じでした。

OSError: [WinError 1114] A dynamic link library (DLL) initialization routine failed.

2-3.仮想環境の作成(venvの作成)~LamaCleanerのインストール

LamaCleaner用のフォルダを用意し、その中に仮想環境を作成します。

以下コマンドをPowershellで実行していきます。

$UserName = $env:UserName

# デスクトップに移動
cd /Users/$UserName/Desktop

# フォルダの作成と移動
mkdir LamaCleaner
cd ./LamaCleaner

# 仮想環境の作成
python -m venv venv_lama

# 仮想環境のアクティベート
venv_lama\Scripts\Activate.ps1

# pipコマンドのインストール
python -m pip install --upgrade pip setuptools

pipコマンドのインストール後に以下の出力が出ますが、警告なので無視して進めてOKです。

WARNING: There was an error checking the latest version of pip.

ここで再度 PyTorchの公式サイト に行き、インストールコマンドを取得して実行したいところですが上述した通り、CUDA12.6,12.8.13.0 のコマンドではLamaCleanerの起動時にエラーとなり起動できませんでした。

なので、末尾が cu121 となるようにして以下のコマンドを実行します。(これだとLamaCleanerが起動できます)

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu121

実行完了まで5,6分ほどかかります。

最後にLamaCleanerをインストールします。

 # LamaCleanerのインストール
pip install lama-cleaner

これも3,4分かかります。

これで完了、と言いたいところですが、この状態でLamaCleanerのを起動するとエラーが出るので2つの処理を先に実施します。

2-3-1.依存関係のエラー回避

そのまま起動すると、まず以下のような依存関係のエラーが出ます。

ImportError: cannot import name 'cached_download' from 'huggingface_hub'

解決方法としては、バージョンを変更すれば解決するので、以下のコマンドでバージョンを変更します。

pip uninstall huggingface_hub -y
pip install huggingface_hub==0.13.4

インストール時に以下のエラーが出ますが、LamaCleanerの起動に影響はないので無視してOKです。

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
gradio 6.2.0 requires huggingface-hub<2.0,>=0.33.5, but you have huggingface-hub 0.13.4 which is incompatible.
gradio-client 2.0.2 requires huggingface-hub<2.0,>=0.19.3, but you have huggingface-hub 0.13.4 which is incompatible.

2-3-2.SSL関連のエラー回避

上記の依存関係を修復しても今度はSSL関連のエラーが出ます。

SSL: CERTIFICATE_VERIFY_FAILED
unable to get local issuer certificate

ただ、これも簡単に解決でき、 big-lama.pt を手動でフォルダに配置すれば改善できます。

①big-lama.pt をブラウザでダウンロード(URLをたたくとすぐにDLが始まります。)

[https://github.com/Sanster/models/releases/download/add_big_lama/big-lama.pt]

②以下のフォルダに配置

C:\Users\hogeuser.cache\torch\hub\checkpoints\

フォルダがない場合は作成してください。

mkdir C:\Users\hogeuser.cache\torch\hub\checkpoints\

2-4.LamaCleanerの起動

以下のコマンドで起動します。

lama-cleaner --model=lama --device=cuda --port=8080

あとは ブラウザで http://127.0.0.1:8080 にアクセスすると利用できます。

3.LamaCleanerを利用する

編集したい画像をドラッグ&ドロップで持っていき、消したいオブジェクトを塗りつぶすだけです。

画像内の消したいオブジェクトを塗りつぶす

デフォルトの設定では、塗りつぶしたらすぐに修正されます。

もし、塗りつぶして、一度確認してから修正をかけたい場合には、右上の歯車マークから設定を開き、[Manual Inpainting Mode] をオンにすることで設定変更可能です。

「Manual Inpainting Mode」をオンにする

塗りつぶした後には、右下の [消しゴムマーク] を押して修正をかけることが可能になります。

右下の [消しゴムマーク] を押して修正を実行できる

3-1. 2回目以降の起動方法

仮想環境上でLamaCleanerの起動コマンドを実行するだけです。

$UserName = $env:UserName

 # 仮想環境用のフォルダに移動
cd /Users/$UserName/Desktop/LamaCleaner

 # 仮想環境のアクティベート
venv_lama\Scripts\Activate.ps1

 # LamaCleanerの起動
lama-cleaner --model=lama --device=cuda --port=8080

[参考] CPUで実行する場合

LamaCleanerはCPUでも実行できます。

その場合、OS内手順の「GPUドライバーのインストール」と「CUDA Toolkitのインストール」が不要となります。

それ以外の手順は上記と同じで、最後にLamaCleanerの実行コマンドが以下に変わります。

 # CPUを利用してLamaCleanerを起動
lama-cleaner --model=lama --device=cpu --port=8080

CPUで動かした感想

CPUでも動かすことはできますし、仕上がりもGPU利用時と差異はなかったように思いましたが、GPU利用時よりも処理に時間がかかりました。

今回実施した木を1本消す処理についても、GPUが3秒くらいで終わったのに対して、CPUだと10秒くらいかかりました。

もっと複雑な画像などを編集する場合にはもっと時間がかかることが想定されます。

ただ、GPUが無くても実行できるのは、GPU搭載サーバを用意しなくていいので嬉しいです。