def create_prompt_ensemble(class_name: str = "object") -> tuple[list[str], list[str]]:
    """Create prompt ensemble for WinCLIP model.

    This function generates a comprehensive set of text prompts used by the WinCLIP model for
    zero-shot anomaly detection. It creates two sets of prompts:

    1. Normal prompts describing non-anomalous objects
    2. Anomalous prompts describing objects with defects

    The prompts are generated by combining predefined states (e.g., "flawless", "damaged")
    with templates (e.g., "a photo of a {}") for the given object class.

    Args:
        class_name (str, optional): Name of the object class to use in the prompts.
            Defaults to ``"object"``.

    Returns:
        tuple[list[str], list[str]]: A tuple containing:
            - List of normal prompts describing non-anomalous objects
            - List of anomalous prompts describing defective objects

    Example:
        Generate prompts for the "bottle" class:

        >>> normal_prompts, anomalous_prompts = create_prompt_ensemble("bottle")
        >>> print(normal_prompts[0])
        'a cropped photo of the bottle.'
        >>> print(anomalous_prompts[0])
        'a cropped photo of the damaged bottle.'

    See Also:
        - :data:`NORMAL_STATES`: Predefined states for normal objects
        - :data:`ANOMALOUS_STATES`: Predefined states for anomalous objects
        - :data:`TEMPLATES`: Predefined templates for prompt generation
    """
    normal_states = [state.format(class_name) for state in NORMAL_STATES]
    normal_ensemble = [template.format(state) for state in normal_states for template in TEMPLATES]

    anomalous_states = [state.format(class_name) for state in ANOMALOUS_STATES]
    anomalous_ensemble = [template.format(state) for state in anomalous_states for template in TEMPLATES]
    return normal_ensemble, anomalous_ensemble
Create prompt ensemble for WinCLIP model.

    This function generates a comprehensive set of text prompts used by the WinCLIP model for
    zero-shot anomaly detection. It creates two sets of prompts:

    1. Normal prompts describing non-anomalous objects
    2. Anomalous prompts describing objects with defects

    The prompts are generated by combining predefined states (e.g., "flawless", "damaged")
    with templates (e.g., "a photo of a {}") for the given object class.

    Args:
        class_name (str, optional): Name of the object class to use in the prompts.
            Defaults to ``"object"``.

    Returns:
        tuple[list[str], list[str]]: A tuple containing:
            - List of normal prompts describing non-anomalous objects
            - List of anomalous prompts describing defective objects

    Example:
        Generate prompts for the "bottle" class:

        >>> normal_prompts, anomalous_prompts = create_prompt_ensemble("bottle")
        >>> print(normal_prompts[0])
        'a cropped photo of the bottle.'
        >>> print(anomalous_prompts[0])
        'a cropped photo of the damaged bottle.'

    See Also:
        - :data:`NORMAL_STATES`: Predefined states for normal objects
        - :data:`ANOMALOUS_STATES`: Predefined states for anomalous objects
        - :data:`TEMPLATES`: Predefined templates for prompt generation
    
src/anomalib/models/image/winclip/prompting.py