class_docstr: Initialize a new Inference Client.
  
  [`InferenceClient`] aims to provide a unified experience to perform inference. The client can be used
  seamlessly with either the (free) Inference API or self-hosted Inference Endpoints.
  
  Args:
      model (`str`, `optional`):
          The model to run inference with. Can be a model id hosted on the Hugging Face Hub, e.g. `bigcode/starcoder`
          or a URL to a deployed Inference Endpoint. Defaults to None, in which case a recommended model is
          automatically selected for the task.
      token (`str`, *optional*):
          Hugging Face token. Will default to the locally saved token. Pass `token=False` if you don't want to send
          your token to the server.
      timeout (`float`, `optional`):
          The maximum number of seconds to wait for a response from the server. Loading a new model in Inference
          API can take up to several minutes. Defaults to None, meaning it will loop until the server is available.
      headers (`Dict[str, str]`, `optional`):
          Additional headers to send to the server. By default only the authorization and user-agent headers are sent.
          Values in this dictionary will override the default values.
      cookies (`Dict[str, str]`, `optional`):
          Additional cookies to send to the server.
docstr: Perform image segmentation on the given image using the specified model.
  
  <Tip warning={true}>
  
  You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
  </Tip>
  
  Args:
      image (`Union[str, Path, bytes, BinaryIO]`):
          The image to segment. It can be raw bytes, an image file, or a URL to an online image.
      model (`str`, *optional*):
          The model to use for image segmentation. Can be a model ID hosted on the Hugging Face Hub or a URL to a
          deployed Inference Endpoint. If not provided, the default recommended model for image segmentation will be used.
  
  Returns:
      `List[Dict]`: A list of dictionaries containing the segmented masks and associated attributes.
  
  Raises:
      [`InferenceTimeoutError`]:
          If the model is unavailable or the request times out.
      `HTTPError`:
          If the request fails with an HTTP error status code other than HTTP 503.
  
  Example:
  ```py
  >>> from huggingface_hub import InferenceClient
  >>> client = InferenceClient()
  >>> client.image_segmentation("cat.jpg"):
  [{'score': 0.989008, 'label': 'LABEL_184', 'mask': <PIL.PngImagePlugin.PngImageFile image mode=L size=400x300 at 0x7FDD2B129CC0>}, ...]
  ```
docstr_tok: ["Perform","image","segmentation","on","the","given","image","using","the","specified","model",".","<","Tip","warning=","{","true","}",">","You","must","have","`","PIL","`","installed","if","you","want","to","work","with","images","(","`","pip","install","Pillow","`",")",".","<","\/Tip",">","Args",":","image","(","`","Union","[","str",",","Path",",","bytes",",","BinaryIO","]","`",")",":","The","image","to","segment",".","It","can","be","raw","bytes",",","an","image","file",",","or","a","URL","to","an","online","image",".","model","(","`","str","`",",","*","optional","*",")",":","The","model","to","use","for","image","segmentation",".","Can","be","a","model","ID","hosted","on","the","Hugging","Face","Hub","or","a","URL","to","a","deployed","Inference","Endpoint",".","If","not","provided",",","the","default","recommended","model","for","image","segmentation","will","be","used",".","Returns",":","`","List","[","Dict","]","`",":","A","list","of","dictionaries","containing","the","segmented","masks","and","associated","attributes",".","Raises",":","[","`","InferenceTimeoutError","`","]",":","If","the","model","is","unavailable","or","the","request","times","out",".","`","HTTPError","`",":","If","the","request","fails","with","an","HTTP","error","status","code","other","than","HTTP","503",".","Example",":","``","`","py",">",">",">","from","huggingface_hub","import","InferenceClient",">",">",">","client","=","InferenceClient","(",")",">",">",">","client.image_segmentation","(","``","cat.jpg","''",")",":","[","{","'score","'",":","0.989008",",","'label","'",":","'LABEL_184","'",",","'mask","'",":","<","PIL.PngImagePlugin.PngImageFile","image","mode=L","size=400x300","at","0x7FDD2B129CC0",">","}",",","...","]","``","`"]
code: def image_segmentation(
      self,
      image: ContentT,
      *,
      model: Optional[str] = None,
  ) -> List[ImageSegmentationOutput]:
      """
      Perform image segmentation on the given image using the specified model.
  
      <Tip warning={true}>
  
      You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
      </Tip>
  
      Args:
          image (`Union[str, Path, bytes, BinaryIO]`):
              The image to segment. It can be raw bytes, an image file, or a URL to an online image.
          model (`str`, *optional*):
              The model to use for image segmentation. Can be a model ID hosted on the Hugging Face Hub or a URL to a
              deployed Inference Endpoint. If not provided, the default recommended model for image segmentation will be used.
  
      Returns:
          `List[Dict]`: A list of dictionaries containing the segmented masks and associated attributes.
  
      Raises:
          [`InferenceTimeoutError`]:
              If the model is unavailable or the request times out.
          `HTTPError`:
              If the request fails with an HTTP error status code other than HTTP 503.
  
      Example:
      ```py
      >>> from huggingface_hub import InferenceClient
      >>> client = InferenceClient()
      >>> client.image_segmentation("cat.jpg"):
      [{'score': 0.989008, 'label': 'LABEL_184', 'mask': <PIL.PngImagePlugin.PngImageFile image mode=L size=400x300 at 0x7FDD2B129CC0>}, ...]
      ```
      """
  
      # Segment
      response = self.post(
          data=image, model=model, task="image-segmentation"
      )
      output = _bytes_to_dict(response)
  
      # Parse masks as PIL Image
      if not isinstance(output, list):
          raise ValueError(
              f"Server output must be a list. Got {type(output)}: {str(output)[:200]}..."
          )
      for item in output:
          item["mask"] = _b64_to_image(item["mask"])
      return output
  
imports: import logging
  import time
  import warnings
  from dataclasses import asdict
  from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Literal, Optional, Union, overload
  from requests import HTTPError
  from requests.structures import CaseInsensitiveDict
  from huggingface_hub.constants import ALL_INFERENCE_API_FRAMEWORKS, INFERENCE_ENDPOINT, MAIN_INFERENCE_API_FRAMEWORKS
  from huggingface_hub.inference._common import TASKS_EXPECTING_IMAGES, ContentT, InferenceTimeoutError, ModelStatus, _b64_encode, _b64_to_image, _bytes_to_dict, _bytes_to_image, _bytes_to_list, _fetch_recommended_models, _import_numpy, _is_tgi_server, _open_as_binary, _set_as_non_tgi, _stream_text_generation_response
  from huggingface_hub.inference._text_generation import TextGenerationParameters, TextGenerationRequest, TextGenerationResponse, TextGenerationStreamResponse, raise_text_generation_error
  from huggingface_hub.inference._types import ClassificationOutput, ConversationalOutput, FillMaskOutput, ImageSegmentationOutput, ObjectDetectionOutput, QuestionAnsweringOutput, TableQuestionAnsweringOutput, TokenClassificationOutput
  from huggingface_hub.utils import BadRequestError, build_hf_headers, get_session, hf_raise_for_status
label_desc: Use image node_id 14 for calling the InferenceClient obj's underlying member method code with example usage: obj.image_segmentation(image) and returns: output