Skip to content

Commit 4902f3e

Browse files
fix(xai): use ImageUrl struct format for image edits (withceleste#129)
xAI API expects {"image": {"url": "..."}} not a raw string. Supports both URL and data URI (for base64 images). Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 0ca70d0 commit 4902f3e

File tree

1 file changed

+5
-3
lines changed
  • src/celeste/modalities/images/providers/xai

1 file changed

+5
-3
lines changed

src/celeste/modalities/images/providers/xai/client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,13 @@ def _init_request(self, inputs: ImageInput) -> dict[str, Any]:
2929
"""Initialize request from inputs."""
3030
request: dict[str, Any] = {"prompt": inputs.prompt}
3131
if inputs.image is not None:
32-
# xAI accepts URL or base64 string
32+
# xAI expects {"image": {"url": "..."}} with URL or data URI
3333
if inputs.image.url:
34-
request["image"] = inputs.image.url
34+
request["image"] = {"url": inputs.image.url}
3535
else:
36-
request["image"] = inputs.image.get_base64()
36+
mime_type = inputs.image.mime_type
37+
base64_data = inputs.image.get_base64()
38+
request["image"] = {"url": f"data:{mime_type};base64,{base64_data}"}
3739
return request
3840

3941
async def generate(

0 commit comments

Comments
 (0)