The Surface Blur operator smooths images while preserving edges. Unlike Gaussian blur which blurs everything uniformly, Surface Blur keeps sharp boundaries intact while smoothing flat regions. This makes it ideal for skin retouching, noise reduction, and creating stylized looks.
Also known as: Bilateral Filter, Smart Blur, Selective Gaussian Blur
.png)
Use Cases
- Skin smoothing - Remove blemishes while keeping facial features sharp
- Noise reduction - Reduce grain without destroying edges
- Pre-keying cleanup - Smooth noisy green screens before keying
- Stylized/cartoon look - Flatten color regions while keeping outlines
- Detail removal - Remove texture while preserving structure
Parameters
Filter Settings
| Parameter | Range | Default | Description |
|---|---|---|---|
| Radius | 1-20 | 5 | Size of the filter area in pixels. Larger = more smoothing but slower |
| Smoothing | 0-100% | 50 | Amount of spatial blur. Higher = more blur in smooth areas |
| Threshold | 0-100% | 50 | Edge sensitivity. Higher = blur across more edges |
Parameter Behavior
| Smoothing | Threshold | Result |
|---|---|---|
| Low | Low | Subtle smoothing, preserves subtle edges |
| Low | High | Subtle smoothing, only hard edges preserved |
| High | Low | Heavy smoothing, preserves subtle edges |
| High | High | Heavy smoothing, only hard edges preserved |
Advanced Settings
| Parameter | Range | Default | Description |
|---|---|---|---|
| Iterations | 1-5 | 1 | Number of filter passes. More = stronger effect |
| Luminance only | Yes/No | No | Apply filter to brightness only, preserving color detail |
| Skin tones only | Yes/No | No | Apply blur only to detected skin areas |
| Skin tolerance | 0-100% | 50 | How strict the skin detection is (higher = more areas detected) |
Luminance Only Mode
When enabled, the filter only considers brightness differences when deciding what to blend. This can:
- Preserve subtle color variations
- Reduce color bleeding artifacts
- Work better on certain types of content (e.g., faces)
Skin Tones Only Mode
When enabled, the blur is only applied to areas detected as skin tones:
- Uses YCbCr color space for robust skin detection
- Works across different skin tones and ethnicities
- Adjust Skin tolerance to fine-tune detection
- Use Skin Mask output mode to preview what's being detected
Output Modes
| Mode | Description |
|---|---|
| Final | The filtered result |
| Original | Unprocessed input (for comparison) |
| Difference | Shows what was smoothed (gray = no change) |
| Skin Mask | Shows detected skin areas (white = skin, black = not skin) |
Keyboard Shortcuts
| Key | Action |
|---|---|
| F1 | Cycle output modes (Final → Original → Difference → Skin Mask) |
Workflow Tips
Skin Retouching
- Start with Radius 5-8
- Set Smoothing to 40-60%
- Set Threshold to 20-40% (preserve skin texture edges)
- Use "Difference" output to see what's being smoothed
- Increase Iterations to 2 if needed for stubborn blemishes
Skin Retouching (Skin Tones Only)
- Enable Skin tones only
- Switch Output to Skin Mask to preview detection
- Adjust Skin tolerance until skin areas are white, non-skin is black
- Switch Output back to Final
- Set Radius 5-10, Smoothing 50-70%, Threshold 30-50%
- The blur will only affect detected skin areas
Noise Reduction
- Use smaller Radius (3-5) to target noise grain
- Moderate Smoothing (40-50%)
- Low Threshold (10-30%) to keep detail
- Consider "Luminance only" for color noise
Pre-Keying Green Screen Cleanup
- Apply BEFORE the keyer
- Radius 3-5 (match noise size)
- Low Threshold to keep subject edges sharp
- Helps create cleaner mattes
Stylized/Cartoon Look
- Large Radius (10-15)
- High Smoothing (70-100%)
- High Threshold (60-80%)
- Multiple Iterations (2-3) for stronger effect
Technical Notes
Algorithm
Surface Blur uses a bilateral filtering algorithm. For each pixel:
- Examines all neighbors within the radius
- Calculates spatial weight (based on distance)
- Calculates color weight (based on color similarity)
- Multiplies weights together
- Computes weighted average
Pixels that are nearby AND similar in color contribute more. Pixels across edges (different colors) contribute less.
Performance
- Complexity: O(radius²) per pixel
- GPU-accelerated via CUDA
- Large radius (>15) may impact real-time performance on older GPUs
- Multiple iterations multiply processing time
Comparison with Photoshop
| Photoshop | This Filter |
|---|---|
| Radius (pixels) | Radius |
| Levels (0-255) | Threshold (0-100%) |
Threshold at 100% roughly corresponds to Levels ~128 in Photoshop.
Troubleshooting
Effect too subtle:
- Increase Smoothing
- Increase Radius
- Add more Iterations
Losing too much detail:
- Decrease Threshold
- Decrease Radius
- Try Luminance Only mode
Edges getting smoothed:
- Decrease Threshold
- Decrease Smoothing
- Reduce Iterations
Color bleeding/artifacts:
- Enable Luminance Only mode
- Decrease Threshold
- Reduce Radius
Performance issues:
- Reduce Radius (biggest impact)
- Reduce Iterations
- Process at lower resolution if possible
Examples
Suggested Starting Points
| Task | Radius | Smoothing | Threshold | Iterations |
|---|---|---|---|---|
| Light skin smooth | 5 | 40% | 30% | 1 |
| Heavy skin smooth | 8 | 60% | 40% | 2 |
| Noise reduction | 3 | 50% | 20% | 1 |
| Cartoon look | 12 | 80% | 70% | 2 |
| Green screen cleanup | 4 | 40% | 25% | 1 |