d6cf6ffe0c
Pull alpha toward 0 in the unknown band where bg_confidence is high, so green that survives in hair gaps and hole pockets goes transparent (doc section 10). Runs between trimap enforcement and alpha cleanup; sure-foreground pixels are never touched, keyed by the bg_confidence we already compute. On the two samples this clears the faint outer green halo (edge pixels 19.3k -> 16.0k) but has little *visible* effect, because their residual is no longer green: it is magenta from the pymatting unmix on genuine semi-transparent hair (vis-magenta p95 ~0.07, identical pre/post despill), which this pass deliberately leaves alone. The magenta needs a separate colour fix. Knobs live in AlphaPostSettings (chroma_suppress*, default on). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
940 B
YAML
43 lines
940 B
YAML
model:
|
|
model_name: hustvl/vitmatte-base-composition-1k
|
|
device: cuda
|
|
matting_method: vitmatte
|
|
fallback_to_chroma_alpha: false
|
|
|
|
trimap:
|
|
sure_bg_threshold: 0.92
|
|
sure_fg_threshold: 0.12
|
|
unknown_radius_ratio: 0.012
|
|
fg_safe_radius_ratio: 0.006
|
|
|
|
alpha_post:
|
|
chroma_suppress: true
|
|
chroma_suppress_bg_low: 0.35
|
|
chroma_suppress_bg_high: 0.80
|
|
chroma_suppress_strength: 1.0
|
|
|
|
foreground:
|
|
enabled: true
|
|
method: ml
|
|
fallback_to_unmix: true
|
|
ml_regularization: 0.00001
|
|
# Legacy "unmix" method params (used only when method: unmix).
|
|
edge_low: 0.005
|
|
edge_high: 0.995
|
|
min_unmix_alpha: 0.08
|
|
unmix_strength: 0.70
|
|
local_strength: 0.45
|
|
local_blur_radius: 11
|
|
local_alpha_threshold: 0.92
|
|
local_bg_confidence_max: 0.20
|
|
green_excess_margin: 0.015
|
|
bg_confidence_weight: 0.70
|
|
|
|
despill:
|
|
enabled: true
|
|
edge_low: 0.005
|
|
strength: 0.92
|
|
green_excess_margin: 0.015
|
|
edge_expand_radius: 2
|
|
alpha_weight_floor: 0.35
|