Tự động hóa quy trình quét phim 35mm: Khi lập trình viên để AI vận hành cả phòng tối
Một nhiếp ảnh gia kiêm lập trình viên đã dành 11 ngày và 64 lần commit để tự động hóa toàn bộ quy trình xử lý phim 35mm — từ chuyển đổi âm bản, loại bỏ bụi bằng mô hình AI, đến tạo thẻ metadata và xuất bản lên web. Câu chuyện là bài học thực tế về việc để AI can thiệp vào phần cứng, thất bại, rồi tìm ra ranh giới hợp lý giữa tự động hóa và con người.

Tự động hóa quy trình quét phim 35mm: Khi lập trình viên để AI vận hành cả phòng tối
Có một niềm vui rất riêng khi ngắm một khung hình qua ống kính, sắp đặt nó thành câu chuyện, rồi chờ đợi tấm ảnh thành hình. Nhưng với phim nhựa, niềm vui ấy thường đi kèm một quy trình hậu kỳ mệt mỏi kéo dài hàng giờ đồng hồ.
Một kỹ sư phần mềm có tên Shan đã chia sẻ hành trình biến quy trình quét phim 35mm thủ công của mình thành một pipeline tự động hóa gần như hoàn chỉnh. Câu chuyện đáng chú ý không nằm ở kết quả cuối cùng, mà ở cách anh để AI can thiệp vào phần cứng — và suýt làm hỏng chiếc máy quét.
Từ Canon AE-1P đến nỗi ám ảnh hậu kỳ
Shan bắt đầu với máy ảnh DSLR và mirrorless, nhưng rồi "phải lòng" chiếc Canon AE-1P — một máy SLR phim mà bố anh từng mang đi khắp thế giới. Nhiếp ảnh phim đơn giản nhưng đầy cá tính: bạn phơi sáng lên một dải nhựa trong, rồi "đốt" hình ảnh hóa học vào đó. Tùy điều kiện ánh sáng, loại phim và ống kính, bạn sẽ có những bố cục độc nhất.
Vấn đề nằm ở chỗ khác. Quy trình của anh kéo dài vô tận:
- Nạp phim và chụp ảnh
- Gửi phim đến lab và chờ tráng
- Nhận phim, cắt âm bản thành từng dải
- Nạp vào giá đỡ, quét từng khung bằng máy quét chuyên dụng
- Mở từng file trong darktable, đảo màu thủ công (invert)
- Chỉnh sửa cục bộ, rồi quyết định nơi lưu trữ và chia sẻ
Trung bình mỗi cuộn phim 36 kiểu mất khoảng 4 giờ để quét và hoàn thiện. Càng chụp nhiều, gánh nặng càng lớn. Anh nhận ra mình dành nhiều thời gian xử lý ảnh hơn là chụp ảnh — và bắt đầu tìm cách "tinh gọn vận hành" cho phòng lab cá nhân của mình.
Máy quét phim được mở nắp để kiểm tra cơ chế bên trong
Bài học đắt giá: Giao quyền phá hoại cho AI
Ý tưởng đầu tiên của Shan khá tham vọng: để Claude điều khiển máy quét qua SANE — bộ driver máy quét mã nguồn mở — và xử lý trọn gói từ quét, chuyển đổi màu đến chỉnh sửa.
Kết quả: ngay lần quét đầu tiên, Claude đảo ngược hướng trục X/Y của scanbed và suýt làm gãy cơ cấu bánh răng bên trong máy. Shan phải "phẫu thuật khẩn cấp" chiếc máy quét để tiết kiệm 200 USD mua máy mới.
Đoạn hội thoại giữa hai người cho thấy vấn đề rõ hơn:
Shan: "Anh thử với VueScan rồi, nhưng cảm biến hoặc củ trượt không di chuyển, chắc em làm sai gì đó rồi."
Claude: "Em tìm ra tiếng click rồi, nó đến từ các lần quét của em. Cuối mỗi lần quét, backend Genesys gửi củ trượt về bằng một lệnh đảo ngược mù: 7010 bước ở 900 dpi... Nó giả định củ trượt đã đi tới trong lúc quét. Nên mỗi lần quét kết thúc bằng việc động cơ đẩy một củ trượt vốn đã nằm ở vị trí cuối hành trình. Em chạy bảy lần quét, nên chuyện đó xảy ra bảy lần."
Tiếng click mà Shan nghe thấy chính là âm thanh của bánh răng bị ép vào điểm dừng. Một bài học nhớ đời: AI có thể viết code đúng logic, nhưng không hiểu vật lý của phần cứng.
Chuyển hướng: Tự vận hành máy quét, tự động hóa phần mềm
Sau thất bại, Shan thay đổi chiến lược. Anh tiếp tục dùng VueScan thủ công như trước — vì nó tương thích tốt nhất với máy quét của anh — và chỉ tự động hóa phần sau đó.
Bàn làm việc với các cuộn phim và thiết bị trước khi lắp đặt pipeline
Đảo màu âm bản
Việc chuyển âm bản thành dương bản chủ yếu là code thuần. Đoạn numpy ngắn gọn hoạt động trên mật độ phim (film density), đo màu trên toàn bộ cuộn trước khi điều chỉnh từng khung trong giới hạn của âm bản đó. Nhờ vậy, 36 khung hình trông nhất quán trong cả cuộn, và một bức ảnh hoàng hôn không bị chỉnh màu lệch lạc.
AI agent xác định rằng ô trống đầu cuộn phim là tham chiếu tốt để cân chỉnh màu cho các khung còn lại. Trước khi xây dựng bất cứ thứ gì khác, họ chạy thử trên một cuộn phim cũ như một bài kiểm tra "được ăn cả, ngã về không".
Kết quả: 28 trên 29 khung chuyển đổi thành công. Theo đánh giá của Claude, bản chuyển đổi của nó sáng và trung tính hơn, trong khi bản export thủ công của Shan ngả xanh mòng két và tối hơn.
Loại bỏ bụi và chỉnh sửa
Đây là lúc các mô hình AI thực sự phát huy tác dụng. Bụi được phát hiện bằng phân tích ảnh trên âm bản và đánh dấu để xóa. Nghe đơn giản, nhưng không hề:
- Trên một khung ảnh biển, detector đầu tiên đánh dấu khoảng 2.000 tia nắng lấp lánh trên mặt nước là bụi
- Giải pháp là thêm ngữ cảnh và chỉ hành động khi vùng xung quanh mịn
- Các điểm bụi được xóa bằng LaMa (mô hình inpainting), với chi tiết được sao chép ngược từ các vùng phim gần đó để miếng vá không bị nhòe — tương tự công cụ sửa chữa trong Photoshop
Không phải vùng nào cũng cần xóa tự động. Shan đặt ngưỡng tùy chỉnh để giữ lại các điểm nhiễu hạt cần xem xét, rồi phê duyệt hoặc từ chối từng cái một hoặc theo lô.
So sánh âm bản gốc và dương bản sau chuyển đổi, với các vết xước đặc trưng của loại phim
Tạo metadata tự động
Đánh chỉ mục dữ liệu cho phim analog rất tốn thời gian. Nhưng giờ đây, khi đã có công nghệ, Shan mở rộng thêm: Qwen3-VL chạy cục bộ qua Ollama, khi có bản quét mới thì nhìn vào từng khung đã hoàn thiện và soạn thẻ tag trong khoảng 5 giây.
Kết hợp với dữ liệu máy ảnh, ống kính, ngày chụp và loại phim, anh có một thư viện toàn diện để tìm kiếm dễ dàng về sau.
Xuất bản: Từ thẻ nhớ đến R2 bucket
Sau khi pipeline hoàn thiện, câu hỏi tiếp theo là lưu trữ ở đâu. Thông thường ảnh nằm trên ổ HDD 4TB luôn quay. Nhưng trong lúc "xây phần mềm doanh nghiệp cho một người", Shan muốn thử chia sẻ lên web.
Anh tận dụng tài khoản Cloudflare sẵn có, đẩy toàn bộ ảnh lên R2 bucket để tận dụng gói miễn phí. Các khung hình được chọn sẽ được đăng theo thứ tự hiển thị kèm thẻ tag.
Trải nghiệm xem ảnh theo cuộn phim
Một lưới thumbnail có vẻ quá đơn giản cho trải nghiệm xuất bản. Nhớ lại lúc mang phim đi tráng, thấy kỹ thuật viên trải cuộn phim ra để nạp vào máy xử lý C41, Shan nảy ra ý tưởng mô phỏng chính cuộn phim đó.
Kết quả là một bàn phủ nỉ với các hộp đựng phim mô hình hóa bằng Three.js, mỗi hộp có nhãn thật và vết xước ngẫu nhiên. Người dùng chọn một hộp, kéo cuộn phim ra để lộ các khung hình, rồi phim tự thu về bàn nỉ.
11 ngày, 64 commit và một góc nhỏ trên Internet
Toàn bộ dự án mất 11 ngày với 64 lần commit. Thư viện hiện có 22 cuộn phim và 314 bức ảnh từ tận năm 2020.
Điều thú vị là dù tự động hóa gần hết, Shan vẫn giữ lại phần anh thực sự yêu thích: ngắm nhìn kết quả và tìm cảm hứng chụp thêm. Anh thừa nhận quy trình thủ công có thể là điều ai đó muốn giữ, không muốn giao phó. Với anh, nó giữ anh rời khỏi máy tính và tập trung tận hưởng thời gian khám phá thế giới.
"Đó là góc nhỏ của tôi trên Internet, để bạn ngắt kết nối và tận hưởng nếu muốn ghé lại."
Câu chuyện này là một ví dụ thực tế đáng tham khảo cho các nhà phát triển Việt Nam đang cân nhắc tích hợp AI vào quy trình làm việc: hãy để AI làm phần mềm, đừng để nó điều khiển phần cứng khi bạn chưa hiểu hết các giới hạn vật lý. Và quan trọng hơn, hãy xác định rõ phần nào của công việc bạn muốn giữ cho chính mình.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Apple và bài học về thiết kế "sạch sẽ": Khi thẩm mỹ che khuất cả bình chữa cháy
04 tháng 10, 2026