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: Generate an image based on a given text using a specified model.
  
  <Tip warning={true}>
  
  You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
  </Tip>
  
  Args:
      prompt (`str`):
          The prompt to generate an image from.
      negative_prompt (`str`, *optional*):
          An optional negative prompt for the image generation.
      height (`float`, *optional*):
          The height in pixels of the image to generate.
      width (`float`, *optional*):
          The width in pixels of the image to generate.
      num_inference_steps (`int`, *optional*):
          The number of denoising steps. More denoising steps usually lead to a higher quality image at the
          expense of slower inference.
      guidance_scale (`float`, *optional*):
          Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
          usually at the expense of lower image quality.
      model (`str`, *optional*):
          The model to use for inference. Can be a model ID hosted on the Hugging Face Hub or a URL to a deployed
          Inference Endpoint. This parameter overrides the model defined at the instance level. Defaults to None.
  
  Returns:
      `Image`: The generated image.
  
  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()
  
  >>> image = client.text_to_image("An astronaut riding a horse on the moon.")
  >>> image.save("astronaut.png")
  
  >>> image = client.text_to_image(
  ...     "An astronaut riding a horse on the moon.",
  ...     negative_prompt="low resolution, blurry",
  ...     model="stabilityai/stable-diffusion-2-1",
  ... )
  >>> image.save("better_astronaut.png")
  ```
docstr_tok: ["Generate","an","image","based","on","a","given","text","using","a","specified","model",".","<","Tip","warning=","{","true","}",">","You","must","have","`","PIL","`","installed","if","you","want","to","work","with","images","(","`","pip","install","Pillow","`",")",".","<","\/Tip",">","Args",":","prompt","(","`","str","`",")",":","The","prompt","to","generate","an","image","from",".","negative_prompt","(","`","str","`",",","*","optional","*",")",":","An","optional","negative","prompt","for","the","image","generation",".","height","(","`","float","`",",","*","optional","*",")",":","The","height","in","pixels","of","the","image","to","generate",".","width","(","`","float","`",",","*","optional","*",")",":","The","width","in","pixels","of","the","image","to","generate",".","num_inference_steps","(","`","int","`",",","*","optional","*",")",":","The","number","of","denoising","steps",".","More","denoising","steps","usually","lead","to","a","higher","quality","image","at","the","expense","of","slower","inference",".","guidance_scale","(","`","float","`",",","*","optional","*",")",":","Higher","guidance","scale","encourages","to","generate","images","that","are","closely","linked","to","the","text","`","prompt","`",",","usually","at","the","expense","of","lower","image","quality",".","model","(","`","str","`",",","*","optional","*",")",":","The","model","to","use","for","inference",".","Can","be","a","model","ID","hosted","on","the","Hugging","Face","Hub","or","a","URL","to","a","deployed","Inference","Endpoint",".","This","parameter","overrides","the","model","defined","at","the","instance","level",".","Defaults","to","None",".","Returns",":","`","Image","`",":","The","generated","image",".","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","(",")",">",">",">","image","=","client.text_to_image","(","``","An","astronaut","riding","a","horse","on","the","moon",".","''",")",">",">",">","image.save","(","``","astronaut.png","''",")",">",">",">","image","=","client.text_to_image","(","...","``","An","astronaut","riding","a","horse","on","the","moon",".","``",",","...","negative_prompt=","''","low","resolution",",","blurry","''",",","...","model=","''","stabilityai\/stable-diffusion-2-1","''",",","...",")",">",">",">","image.save","(","``","better_astronaut.png","''",")","``","`"]
code: def text_to_image(
      self,
      prompt: str,
      *,
      negative_prompt: Optional[str] = None,
      height: Optional[float] = None,
      width: Optional[float] = None,
      num_inference_steps: Optional[float] = None,
      guidance_scale: Optional[float] = None,
      model: Optional[str] = None,
      **kwargs,
  ) -> "Image":
      """
      Generate an image based on a given text using a specified model.
  
      <Tip warning={true}>
  
      You must have `PIL` installed if you want to work with images (`pip install Pillow`).
  
      </Tip>
  
      Args:
          prompt (`str`):
              The prompt to generate an image from.
          negative_prompt (`str`, *optional*):
              An optional negative prompt for the image generation.
          height (`float`, *optional*):
              The height in pixels of the image to generate.
          width (`float`, *optional*):
              The width in pixels of the image to generate.
          num_inference_steps (`int`, *optional*):
              The number of denoising steps. More denoising steps usually lead to a higher quality image at the
              expense of slower inference.
          guidance_scale (`float`, *optional*):
              Higher guidance scale encourages to generate images that are closely linked to the text `prompt`,
              usually at the expense of lower image quality.
          model (`str`, *optional*):
              The model to use for inference. Can be a model ID hosted on the Hugging Face Hub or a URL to a deployed
              Inference Endpoint. This parameter overrides the model defined at the instance level. Defaults to None.
  
      Returns:
          `Image`: The generated image.
  
      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()
  
      >>> image = client.text_to_image("An astronaut riding a horse on the moon.")
      >>> image.save("astronaut.png")
  
      >>> image = client.text_to_image(
      ...     "An astronaut riding a horse on the moon.",
      ...     negative_prompt="low resolution, blurry",
      ...     model="stabilityai/stable-diffusion-2-1",
      ... )
      >>> image.save("better_astronaut.png")
      ```
      """
      payload = {"inputs": prompt}
      parameters = {
          "negative_prompt": negative_prompt,
          "height": height,
          "width": width,
          "num_inference_steps": num_inference_steps,
          "guidance_scale": guidance_scale,
          **kwargs,
      }
      for key, value in parameters.items():
          if value is not None:
              payload.setdefault("parameters", {})[key] = value  # type: ignore
      response = self.post(
          json=payload, model=model, task="text-to-image"
      )
      return _bytes_to_image(response)
  
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 31 for calling the InferenceClient obj's underlying member method code with example usage: obj.text_to_image(prompt) and returns: _bytes_to_image