يدعم البرنامج النصي أنواع التنزيل المختلفة: 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
يمكنك أيضًا إعطاء البرنامج النصي هذه الحجج الخمس الإضافية
--retry_delay
الافتراضي = 10،
"أعد محاولة التأخير بالثواني."
--max_tries
الافتراضي = 3،
"الحد الأقصى لعدد مرات إعادة المحاولة."
--max_threads
الافتراضي = 5،
"الحد الأقصى لعدد سلاسل الرسائل المتزامنة. يؤدي وجود عدد كبير جدًا منها إلى فشل واجهة برمجة التطبيقات."
--download_type
لورا
نقاط التفتيش
التضمين
Training_Data
آخر
الافتراضي = الكل
--token
الافتراضي = لا شيء
"سيتم تنزيل النماذج العامة المتاحة فقط"
"قم بتوفير رمز مميز ويمكنه أيضًا تنزيل تلك النماذج خلف تسجيل دخول CivitAI."
إذا نسيت تقديم رمز مميز، فسيطلب منك البرنامج النصي تقديم الرمز المميز الخاص بك.
البرنامج النصي المساعد fetch_all_models.py
python fetch_all_models.py --username--token
مثال على ملف username.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 يمكن فتحها مباشرة في المتصفح، مع حفظ الأوصاف الأصلية المقدمة من المبدعين في نفس الدليل مثل ملفات النماذج المقابلة.
تمت إضافة خيار تنزيل بيانات التدريب:
يقوم تلقائيًا بإنشاء مجلد التنزيل الخاص به.
يحفظ حزم ZIP التي تم تنزيلها والصور المرتبطة وملف detail.txt
.
مقدمة عن البرنامج النصي المساعد fetch_all_models.py
:
يسترد معلومات النموذج من 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 ونقاط التفتيش والتضمينات (مجمعة ضمن أنواع_نماذج_أخرى للعناصر الأقل تنزيلًا)
الجميع
هو سلوك التنزيل الافتراضي: يظل الخيار الافتراضي لتنزيل كل المحتوى المتاح في حالة عدم تعيين معلمات تنزيل محددة.
سطر الأوامر والتحسينات التفاعلية:
وسيطات سطر الأوامر: يمكن للمستخدمين تحديد تفضيلات التنزيل الخاصة بهم مباشرةً (Lora أو Checkpoints أو Embedding أو أخرى أو الكل) عبر سطر الأوامر جنبًا إلى جنب مع معلمات بدء التشغيل الأخرى.
الوضع التفاعلي: إذا لم يتم تحديد وسائط سطر الأوامر، فسيطالب البرنامج المستخدمين بشكل تفاعلي بتحديد المحتوى الذي يرغبون في تنزيله. يؤدي الضغط على مفتاح Enter إلى تنشيط الإعدادات الافتراضية لتنزيل كل المحتوى.
تحديث بنية المجلد:
التخزين المنظم: تمت إعادة تنظيم بنية مجلد البرنامج لدعم خيارات التنزيل الجديدة بكفاءة:
الدليل الرئيسي: model_downloads/
الدليل الفرعي الخاص بالمستخدم: اسم المستخدم/
المجلدات الفرعية الخاصة بالمحتوى لـ Lora وCheckpoints وEmbeddings وأنواع_Model_types الأخرى تحتوي كل منها على مجلدات فرعية خاصة بالعنصر.
إصلاح الأخطاء
لن يقوم البرنامج النصي بعد ذلك بإزالة اسم الملف إذا تمت كتابته بنفس طريقة كتابة اسم المجلد. يمكن أن يحدث هذا من وقت لآخر بسبب وظيفة التعقيم للبرنامج النصي.
وظيفة جديدة لتجنب OSError: [Errno 36] اسم الملف طويل جدًا:
تم إصلاح ترقيم الصفحات
وظيفة جديدة لأسماء مستخدمين متعددة