blender-mask-peoples/__init__.py

102 lines
2.7 KiB
Python

"""
Face Mask Blur - Blender 5.0 Extension
Detect faces and apply blur in VSE for privacy protection.
"""
bl_info = {
"name": "Face Mask Blur",
"blender": (5, 0, 0),
"category": "Sequencer",
"version": (0, 2, 0),
"author": "Hare",
"description": "Detect faces and apply blur in VSE for privacy protection",
}
def register():
"""Register all extension components."""
import bpy
from bpy.props import FloatProperty, IntProperty, EnumProperty, StringProperty
from . import operators
from . import panels
# Register scene properties for face detection parameters
bpy.types.Scene.facemask_conf_threshold = FloatProperty(
name="Confidence",
description="YOLO confidence threshold (higher = fewer false positives)",
default=0.5,
min=0.1,
max=1.0,
step=0.01,
)
bpy.types.Scene.facemask_iou_threshold = FloatProperty(
name="IOU Threshold",
description="Non-maximum suppression IOU threshold",
default=0.45,
min=0.1,
max=1.0,
step=0.01,
)
bpy.types.Scene.facemask_cache_dir = StringProperty(
name="Cache Directory",
description="Optional cache root directory (empty = default .mask_cache)",
default="",
subtype='DIR_PATH',
)
bpy.types.Scene.facemask_bake_blur_size = IntProperty(
name="Bake Blur Size",
description="Gaussian blur size (pixels) used for bake",
default=50,
min=1,
max=501,
)
bpy.types.Scene.facemask_bake_display_scale = FloatProperty(
name="Mask Scale",
description="Scale factor for the blur mask ellipse at bake time (1.0 = raw detection size)",
default=1.3,
min=0.5,
max=3.0,
step=0.1,
)
bpy.types.Scene.facemask_bake_format = EnumProperty(
name="Bake Format",
description="Output format for baked blur video",
items=[
("MP4", "MP4", "Export as .mp4"),
("AVI", "AVI", "Export as .avi"),
("MOV", "MOV", "Export as .mov"),
],
default="MP4",
)
operators.register()
panels.register()
def unregister():
"""Unregister all extension components."""
import bpy
from . import operators
from . import panels
panels.unregister()
operators.unregister()
# Unregister scene properties
del bpy.types.Scene.facemask_conf_threshold
del bpy.types.Scene.facemask_iou_threshold
del bpy.types.Scene.facemask_cache_dir
del bpy.types.Scene.facemask_bake_blur_size
del bpy.types.Scene.facemask_bake_display_scale
del bpy.types.Scene.facemask_bake_format
if __name__ == "__main__":
register()