feat: Implement cutout tool and depth generation features

- Added a new cutout tool for selecting regions in images, allowing users to choose mesh shapes based on selected areas.
- Introduced depth generation capabilities for rasterized images, including normal data extraction.
- Created jobs for generating depth planes and region data, enhancing the AI data generation workflow.
- Developed a selection refinement process for cutout regions, improving accuracy in generated outputs.
- Established a new region module for handling rasterized image regions and their associated AI generation tasks.
- Enhanced node graph builders for asset generation, facilitating smoother integration of new features.
This commit is contained in:
2026-08-30 23:09:13 +08:00
parent 32bcd45d7b
commit 08309f719d
88 changed files with 4145 additions and 5639 deletions

View File

@@ -11,8 +11,7 @@ sys.path.insert(
str(next((PROJECT_ROOT / "src" / "anyimage" / "wheels").glob("blendjob-*.whl"))),
)
from anyimage.operators.common.node_asset import (
get_modifier_input,
from anyimage.operators.common.mesh_result import (
modifier_input_identifier,
set_modifier_input,
)
@@ -28,6 +27,13 @@ def evaluated_mesh(obj):
return evaluated, evaluated.to_mesh()
def modifier_input_value(modifier, identifier):
inputs = getattr(getattr(modifier, "properties", None), "inputs", None)
if inputs is not None:
return getattr(inputs, identifier).value
return modifier[identifier]
def main():
bpy.ops.wm.read_factory_settings(use_empty=True)
mesh = create_mesh_plane_mesh("Mesh Plane", (-1.0, 1.0, -0.5, 0.5))
@@ -49,7 +55,7 @@ def main():
assert inputs["Subdivide"].max_value == 10
assert inputs["Thickness"].default_value == 0.0
assert inputs["Material"].hide_in_modifier
assert get_modifier_input(modifier, inputs["Material"].identifier) == material
assert modifier_input_value(modifier, inputs["Material"].identifier) == material
evaluated, result = evaluated_mesh(obj)
try: