def METHOD_NAME():
    if len(_icon_collection):  # return if custom icons already loaded
        #print("Icons were already loaded?")
        return
    custom_icons = bpy.utils.previews.new()
    iconsDir = os.path.join(os.path.dirname(__file__), "icons")
    iconPattern = "sv_*.png"
    iconPath = os.path.join(iconsDir, iconPattern)
    iconFiles = [os.path.basename(x) for x in glob.glob(iconPath)]
    for iconFile in iconFiles:
        iconName = os.path.splitext(iconFile)[0]
        iconID = iconName.upper()
        preview = custom_icons.load(iconID, os.path.join(iconsDir, iconFile), "IMAGE")
        # there is a problem of loading images (at least in Blender 3.3.1 on Windows)
        # some images for some reason are not displayed in UI, though ImagePreviews
        # return some icon_id. Such problem can be detected by checking the
        # icon_pixels, but iterating over them right after registration of a preview
        # demolish the problem, but it has big impact on add-on loading performance
        # father investigations: icons are not loaded only in add node menu
        # probably because icons are switched to rapidly and Blender can't manage
        # to load them and memorize if they were loaded.
        # any(preview.icon_pixels)
        # print(f"{iconID} => {any(preview.icon_pixels)}")
    for provider in _icon_providers.values():
        provider.init(custom_icons)
    _icon_collection["main"] = custom_icons