此腳本支援不同的下載類型: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] 檔案名稱太長的新函數:
分頁已固定
新功能多用戶名