A Core Image filter for iOS and macOS that implements high-pass skin smoothing using frequency separation for portrait retouching.
YUCIHighPassSkinSmoothing is a custom Core Image filter for iOS and macOS that implements the high-pass skin smoothing technique used in professional photo retouching. It uses frequency separation to smooth skin tones while preserving fine details like pores and hair, enabling real-time portrait enhancement in apps.
iOS and macOS developers building photo editing, camera, or beauty applications that require professional-grade skin retouching capabilities.
It provides a production-ready, optimized implementation of a complex Photoshop technique directly within Apple's Core Image framework, saving developers from reinventing the wheel and ensuring high-quality results with adjustable parameters.
An implementation of High Pass Skin Smoothing using Apple's Core Image Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements frequency separation, a standard Photoshop method for skin smoothing while preserving fine details like pores and hair, bringing professional-grade retouching to real-time apps.
Offers inputAmount, inputRadius, and inputSharpnessFactor for fine control over smoothing intensity and sharpness, with default values and tuning advice detailed in the README.
Works on both iOS and macOS using Apple's Core Image framework, ensuring seamless compatibility within the Apple ecosystem and easy adoption for developers familiar with CIFilter.
Includes specific recommendations like using sRGB color space and optional sharpening (inputSharpnessFactor) to balance quality and speed, backed by performance tests on different devices.
Requires manual setup with CocoaPods or cloning the separate Vivid repository, adding an extra layer of dependency management compared to standalone filters.
As noted in performance tests, devices like iPhone 5 experience ~24 FPS, which may not suffice for smooth real-time applications, limiting usability on lower-end devices.
Achieving optimal skin smoothing demands careful parameter adjustment and CIContext configuration with specific color spaces, which can be time-consuming and error-prone for developers.
YUCIHighPassSkinSmoothing is an open-source alternative to the following products: