このスクリプトは、さまざまなダウンロード タイプ (Lora、チェックポイント、埋め込み、トレーニング データ、その他、またはすべて) および特定の CivitAI ユーザー名からの関連画像をサポートし、それらを適切なディレクトリに整理し、詳細をテキスト ファイルに保持します。
これは、指定したユーザー名のフォルダーに存在しないファイルのみをダウンロードするように設計されています。ユーザーが新しいモデルをアップロードした場合、スクリプトを再度実行すると、新しくアップロードされたファイルのみがダウンロードされます。
詳細.txtの例
Model URL: https://civitai.com/models/ID File Name: Name of the Model.ending File URL: https://civitai.com/api/download/models/ID Image ID: ID Image URL: https://image.civitai.com/Random_characters/width=450/ID.jpeg
ファイル構造
ダウンロードされたファイルは次の構造で構成されます。
model_downloads/ ├── username1/ │ ├── Lora/ │ │ ├── SDXL 1.0/ │ │ │ └── model1/ │ │ │ ├── file1.safetensors │ │ │ ├── image1.jpeg │ │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ │ └── description.html │ │ └── SD 1.5/ │ │ └── model2/ │ │ ├── file3.safetensors │ │ ├── image2.jpeg │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ └── description.html │ ├── Checkpoints/ │ │ ├── FLUX/ │ │ │ └── model1/ │ │ │ ├── file.safetensors │ │ │ ├── image.jpeg │ │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ │ └── description.html │ ├── Embeddings/ │ ├── Training_Data/ │ └── Other/ └── username2/ ├── Lora/ ├── Checkpoints/ ├── Embeddings/ ├── Training_Data/ └── Other/
install Python3
pip install -r requirements.txt
python civitAI_Model_downloader.py one or multiple usernames space separated
スクリプトにこの 5 つの追加の引数を与えることもできます
--retry_delay
デフォルト = 10、
「再試行の遅延 (秒単位)」
--max_tries
デフォルト = 3、
「最大再試行回数」。
--max_threads
デフォルト = 5、
「同時スレッドの最大数。多すぎると API エラーが発生します。」
--download_type
ローラ
チェックポイント
埋め込み
トレーニング_データ
他の
デフォルト = すべて
--token
デフォルト=なし
「公開されているモデルのみがダウンロードされます」
「トークンを提供すると、CivitAI ログインの背後でそれらのモデルをダウンロードすることもできます。」
トークンを提供するのを忘れた場合、スクリプトはトークンを要求します。
ヘルパー スクリプトfetch_all_models.py
python fetch_all_models.py --username--token
ヘルパー スクリプト fetch_all_models.py で作成された username.txt の例
Summary: Total - Count: 61 Checkpoints - Count: 12 Embeddings - Count: 33 Lora - Count: 11 Training_Data - Count: 2 Other - Count: 3 Detailed Listing: Checkpoints - Count: 12 Checkpoints - Item: NAME ... Embeddings - Count: 33 Embeddings - Item: NAME - Embeddings ... Lora - Count: 11 Lora - Item: NAME ... Training_Data - Count: 2 Training_Data - Item: NAME_training_data.zip ... Other - Count: 3 Other - Item: NAME - Type: Other ...
API キーはアカウント設定で作成できます。最後まで下にスクロールすると、このボックスが見つかります
トリガーワードテキストファイル
機種ごとに「triggerWords.txt」ファイルを作成する機能を追加しました。
このファイルには、モデルに関連付けられたトリガー ワードが含まれています。
「triggerWords.txt」ファイルは、モデル ファイルと同じディレクトリに保存されます。
基本モデルのフォルダー構成
基本モデルに基づいてダウンロードを整理する新しいフォルダー構造を実装しました。
ダウンロードは、各カテゴリ (Lora、Checkpoints など) 内のそれぞれの基本モデルにちなんで名付けられたサブフォルダーに分類されるようになりました。
この編成は、基本モデル情報が利用可能な場合、すべてのカテゴリに適用されます。
基本モデル情報のないカテゴリのフォルダーは変更されません。
基本モデルの使用状況と関連する問題を追跡するためのログ記録が改善されました。
モデル記述ファイル
これらのファイルには、作成者によって提供されたモデルの元の説明が含まれています。
説明ファイルはブラウザで直接開くことができる HTML ファイルで、作成者が提供したオリジナルの説明を対応するモデル ファイルと同じディレクトリに保存します。
Training_Data のダウンロード オプションが追加されました:
独自のダウンロード フォルダーを自動的に作成します。
ダウンロードした ZIP パッケージ、関連するイメージ、およびdetail.txt
ファイルを保存します。
ヘルパー スクリプトfetch_all_models.py
の紹介:
ユーザー名と API トークンに基づいて CivitAI API からモデル情報を取得します。
結果を分類し、テキスト ファイル{username}.txt
に要約します。
ユーザーコンテンツの概要を改善し、統計機能を有効にします。
次のコマンドを使用してスタンドアロンで使用することもできます。
python fetch_all_models.py --username
新しいタイプの検出と分類:
スクリプトはタイプ VAE と Locon を認識し、それらをカテゴリ「その他」に割り当てます。
問題のある文字に対するフィルターの改善:
問題のある文字をより適切に処理するためのフィルター関数の最適化。
コードの最適化:
すべてのグローバル変数がスクリプトの先頭にあります。
他の関数内に関数を追加する必要はありません。
可読性と保守性を向上させるために、必要に応じてコード行をマージします。
ZIP パッケージの正しい割り当て:
ZIP パッケージは、API 仕様に従って適切なフォルダー (Training_Data、Lora、Other など) にダウンロードされるようになりました。
特定のカテゴリのない ZIP パッケージは、引き続き「その他」の下にダウンロードされます。
統計が修正されました:
統計関数は新しいヘルパー スクリプトfetch_all_models.py
に基づいているため、精度と機能が向上しています。
強化された文字フィルタリング:
スクリプトは、フォルダー作成プロセス中に問題が発生するのを防ぐために、禁止されている問題のある文字を広範囲に除外するように変更されました。
エラー処理の改善:
スクリプトがフォルダーの作成を妨げる文字を検出した場合、影響を受けるダウンロードの名前と URL をログに記録するようになりました。
この情報は既存のテキスト ファイルに記録され、コンテンツをダウンロードするユーザーにちなんで自動的に名前が付けられます。このアップデートにより、問題が発生した場合にユーザーは手動でダウンロードを完了できるようになります。
failed_downloads_username.txt
パスの長さが制限を超えた場合、画像をスキップするから切り捨てるに変更されました。
待望の新機能
選択的なダウンロード オプション
ユーザーは特定のコンテンツ タイプをダウンロードすることを選択できるようになりました。
ローラ
チェックポイント
埋め込み
他の
Lora、チェックポイント、埋め込み以外のすべて (ダウンロード頻度の低い項目については Other_Model_types にグループ化されています)
全て
はデフォルトのダウンロード動作です: 特定のダウンロード パラメータが設定されていない場合、利用可能なすべてのコンテンツをダウンロードするデフォルト オプションが残ります。
コマンドラインと対話型の機能強化:
コマンドライン引数: ユーザーは、他の起動パラメータとともにコマンドラインを介して、ダウンロード設定 (Lora、チェックポイント、埋め込み、その他、またはすべて) を直接指定できます。
対話型モード: コマンド ライン引数が指定されていない場合、プログラムはユーザーにダウンロードするコンテンツを対話的に選択するよう求めます。 Enter キーを押すと、デフォルト設定が有効になり、すべてのコンテンツがダウンロードされます。
フォルダー構造の更新:
整理されたストレージ: 新しいダウンロード オプションを効率的にサポートするために、プログラムのフォルダー構造が再編成されました。
メインディレクトリ:model_downloads/
ユーザー固有のサブディレクトリ: ユーザー名/
Lora、Checkpoints、Embeddings、および Other_Model_types のコンテンツ固有のサブフォルダー。それぞれにアイテム固有のサブフォルダーが含まれます。
バグ修正
ファイル名がフォルダー名と同じように記述されている場合、スクリプトはファイル名を削除しなくなりました。これは、スクリプトのサニタイズ機能が原因で時々発生する可能性があります。
OSError: [Errno 36] ファイル名が長すぎます: を回避するための新機能:
ページネーションが修正されました
新機能複数のユーザー名