code: def sigmoid_alpha_blend(
      colors, fragments, blend_params: BlendParams
  ) -> torch.Tensor:
      """
      Silhouette blending to return an RGBA image
        - **RGB** - choose color of the closest point.
        - **A** - blend based on the 2D distance based probability map [1].
  
      Args:
          colors: (N, H, W, K, 3) RGB color for each of the top K faces per pixel.
          fragments: the outputs of rasterization. From this we use
              - pix_to_face: LongTensor of shape (N, H, W, K) specifying the indices
                of the faces (in the packed representation) which
                overlap each pixel in the image.
              - dists: FloatTensor of shape (N, H, W, K) specifying
                the 2D euclidean distance from the center of each pixel
                to each of the top K overlapping faces.
  
      Returns:
          RGBA pixel_colors: (N, H, W, 4)
  
      [1] Liu et al, 'Soft Rasterizer: A Differentiable Renderer for Image-based
          3D Reasoning', ICCV 2019
      """
      N, H, W, K = fragments.pix_to_face.shape
      pixel_colors = torch.ones(
          (N, H, W, 4), dtype=colors.dtype, device=colors.device
      )
      pixel_colors[..., :3] = colors[..., 0, :]
      alpha = _sigmoid_alpha(
          fragments.dists, fragments.pix_to_face, blend_params.sigma
      )
      pixel_colors[..., 3] = alpha
      return pixel_colors
  
file_path: pytorch3d/pytorch3d/renderer/blending.py
imports: from typing import NamedTuple, Sequence, Union
  import torch
  from pytorch3d import _C
  from pytorch3d.common.datatypes import Device
label_desc: Use image node_id 3 for calling a global function with example usage: sigmoid_alpha_blend(colors, fragments, blend_params) and returns: pixel_colors