user: Explain CompositorNodeCryptomatteV2(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeCryptomatteV2(CompositorNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`CompositorNode`](bpy.types.CompositorNode.html#bpy.types.CompositorNode "bpy.types.CompositorNode")

*class* bpy.types.CompositorNodeCryptomatteV2(*CompositorNode*)
:   Generate matte for individual objects and materials using Cryptomatte render passes

    add
    :   Add object or material to matte, by picking a color from the Pick output

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [-inf, inf], default (1.0, 1.0, 1.0)

    entries
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`CryptomatteEntry`](bpy.types.CryptomatteEntry.html#bpy.types.CryptomatteEntry "bpy.types.CryptomatteEntry"), (readonly)

    frame_duration
    :   Number of images of a movie to use

        Type:
        :   int in [0, 1048574], default 0

    frame_offset
    :   Offset the number of the frame to use in the animation

        Type:
        :   int in [-1048574, 1048574], default 0

    frame_start
    :   Global starting frame of the movie/sequence, assuming first picture has a #1

        Type:
        :   int in [-1048574, 1048574], default 0

    has_layers
    :   True if this image has any named layer

        Type:
        :   boolean, default False, (readonly)

    has_views
    :   True if this image has multiple views

        Type:
        :   boolean, default False, (readonly)

    image
    :   Type:
        :   [`Image`](bpy.types.Image.html#bpy.types.Image "bpy.types.Image")

    layer
    :   Type:
        :   enum in [`'PLACEHOLDER'`], default `'PLACEHOLDER'`

    layer_name
    :   What Cryptomatte layer is used

        - `CryptoObject`
          Object – Use Object layer.
        - `CryptoMaterial`
          Material – Use Material layer.
        - `CryptoAsset`
          Asset – Use Asset layer.

        Type:
        :   enum in [`'CryptoObject'`, `'CryptoMaterial'`, `'CryptoAsset'`], default `'CryptoObject'`

    matte_id
    :   List of object and material crypto IDs to include in matte

        Type:
        :   string, default “”, (never None)

    remove
    :   Remove object or material from matte, by picking a color from the Pick output

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [-inf, inf], default (1.0, 1.0, 1.0)

    scene
    :   Type:
        :   [`Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")

    source
    :   Where the Cryptomatte passes are loaded from

        - `RENDER`
          Render – Use Cryptomatte passes from a render.
        - `IMAGE`
          Image – Use Cryptomatte passes from an image.

        Type:
        :   enum in [`'RENDER'`, `'IMAGE'`], default `'RENDER'`

    use_auto_refresh
    :   Always refresh image on frame changes

        Type:
        :   boolean, default False

    use_cyclic
    :   Cycle the images in the movie

        Type:
        :   boolean, default False

    view
    :   Type:
        :   enum in [`'ALL'`], default `'ALL'`

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    update()

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type