feat(cutout_tool): Implement cutout region to shape functionality

- Added interaction helpers for cutout region validation and shape menu interaction.
- Created main operator for converting image regions into cutout shapes, including AI artifact generation.
- Introduced object creation logic for cutout shapes, handling depth and normal textures.
- Defined cutout shape identifiers and node groups for various shape types.
- Implemented depth texture writing and prediction artifact generation for MoGe-2.
- Developed server jobs for generating cutout artifacts, depth planes, and refining image regions.
- Added region refinement logic to enhance gesture masks using BEN2.
This commit is contained in:
2026-08-31 11:36:27 +08:00
parent 08309f719d
commit 87d7721128
80 changed files with 4823 additions and 4297 deletions

View File

@@ -2,20 +2,25 @@
from blendjob import JobServer
from .jobs.remove_background import run as _remove_background
from .jobs.debug_predictions import (
run_ben2 as _debug_ben2,
)
from .jobs.debug_predictions import (
run_da3 as _debug_da3,
)
from .jobs.debug_predictions import (
run_moge2 as _debug_moge2,
)
from .jobs.debug_predictions import (
run_upscale as _debug_upscale,
)
from .jobs.refine_image_mask import run as _refine_image_mask
from .jobs.generate_depth_plane import run as _generate_depth_plane
from .jobs.generate_region_data import run as _generate_region_data
from .jobs.cutout import run as _generate_cutout_artifacts
from .jobs.depth_plane import run as _generate_depth_plane_geometry
from .jobs.refine_image_region import run as _refine_image_region
from .jobs.remove_background import run as _remove_background
from .jobs.upscale import run as _upscale_image
from .model_manager import ModelManager
server = JobServer("AnyImage Job Server")
@@ -36,9 +41,9 @@ def download_required_models(context, parameters):
return manager.download_missing(context, parameters["models"])
@server.job("refine-image-mask")
def refine_image_mask(context, parameters):
return _refine_image_mask(context, parameters)
@server.job("refine-image-region")
def refine_image_region(context, parameters):
return _refine_image_region(context, parameters)
@server.job("remove-background")
@@ -51,14 +56,14 @@ def upscale_image(context, parameters):
return _upscale_image(context, parameters)
@server.job("generate-depth-plane")
def generate_depth_plane(context, parameters):
return _generate_depth_plane(context, parameters)
@server.job("generate-depth-plane-geometry")
def generate_depth_plane_geometry(context, parameters):
return _generate_depth_plane_geometry(context, parameters)
@server.job("generate-region-data")
def generate_region_data(context, parameters):
return _generate_region_data(context, parameters)
@server.job("generate-cutout-artifacts")
def generate_cutout_artifacts(context, parameters):
return _generate_cutout_artifacts(context, parameters)
@server.job("debug-da3")
@@ -79,4 +84,3 @@ def debug_ben2(context, parameters):
@server.job("debug-upscale")
def debug_upscale(context, parameters):
return _debug_upscale(context, parameters)