To model the output JSON structure for the given code, we need to consider the structure of the ImageEncodingResult dataclass and how it is serialized into a dictionary. The ImageEncodingResult dataclass contains two fields: image_encoded and image_encoded_average. When the results are returned, they are converted into a list of dictionaries, where each dictionary represents the serialized form of an ImageEncodingResult object.

Here is the expected JSON structure for the output:

{
  "results": [
    {
      "image_encoded": [
        [float, float, ...],  // List of lists of floats representing the full encoded embeddings
        [float, float, ...],
        ...
      ],
      "image_encoded_average": [float, float, ...]  // List of floats representing the average of the embeddings
    },
    {
      "image_encoded": [
        [float, float, ...],
        [float, float, ...],
        ...
      ],
      "image_encoded_average": [float, float, ...]
    },
    ...
  ]
}

Explanation:

  • results: This is a list where each element corresponds to the encoding result of an image.
    • image_encoded: A list of lists of floats. Each inner list represents the full encoded embeddings for a specific part of the image (e.g., patches or regions).
    • image_encoded_average: A list of floats representing the average of the embeddings across all parts of the image.

Example Output:

Here is an example of what the output might look like for two images:

{
  "results": [
    {
      "image_encoded": [
        [0.12, 0.34, 0.56, ...],
        [0.23, 0.45, 0.67, ...],
        ...
      ],
      "image_encoded_average": [0.18, 0.39, 0.61, ...]
    },
    {
      "image_encoded": [
        [0.45, 0.67, 0.89, ...],
        [0.56, 0.78, 0.90, ...],
        ...
      ],
      "image_encoded_average": [0.50, 0.72, 0.89, ...]
    }
  ]
}

Error Handling:

If there is an error during processing (e.g., invalid image data), the output will instead look like this:

{
  "error": "Invalid image data: <error_message>"
}
Downloads last month
68
Safetensors
Model size
309M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported third-party Inference Providers, and HF Inference API was unable to determine this model's library.