
প্রকল্প পরিচিতি
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 বা তার পরের সংস্করণ এবং সিস্টেমের PATH-এ যুক্ত ExifTool প্রয়োজন। প্রকল্পটির নিজস্ব কোনো তৃতীয়-পক্ষ 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 আলাদাভাবে ইনস্টল করতে হয় এবং এটি নিজস্ব লাইসেন্স অনুসরণ করে।
