Files
ComfyProjector/__init__.py
小煜 f5693147fe feat(ui): 添加渲染图像列表和清理功能
- 新增属性组 `Comfy_RenderedImageItem` 用于存储渲染图像信息
- 在面板中添加渲染图像列表显示,支持缩略图预览和打开文件夹
- 为深度和法线渲染添加结果自动记录功能
- 新增清理操作符,用于删除生成的多视角对象和相机并恢复原始对象
- 改进操作符的 poll 条件,在已有结果时提示先清理
- 在注销时清理预览集合和自定义属性
2026-02-13 11:40:44 +08:00

60 lines
2.0 KiB
Python

bl_info = {
"name" : "ComfyProjector",
"author" : "Blender Procedural",
"description" : "Projector for ComfyUI",
"blender" : (5, 0, 0),
"version" : (1, 0, 0),
"location" : "",
"warning" : "",
"doc_url": "",
"tracker_url": "",
"category" : "3D View"
}
import bpy # noqa: E402
from .utils import classes, cleanup_preview_collections # noqa: E402
from .utils import Comfy_RenderedImageItem # noqa: E402
def register():
for cls in classes:
bpy.utils.register_class(cls)
bpy.types.Scene.sna_activeobject = bpy.props.PointerProperty(type=bpy.types.Object)
bpy.types.Scene.sna_bakecam = bpy.props.PointerProperty(type=bpy.types.Object)
bpy.types.Scene.sna_activeobject_name = bpy.props.StringProperty()
bpy.types.Scene.sna_render_resolution = bpy.props.EnumProperty(
name="Render Resolution",
description="Resolution for depth and normal map renders",
items=[
('1024', '1024 x 1024', ''),
('2048', '2048 x 2048', ''),
],
default='1024',
)
bpy.types.Scene.sna_rendered_images = bpy.props.CollectionProperty(
type=Comfy_RenderedImageItem,
)
bpy.types.Scene.sna_rendered_images_index = bpy.props.IntProperty(
name="Active Rendered Image Index",
default=0,
)
def unregister():
cleanup_preview_collections()
if hasattr(bpy.types.Scene, "sna_rendered_images_index"):
del bpy.types.Scene.sna_rendered_images_index
if hasattr(bpy.types.Scene, "sna_rendered_images"):
del bpy.types.Scene.sna_rendered_images
if hasattr(bpy.types.Scene, "sna_render_resolution"):
del bpy.types.Scene.sna_render_resolution
if hasattr(bpy.types.Scene, "sna_activeobject_name"):
del bpy.types.Scene.sna_activeobject_name
if hasattr(bpy.types.Scene, "sna_bakecam"):
del bpy.types.Scene.sna_bakecam
if hasattr(bpy.types.Scene, "sna_activeobject"):
del bpy.types.Scene.sna_activeobject
for cls in reversed(classes):
bpy.utils.unregister_class(cls)