diff --git a/src/celeste/modalities/images/providers/xai/client.py b/src/celeste/modalities/images/providers/xai/client.py index 31e16882..66c19ebc 100644 --- a/src/celeste/modalities/images/providers/xai/client.py +++ b/src/celeste/modalities/images/providers/xai/client.py @@ -29,11 +29,13 @@ def _init_request(self, inputs: ImageInput) -> dict[str, Any]: """Initialize request from inputs.""" request: dict[str, Any] = {"prompt": inputs.prompt} if inputs.image is not None: - # xAI accepts URL or base64 string + # xAI expects {"image": {"url": "..."}} with URL or data URI if inputs.image.url: - request["image"] = inputs.image.url + request["image"] = {"url": inputs.image.url} else: - request["image"] = inputs.image.get_base64() + mime_type = inputs.image.mime_type + base64_data = inputs.image.get_base64() + request["image"] = {"url": f"data:{mime_type};base64,{base64_data}"} return request async def generate(