06. Modulplan - MatthiasBurger-Coder/BackgroundRemover GitHub Wiki
Ich würde das Projekt in diese Module schneiden:
6.1 video_io
Verantwortung:
- Video lesen
- FPS, Auflösung, Codec-Metadaten
- Frames streamen
- optional PNG-Sequenz schreiben
Klassen:
VideoReaderFrameExtractorPngSequenceWriter
6.2 seed_detection
Verantwortung:
- Start-ROI bestimmen
- optional Gesichtserkennung
- manuelle Box/Punkte übernehmen
Klassen:
SeedDetectorFaceSeedDetectorManualPromptAdapterPromptNormalizer
6.3 segmentation
Verantwortung:
- SAM 2.1 initialisieren
- Prompts auf Keyframe anwenden
- Video-Propagation
Klassen:
SamImageSegmenterSamVideoSegmenterPromptSessionSegmentationResult
6.4 motion
Verantwortung:
- Bewegung zwischen Frames schätzen
- Maske vorschieben
- Suchfenster eingrenzen
Klassen:
OpticalFlowEstimatorMaskWarpServiceMotionConfidenceEstimator
6.5 mask_refinement
Verantwortung:
- Löcher schließen
- kleine Inseln entfernen
- Flackern reduzieren
- Kanten beruhigen
Klassen:
MaskCleanerTemporalSmootherEdgeRefiner
6.6 alpha_compositing
Verantwortung:
- RGBA-Frames erzeugen
- Vordergrund transparent freistellen
Klassen:
AlphaComposerRgbaFrameBuilder
6.7 rendering
Verantwortung:
- Preview-Video erstellen
- Final Alpha Video exportieren
Klassen:
PreviewRendererAlphaRendererRenderProfile
6.8 jobs
Verantwortung:
- Jobstatus
- Fortschritt
- Dateipfade
- Artefakte
- Wiederaufnahme
Klassen:
JobServiceJobStateArtifactRegistry
6.9 api
FastAPI-Endpunkte:
POST /jobsGET /jobs/{id}GET /jobs/{id}/artifactsPOST /jobs/{id}/promptPOST /jobs/{id}/previewPOST /jobs/{id}/finalize
6.10 ui
Streamlit-Seiten:
- Upload & Projektstart
- Keyframe & Prompt
- Segmentation Debug
- Preview Render
- Final Export
- Performance Dashboard