Unverified Commit 52683ccb authored by Cyrus Leung's avatar Cyrus Leung Committed by GitHub
Browse files

[Misc] Update default image format of `encode_base64` (#33656)


Signed-off-by: default avatarDarkLight1337 <tlleungac@connect.ust.hk>
parent e346e2d0
...@@ -8,13 +8,11 @@ import pybase64 ...@@ -8,13 +8,11 @@ import pybase64
import torch import torch
from PIL import Image from PIL import Image
from vllm.logger import init_logger from vllm.utils.serial_utils import tensor2base64
from ..image import convert_image_mode, rgba_to_rgb from ..image import convert_image_mode, rgba_to_rgb
from .base import MediaIO, MediaWithBytes from .base import MediaIO, MediaWithBytes
logger = init_logger(__file__)
class ImageMediaIO(MediaIO[Image.Image]): class ImageMediaIO(MediaIO[Image.Image]):
def __init__(self, image_mode: str = "RGB", **kwargs) -> None: def __init__(self, image_mode: str = "RGB", **kwargs) -> None:
...@@ -77,17 +75,8 @@ class ImageMediaIO(MediaIO[Image.Image]): ...@@ -77,17 +75,8 @@ class ImageMediaIO(MediaIO[Image.Image]):
self, self,
media: Image.Image, media: Image.Image,
*, *,
image_format: str | None = None, image_format: str = "PNG",
) -> str: ) -> str:
if image_format is None:
logger.warning_once(
"The default format of `ImageMediaIO.encode_base64` will be changed "
'from "JPEG" to "PNG" in v0.15 to avoid lossy compression. '
"To continue using the old default, "
'pass `format="JPEG"` explicitly to silence this warning.'
)
image_format = "JPEG"
image = media image = media
with BytesIO() as buffer: with BytesIO() as buffer:
...@@ -121,4 +110,4 @@ class ImageEmbeddingMediaIO(MediaIO[torch.Tensor]): ...@@ -121,4 +110,4 @@ class ImageEmbeddingMediaIO(MediaIO[torch.Tensor]):
return tensor.to_dense() return tensor.to_dense()
def encode_base64(self, media: torch.Tensor) -> str: def encode_base64(self, media: torch.Tensor) -> str:
return pybase64.b64encode(media.numpy()).decode("utf-8") return tensor2base64(media)
...@@ -11,7 +11,6 @@ import numpy as np ...@@ -11,7 +11,6 @@ import numpy as np
import numpy.typing as npt import numpy.typing as npt
from PIL import Image from PIL import Image
from vllm.logger import init_logger
from vllm.utils.import_utils import LazyLoader from vllm.utils.import_utils import LazyLoader
from .inputs import ( from .inputs import (
...@@ -27,8 +26,6 @@ if TYPE_CHECKING: ...@@ -27,8 +26,6 @@ if TYPE_CHECKING:
else: else:
torch = LazyLoader("torch", globals(), "torch") torch = LazyLoader("torch", globals(), "torch")
logger = init_logger(__name__)
def __getattr__(name: str): def __getattr__(name: str):
if name == "MEDIA_CONNECTOR_REGISTRY": if name == "MEDIA_CONNECTOR_REGISTRY":
...@@ -74,7 +71,7 @@ def encode_image_base64( ...@@ -74,7 +71,7 @@ def encode_image_base64(
image: Image.Image, image: Image.Image,
*, *,
image_mode: str = "RGB", image_mode: str = "RGB",
format: str | None = None, format: str = "PNG",
) -> str: ) -> str:
""" """
Encode a pillow image to base64 format. Encode a pillow image to base64 format.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment