Support YAML pipeline configuration

This commit is contained in:
Codex
2026-06-30 15:03:15 +08:00
parent 923dbe9f09
commit 10705d49df
5 changed files with 150 additions and 81 deletions
+17 -22
View File
@@ -8,16 +8,10 @@ REPO_ROOT = Path(__file__).resolve().parents[1]
if str(REPO_ROOT) not in sys.path:
sys.path.insert(0, str(REPO_ROOT))
from bgfilter.config import load_settings, override_settings
from bgfilter.pipeline import MattingPipeline
from bgfilter.quality import assert_quality, measure_rgba
from bgfilter.settings import (
AlphaPostSettings,
ChromaSettings,
DespillSettings,
ModelSettings,
PipelineSettings,
TrimapSettings,
)
from bgfilter.settings import PipelineSettings
REQUIRED_DEBUG_FILES = {
@@ -36,17 +30,12 @@ REQUIRED_DEBUG_FILES = {
def build_settings(args: argparse.Namespace) -> PipelineSettings:
return PipelineSettings(
chroma=ChromaSettings(),
trimap=TrimapSettings(),
alpha_post=AlphaPostSettings(),
despill=DespillSettings(),
model=ModelSettings(
model_name=args.model_name,
device=args.device,
matting_method=args.matting_method,
fallback_to_chroma_alpha=args.fallback_to_chroma_alpha,
),
return override_settings(
load_settings(args.config),
model_name=args.model_name,
device=args.device,
matting_method=args.matting_method,
fallback_to_chroma_alpha=args.fallback_to_chroma_alpha,
)
@@ -63,10 +52,16 @@ def main() -> int:
parser = argparse.ArgumentParser(description="Run sample-image smoke checks.")
parser.add_argument("--samples-dir", type=Path, default=Path("Samples"))
parser.add_argument("--output-dir", type=Path, default=Path("Outputs/smoke_samples"))
parser.add_argument("--config", type=Path, default=Path("configs/default.yaml"))
parser.add_argument("--device", default="cpu")
parser.add_argument("--matting-method", default="vitmatte", choices=["vitmatte", "chroma"])
parser.add_argument("--model-name", default="hustvl/vitmatte-small-composition-1k")
parser.add_argument("--fallback-to-chroma-alpha", action="store_true")
parser.add_argument("--matting-method", default=None, choices=["vitmatte", "chroma"])
parser.add_argument("--model-name", default=None)
parser.add_argument(
"--fallback-to-chroma-alpha",
action="store_true",
default=None,
help="Override config and allow chroma alpha when ViTMatte fails.",
)
parser.add_argument("--max-edge-green-excess-p95", type=float, default=0.50)
args = parser.parse_args()