Unwrap Face¶
Đặt khuôn mặt đã chỉnh sửa về đúng chỗ ban đầu. Node đảo ngược phép xoay thẳng của Facial Aligner rồi hòa kết quả vào ảnh gốc của bạn.

| Trong ComfyUI | Add Node → ComfyUI-JH-PixelPro → face → Unwrap Face (paste back) |
| Dùng để | Hoàn tất chuỗi căn chỉnh → chỉnh sửa → dán lại; giữ phần còn lại của ảnh ở chất lượng gốc |
Khi nào dùng¶
AI retouch, upscale và phục hồi khuôn mặt cho kết quả tốt nhất trên một vùng cắt nhỏ, thẳng và nằm giữa khung. Facial Aligner tạo ra vùng cắt đó, đồng thời đưa cho bạn phép biến đổi ngược chính xác. Sau khi chỉnh xong, Unwrap Face dùng phép biến đổi này để xoay, co giãn và đặt khuôn mặt về lại ảnh kích thước đầy đủ, nên chỉ vùng mặt thay đổi, phần còn lại giữ nguyên.
Bắt đầu nhanh¶
- Chạy Face Detect (hoặc Face Detect Lite) và đưa
landmarks_jsonvào Facial Aligner. - Chỉnh sửa vùng mặt đã căn thẳng (
image_aligned) bằng các node AI hoặc retouch của bạn. - Nối vùng mặt đã chỉnh vào
edited_aligned, ảnh gốc vàooriginal_image, vàinverse_matrix_jsoncủa Facial Aligner vàoinverse_matrix_json. - Xem
image_compositedtrong Preview Image. Chỉnhfeather_radiusnếu còn thấy viền.
Thông số¶
| Thông số | Mặc định | Tác dụng | Gợi ý |
|---|---|---|---|
edited_aligned |
— | Vùng mặt đã căn thẳng và đã chỉnh sửa. | Giữ cùng kích thước với đầu ra của aligner. |
original_image |
— | Ảnh kích thước đầy đủ để dán vào. | Chính là ảnh bạn đã dùng để nhận diện. |
inverse_matrix_json |
ma trận đơn vị | Phép biến đổi ngược từ Facial Aligner. | Luôn nối vào. Giá trị mặc định không có tác dụng thực tế. |
feather_radius |
16.0 (0–128) |
Độ mềm của viền, tính bằng pixel. 0 là viền cứng. |
Giá trị lớn che được đường nối nhưng làm mềm mép mặt. Bị bỏ qua khi có nối mask_override. |
mask_override |
tùy chọn | Mask trộn do bạn tự cung cấp, kích thước bằng ảnh gốc. | Dùng mask mặt hoặc mask da để chỉ dán phần da, không dán cả vùng cắt. |
| Đầu ra | Kiểu | Ý nghĩa |
|---|---|---|
image_composited |
IMAGE |
Ảnh gốc với khuôn mặt đã chỉnh được dán vào. |
mask_used |
MASK |
Mask trộn đã được áp dụng. |
Mẹo khi chỉnh ảnh¶
- Mặc định, vùng được dán là toàn bộ ô vuông của vùng căn chỉnh, được làm mềm bằng
feather_radius. Vùng này gồm cả tóc và hậu cảnh trong khung cắt. Hãy nối mask mặt hoặc mask da vàomask_overrideđể chỉ dán phần bạn muốn. - Nếu bước AI làm đổi độ phân giải của vùng cắt, hãy đưa nó về lại kích thước đầu ra của aligner trước, để phép biến đổi khớp.
- Thấy lệch màu ở mép? Hãy khớp màu trước khi dán bằng Color Matcher, hoặc dùng Face Beauty Blend cho bước trộn cuối có điều chỉnh cường độ.
- Với batch,
edited_aligned,original_imagevà danh sách ma trận mỗi thứ phải có một phần tử hoặc bằng kích thước batch.
Bên trong node hoạt động thế nào
Vùng mặt được warp lên canvas gốc bằng kornia.geometry.transform.warp_affine, dùng ma trận ngược (3×3 hoặc 2×3, mỗi ảnh một ma trận). Nếu không có mask_override, một ô vuông trắng cùng kích thước vùng cắt được warp tương tự, co vào trong 2 × feather_radius rồi làm mờ Gaussian (sigma = feather_radius), nhờ vậy viền mềm luôn nằm trong vùng cắt và không lẫn phần nền đen bên ngoài. Kết quả là mask × warped + (1 − mask) × original, giới hạn trong [0, 1]. mask_override phải khớp chính xác chiều cao và chiều rộng của ảnh gốc. Giá trị ngoài [0, 1] bị kẹp lại kèm cảnh báo. Phép warp chạy trên toàn canvas, nên ảnh lớn trên CPU chậm hơn GPU. Mã nguồn nằm ở core/unwrap_face.py.
Node liên quan¶
- Facial Aligner — tạo vùng cắt và ma trận ngược.
- Face Beauty Blend — bước trộn cuối bằng mask, có điều chỉnh cường độ.
- Face Detect và Face Detect Lite — tìm landmark.
- Tổng quan nhóm Khuôn mặt
Workflow mẫu¶
Workflow mẫu Unwrap Face. Hãy chép workflows/sample_portrait.jpg vào ComfyUI/input/ trước.