Real-ESRGAN và GFPGAN là gì? Hai mô hình làm nét ảnh phổ biến

Real-ESRGAN làm nét cả ảnh, GFPGAN chỉ phục hồi khuôn mặt. Bài này giải thích hai mô hình học thế nào, khác nhau ra sao, dùng ở đâu và giấy phép nói gì.

12 phút đọc

Mỗi loại ảnh cần một cách phục hồi khác nhau, nên mới có nhiều mô hình riêng. Hình do AI tạo.
Mục lục bài viết

Real-ESRGAN là mô hình mã nguồn mở làm rõ và phóng to cả bức ảnh. GFPGAN chỉ lo khuôn mặt, và hai mô hình thường chạy chung trong các công cụ làm nét ảnh.

Bài này đi qua từng mô hình và cách chúng học, chỗ khác nhau và cách dùng chung, nơi bạn gặp chúng như Upscayl hay trang web, cấu hình máy cần có và giấy phép. Phần cuối nói giới hạn mà chính tác giả đã ghi, kể cả dòng “slight change on identity” của GFPGAN.

Real-ESRGAN là gì: mô hình làm nét cả bức ảnh

Real-ESRGAN là mô hình mã nguồn mở dùng để làm rõ và phóng to ảnh thường, do nhóm Tencent ARC công bố năm 2021. Nhóm tác giả tự mô tả mục tiêu là “Practical Algorithms for General Image/Video Restoration”, tức thuật toán thực tế để phục hồi ảnh và video nói chung, theo trang GitHub của dự án. Việc nó làm gọi là siêu phân giải (super-resolution): từ ảnh nhỏ hoặc mờ, dựng ra ảnh lớn hơn có thêm chi tiết hợp lý. Hai mục dưới nói về cách nó học và các bản hay gặp.

Bộ lọc làm nét thông thường chỉ tăng độ tương phản ở mép. Real-ESRGAN đoán thêm chi tiết mới nên phóng ảnh nhiều lần vẫn có nét; đổi lại, chi tiết thêm vào là phỏng đoán, không phải thứ máy ảnh đã ghi.

Học từ ảnh bị làm hỏng giả lập

Real-ESRGAN học qua rất nhiều cặp ảnh: một ảnh rõ, và chính ảnh đó sau khi bị máy làm hỏng. Nhóm tác giả tự tạo ảnh hỏng từ ảnh sạch, nên README ghi mô hình được huấn luyện bằng “pure synthetic data”, tức dữ liệu hoàn toàn tổng hợp.

Ảnh sạch bị làm hỏng qua bốn bước: làm mờ, thu nhỏ, thêm nhiễu và nén JPEG, theo bài báo Real-ESRGAN trên arXiv. Nhóm tác giả lặp cả quy trình hai lần (“second-order”), vì một bức ảnh ngoài đời thường đã được chụp, chỉnh rồi gửi qua mạng xã hội nhiều lần, và lần nào cũng mất thêm chất lượng. Cách các mô hình kiểu này làm nét ảnh nói chung được giải thích trong bài công nghệ AI làm nét ảnh.

Các bản Real-ESRGAN hay gặp: ảnh thường, anime, bản nhẹ

Ba tên gặp nhiều nhất là RealESRGAN_x4plus cho ảnh thường, RealESRGAN_x4plus_anime_6B cho tranh anime và realesr-general-x4v3 là bản nhỏ gọn. Bảng dưới lấy từ danh sách mô hình của dự án.

Ba bản Real-ESRGAN hay gặp
Tên bản Dùng cho Tài liệu của dự án ghi
RealESRGAN_x4plus Ảnh thường Mô hình ×4 cho ảnh nói chung
RealESRGAN_x4plus_anime_6B Ảnh anime, tranh minh họa Tối ưu cho ảnh anime, mạng nhỏ hơn bản thường
realesr-general-x4v3 Ảnh thường, khi máy yếu “A tiny small model”: tốn ít bộ nhớ card đồ họa và thời gian hơn, nhưng khử mờ và khử nhiễu không mạnh

Số 4 trong tên nghĩa là phóng ×4: ảnh 600×400 điểm ảnh (pixel) thành 2400×1600, tổng số điểm ảnh gấp 16. Cần ảnh lớn hơn mà không quan tâm mô hình nào thì trang tăng kích thước ảnh của LamNetAnh chọn sẵn mức ×4, miễn phí.

Tranh anime có đường nét dứt khoát và mảng màu phẳng, khác ảnh chụp, nên dự án làm riêng một bản anime. Mục phản hồi của dự án ghi nhận bản anime có xu hướng đưa nhiều phong cách vẽ về một kiểu, do dữ liệu huấn luyện. Muốn làm nét tranh anime ngay trên trình duyệt, trang làm nét ảnh anime của LamNetAnh có bộ thiết lập riêng cho tranh và đồ họa.

GFPGAN là gì: mô hình phục hồi khuôn mặt

GFPGAN là mô hình chuyên phục hồi khuôn mặt trong ảnh mờ hoặc hỏng, cũng do Tencent ARC phát hành, và dựa vào hiểu biết có sẵn về khuôn mặt. Dự án tự mô tả là “Practical Algorithm for Real-world Face Restoration”, tức thuật toán thực tế để phục hồi khuôn mặt ngoài đời, theo trang GitHub của GFPGAN. Bài báo GFPGAN của nhóm được trình bày tại hội nghị CVPR 2021, và mô hình chỉ lo khuôn mặt. Hai mục dưới nói về hiểu biết có sẵn đó và các phiên bản.

Hiểu biết có sẵn về khuôn mặt (generative facial prior)

“Generative facial prior” nghĩa là hiểu biết có sẵn về khuôn mặt, lấy từ một mô hình đã học cách tạo ra khuôn mặt thật. README ghi GFPGAN mượn một mạng GAN đã huấn luyện trước, cụ thể là StyleGAN2. GAN là kiểu mạng gồm hai phần đấu nhau: một phần tạo ảnh, một phần chấm ảnh đó thật hay giả. Mạng đã xem rất nhiều mặt người nên “biết” mắt, mũi, miệng rõ nét trông ra sao, và dùng hiểu biết đó lấp chỗ trống khi ảnh vào quá mờ.

Cần cách này vì đầu vào chất lượng rất thấp không cho đủ thông tin chính xác về hình dạng khuôn mặt, theo bài báo trên arXiv. Mô hình học từ bộ FFHQ gồm 70.000 ảnh mặt chất lượng cao, thu về cỡ 512×512. Bài toán được gọi là phục hồi mù (blind) vì không biết trước ảnh hỏng theo kiểu nào, và mô hình chỉ cần một lượt chạy để dựng lại chi tiết.

Tay cầm ảnh chân dung cũ bị trầy xước, bên cạnh là bản in lớn của khuôn mặt được soi bằng kính lúp
Ảnh cũ và bản chân dung lớn: dù mặt trông sắc hơn, vẫn phải so nét mặt với ảnh gốc. Hình do AI tạo.

Các phiên bản GFPGAN và ghi chú về danh tính

GFPGAN có các bản V1, V1.2, V1.3 và V1.4, và tác giả nói thẳng rằng V1.3 không phải lúc nào cũng tốt hơn V1.2. Bảng dưới tóm tắt README của dự án.

Các phiên bản GFPGAN theo README của dự án
Phiên bản Điểm mạnh Điểm yếu
V1 Bản trong bài báo, có tô màu khuôn mặt Không ghi
V1.2 Ảnh ra sắc hơn, có kiểu trang điểm làm đẹp; không tô màu, không cần phần mở rộng CUDA Một số kết quả thiếu tự nhiên
V1.3 Kết quả tự nhiên hơn; tốt hơn với ảnh rất kém và cả ảnh khá tốt; có thể chạy lại lần hai “not very sharp” và “have a slight change on identity”
V1.4 “slightly more details and better identity than V1.3” Không ghi

Cột điểm yếu của V1.3 ghi “have a slight change on identity”, nghĩa là có thay đổi nhẹ về danh tính: khuôn mặt sau phục hồi có thể hơi khác người thật. V1.4 được ghi là có “better identity than V1.3”, nhưng README không nói bản này hết hẳn chuyện đó.

Real-ESRGAN và GFPGAN khác nhau thế nào, dùng chung ra sao

Real-ESRGAN làm nét cả bức ảnh còn GFPGAN chỉ phục hồi khuôn mặt; hai mô hình thường chạy chung, Real-ESRGAN lo phần nền, GFPGAN lo khuôn mặt.

So sánh Real-ESRGAN và GFPGAN
Tiêu chí Real-ESRGAN GFPGAN
Phạm vi Cả bức ảnh Khuôn mặt
Hợp với Phong cảnh, đồ vật, ảnh thường; có bản riêng cho anime Chân dung, ảnh nhóm, ảnh cũ có người
Cần soi sau khi chạy Đường thẳng, họa tiết, chữ Nét mặt có còn đúng người

Trong Real-ESRGAN, tùy chọn --face_enhance được mô tả là “Whether to use GFPGAN to enhance face” và mặc định tắt. Ngược lại, README của GFPGAN có dòng “Support enhancing non-face regions (background) with Real-ESRGAN”, và bộ xử lý nền mặc định là realesrgan.

Ảnh phong cảnh, đồ vật, món ăn không có mặt người thì chỉ cần Real-ESRGAN. Ảnh chân dung hay ảnh cả lớp cần cả hai: nền do Real-ESRGAN làm, mặt do GFPGAN làm. Tranh anime dùng bản anime và không bật phần khuôn mặt, vì FAQ của Real-ESRGAN ghi tùy chọn này “can only be used for real faces”.

Ba ảnh in trên nền tối: phong cảnh suối núi, chân dung người phụ nữ và tranh anime cô gái đeo ba lô
Phong cảnh, chân dung, tranh anime: mỗi loại ảnh hợp với một cách phục hồi khác. Hình do AI tạo.

Dùng ở đâu: Upscayl, trang web làm nét ảnh và Python

Người không viết mã gặp Real-ESRGAN chủ yếu qua ứng dụng máy tính như Upscayl và qua các trang web làm nét ảnh; chạy bằng Python là đường của người làm kỹ thuật. Ba mục dưới đi lần lượt qua Upscayl, trang web và Python.

Upscayl: ứng dụng máy tính dùng Real-ESRGAN

Upscayl là ứng dụng miễn phí cho Windows, macOS và Linux, và nó chạy Real-ESRGAN bên trong. Trang GitHub của Upscayl ghi nó dùng Real-ESRGAN và kiến trúc Vulkan, nên máy cần card đồ họa hỗ trợ Vulkan; dự án cảnh báo nhiều card tích hợp (iGPU) không chạy được. Cách cài và dùng từng bước nằm trong bài cách dùng Upscayl trên máy tính.

Trang web làm nét ảnh

Các công cụ làm nét hiện nay, gồm LamNetAnh, dùng mô hình phục hồi ảnh và phục hồi khuôn mặt cùng họ này hoặc tương tự. Trang web thường không ghi mô hình cụ thể, và tên mô hình cũng không cho biết ảnh đi đâu, nên hãy hỏi trước tiên ảnh của bạn được xử lý ở đâu.

Với LamNetAnh, câu trả lời tùy chế độ bạn chọn. Tại thiết bị: ảnh không rời máy bạn. AI: ảnh gửi tới OpenAI và có thể bị vẽ lại chi tiết. Công cụ không có nút chọn mô hình; bạn chọn bằng cách mở đúng trang cho loại ảnh, ví dụ trang làm nét khuôn mặt cho chân dung.

Chạy bằng Python

Cả hai kho có hướng dẫn cài trên GitHub. Bạn cài các gói như realesrgan, gfpgan, basicsr và facexlib bằng pip rồi chạy script có sẵn. Không muốn cài môi trường, Real-ESRGAN có bản chạy sẵn (ncnn-vulkan) cho Windows, Linux và macOS, không cần CUDA hay PyTorch.

Chạy trên máy mình cần cấu hình gì

Chạy tại máy cần một card đồ họa (GPU); tài liệu của hai kho không nêu mức RAM hay bộ nhớ card tối thiểu, nên không có con số chính thức để dẫn. Những gì README và FAQ có viết:

  • Phần mềm: Python 3.7 trở lên và PyTorch 1.7 trở lên, ở cả hai kho. GFPGAN ghi card NVIDIA kèm CUDA là tùy chọn (“Option”).
  • Bản chạy sẵn: ncnn-vulkan dành cho card Intel, AMD và Nvidia. Bản này cắt ảnh thành nhiều ô, xử lý riêng rồi ghép lại, nên tác giả cảnh báo có thể lệch giữa các ô và khác nhẹ so với bản PyTorch.
  • Tiết kiệm bộ nhớ: mặc định mô hình chạy ở độ chính xác nửa (fp16) “to save GPU memory consumption and speed up inference”. Chạy bằng CPU thì phải thêm --fp32, vì một số phép tính fp16 chưa có trên CPU.

Máy không có card phù hợp thì dùng trang web, để phần nặng chạy ở nơi khác. Còn hai chuyện nữa: giấy phép cho phép làm gì, và chỗ mô hình làm sai.

Giấy phép: miễn phí, dùng thương mại được không

Real-ESRGAN dùng giấy phép BSD-3-Clause và GFPGAN dùng Apache 2.0; cả hai là giấy phép mã nguồn mở, tải về dùng không mất phí. Tệp LICENSE của Real-ESRGAN là BSD 3-Clause. Tệp LICENSE của GFPGAN là Apache License 2.0, “except for the third-party components listed below”, tức trừ các thành phần bên thứ ba liệt kê bên dưới. Nội dung hai tệp không có điều khoản nào giới hạn mục đích thương mại; điều kiện chính là giữ lại thông báo bản quyền và giấy phép. Riêng giấy phép BSD 3-Clause còn cấm dùng tên tác giả để quảng bá sản phẩm của bạn khi chưa được cho phép.

Giấy phép này là của mã trong kho. Dữ liệu huấn luyện (DF2K và OST với Real-ESRGAN, FFHQ với GFPGAN) có điều khoản riêng, và ứng dụng dựng trên mô hình cũng có giấy phép riêng, như Upscayl theo AGPL-3.0. Định dùng cho việc có thu tiền thì đọc cả những điều khoản đó.

Còn một mô hình phục hồi khuôn mặt khác tên là CodeFormer, cùng việc với GFPGAN. Tệp LICENSE của CodeFormer là NTU S-Lab License 1.0 và cho phép dùng “for non-commercial purpose”, tức chỉ cho mục đích phi thương mại. Vì vậy bài này không khuyên dùng nó cho việc có thu tiền.

Cả hai kho đã lâu không có bản phát hành mới: Real-ESRGAN dừng ở v0.3.0 ngày 20/09/2022, GFPGAN ở v1.3.8 ngày 16/09/2022, theo trang GitHub (kiểm tháng 10/2026). Mọi câu trích trong bài lấy nguyên văn từ README, FAQ, tệp LICENSE và bài báo của từng dự án, đọc ngày 02/10/2026.

Giới hạn: khi nào ảnh trông rõ nhưng sai chi tiết

Cả hai mô hình đều có thể cho ra ảnh trông rõ nhưng sai chi tiết, và chính các tác giả ghi lại những giới hạn đó trong bài báo.

Bài báo của Real-ESRGAN nêu ba giới hạn ở mục 4.4. Một số ảnh sau phục hồi, nhất là ảnh tòa nhà và cảnh trong nhà, có đường thẳng bị xoắn do hiện tượng răng cưa (aliasing). Huấn luyện bằng GAN đôi khi sinh vết lạ khó chịu. Và mô hình không xử lý được kiểu hỏng phức tạp mà nó chưa từng học, thậm chí có thể làm chúng nặng thêm.

Bài báo của GFPGAN ghi rằng khi ảnh hỏng nặng, chi tiết khuôn mặt dựng lại bị méo kèm vết lạ. Khuôn mặt nghiêng rất nhiều cho kết quả thiếu tự nhiên. Ảnh đầu vào là ảnh xám thì màu mặt có thể lệch, vì đầu vào không đủ thông tin màu.

Người cầm ảnh in chiếc ấm trà xanh, bên cạnh là màn hình laptop hiện cùng bức ảnh
Đặt ảnh gốc cạnh bản đã xử lý rồi soi hình dạng và họa tiết. Hình do AI tạo.

Hãy xem kết quả ở mức 1:1, so với ảnh gốc, từng khuôn mặt và từng chữ. Chi tiết mới là phỏng đoán nên không dùng làm bằng chứng hay giấy tờ. Cách soi ảnh sau khi làm nét chỉ các chỗ cần nhìn, còn giới hạn của AI khi làm nét nói khi nào nên dừng.

Câu hỏi thường gặp

Real-ESRGAN có miễn phí không?

Có. Mã nguồn dùng giấy phép BSD-3-Clause, tải về và chạy không mất phí. Ứng dụng và trang web dựng trên nó có chính sách giá riêng.

Chạy Real-ESRGAN cần máy mạnh không?

Cần một card đồ họa, nhưng tài liệu không ghi mức tối thiểu. Bản realesr-general-x4v3 nhẹ hơn, và chạy bằng CPU thì phải thêm tùy chọn --fp32.

GFPGAN có dùng cho tranh anime được không?

Không nên. FAQ của Real-ESRGAN ghi tùy chọn khuôn mặt chỉ dùng cho mặt người thật và khuyên không bật cho ảnh anime. Tranh thì dùng bản RealESRGAN_x4plus_anime_6B.

Ảnh gia đình cũ nên dùng mô hình nào?

Ảnh có người thường cần cả hai vì Real-ESRGAN và GFPGAN khác nhau ở phần được làm nét: Real-ESRGAN cho cả ảnh, GFPGAN cho khuôn mặt, rồi so với ảnh gốc. Cách làm với ảnh cũ đã scan nằm ở trang phục chế ảnh cũ.

Xem tất cả