Luminosity Masking¶
Chia ảnh thành ba mask mềm theo độ sáng (shadow, midtone, highlight), cùng ý tưởng với luminosity mask trong Photoshop, để bạn chỉ grade hoặc retouch một vùng tông.

| Trong ComfyUI | Add Node → ComfyUI-JH-PixelPro → color → Luminosity Masking |
| Dùng để | Dodge & burn, grade vùng bóng và vùng sáng riêng, bảo vệ highlight, làm nét hoặc khử nhiễu có chọn lọc |
Khi nào dùng¶
Luminosity mask chọn pixel theo độ sáng chứ không theo vị trí. Nhờ vậy ta có vùng chọn sạch, không có viền cắt: chỉ nâng vùng tối, chỉ làm lạnh vùng sáng, hoặc chỉ làm nét midtone mà không phải vẽ mask.
Ở đây ba mask đều mềm và cộng lại bằng 1 tại mọi pixel, nên shadow, midtone và highlight hòa vào nhau mà không hở hay chồng lấp. Bạn điều khiển chỗ các dải chuyển giao (shadow_end, highlight_start) và độ êm của chuyển tiếp (soft_edge).
Bắt đầu nhanh¶
- Load Image → Luminosity Masking.
- Nối đầu ra
mask_shadowsvào Mask to Image → Preview Image để xem vùng chọn. - Dùng mask làm đầu vào mask của node khác, ví dụ Tone Curve hoặc Color Matcher, để giới hạn hiệu ứng ở vùng bóng.
Thông số¶
| Thông số | Mặc định | Tác dụng | Gợi ý |
|---|---|---|---|
image |
bắt buộc | Ảnh cần phân tích. | |
luminance_source |
lab_l |
Cách đo độ sáng. lab_l theo cảm nhận thị giác (gần với những gì bạn thấy). ycbcr_y nhanh, hợp để xem trước. hsv_v là giá trị lớn nhất của R, G, B, kém sát cảm nhận hơn. |
Bản cuối: lab_l. |
shadow_end |
0.33 (0 đến 0.5) | Mức sáng nơi dải shadow kết thúc. | Hạ thấp để chỉ lấy vùng tối nhất. |
highlight_start |
0.67 (0.5 đến 1.0) | Mức sáng nơi dải highlight bắt đầu. Phải lớn hơn shadow_end. |
Nâng lên để chỉ lấy điểm sáng chói. |
soft_edge |
0.1 (0.01 đến 0.3) | Độ rộng chuyển tiếp mượt ở hai rìa. Nhỏ cho dải sắc hơn, lớn cho pha trộn êm hơn. | 0.1 đến 0.2 để tránh banding trên da. |
Đầu ra: mask_shadows, mask_midtones và mask_highlights, mỗi cái là mask mềm từ 0 đến 1.
Mẹo khi chỉnh ảnh¶
- Dodge & burn: dùng
mask_shadowsđể nâng chi tiết vàmask_highlightsđể kéo vùng cháy xuống. - Giữ
soft_edgerộng (từ 0.15) khi mask sẽ giới hạn những chỉnh sửa mạnh, để không lộ ranh giới tông. - Thu hẹp dải midtone (đẩy
shadow_endlên, hạhighlight_startxuống) để có mask "chỉ midtone" cho clarity hoặc làm mịn da. - Kết hợp hai mask bằng Mask Combine (union, subtract, intersect...) để tạo dải riêng như "tối cộng midtone".
- Với ảnh lớn,
ycbcr_ynhanh hơnlab_lnhiều, nên dùng khi xem trước rồi chuyển sanglab_lcho lần chạy cuối.
Bên trong node hoạt động thế nào
Độ sáng được tính trong không gian đã chọn: lab_l chuyển sang RGB tuyến tính rồi dùng CIE L* (0 đến 1), ycbcr_y dùng kênh Y của YCbCr (Kornia), hsv_v dùng kênh lớn nhất. Shadow là 1 − smoothstep(shadow_end ± soft_edge/2), highlight là smoothstep(highlight_start ± soft_edge/2), midtone là phần còn lại (không nhỏ hơn 0). Ba mask sau đó được chia cho tổng, nên cộng lại bằng 1 tại mọi pixel. Chú thích trong code ghi khoảng 120 ms cho lab_l ở 2K trên CPU và khoảng 7 ms cho ycbcr_y ở 1024 trên CPU; hãy xem đó là số tham khảo. shadow_end phải nhỏ hơn highlight_start, và đầu vào ngoài 0..1 bị kẹp lại kèm cảnh báo trong log.
Node liên quan¶
- Mask Combine: cộng, trừ hoặc giao các mask
- Tone Curve: chỉ áp đường cong lên một vùng tông
- ColorLab: tông và màu toàn ảnh; dùng mask để giới hạn
- Frequency Separation: kết hợp với mask midtone khi retouch da
Workflow mẫu¶
Workflow mẫu Luminosity Masking. Chép workflows/sample_portrait.jpg vào ComfyUI/input/ trước.