92 lines
2.7 KiB
Python
92 lines
2.7 KiB
Python
import bpy
|
|
|
|
from ..runtime import JobOperatorBase
|
|
from ..properties import BEN2_MODEL_KEY
|
|
from .common import (
|
|
background_input_path,
|
|
da3_parameters,
|
|
input_path,
|
|
moge2_parameters,
|
|
open_job_directory,
|
|
require_environment,
|
|
require_model,
|
|
)
|
|
|
|
|
|
class DebugDa3(JobOperatorBase, bpy.types.Operator):
|
|
bl_idname = "anyimage.debug_da3"
|
|
bl_label = "Debug DA3"
|
|
job_type = "debug-da3"
|
|
starting_message = "Starting DA3 API inference"
|
|
|
|
def request(self, context):
|
|
require_environment()
|
|
settings = context.scene.anyimage_settings
|
|
model = settings.model
|
|
require_model(model)
|
|
return {
|
|
**da3_parameters(
|
|
settings,
|
|
input_path(settings.input_path),
|
|
model,
|
|
settings.process_res,
|
|
1,
|
|
),
|
|
"device": settings.device.lower(),
|
|
"inference_mode": "joint",
|
|
"remove_background_model": "",
|
|
}
|
|
|
|
def response(self, _context, result):
|
|
open_job_directory(result.directory)
|
|
return f"Saved DA3 API prediction to {result.directory}"
|
|
|
|
|
|
class DebugMoge2(JobOperatorBase, bpy.types.Operator):
|
|
bl_idname = "anyimage.debug_moge2"
|
|
bl_label = "Debug MoGe-2"
|
|
job_type = "debug-moge2"
|
|
starting_message = "Starting MoGe-2 inference"
|
|
|
|
def request(self, context):
|
|
require_environment()
|
|
settings = context.scene.anyimage_settings
|
|
require_model(settings.moge_model)
|
|
return {
|
|
**moge2_parameters(
|
|
settings,
|
|
input_path(settings.input_path),
|
|
settings.moge_model,
|
|
settings.moge_resolution_level,
|
|
1,
|
|
),
|
|
"device": settings.device.lower(),
|
|
}
|
|
|
|
def response(self, _context, result):
|
|
open_job_directory(result.directory)
|
|
return f"Exported MoGe-2 data to {result.directory}"
|
|
|
|
|
|
class DebugBen2(JobOperatorBase, bpy.types.Operator):
|
|
bl_idname = "anyimage.debug_ben2"
|
|
bl_label = "Debug BEN2"
|
|
job_type = "debug-ben2"
|
|
starting_message = "Starting BEN2 background removal"
|
|
|
|
def request(self, context):
|
|
require_environment()
|
|
settings = context.scene.anyimage_settings
|
|
require_model(BEN2_MODEL_KEY)
|
|
return {
|
|
"input": str(background_input_path(settings.background_input_path)),
|
|
"model": BEN2_MODEL_KEY,
|
|
"device": settings.device.lower(),
|
|
"video_frames": settings.video_frames,
|
|
"start_frame": 1,
|
|
}
|
|
|
|
def response(self, _context, result):
|
|
open_job_directory(result.directory)
|
|
return f"Removed background to {result.directory}"
|