
نبذة على المشروع
xxd-strip-ai-meta هي أداة لتنقية البيانات الوصفية ديال الصور، مبنية على ExifTool. تقدر تستعملها كبرنامج مستقل فسطّر الأوامر، أو تثبّتها كـ AI Agent Skill. كتقدر تعالج الصور المحلية بالجملة، وتنقّي معلومات مصدر C2PA وContent Credentials وOpenAI وgpt-image المدعومة، وزيد عليها البيانات الوصفية ديال EXIF وXMP وIPTC والتعليقات.
الأداة كتعدّل الملفات الأصلية مباشرة بشكل افتراضي، ولكن ما كتفكّش ترميز بكسلات الصور وما كتعيدش ترميزها. وكتحافظ على بروفايل الألوان ICC وتاريخ تعديل الملف، وهاد الشي كيخليها مناسبة لحماية الخصوصية، ومعالجة المواد داخل المؤسسة، وترتيب البيانات الوصفية.
حدود الاستعمال: هادي أداة لتنقية البيانات الوصفية، وما كتقدرش تحيد العلامات المائية اللي باينة بالعين فالصورة، وما كتضمنش إزالة العلامات المائية الخفية على مستوى البكسلات، ولا بصمات المنصات، ولا السجلات اللي كتكون فالخوادم. ما تستعملهاش باش تضلّل الآخرين بخصوص مصدر الصورة.
الخصائص الرئيسية
- كتقلّب بشكل تكراري على صور PNG وJPEG وWebP وTIFF وHEIC وHEIF وAVIF.
- كتنقّي معلومات مصادر الذكاء الاصطناعي المدعومة، وزيد عليها البيانات الوصفية ديال EXIF وXMP وIPTC والتعليقات.
- كتحافظ على بروفايل الألوان ICC بشكل افتراضي، باش تنقص احتمالية تبدّل عرض الألوان.
- كتحافظ على تاريخ تعديل الملف، وما كتفكّش ترميز بكسلات الصورة وما كتعيدش ترميزها.
- كتدعم تمرير عدة ملفات ومجلدات فآن واحد، وكتحيد تلقائيا التكرارات الناتجة عن تداخل المدخلات.
- كتتجاوز المجلدات الفرعية المخفية ومجلدات التخزين المؤقت الشائعة.
- كتتجاوز بشكل افتراضي الملفات اللي الامتداد ديالها ما كيطابقش رأس الملف، إلا كانت متعرّف عليها.
- كتدعم المعاينة، والنسخ الاحتياطي للملفات الأصلية، والمعالجة المتوازية بالجملة، والسجلات، والتشغيل فالكواليس، والتحقق من بعد التنقية.
القدرة على كتابة البيانات الوصفية كتختلف حسب ExifTool وحسب صيغة الملف المعنية. الأداة كتقبل غير الملفات أو المجلدات المحلية، وما كتعالجش الروابط البعيدة ولا الأرشيفات المضغوطة مباشرة.
متطلبات التثبيت
باش تشغّل المشروع خاصك Python 3.10 أو إصدار أحدث، وExifTool مضاف لـ PATH ديال النظام. المشروع ما عندوش تبعيات Python من جهات خارجية.
1. تثبيت ExifTool
مستعملو macOS يقدرو يثبّتوه باستعمال Homebrew:
brew install exiftoolمستعملو Debian أو Ubuntu يقدرو يثبّتوه باستعمال مدير الحزم ديال النظام:
sudo apt install libimage-exiftool-perlمستعملو Windows يقدرو يحمّلوه ويثبّتوه من الموقع الرسمي ديال ExifTool، ومن بعد يتأكدو بلي المجلد اللي فيه الملف التنفيذي مضاف لـ PATH.
2. التحقق من بيئة التشغيل
python3 --version
exiftool -verخاص إصدار Python يكون 3.10 أو أحدث. فبيئة Windows يقدر يكون أمر Python هو python، وفهاد الحالة بدّل python3 بها فالأمثلة اللي جاية.
3. استنساخ المشروع
git clone https://github.com/nevertoday/xxd-strip-ai-meta.git
cd xxd-strip-ai-metaالأوامر اللي جاية كلها كاتافترض بلي المجلد الحالي هو جذر المستودع.
طريقة الاستعمال الأساسية
الخطوة الأولى: عاين الملفات اللي غادي تتعالج
حيت السلوك الافتراضي كيعدّل الملفات الأصلية مباشرة، خاصك فالمرة الأولى تستعمل --dry-run. هاد الخيار غير كيعرض الملفات وما كينفّذش التنقية.
python3 scripts/clean_image_provenance.py /path/to/images --dry-runراجع المخرجات وتأكد بلي نطاق البحث ما فيه حتى صورة ما خاصهاش تتعالج. إلا أشار السجل لملفات تم تجاوزها أو لمسارات ما كايناش، خاصك تحل هاد المشاكل الأول.
الخطوة الثانية: التنقية مع الاحتفاظ بنسخة احتياطية
من بعد ما تتأكد من لائحة الملفات، من الأحسن تزيد --backup فالتنفيذ الرسمي الأول:
python3 scripts/clean_image_provenance.py /path/to/images --backupغادي يحتافظ ExifTool بنسخة احتياطية من الملف الأصلي سميتها *_original. من بعد ما تتأكد بلي النتيجة مناسبة، قرر بوحدك كيفاش تدبّر هاد النسخ الاحتياطية.
الخطوة الثالثة: معالجة الملفات والمجلدات معاً
السكريبت كيدعم تمرير عدة ملفات ومجلدات محلية فمرة وحدة:
python3 scripts/clean_image_provenance.py \
/path/to/a.png \
/path/to/folder-a \
/path/to/folder-bغادي يتقلب فالمجلدات بشكل تكراري. إلا كانت مسارات الإدخال متداخلة، الأداة غادي تحيد التكرارات أوتوماتيكيا باش ما يتعالجش نفس الملف أكثر من مرة بسبب تداخل المسارات.
الخيارات الشائعة
--dry-run: غير عاين الملفات وما تنفّذ حتى تعديل.--backup: احتافظ بالنسخ الاحتياطية الأصلية اللي كيولّدها ExifTool.--jobs 5: حدّد عدد دفعات المعالجة المتوازية، والقيمة الافتراضية هي 5؛ تقدر تعيّنها على 1 باش تنقص الضغط على النظام.--chunk-size 100: حدّد عدد الملفات فكل دفعة، والقيمة الافتراضية هي 100.--log-file PATH: كتب السجل فالمسار المحدد.--background: شغّل المهمة فالكواليس، وخرّج الأوامر اللازمة لإيقاف المهمة ومشاهدة السجل؛ مناسب لـ POSIX shell.--drop-color-profile: حيد حتى بروفايل الألوان ICC، ولكن يقدر يأثر على عرض ألوان الصورة.--no-verify: تجاوز التحقق من علامات المصدر فالميتاداتا من بعد التنقية.
المهام الكبيرة
التشغيل فالكواليس
فالأنظمة اللي كتدعم POSIX shell، تقدر تستعمل وضعية الكواليس فالمهام اللي كتاخذ وقت طويل:
python3 scripts/clean_image_provenance.py /path/to/images --backgroundمن بعد ما يبدا الأمر، غادي يخرّج أوامر إيقاف المهمة ومشاهدة السجل. خاصك تحتافظ بهاد التعليمات باش تراقب المهمة أو توقفها من بعد.
التحكم فالتوازي وحجم الدفعات
افتراضيا كتستعمل الأداة 5 دفعات متوازية، وكل دفعة فيها حتى لـ 100 ملف. إلا كانت موارد الجهاز محدودة، تقدر تنقص عدد المهام لـ 1:
python3 scripts/clean_image_provenance.py /path/to/images \
--jobs 1 \
--chunk-size 100 \
--log-file /path/to/clean-image-meta.logالسجل ماشي غير لمشاهدة عمليات التنقية اللي فشلات، بل خاصك تراجع فيه حتى الملفات اللي تم تجاوزها ومسارات الإدخال اللي ما كايناش. رمز الخروج 0 ما كيعنيش بالضرورة بلي تعالجات الصور، حيث يقدر يعني حتى ما تلقاو حتى ملف.
التحقق ورموز الخروج
بشكل افتراضي، السكريبت كيتحقق من بعد التنقية واش مازال كاينين كلمات مفتاحية مرتبطة بالمصدر فمخرجات ExifTool. هاد التحقق غير مخصص لفحص علامات البيانات الوصفية، وماشي كاشف عام للعلامات المائية، وما يقدرش يحدد واش كاينة علامة خفية على مستوى البكسلات.
- رمز الخروج
0: ما تسجلات حتى عملية تنقية فاشلة ولا حتى علامة باقية؛ ويقدر حتى ما يكون تلقى حتى ملف. - رمز الخروج
1: وقعات عملية تنقية فاشلة. - رمز الخروج
2: تلقات علامة باقية.
إلا كانت عندك أسباب خاصة وما بغيتيش تدير التحقق من بعد التنقية، استعمل:
python3 scripts/clean_image_provenance.py /path/to/images --no-verifyمن بعد تجاوز التحقق، الأداة ما غاديش تدير فحص كلمات المصدر المذكور من قبل، وخصك تعتمد على السجل وطرق فحص أخرى باش تتأكد من النتيجة.
نصائح متقدمة للاستعمال
رتّب المعالجة بطريقة أكثر أمانا
- شغّل
--dry-runأولا على المسار المستهدف، وراجع نطاق البحث. - استعمل
--backupفالتنفيذ الرسمي الأول، واحتافظ بنسخة أصلية قابلة للاسترجاع. - حدّد
--log-fileفالمهام الكبيرة، باش تسهّل مراجعة الملفات الفاشلة والمتجاوزة والناقصة. - إلا كانت الموارد محدودة، نقص
--jobsلـ 1، ومن بعد عدّل--chunk-sizeحسب البيئة. - استعمل رمز الخروج باش تعرف واش كاين فشل أو بقايا، ولكن ما تهملش محتوى السجل.
- فحص الصور المعالجة بعارض الصور باش تتأكد من الألوان وقابلية الاستعمال، ومن بعد دبّر النسخ الاحتياطية.
حيد بروفايل الألوان ICC بحذر
الاحتفاظ ببروفايل ICC بشكل افتراضي الهدف ديالو هو الحفاظ على عرض ألوان الصورة. إلا كنت فعلا محتاج تحيد بروفايل الألوان حتى هو، تقدر تزيد:
python3 scripts/clean_image_provenance.py /path/to/images \
--backup \
--drop-color-profile--drop-color-profile يقدر يبدّل طريقة عرض الألوان فبرامج أو أجهزة مختلفة، وداك الشي علاش خاصك تجرّبو الأول على عدد قليل من النسخ.
فهم حدود الصيغ
السكريبت كيقلب على الملفات اللي عندها الامتدادات المدعومة، ولكن واش غادي تنجح الكتابة فصيغة معيّنة كيبقى متعلق بإصدار ExifTool المثبّت وبصيغة الملف نفسها. إلا وقع فشل، راجع السجل ومخرجات ExifTool، وما تعتمدش غير على الامتداد باش تحكم على التوافق.
تثبيته كـ AI Agent Skill
تقدر حتى تحط المشروع فدليل المهارات ديال AI Agent. مثلا مع Claude Code:
git clone https://github.com/nevertoday/xxd-strip-ai-meta.git \
~/.claude/skills/xxd-strip-ai-metaإلا كان المكان المستهدف فيه من قبل مجلد بنفس الاسم، خاصك دير نسخة احتياطية من داك المجلد أو تستعمل مكان تثبيت آخر. ملف الدخول ديال Skill هو SKILL.md. خاص Agent يشغّل السكريبت من دليل التثبيت، أو يحلّل المسار المطلق ديال السكريبت ويستعملو.
الخلاصة
xxd-strip-ai-meta كتوفّر مسارا لمعالجة البيانات الوصفية بالجملة بلا حاجة لحزم Python من جهات خارجية. فاستعمالها العملي، من الأحسن تتبع الترتيب التالي: «عاين أولا، دير النسخة الاحتياطية، نقّي من بعد، وراجع السجل»، مع التمييز بوضوح بين تنقية البيانات الوصفية، وحذف العلامات المائية المرئية، واكتشاف العلامات على مستوى البكسلات. المشروع مرخّص برخصة MIT؛ أما ExifTool فهو تبعية كتتثبّت بشكل مستقل وكيخضع للرخصة ديالو.
