CivitaiのAPIを使ってモデルをダウンロードする
本記事では、CivitaiのAPIを使い、モデルをダウンロードする方法をまとめる。
目的
Civitaiから複数のLoRAモデルをまとめてダウンロードしたい
LoRAモデルの中でも、「特にベースモデルがStable Diffusion-v1.5」で「ファイルサイズが36.11 MB」のものが欲しい
解決策
APIのドキュメントを読んでプログラムを書く
プログラムを実行してモデルの情報を取得し、条件に合うモデルだけダウンロードしてくる
実行環境
Google Colab
プログラム例
code:python
import requests
import time #ダウンロード時に利用
import json
#APIのURL
api_url = "https://civitai.com/api/v1/models"
params = {
"limit": 10, # 取得するモデル数
"page": 1, # 取得ページ
"types": "LORA" #LoRAモデルに限定して取得
}
response = requests.get(api_url, params=params)
data = response.json()
BASE_MODEL = "SD 1.5"
models = data.get("items", [])
#モデルごとに情報を表示
for model in models:
model_id = model.get("id")
model_name = model.get("name")
base_model = model.get("modelVersions")0'baseModel'
model_type = model.get('type')
model_size = model.get('modelVersions')0'files'0'sizeKB'
download_url = model.get('modelVersions')0'files'0'downloadUrl'
#モデルID、モデル名、ベースモデル名、タイプ、サイズ、ダウンロード用URLを表示
if base_model == BASE_MODEL:
if model_size >= 36900.0 and model_size <= 38000.0:
print(f"Model ID: {model_id}")
print(f"Model Name: {model_name}")
print(f"base_model: {base_model}")
print(f'type: {model_type}')
print(f'model_size: {model_size}')
print(f'url: {download_url}')
print("-" * 40)
上記のプログラムで、所望のLoRAモデルが取得できそう
参考記事
公式ドキュメント
https://github.com/civitai/civitai/wiki/REST-API-Reference
公式が正義
#Yuro_Kanada
#Yuma_Oe