def METHOD_NAME(creator_identifier, **kwargs):
    """Create a Creator using its identifier interactively.
    This is used by the generated shelf tools as callback when a user selects
    the creator from the node tab search menu.
    The `kwargs` should be what Houdini passes to the tool create scripts
    context. For more information see:
    https://www.sidefx.com/docs/houdini/hom/tool_script.html#arguments
    Args:
        creator_identifier (str): The creator identifier of the Creator plugin
            to create.
    Return:
        list: The created instances.
    """
    host = registered_host()
    context = CreateContext(host)
    creator = context.manual_creators.get(creator_identifier)
    if not creator:
        raise RuntimeError("Invalid creator identifier: {}".format(
            creator_identifier)
        )
    # TODO Use Qt instead
    result, variant = hou.ui.readInput(
        "Define variant name",
        buttons=("Ok", "Cancel"),
        initial_contents=creator.get_default_variant(),
        title="Define variant",
        help="Set the variant for the publish instance",
        close_choice=1
    )
    if result == 1:
        # User interrupted
        return
    variant = variant.strip()
    if not variant:
        raise RuntimeError("Empty variant value entered.")
    # TODO: Once more elaborate unique create behavior should exist per Creator
    #   instead of per network editor area then we should move this from here
    #   to a method on the Creators for which this could be the default
    #   implementation.
    pane = stateutils.activePane(kwargs)
    if isinstance(pane, hou.NetworkEditor):
        pwd = pane.pwd()
        subset_name = creator.get_subset_name(
            variant=variant,
            task_name=context.get_current_task_name(),
            asset_doc=get_asset_by_name(
                project_name=context.get_current_project_name(),
                asset_name=context.get_current_asset_name()
            ),
            project_name=context.get_current_project_name(),
            host_name=context.host_name
        )
        tool_fn = CATEGORY_GENERIC_TOOL.get(pwd.childTypeCategory())
        if tool_fn is not None:
            out_null = tool_fn(kwargs, "null")
            out_null.setName("OUT_{}".format(subset_name), unique_name=True)
    before = context.instances_by_id.copy()
    # Create the instance
    context.create(
        creator_identifier=creator_identifier,
        variant=variant,
        pre_create_data={"use_selection": True}
    )
    # For convenience we set the new node as current since that's much more
    # familiar to the artist when creating a node interactively
    # TODO Allow to disable auto-select in studio settings or user preferences
    after = context.instances_by_id
    new = set(after) - set(before)
    if new:
        # Select the new instance
        for instance_id in new:
            instance = after[instance_id]
            node = hou.node(instance.get("instance_node"))
            node.setCurrent(True)
    return list(new)