# ---------------------------------------------------------- # File __init__.py # ---------------------------------------------------------- # Imports # Check if this add-on is being reloaded if "bpy" in locals(): # reloading .py files import bpy import importlib # from . import zs_renderscene as zsrs # importlib.reload(zsrs) # or if this is the first load of this add-on else: import bpy import json from pathlib import Path # from . import zs_renderscene as zsrs # noqa # Addon info bl_info = { "name": "ZS Stable Diffusion Connection V0.0.1", "author": "Sergiu ", "Version": (0, 0, 1), "blender": (4, 00, 0), "category": "Scene", "description": "Stable Diffusion Connection", } # ------------------------------------------------------------------- # Functions # ------------------------------------------------------------------- def load_scene(): print("Loading Scene") # load scene data # append products # append elements # append shapes # set lighting # set camera def append_objects(): print("Appending Objects") # append objects # set transforms # ------------------------------------------------------------------- # Operators # ------------------------------------------------------------------- # load scene operator class ZSSD_OT_LoadScene(bpy.types.Operator): bl_idname = "zs_sd_loader.load_scene" bl_label = "Load Scene" bl_description = "Load Scene" def execute(self, context): load_scene() return {"FINISHED"} # parent class for panels class ZSSDPanel: bl_space_type = "VIEW_3D" bl_region_type = "UI" bl_category = "ZS SD Loader" # ------------------------------------------------------------------- # Draw # ------------------------------------------------------------------- # Panels class ZSSD_PT_Main(ZSSDPanel, bpy.types.Panel): bl_label = "SD Loader" def draw(self, context): layout = self.layout scene = context.scene col = layout.column() self.is_connected = False col.label(text="Stable Diffusion Connection") # load scene button col.operator("zs_sd_loader.load_scene", text="Load Scene") # modify after making products blender_classes = [ ZSSD_PT_Main, ] def register(): # register classes for blender_class in blender_classes: bpy.utils.register_class(blender_class) # Has to be afqter class registering to correctly register property # register global properties # register list # list data # bpy.types.Scene.zs_product_list = bpy.props.CollectionProperty( # type=ZS_Product_ListItem) # current item in list def unregister(): # unregister classes for blender_class in blender_classes: bpy.utils.unregister_class(blender_class) # unregister global properties # unregister list items # del bpy.types.Scene.my_list # del bpy.types.Scene.product_product_list_index