
پروجیکٹ کا تعارف
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 تصاویر کو بازگشتی انداز میں تلاش کرتا ہے۔
- معاونت یافتہ AI ماخذ کی معلومات اور EXIF، XMP، IPTC، تبصروں سمیت دیگر میٹا ڈیٹا صاف کرتا ہے۔
- پہلے سے طے شدہ طور پر ICC کلر پروفائل برقرار رکھتا ہے، جس سے رنگوں کے بدلنے کا خطرہ کم ہوتا ہے۔
- فائل میں ترمیم کا وقت برقرار رکھتا ہے اور تصویر کے پکسلز کو ڈی کوڈ یا دوبارہ انکوڈ نہیں کرتا۔
- ایک ساتھ متعدد فائلیں اور ڈائریکٹریاں قبول کرتا ہے اور اوورلیپ ہونے والے ان پٹس سے پیدا ہونے والی نقلیں خودکار طور پر ہٹا دیتا ہے۔
- پوشیدہ ذیلی ڈائریکٹریوں اور عام کیش ڈائریکٹریوں کو نظرانداز کرتا ہے۔
- پہلے سے طے شدہ طور پر ان شناخت شدہ فائلوں کو نظرانداز کرتا ہے جن کی ایکسٹینشن اور فائل ہیڈر آپس میں مطابقت نہیں رکھتے۔
- پیش نظارہ، اصل فائل کا بیک اپ، متوازی بیچ پروسیسنگ، لاگ، پس منظر میں اجرا اور صفائی کے بعد تصدیق کی سہولت دیتا ہے۔
کسی مخصوص فارمیٹ میں میٹا ڈیٹا لکھنے کی صلاحیت ExifTool اور متعلقہ فائل فارمیٹ پر منحصر ہے۔ ٹول صرف مقامی فائلیں یا ڈائریکٹریاں قبول کرتا ہے؛ یہ براہِ راست دور دراز روابط یا کمپریس شدہ فائلوں پر کارروائی نہیں کرتا۔
انسٹالیشن کی شرائط
پروجیکٹ چلانے کے لیے Python 3.10 یا اس کے بعد کا ورژن اور ایسا ExifTool درکار ہے جو سسٹم کے PATH میں شامل ہو۔ خود پروجیکٹ میں Python کی کوئی تھرڈ پارٹی انحصاری موجود نہیں۔
1. ExifTool انسٹال کریں
macOS صارفین Homebrew کے ذریعے انسٹال کر سکتے ہیں:
brew install exiftoolDebian یا Ubuntu صارفین سسٹم پیکیج مینیجر کے ذریعے انسٹال کر سکتے ہیں:
sudo apt install libimage-exiftool-perlWindows صارفین ExifTool کی سرکاری ویب سائٹ سے اسے ڈاؤن لوڈ اور انسٹال کریں، پھر یقینی بنائیں کہ اس کی قابلِ اجرا فائل والی ڈائریکٹری PATH میں شامل ہے۔
2. رن ٹائم ماحول چیک کریں
python3 --version
exiftool -verPython کا ورژن 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 --backupExifTool *_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 کی Skill ڈائریکٹری میں بھی رکھا جا سکتا ہے۔ 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 الگ سے انسٹال ہونے والی انحصاری ہے اور اپنے لائسنس کی پابندی کرتا ہے۔
