LLMImageIndexer adalah alat pengindeksan dan pemrosesan gambar cerdas yang memanfaatkan AI lokal untuk menghasilkan metadata komprehensif untuk koleksi gambar Anda. Alat ini menggunakan model bahasa tingkat lanjut untuk menganalisis gambar dan menghasilkan keterangan dan metadata kata kunci.
Analisis Gambar Cerdas : Memanfaatkan model AI lokal untuk menghasilkan sejumlah variabel kata kunci dan keterangan untuk setiap gambar.
Peningkatan Metadata : Dapat secara otomatis mengedit metadata gambar dengan tag yang dihasilkan.
Pemrosesan Lokal : Semua pemrosesan dilakukan secara lokal di mesin Anda.
Dukungan Multi-Format : Menangani berbagai format gambar, termasuk semua file kamera mentah utama.
GUI yang Ramah Pengguna : Termasuk GUI dan penginstal. Mengandalkan Koboldcpp, satu executable, untuk semua fungsi AI.
Akselerasi GPU : Akan menggunakan perangkat keras Apple Metal, Nvidia CUDA, atau AMD (Vulkan) jika tersedia untuk mempercepat inferensi.
Lintas Platform : Mendukung Windows, macOS ARM, dan Linux.
Kemampuan Berhenti dan Mulai : Dapat berhenti dan memulai tanpa harus memproses ulang semua file lagi.
Pasca Pemrosesan Kata Kunci : Perluas kata kunci sehingga semua sinonim ditambahkan ke setiap gambar dengan salah satu sinonim, atau hapus duplikat kata kunci dengan menggunakan sinonim yang paling sering digunakan sebagai pengganti semua sinonim yang cocok.
Sebelum melanjutkan menggunakan skrip ini, Anda harus mengetahui hal-hal berikut:
Ini adalah proyek yang dibuat oleh seseorang yang sama sekali tidak terbiasa dengan protokol formal yang digunakan oleh fotografer profesional. Jika Anda mengandalkan fotografi Anda untuk membayar tagihan, Anda harus menguji secara ekstensif efek skrip ini sebelum menjalankannya pada hal penting
Jika diarahkan untuk menulis metadata, ia akan menulis ke tag berikut menggunakan exiftool: MWG:Kata Kunci, XMP:Deskripsi, Status, XMP:Identifier. Ini belum tentu nama tag yang ditentukan oleh exiftool akan digunakan. Pengembang exiftool mungkin adalah pakar terkemuka dalam skema metadata file dan mengetahui tempat yang tepat untuk meletakkan metadata lebih baik dari yang saya harapkan. Saya menghabiskan banyak waktu untuk menjadikan ini sebagai 'berdampak rendah' sambil tetap mempertahankan kemampuan untuk melacak keadaan gambar yang diproses tanpa database pusat atau tempat penyimpanan informasi sehingga file dapat dipindahkan ke mana saja atau diganti namanya tanpa masalah, namun Anda perlu memastikan bahwa gambar Anda tidak akan terkena dampak negatif dengan data di bidang tersebut
Ini adalah proses yang cukup teknis. Mudah-mudahan semuanya berfungsi, dan saya mencoba mewujudkannya, namun kemampuan saya terbatas (re:none) untuk mengujinya di mesin atau platform lain sehingga sejumlah bug dapat muncul. Saya akan berusaha keras bekerja dengan orang-orang untuk menyelesaikan masalah, namun Anda harus memiliki keterampilan teknis untuk memecahkan masalah dan mengikuti arahan. Jika Anda tidak dapat melakukannya, Anda harus melanjutkan dengan ragu-ragu.
Python 3.8 atau lebih tinggi
KoboldCPP
Model visi diperlukan, tetapi jika Anda menggunakan llmii-run.bat untuk membukanya, maka pertama kali dijalankan ia akan mengunduh proyektor MiniCPM-V 2.6 Q4_K_M gguf dan F16 dari repo Bartowski di huggingface. Jika Anda tidak ingin menggunakannya, buka saja llmii-no-kobold.bat dan buka Koboldcpp.exe dan muat model apa pun yang Anda suka.
Kloning repositori atau unduh file ZIP dan ekstrak.
Instal Python untuk Windows.
Unduh KoboldCPP.exe dan letakkan di folder LlavaImageTagger. Jika tidak bernama KoboldCPP.exe, ganti namanya menjadi KoboldCPP.exe
Jalankan llmii-run.bat
dan tunggu exiftool untuk menginstal. Jika sudah selesai Anda harus memulai file lagi. Jika Anda memanggilnya dari jendela terminal, Anda harus menutup jendela dan membukanya kembali. Ini kemudian akan membuat lingkungan python dan mengunduh bobot model. Pengunduhannya cukup besar (6GB) dan tidak ada bilah kemajuan, tetapi hanya perlu dilakukan sekali saja. Setelah selesai, KoboldCPP akan dimulai dan salah satu jendela terminal akan bertuliskan Please connect to custom endpoint at http://localhost:5001
dan kemudian siap.
Kloning repositori atau unduh file ZIP dan ekstrak.
Instal Python 3.7 atau lebih tinggi jika belum diinstal. Anda dapat menggunakan Homebrew:
brew install python
Instal ExifTool:
brew install exiftool
Unduh KoboldCPP untuk macOS dan letakkan di folder LLMImageIndexer.
Buka terminal di folder LLMImageIndexer dan jalankan:
chmod +x koboldcpp-mac-arm64 ./llmii-run.sh
Kloning repositori atau unduh dan ekstrak file ZIP.
Instal Python 3.7 atau lebih tinggi jika belum diinstal. Gunakan manajer paket distribusi Anda, misalnya di Ubuntu:
sudo apt-get update sudo apt-get install python3 python3-pip
Instal ExifTool. Di Ubuntu:
sudo apt-get install libimage-exiftool-perl
Unduh biner KoboldCPP yang sesuai untuk distribusi Linux Anda dari rilis KoboldCPP dan letakkan di folder LLMImageIndexer.
Buka terminal di folder LLMImageIndexer dan jalankan:
chmod +x koboldcpp-linux-x64 ./llmii-run.sh
Untuk semua platform, skrip akan menyiapkan lingkungan Python, menginstal dependensi, dan mengunduh bobot model yang diperlukan (total 6 GB). Penyiapan awal ini hanya dilakukan sekali dan akan memakan waktu beberapa menit tergantung kecepatan unduh Anda.
Luncurkan GUI LLMImageIndexer:
Di Windows: Jalankan llmii-run.bat
Di macOS/Linux: Jalankan python3 llmii-gui.py
Pastikan KoboldCPP berjalan. Tunggu hingga Anda melihat pesan berikut di jendela KoboldCPP:
Please connect to custom endpoint at http://localhost:5001
Konfigurasikan pengaturan pengindeksan di GUI:
Pilih direktori gambar target
Tetapkan URL API (default: http://localhost:5001)
Pilih tag metadata yang akan dihasilkan (kata kunci, deskripsi)
Tetapkan opsi tambahan (subdirektori perayapan, file cadangan, dll.)
Klik "Jalankan Pengindeks Gambar" untuk memulai proses.
Pantau kemajuan di area keluaran GUI.
Direktori : Direktori gambar target (termasuk subdirektori secara default)
URL API : Titik akhir API KoboldCPP (berubah jika dijalankan di komputer lain)
Kata Sandi API : Ditetapkan jika diperlukan oleh pengaturan KoboldCPP Anda
Keterangan : Minta LLM mendeskripsikan gambar dan mengaturnya dalam XMP:Deskripsi (menggandakan waktu pemrosesan)
GenToken : Jumlah token yang dihasilkan LLM
Lewati file yang diproses yang tidak ada dalam database : Tidak akan mencoba memproses ulang file dengan UUID dan kata kunci meskipun file tersebut tidak ada dalam database llmii.json
Proses ulang gagal : Jika ada file yang gagal pada putaran terakhir, ia akan mencoba memprosesnya lagi
Proses Ulang SEMUA : File yang sudah diproses disimpan dalam database dan dilewati jika Anda melanjutkannya nanti, ini akan mengulanginya lagi
Jangan merayapi subdirektori : Nonaktifkan pemindaian subdirektori
Jangan membuat cadangan sebelum menulis : Lewati pembuatan file cadangan (CATATAN: ini berlaku untuk pemrosesan dan pasca-pemrosesan; jika Anda mengaktifkan pemrosesan pasca dan membiarkannya tidak dicentang, maka cadangan kedua akan dibuat!)
Mode berpura-pura : Mensimulasikan pemrosesan tanpa menulis ke file atau database
Lewati pemrosesan : Jika Anda ingin menggunakan pemrosesan kata kunci dan tidak ingin memeriksa setiap gambar di direktori sebelum memulai, centang kotak ini
Kata Kunci : Pilih untuk menghapus dan menulis kata kunci baru atau memperbarui kata kunci yang sudah ada
Kata kunci pasca pemrosesan : Pertahankan kata kunci seperti yang dihasilkan, Perluas kata kunci dengan menerapkan semua sinonim pada kata kunci yang cocok, atau kata kunci Dedepe dengan mengganti sinonim yang cocok dengan sinonim yang paling sering; opsi ini terjadi setelah pengindeks selesai kecuali kotak 'lewati pemrosesan' dicentang
Konsultasikan wiki untuk informasi lebih lanjut dan langkah pemecahan masalah.
Kontribusi dipersilahkan! Silakan kirimkan Permintaan Tarik.
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LISENSI untuk detailnya.
ExifTool untuk manipulasi metadata
KoboldCPP untuk pemrosesan AI lokal
PyQt6 untuk kerangka GUI
Perbaiki Perbaikan JSON dan Json yang Rusak untuk bantuan dalam penguraian JSON yang rusak