
Giới thiệu dự án
xxd-strip-ai-meta là công cụ dọn dẹp siêu dữ liệu ảnh dựa trên ExifTool. Công cụ có thể được sử dụng như một chương trình dòng lệnh độc lập hoặc cài đặt dưới dạng AI Agent Skill. Công cụ hỗ trợ xử lý hàng loạt ảnh cục bộ, xóa thông tin nguồn C2PA, Content Credentials, OpenAI, gpt-image được hỗ trợ, cùng siêu dữ liệu EXIF, XMP, IPTC, chú thích và các loại khác.
Theo mặc định, công cụ sửa trực tiếp tệp gốc nhưng không giải mã hoặc mã hóa lại pixel ảnh. Công cụ giữ lại cấu hình màu ICC và thời gian sửa đổi của tệp, phù hợp cho bảo vệ quyền riêng tư, xử lý tài liệu nội bộ và sắp xếp siêu dữ liệu.
Phạm vi sử dụng: Đây là công cụ dọn dẹp siêu dữ liệu. Công cụ không thể xóa hình mờ nhìn thấy bằng mắt trong ảnh, cũng không đảm bảo xóa được hình mờ ẩn ở cấp pixel, dấu vân tay của nền tảng hoặc bản ghi phía máy chủ. Không sử dụng công cụ để đánh lừa người khác về nguồn gốc ảnh.
Tính năng chính
- Tìm đệ quy ảnh PNG, JPEG, WebP, TIFF, HEIC, HEIF và AVIF.
- Xóa thông tin nguồn AI được hỗ trợ cùng siêu dữ liệu EXIF, XMP, IPTC, chú thích và các loại khác.
- Mặc định giữ lại cấu hình màu ICC để giảm nguy cơ thay đổi hiển thị màu.
- Giữ lại thời gian sửa đổi của tệp, không giải mã hoặc mã hóa lại pixel ảnh.
- Hỗ trợ truyền đồng thời nhiều tệp và thư mục, tự động loại bỏ các mục trùng do đường dẫn chồng lấn.
- Bỏ qua thư mục con ẩn và các thư mục bộ nhớ đệm phổ biến.
- Mặc định bỏ qua các tệp đã nhận diện nhưng có phần mở rộng không khớp với phần đầu tệp.
- Hỗ trợ xem trước, sao lưu tệp gốc, xử lý hàng loạt đồng thời, ghi nhật ký, chạy nền và xác minh sau khi dọn dẹp.
Khả năng ghi siêu dữ liệu của từng định dạng phụ thuộc vào ExifTool và định dạng tệp tương ứng. Công cụ chỉ nhận tệp hoặc thư mục cục bộ, không trực tiếp xử lý liên kết từ xa hay tệp nén.
Điều kiện cài đặt
Để chạy dự án, cần Python 3.10 trở lên và ExifTool đã được thêm vào PATH của hệ thống. Bản thân dự án không có dependency Python bên thứ ba.
1. Cài đặt ExifTool
Người dùng macOS có thể cài đặt thông qua Homebrew:
brew install exiftoolNgười dùng Debian hoặc Ubuntu có thể cài đặt thông qua trình quản lý gói hệ thống:
sudo apt install libimage-exiftool-perlNgười dùng Windows có thể tải xuống và cài đặt từ trang web chính thức của ExifTool, sau đó đảm bảo thư mục chứa tệp thực thi đã được thêm vào PATH.
2. Kiểm tra môi trường chạy
python3 --version
exiftool -verPhiên bản Python phải là 3.10 trở lên. Trong môi trường Windows, lệnh Python có thể là python; khi đó hãy thay thế python3 trong các ví dụ tiếp theo cho phù hợp.
3. Sao chép dự án
git clone https://github.com/nevertoday/xxd-strip-ai-meta.git
cd xxd-strip-ai-metaTất cả lệnh dưới đây đều giả định thư mục hiện tại là thư mục gốc của kho lưu trữ.
Quy trình sử dụng cơ bản
Bước 1: Xem trước các tệp cần xử lý
Vì hành vi mặc định sẽ sửa trực tiếp tệp gốc, nên lần đầu sử dụng cần thêm --dry-run. Tham số này chỉ liệt kê tệp mà không thực hiện dọn dẹp.
python3 scripts/clean_image_provenance.py /path/to/images --dry-runKiểm tra kết quả, đảm bảo phạm vi quét không bao gồm ảnh không nên xử lý. Nếu nhật ký cho biết tệp bị bỏ qua hoặc đường dẫn không tồn tại, trước tiên hãy giải quyết các vấn đề này.
Bước 2: Dọn dẹp sau khi giữ bản sao lưu
Sau khi xác nhận danh sách tệp chính xác, nên thêm --backup khi thực hiện chính thức lần đầu:
python3 scripts/clean_image_provenance.py /path/to/images --backupExifTool sẽ giữ bản sao lưu tệp gốc có tên *_original. Sau khi xác nhận kết quả xử lý đúng như mong đợi, hãy tự quyết định cách quản lý các bản sao lưu này.
Bước 3: Xử lý kết hợp tệp và thư mục
Tập lệnh hỗ trợ truyền nhiều tệp và thư mục cục bộ cùng lúc:
python3 scripts/clean_image_provenance.py \
/path/to/a.png \
/path/to/folder-a \
/path/to/folder-bCác thư mục sẽ được quét đệ quy. Nếu các đường dẫn đầu vào chồng lấn, công cụ sẽ tự động loại bỏ trùng lặp để tránh xử lý cùng một tệp nhiều lần.
Các tham số thường dùng
--dry-run: Chỉ xem trước tệp, không thực hiện sửa đổi.--backup: Giữ bản sao lưu tệp gốc do ExifTool tạo.--jobs 5: Đặt số lô chạy đồng thời, mặc định là 5; có thể đặt thành 1 để giảm tải hệ thống.--chunk-size 100: Đặt số tệp được xử lý trong mỗi lô, mặc định là 100.--log-file PATH: Ghi nhật ký vào đường dẫn đã chỉ định.--background: Khởi chạy tác vụ ở chế độ nền và xuất các lệnh cần thiết để dừng tác vụ cũng như xem nhật ký; áp dụng cho POSIX shell.--drop-color-profile: Đồng thời xóa cấu hình màu ICC, nhưng có thể ảnh hưởng đến hiển thị màu của ảnh.--no-verify: Bỏ qua việc kiểm tra dấu vết nguồn trong siêu dữ liệu sau khi dọn dẹp.
Tác vụ quy mô lớn
Chạy nền
Trên các hệ thống hỗ trợ POSIX shell, có thể sử dụng chế độ nền để chạy các tác vụ kéo dài:
python3 scripts/clean_image_provenance.py /path/to/images --backgroundSau khi khởi chạy, lệnh sẽ xuất các lệnh dùng để dừng tác vụ và xem nhật ký. Hãy lưu lại các hướng dẫn này để theo dõi hoặc chấm dứt tác vụ sau đó.
Kiểm soát tính đồng thời và kích thước lô
Theo mặc định, công cụ sử dụng 5 lô đồng thời, mỗi lô tối đa 100 tệp. Nếu tài nguyên thiết bị hạn chế, có thể giảm số tác vụ đồng thời xuống 1:
python3 scripts/clean_image_provenance.py /path/to/images \
--jobs 1 \
--chunk-size 100 \
--log-file /path/to/clean-image-meta.logNhật ký không chỉ dùng để xem lỗi dọn dẹp mà còn cần được kiểm tra để phát hiện tệp bị bỏ qua và đường dẫn đầu vào không tồn tại. Mã thoát 0 không nhất thiết có nghĩa là đã xử lý ảnh; nó cũng có thể cho biết không tìm thấy tệp nào.
Xác minh và mã thoát
Theo mặc định, sau khi dọn dẹp, tập lệnh sẽ kiểm tra xem đầu ra của ExifTool còn chứa các từ khóa nguồn liên quan hay không. Việc xác minh này chỉ kiểm tra dấu vết trong siêu dữ liệu, không phải công cụ phát hiện hình mờ nói chung và không thể xác định sự tồn tại của dấu vết ẩn ở cấp pixel.
- Mã thoát
0: Không báo cáo lỗi dọn dẹp hoặc dấu vết còn sót; cũng có thể không tìm thấy tệp nào. - Mã thoát
1: Đã xảy ra lỗi dọn dẹp. - Mã thoát
2: Phát hiện dấu vết còn sót.
Nếu có lý do đặc biệt không cần xác minh sau khi dọn dẹp, có thể sử dụng:
python3 scripts/clean_image_provenance.py /path/to/images --no-verifySau khi bỏ qua bước xác minh, công cụ sẽ không kiểm tra các từ khóa nguồn nói trên. Vì vậy, cần kết hợp nhật ký với các phương pháp kiểm tra khác để xác nhận kết quả.
Khuyến nghị sử dụng nâng cao
Thiết lập trình tự xử lý thận trọng hơn
- Trước tiên chạy
--dry-runtrên đường dẫn mục tiêu để kiểm tra phạm vi quét. - Lần đầu thực hiện chính thức, dùng
--backupđể giữ tệp gốc có thể khôi phục. - Với tác vụ lớn, chỉ định
--log-fileđể thuận tiện kiểm tra tệp lỗi, bị bỏ qua và bị thiếu. - Khi tài nguyên hạn chế, giảm
--jobsxuống 1 rồi điều chỉnh--chunk-sizetùy môi trường. - Dựa vào mã thoát để xác định lỗi hoặc dấu vết còn sót, nhưng không bỏ qua nội dung nhật ký.
- Dùng trình xem ảnh để kiểm tra màu sắc và khả năng sử dụng của ảnh sau xử lý trước khi quản lý các tệp sao lưu.
Thận trọng khi xóa cấu hình màu ICC
Mặc định giữ cấu hình ICC nhằm duy trì hiển thị màu của ảnh. Nếu thực sự cần xóa cả cấu hình màu, có thể thêm:
python3 scripts/clean_image_provenance.py /path/to/images \
--backup \
--drop-color-profile--drop-color-profile có thể làm thay đổi cách hiển thị màu trên các phần mềm hoặc thiết bị khác nhau, vì vậy nên thử nghiệm trước với một số bản sao nhỏ.
Hiểu giới hạn định dạng
Tập lệnh sẽ tìm các tệp có phần mở rộng được hỗ trợ, nhưng việc ghi thành công vào một định dạng cụ thể vẫn phụ thuộc vào phiên bản ExifTool đã cài đặt và bản thân định dạng tệp đó. Khi gặp lỗi, hãy xem nhật ký và đầu ra của ExifTool thay vì chỉ dựa vào phần mở rộng để đánh giá khả năng tương thích.
Cài đặt dưới dạng AI Agent Skill
Dự án cũng có thể được đặt trong thư mục kỹ năng của AI Agent. Ví dụ với Claude Code:
git clone https://github.com/nevertoday/xxd-strip-ai-meta.git \
~/.claude/skills/xxd-strip-ai-metaNếu vị trí đích đã có thư mục cùng tên, hãy sao lưu thư mục đó hoặc dùng vị trí cài đặt khác. Tệp đầu vào của Skill là SKILL.md. Agent nên chạy tập lệnh từ thư mục cài đặt hoặc trước tiên phân tích và sử dụng đường dẫn tuyệt đối của tập lệnh.
Kết luận
xxd-strip-ai-meta cung cấp quy trình sắp xếp siêu dữ liệu hàng loạt mà không cần gói Python bên thứ ba. Khi sử dụng thực tế, nên tuân theo trình tự “xem trước, sao lưu, dọn dẹp, kiểm tra nhật ký”, đồng thời phân biệt rõ giữa dọn dẹp siêu dữ liệu, xóa hình mờ nhìn thấy và phát hiện dấu vết ở cấp pixel. Dự án sử dụng giấy phép MIT; ExifTool là dependency được cài đặt riêng và tuân theo giấy phép riêng của nó.
