diff --git a/utils.py b/utils.py index be6ee4e..3bb2983 100644 --- a/utils.py +++ b/utils.py @@ -491,40 +491,45 @@ class Comfy_OT_Mvgen_B6229(bpy.types.Operator): else: if (None is not bpy.context.view_layer.objects.active): if bpy.context.view_layer.objects.active.type == 'MESH': - bpy.context.scene.sna_activeobject = bpy.context.view_layer.objects.active - bpy.context.scene.sna_activeobject_name = bpy.context.scene.sna_activeobject.name - bpy.ops.object.transform_apply(location=True, rotation=True, scale=True) - if property_exists("bpy.data.node_groups['UV_New']", globals(), locals()): - pass - else: - before_data = list(bpy.data.node_groups) - bpy.ops.wm.append(directory=os.path.join(os.path.dirname(__file__), 'assets', 'geonodesuvpack.blend') + r'\NodeTree', filename='UV_New', link=False) - new_data = list(filter(lambda d: d not in before_data, list(bpy.data.node_groups))) - appended_4ED0B = None if not new_data else new_data[0] - bpy.context.view_layer.objects.active = bpy.context.scene.sna_activeobject - bpy.context.scene.sna_activeobject.select_set(state=True, ) - modifier_5D814 = bpy.context.scene.sna_activeobject.modifiers.new(name='MV_Nodes', type='NODES', ) - node_group = bpy.data.node_groups.get('UV_New') - if node_group is None: - self.report({'ERROR'}, message='Missing node group: UV_New') - return {"CANCELLED"} - bpy.context.scene.sna_activeobject.modifiers['MV_Nodes'].node_group = node_group - bpy.ops.object.convert(target='MESH', keep_original=True) - # Save the converted copy name immediately (active object after convert) - bpy.context.scene['_comfy_converted_name'] = bpy.context.active_object.name - bpy.data.objects[bpy.context.scene.sna_activeobject_name].hide_render = True - bpy.ops.comfyui.aovbake_ad980('INVOKE_DEFAULT', ) - bpy.data.objects[bpy.context.scene.sna_activeobject_name].modifiers.clear() - bpy.context.view_layer.objects[bpy.context.scene.sna_activeobject_name].hide_set(state=True, ) - - # --- Render Depth Map --- - _render_depth(self) - - # --- Render Normal Map --- - _render_normal(self) - - # --- Render Line Art --- - _render_lineart(self) + original_hide_render = {obj.name: obj.hide_render for obj in bpy.data.objects} + try: + active_obj = bpy.context.view_layer.objects.active + for obj in bpy.data.objects: + obj.hide_render = obj != active_obj + bpy.context.scene.sna_activeobject = active_obj + bpy.context.scene.sna_activeobject_name = active_obj.name + bpy.ops.object.transform_apply(location=True, rotation=True, scale=True) + if property_exists("bpy.data.node_groups['UV_New']", globals(), locals()): + pass + else: + before_data = list(bpy.data.node_groups) + bpy.ops.wm.append(directory=os.path.join(os.path.dirname(__file__), 'assets', 'geonodesuvpack.blend') + r'\NodeTree', filename='UV_New', link=False) + new_data = list(filter(lambda d: d not in before_data, list(bpy.data.node_groups))) + appended_4ED0B = None if not new_data else new_data[0] + bpy.context.view_layer.objects.active = active_obj + active_obj.select_set(state=True, ) + modifier_5D814 = active_obj.modifiers.new(name='MV_Nodes', type='NODES', ) + node_group = bpy.data.node_groups.get('UV_New') + if node_group is None: + self.report({'ERROR'}, message='Missing node group: UV_New') + return {"CANCELLED"} + active_obj.modifiers['MV_Nodes'].node_group = node_group + bpy.ops.object.convert(target='MESH', keep_original=True) + converted_obj = bpy.context.active_object + bpy.context.scene['_comfy_converted_name'] = converted_obj.name + for obj in bpy.data.objects: + obj.hide_render = obj != converted_obj + bpy.data.objects[bpy.context.scene.sna_activeobject_name].hide_render = True + bpy.ops.comfyui.aovbake_ad980('INVOKE_DEFAULT', ) + bpy.data.objects[bpy.context.scene.sna_activeobject_name].modifiers.clear() + bpy.context.view_layer.objects[bpy.context.scene.sna_activeobject_name].hide_set(state=True, ) + _render_depth(self) + _render_normal(self) + _render_lineart(self) + finally: + for name, state in original_hide_render.items(): + if name in bpy.data.objects: + bpy.data.objects[name].hide_render = state return {"FINISHED"}