Upscayl - Nâng cao ảnh, bằng AI, cục bộ, không cloud
Cập nhật: 6 tháng 9, 2024
Bình thường, tôi khá khinh thường nhiều thứ AI. Không phải vì có gì sai bản chất với ý tưởng Trí tuệ Nhân tạo. Không. Điều tôi ghét là tiếng ồn và hype quanh công nghệ và sản phẩm tự xưng AI, khi chúng, tốt nhất, chỉ là thống kê được glorified, bọc lớp marketing dày đặc. Bây giờ... Giả sử bạn có nhiều ảnh cũ, độ phân giải thấp, mờ. Bạn có thể làm cho chúng tốt hơn? Với AI?
Nếu bạn xem phim hình sự TV đầu năm 2000, bạn chỉ cần "enhance" cái gì đó. Chỉ có mỗi lần bạn phóng to ảnh, James Maxwell và Ludwig Boltzmann quay lội trong mộ, vì bạn vi phạm định luật nhiệt động lực học. Entropy và cái đó. Tạo dữ liệu từ hư không. Ma thuật. Nhưng đó chính là những gì các chương trình AI-powered hứa hẹn. Câu hỏi là, bạn có thể làm AI mà không hy sinh linh hồn cho cloud overloads? À, có vẻ như bạn có thể, dù sao! Một công cụ như vậy là Upscayl. Mã nguồn mở, đa nền tảng, trình nâng cao ảnh AI. Nghe tuyệt vời. Hãy xem nó có thực sự hoạt động như quảng cáo không.
Cài đặt dễ dàng, thực sự offline
Yêu cầu của tôi cho bất kỳ thứ AI nào là khả năng tạo setup cục bộ. Và không quá nhiều bước. Upscayl đáp ứng cả hai. Tải phiên bản snap từ Snap Store, cài vào Kubuntu 24.04 (Linux). Không vấn đề gì, triển khai đơn giản, nhanh.
Tiếp theo, tôi cũng tắt kết nối mạng của chương trình. Snap là ứng dụng Linux sandboxed, và bạn có thể bật/tắt truy cập tài nguyên khai báo. Trong trường hợp này, Upscayl cần truy cập home (cho file), OpenGL (cho rendering và xử lý), và một vài tài nguyên khác. Plug network cũng được liệt kê, và bật mặc định. Điều này đúng cho hầu hết snap, và không phải vấn đề.
Nhưng để xem Upscayl có thực sự làm phép thuật 100% cục bộ, tôi thủ công ngắt plug network. Với mọi mục đích thực tế, về mặt chương trình, máy tôi không có mạng. Tiếp theo, tôi khởi chạy Upscayl và dùng nó "sửa" vài ảnh. Không vấn đề, không phàn nàn. Tuyệt vời.
Yêu cầu card đồ họa rời (tương thích Vulkan)
Nếu muốn dùng Upscayl, bạn cần máy có card đồ họa rời hiện đại, khá capable. Hầu hết integrated GPU không chạy. Câu hỏi là, hiện đại và capable nghĩa là gì? Máy test của tôi là laptop IdeaPad 2014, cài Kubuntu 24.04 gần đây, sau khi nâng cấp SSD. Hệ thống có card Nvidia cũ. Và nó chạy tốt. Có thể không nhanh như thế hệ mới nhất, nhưng Upscayl xử lý nhiệm vụ không vấn đề. Có vẻ laptop 10 năm tuổi đủ tốt.
Thực tế làm việc, có tốt không?
Bây giờ, phần quan trọng. Upscayl có thực sự cho kết quả tốt? Để test, tôi lôi ra kho ảnh cũ, tìm ứng cử viên. Tôi tìm thấy 3 ảnh tôi nghĩ phù hợp.
- Ảnh năm 1983 nhà nghỉ滑雪 (chụp bằng máy film 35mm analog đẹp) và sau đó số hóa bằng cách scan ảnh in dùng scanner gia đình rẻ (300 DPI).
- Ảnh năm 2004 một người, điều kiện ánh sáng hỗn hợp, có chút blur thêm.
- Ảnh năm 2005 con mèo ngủ, độ phân giải khiêm tốn 720x540px, gửi qua chat điện thoại và mail, và có thể nén 2-3 lần bởi chương trình nào đó.
Upscayl có UI khá đẹp, thân thiện. Rất tiện. Bên trái, sidebar cho tải ảnh (bao gồm nhiều file cho batch processing), chọn model enhancement, scale, và thư mục output. Rất straight-forward. Bên phải, bạn thấy ảnh gốc, và sau khi xử lý xong, có slider dọc, cho phép check kết quả "trước" và "sau".
Tôi load ảnh vào Upscayl và để nó chạy...
Trên máy 2014 già của tôi, mất khoảng 7 phút để upscale ảnh 2500x2500px với factor 4. Khá hợp lý. Tuy nhiên, thời gian có thể biến đổi đáng kể, tùy thông tin model tìm thấy trong ảnh. Z hạt và mức độ ánh sáng cũng ảnh hưởng kết quả. Nếu dùng scale factor cao hơn, hoặc ảnh gốc đã lớn, thời gian dễ dàng lên 20-30 phút. Nhưng tổng thể, hiệu năng khá tốt.
Với ảnh mèo ngủ, kết quả tuyệt vời. Render nhanh (10 giây), cải thiện đáng kể. Bạn chắc chắn thấy chi tiết hơn. Vậy là file có gấp 16 lần pixel, mà rõ nét và sắc nét hơn. Không hoàn hảo, nhưng chắc chắn tuyệt vời. Đây là ảnh low-res, ánh sáng tốt, rõ ràng và contrast cao.
Tôi thử với ảnh người tiếp theo. Kết quả... trung tính. Tôi không thấy cải thiện chất lượng ảnh mới. Nó lớn hơn, nhưng "lỗi" cũng lớn hơn. Ở đây, ảnh khá lớn, hai loại ánh sáng, nửa trái (ảnh gốc) mờ hơn (và tối hơn) so với bên phải, cộng thêm hạt. Upscayl không làm được nhiều ở đây.
Kết quả với nhà nghỉ滑雪 thực sự là ngược lại của gốc. Ảnh upscale tệ hơn cái tôi bắt đầu. Dù ánh sáng tốt, nhưng cũng có nhiều hạt và lượng chi tiết細节 khổng lồ (cây cỏ). Đoán của tôi là bất kỳ ngoại suy nào trên phần ảnh đã super-busy chỉ dẫn đến nhiều noise hơn. Tôi thử nhiều model, bao gồm ULTRASHARP tốt nhất, và vẫn không cải thiện.
Không cái nào hoạt động với ảnh số 3.
Đây là phần zoom vào đoạn cỏ. Như bạn thấy trong gốc (bên trái), có nhiều hạt. Đây là kết hợp: film analog cũ, hiện ảnh, ảnh để trên kệ vài thập kỷ, scan sau đó dùng scanner kỹ thuật số rẻ (dù 300 DPI) khoảng 15 năm trước, và giờ kết quả AI-upscale. Cỏ "cải thiện" mờ hơn. Cái nhau cho bầu trời và cây. Trong trường hợp này, ảnh có lẽ sắc nét nhất có thể, trừ khi model mới được develop và train trên pattern "dot" cụ thể bạn thấy trong gốc. Nhưng đây là noise reduction hơn bất cứ thứ gì, vì ảnh đã có kích thước 괜찮은 (2500x2000px).
Mẹo: Bạn không cần làm ảnh lớn hơn
Quan sát quan trọng: Bạn KHÔNG CẦN làm ảnh lớn hơn. Bạn có thể giữ kích thước gốc bằng scaling factor x1. Thuật toán sẽ cố gắng nội suy thông tin thiếu, càng nhiều càng tốt. Đây có thể là cách tiếp cận first-pass tốt để xem có cải thiện không. Tiết kiệm thời gian.

Kết quả tổng thể, pre-kết luận, lời thêm về Nvidia PRIME
Sau khi xử lý khoảng 50 ảnh với chương trình, bao gồm cả người và phong cảnh, tôi có một số phát hiện. Một số bất ngờ, một số khác được nêu rõ trong FAQ.
- Đừng kỳ vọng phép màu. Bạn có thể có một chút cải thiện, nhưng nó không làm được những gì trí tưởng tượng của bạn làm.
- Upscayl hoạt động tốt nhất trên ảnh ít hạt, ánh sáng tốt, và lượng chi tiết vừa phải.
- Nếu bạn đã có ảnh lớn, hi-res, hi-DPI nhưng đơn giản là TỆ, tức là mờ và nhiều noise, Upscayl không phải công cụ đúng. Nó có thể cải thiện một chút, nhưng nếu yếu tố noise "lớn hơn" bất kỳ smoothing và approximation của model, bạn sẽ không thấy kết quả có ý nghĩa.
- REAL-ESRGAN tạo ảnh mượt hơn ULTRASHARP, nên phù hợp hơn cho ảnh nhiều hạt hoặc mờ hơn, trong giới hạn nêu trên. Bạn sẽ mất một chút độ rõ nét ở đây và đó. Luôn là tradeoff.
Bên cạnh đó, tôi khá hài lòng với setup Linux:
- Dù vấn đề sớm với Kubuntu 24.04, nó đã ổn định và chạy tốt.
- Cài đặt đơn giản (qua snap), sử dụng thẳng tiến - và thực sự offline.
- Chương trình yêu cầu khiêm tốn - laptop 10 năm tuổi của tôi chạy đẹp.
- Setup hybrid graphics của tôi hoạt động hoàn hảo. Card Nvidia cấu hình PRIME on-demand, dùng card mạnh khi cần, còn lại dùng integrated để tiết kiệm pin. Tôi kiểm tra hành vi khi chạy Upscayl, và đúng, nvidia-smi cho thấy chương trình chạy với GPU Nvidia. Không nóng quá mức.
Driver Nvidia 535, setup on-demand, nhiệt độ bình thường, rất tốt.
Kết luận
Hầu hết chương trình hiện đại là meh. Thực sự. Upscayl là ngoại lệ của sự平庸 hiện đại. Một ngoại lệ lớn. Đây là chương trình đẹp, thanh lịch. GUI đẹp, dùng đơn giản, cài sạch, chế độ offline thực sự, nhiều model, hiệu năng tốt, yêu cầu GPU khiêm tốn, và kết quả khá ổn nếu không hoàn hảo. Theo sách của tôi, đây là tổng khá tốt. Cách xa hơn kỳ vọng.
Bạn sẽ có kết quả tốt nhất nếu có ảnh nhỏ, chi tiết đơn giản, ánh sáng đều, ít blur và noise. Nếu file thỏa mãn điều kiện này, bạn có thể kỳ vọng kết quả rất pleasing từ Upscayl. Nếu không, kết quả sẽ dao động từ tốt đến thất vọng. Chỉ cần nhận thức điều đó. Tất cả nói đi, đây thực sự là công cụ nhỏ tuyệt vời, đáng test. Tiếp theo, tôi sẽ thử làm tất cả thủ công, dùng ImageMagick và GIMP. Tôi muốn xem bao nhiêu cải thiện và upscaling ảnh có thể làm bằng tay, dùng command-line tools trên Linux. Đó sẽ là chủ đề tutorial tiếp theo. Stay tuned.
Cheers.