สคริปต์รองรับการดาวน์โหลดประเภทต่างๆ: Lora, Checkpoints, Embeddings, Training Data, อื่นๆ หรือทั้งหมด และรูปภาพที่เกี่ยวข้องจากชื่อผู้ใช้ CivitAI ที่กำหนด โดยจัดระเบียบให้เป็นไดเร็กทอรีที่เหมาะสมและรักษารายละเอียดไว้ในไฟล์ข้อความ
ได้รับการออกแบบมาเพื่อดาวน์โหลดเฉพาะไฟล์ที่ยังไม่มีอยู่ในโฟลเดอร์ของชื่อผู้ใช้ที่ระบุ หากผู้ใช้อัปโหลดโมเดลใหม่ การเรียกใช้สคริปต์อีกครั้งจะดาวน์โหลดเฉพาะไฟล์ที่อัปโหลดใหม่เท่านั้น
ตัวอย่างของ Detail.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
ตัวอย่างชื่อผู้ใช้.txt ที่สร้างด้วยสคริปต์ตัวช่วย fetch_all_models.py
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
:
ดึงข้อมูลโมเดลจาก CivitAI API ตามชื่อผู้ใช้และโทเค็น 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, Checkpoints, Embeddings (จัดกลุ่มภายใต้ Other_Model_types สำหรับรายการที่ดาวน์โหลดไม่บ่อย)
ทั้งหมด
เป็นลักษณะการดาวน์โหลดเริ่มต้น: ตัวเลือกเริ่มต้นในการดาวน์โหลดเนื้อหาที่มีอยู่ทั้งหมดจะยังคงอยู่ หากไม่มีการตั้งค่าพารามิเตอร์การดาวน์โหลดเฉพาะ
การปรับปรุงบรรทัดคำสั่งและการโต้ตอบ:
อาร์กิวเมนต์บรรทัดคำสั่ง: ผู้ใช้สามารถระบุการตั้งค่าการดาวน์โหลดได้โดยตรง (Lora, Checkpoints, Embedding, อื่นๆ หรือทั้งหมด) ผ่านทางบรรทัดคำสั่งควบคู่ไปกับพารามิเตอร์เริ่มต้นอื่นๆ
โหมดโต้ตอบ: หากไม่มีการระบุอาร์กิวเมนต์บรรทัดคำสั่ง โปรแกรมจะแจ้งให้ผู้ใช้โต้ตอบเพื่อเลือกเนื้อหาที่ต้องการดาวน์โหลด การกดปุ่ม Enter จะเปิดใช้งานการตั้งค่าเริ่มต้นเพื่อดาวน์โหลดเนื้อหาทั้งหมด
อัพเดตโครงสร้างโฟลเดอร์:
พื้นที่เก็บข้อมูลที่จัดระเบียบ: โครงสร้างโฟลเดอร์ของโปรแกรมได้รับการจัดระเบียบใหม่เพื่อรองรับตัวเลือกการดาวน์โหลดใหม่อย่างมีประสิทธิภาพ:
ไดเรกทอรีหลัก: model_downloads/
ไดเรกทอรีย่อยเฉพาะผู้ใช้: ชื่อผู้ใช้/
โฟลเดอร์ย่อยเฉพาะเนื้อหาสำหรับ Lora, Checkpoints, Embeddings และ Other_Model_types แต่ละโฟลเดอร์มีโฟลเดอร์ย่อยเฉพาะรายการ
แก้ไขข้อบกพร่อง
สคริปต์จะไม่ลบชื่อไฟล์อีกต่อไปหากเขียนในลักษณะเดียวกับชื่อโฟลเดอร์ สิ่งนี้อาจเกิดขึ้นเป็นครั้งคราวเนื่องจากฟังก์ชันการฆ่าเชื้อของสคริปต์
ฟังก์ชั่นใหม่เพื่อหลีกเลี่ยง OSError: [Errno 36] ชื่อไฟล์ยาวเกินไป:
การแบ่งหน้าได้รับการแก้ไขแล้ว
ฟังก์ชั่นใหม่หลายชื่อผู้ใช้