Is it possible to support HEIC format when using i...
# ask-for-help
z
Is it possible to support HEIC format when using image inputs? Usually this is done with
pillow_heif
and
register_heif_opener()
, but even when doing that, we are still getting:
Copy code
Traceback (most recent call last):
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/_bentoml_impl/server/app.py", line 640, in api_endpoint_wrapper
    resp = await self.api_endpoint(name, request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/_bentoml_impl/server/app.py", line 704, in api_endpoint
    input_data = await method.input_spec.from_http_request(request, serde)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/_bentoml_sdk/io_models.py", line 213, in from_http_request
    return await serde.parse_request(request, t.cast(t.Type[IODescriptor], cls))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/_bentoml_impl/serde.py", line 227, in parse_request
    return cls.model_validate(data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/pydantic/main.py", line 703, in model_validate
    return cls.__pydantic_validator__.validate_python(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/_bentoml_sdk/validators.py", line 70, in decode
    return PILImage.open(obj.file, formats=formats)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/PIL/Image.py", line 3551, in open
    im = _open_core(fp, filename, prefix, formats)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/zuyang/Documents/mlops/BentoML/ImageStagePredict/.venv/lib/python3.12/site-packages/PIL/Image.py", line 3533, in _open_core
    factory, accept = OPEN[i]
                      ~~~~^^^
KeyError: 'HEIC'
This is with
bentoml==1.4.13
j
Would you like to modify BentoML and raise a PR to support this?