LLMImageIndexer هي أداة ذكية لمعالجة الصور وفهرستها تستفيد من الذكاء الاصطناعي المحلي لإنشاء بيانات وصفية شاملة لمجموعة الصور الخاصة بك. تستخدم هذه الأداة نماذج لغة متقدمة لتحليل الصور وإنشاء التسميات التوضيحية وبيانات تعريف الكلمات الرئيسية.
التحليل الذكي للصور : يستخدم نموذج الذكاء الاصطناعي المحلي لإنشاء عدد متغير من الكلمات الرئيسية والتسمية التوضيحية لكل صورة.
تحسين البيانات الوصفية : يمكن تحرير البيانات التعريفية للصورة تلقائيًا باستخدام العلامات التي تم إنشاؤها.
المعالجة المحلية : تتم جميع المعالجة محليًا على جهازك.
دعم التنسيقات المتعددة : يتعامل مع مجموعة واسعة من تنسيقات الصور، بما في ذلك جميع ملفات الكاميرا الأولية الرئيسية.
واجهة المستخدم الرسومية سهلة الاستخدام : تتضمن واجهة المستخدم الرسومية والمثبت. يعتمد على Koboldcpp، وهو ملف واحد قابل للتنفيذ، لجميع وظائف الذكاء الاصطناعي.
تسريع GPU : سيتم استخدام أجهزة Apple Metal أو Nvidia CUDA أو AMD (Vulkan) إذا كانت متوفرة لتسريع الاستدلال بشكل كبير.
نظام أساسي مشترك : يدعم Windows وmacOS ARM وLinux.
إمكانية التوقف والبدء : يمكن التوقف والبدء دون الحاجة إلى إعادة معالجة كافة الملفات مرة أخرى.
المعالجة اللاحقة للكلمات الرئيسية : قم بتوسيع الكلمات الرئيسية بحيث تتم إضافة جميع المرادفات إلى كل صورة باستخدام أحد المرادفات، أو قم بإلغاء تكرار الكلمات الرئيسية باستخدام المرادفات الأكثر استخدامًا بدلاً من جميع المرادفات المطابقة.
قبل الشروع في استخدام هذا البرنامج النصي يجب أن تكون على علم بما يلي:
هذا مشروع قام به شخص ليس على دراية بالبروتوكولات الرسمية التي يستخدمها المصورون المحترفون. إذا كنت تعتمد على التصوير الفوتوغرافي الخاص بك لدفع الفواتير، فيجب عليك اختبار تأثيرات هذا البرنامج النصي على نطاق واسع قبل تشغيله على أي شيء مهم
إذا تم توجيهه لكتابة البيانات التعريفية، فسيتم الكتابة إلى العلامات التالية باستخدام exiftool: MWG:Keywords، XMP:Description، Status، XMP:Identifier. هذه ليست بالضرورة أسماء العلامات التي تقرر exiftool استخدامها. من المحتمل أن يكون مطور exiftool هو الخبير الأول في مخطط بيانات تعريف الملف ويعرف المكان المناسب لوضع البيانات التعريفية بشكل أفضل مما كنت أتمنى. لقد أمضيت الكثير من الوقت في جعل هذا الأمر "منخفض التأثير" قدر الإمكان مع الحفاظ على القدرة على تتبع حالة الصور المعالجة بدون قاعدة بيانات مركزية أو مستودع للمعلومات بحيث يمكن نقل الملفات إلى أي مكان أو إعادة تسميتها دون المشكلة، ولكن عليك التأكد من أن صورك لن تتأثر سلبًا بالبيانات الموجودة في تلك الحقول
هذه عملية فنية إلى حد ما. نأمل أن يعمل كل شيء على ما يرام، ولقد حاولت أن أجعل هذا هو الحال، ولكن لدي قدرة محدودة (re:none) على اختبار هذا على أجهزة أو منصات أخرى حتى يمكن ظهور أي عدد من الأخطاء. سأحاول جاهدًا العمل مع الأشخاص لحل المشكلات، ولكن يجب أن تكون لديك المهارات الفنية لاستكشاف الأخطاء وإصلاحها واتباع التوجيهات. إذا لم تتمكن من القيام بذلك، يجب عليك المضي قدما بالتردد.
بايثون 3.8 أو أعلى
كوبولدCPP
هناك حاجة إلى نموذج رؤية، ولكن إذا كنت تستخدم llmii-run.bat لفتحه، ففي المرة الأولى التي يتم تشغيله فيها، سيتم تنزيل جهاز العرض MiniCPM-V 2.6 Q4_K_M gguf وF16 من مستودع Bartowski على Huggingface. إذا كنت لا ترغب في استخدام ذلك، فما عليك سوى فتح llmii-no-kobold.bat بدلاً من ذلك وفتح Koboldcpp.exe وتحميل أي نموذج تريده.
انسخ المستودع أو قم بتنزيل ملف ZIP واستخرجه.
تثبيت بايثون لنظام التشغيل Windows.
قم بتنزيل KoboldCPP.exe وضعه في المجلد LavaImageTagger. إذا لم يكن اسمه KoboldCPP.exe، فأعد تسميته إلى KoboldCPP.exe
قم بتشغيل llmii-run.bat
وانتظر تثبيت exiftool. عند اكتماله يجب عليك تشغيل الملف مرة أخرى. إذا اتصلت به من نافذة طرفية، فستحتاج إلى إغلاق النوافذ وإعادة فتحها. سيتم بعد ذلك إنشاء بيئة بايثون وتنزيل أوزان النموذج. حجم التنزيل كبير جدًا (6 جيجابايت) ولا يوجد شريط تقدم، ولكن يحتاج إلى القيام بذلك مرة واحدة فقط. بمجرد الانتهاء من ذلك، سيبدأ KoboldCPP وستظهر إحدى النوافذ الطرفية رسالة Please connect to custom endpoint at http://localhost:5001
ومن ثم يصبح جاهزًا.
انسخ المستودع أو قم بتنزيل ملف ZIP واستخرجه.
قم بتثبيت Python 3.7 أو أعلى إذا لم يكن مثبتًا بالفعل. يمكنك استخدام البيرة المنزلية:
brew install python
تثبيت أداة ExifTool:
brew install exiftool
قم بتنزيل KoboldCPP لنظام التشغيل macOS وضعه في المجلد LLMImageIndexer.
افتح محطة طرفية في المجلد LLMImageIndexer وقم بتشغيل:
chmod +x koboldcpp-mac-arm64 ./llmii-run.sh
انسخ المستودع أو قم بتنزيل واستخراج ملف ZIP.
قم بتثبيت Python 3.7 أو أعلى إذا لم يكن مثبتًا بالفعل. استخدم مدير الحزم الخاص بالتوزيع، على سبيل المثال في Ubuntu:
sudo apt-get update sudo apt-get install python3 python3-pip
قم بتثبيت ExifTool. على أوبونتو:
sudo apt-get install libimage-exiftool-perl
قم بتنزيل ملف KoboldCPP الثنائي المناسب لتوزيع Linux الخاص بك من إصدارات KoboldCPP وضعه في مجلد LLMImageIndexer.
افتح محطة طرفية في المجلد LLMImageIndexer وقم بتشغيل:
chmod +x koboldcpp-linux-x64 ./llmii-run.sh
بالنسبة لجميع الأنظمة الأساسية، سيقوم البرنامج النصي بإعداد بيئة Python وتثبيت التبعيات وتنزيل أوزان النماذج الضرورية (إجمالي 6 جيجابايت). يتم تنفيذ هذا الإعداد الأولي مرة واحدة فقط وسيستغرق بضع دقائق حسب سرعة التنزيل لديك.
قم بتشغيل واجهة المستخدم الرسومية LLMImageIndexer:
على نظام التشغيل Windows: قم بتشغيل llmii-run.bat
على نظام التشغيل macOS/Linux: قم بتشغيل python3 llmii-gui.py
تأكد من تشغيل KoboldCPP. انتظر حتى ترى الرسالة التالية في نافذة KoboldCPP:
Please connect to custom endpoint at http://localhost:5001
قم بتكوين إعدادات الفهرسة في واجهة المستخدم الرسومية:
حدد دليل الصورة الهدف
قم بتعيين عنوان URL لواجهة برمجة التطبيقات (الافتراضي: http://localhost:5001)
اختر علامات البيانات الوصفية المراد إنشاؤها (الكلمات الرئيسية والأوصاف)
تعيين خيارات إضافية (الزحف إلى الدلائل الفرعية وملفات النسخ الاحتياطي وما إلى ذلك)
انقر فوق "تشغيل مفهرس الصور" لبدء العملية.
مراقبة التقدم في منطقة الإخراج لواجهة المستخدم الرسومية.
الدليل : دليل الصورة الهدف (يتضمن الدلائل الفرعية بشكل افتراضي)
عنوان URL لواجهة برمجة التطبيقات : نقطة نهاية KoboldCPP API (يتم التغيير في حالة التشغيل على جهاز آخر)
كلمة مرور واجهة برمجة التطبيقات (API) : قم بتعيينها إذا لزم الأمر من خلال إعداد KoboldCPP
التسمية التوضيحية : اطلب من LLM وصف الصورة وتعيينها في XMP: الوصف (يضاعف وقت المعالجة)
GenTokens : عدد الرموز المميزة التي سيتم إنشاءها في LLM
تخطي الملفات المعالجة غير الموجودة في قاعدة البيانات : لن تتم محاولة إعادة معالجة الملفات باستخدام UUID والكلمات الأساسية حتى لو لم تكن موجودة في قاعدة بيانات llmii.json
فشلت إعادة المعالجة : إذا فشلت أي ملفات في الجولة الأخيرة، فسوف يحاول معالجتها مرة أخرى
إعادة معالجة الكل : يتم تخزين الملفات التي تمت معالجتها بالفعل في قاعدة بيانات ويتم تخطيها إذا استأنفتها لاحقًا، سيؤدي ذلك إلى تكرارها مرة أخرى
لا تزحف إلى الدلائل الفرعية : قم بتعطيل فحص الدلائل الفرعية
لا تقم بعمل نسخ احتياطية قبل الكتابة : تخطي إنشاء ملفات النسخ الاحتياطي (ملاحظة: ينطبق هذا على المعالجة والمعالجة اللاحقة؛ إذا قمت بتمكين المعالجة اللاحقة وتركت هذا دون تحديد، فسيتم إنشاء نسخة احتياطية ثانية!)
وضع التظاهر : محاكاة المعالجة دون الكتابة إلى الملفات أو قاعدة البيانات
تخطي المعالجة : إذا كنت تريد استخدام معالجة الكلمات الرئيسية ولا تريد التحقق من كل صورة في الدليل قبل البدء، حدد هذا المربع
الكلمات الرئيسية : اختر مسح وكتابة كلمات رئيسية جديدة أو تحديث الكلمات الرئيسية الموجودة
معالجة الكلمات الرئيسية : احتفظ بالكلمات الرئيسية كما تم إنشاؤها، وقم بتوسيع الكلمات الرئيسية من خلال تطبيق جميع المرادفات على الكلمات الرئيسية المطابقة، أو قم بإلغاء الكلمات الرئيسية عن طريق استبدال المرادفات المتطابقة بالمرادفات الأكثر شيوعًا؛ تحدث هذه الخيارات بعد اكتمال المفهرس ما لم يتم تحديد مربع "تخطي المعالجة".
راجع موقع wiki لمزيد من المعلومات وخطوات استكشاف الأخطاء وإصلاحها.
المساهمات هي موضع ترحيب! لا تتردد في تقديم طلب السحب.
هذا المشروع مرخص بموجب ترخيص MIT - راجع ملف الترخيص للحصول على التفاصيل.
ExifTool لمعالجة البيانات الوصفية
KoboldCPP لمعالجة الذكاء الاصطناعي المحلي
PyQt6 لإطار عمل واجهة المستخدم الرسومية
إصلاح إصلاح JSON وJson للمساعدة في تحليل JSON المشوه