From eeb37cf1f25e8238289bba7108be1fe525c9f9de Mon Sep 17 00:00:00 2001 From: kamilbenkirane Date: Thu, 20 Nov 2025 16:57:13 +0100 Subject: [PATCH] Add Gemini 3 Pro Image Preview model support and bump versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add gemini-3-pro-image-preview model with aspect_ratio and quality parameters - Support high-resolution outputs (1K, 2K, 4K) via quality parameter - Add reasoning_tokens field to ImageGenerationUsage for thoughts/reasoning token counts - Update GeminiImageAPIAdapter to parse thoughtsTokenCount from API response - Bump celeste-image-generation version: 0.2.8 → 0.2.9 - Bump celeste-ai version: 0.2.9 → 0.2.10 - Update dependency references --- packages/image-generation/pyproject.toml | 2 +- .../src/celeste_image_generation/io.py | 1 + .../providers/google/gemini_api.py | 1 + .../providers/google/models.py | 22 +++++++++++++++++++ pyproject.toml | 6 ++--- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/packages/image-generation/pyproject.toml b/packages/image-generation/pyproject.toml index 851a446..468c28a 100644 --- a/packages/image-generation/pyproject.toml +++ b/packages/image-generation/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "celeste-image-generation" -version = "0.2.8" +version = "0.2.9" description = "Image generation package for Celeste AI. Unified interface for all providers" authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}] readme = "README.md" diff --git a/packages/image-generation/src/celeste_image_generation/io.py b/packages/image-generation/src/celeste_image_generation/io.py index b1ee777..a110b55 100644 --- a/packages/image-generation/src/celeste_image_generation/io.py +++ b/packages/image-generation/src/celeste_image_generation/io.py @@ -29,6 +29,7 @@ class ImageGenerationUsage(Usage): total_tokens: int | None = None input_tokens: int | None = None output_tokens: int | None = None + reasoning_tokens: int | None = None generated_images: int | None = None diff --git a/packages/image-generation/src/celeste_image_generation/providers/google/gemini_api.py b/packages/image-generation/src/celeste_image_generation/providers/google/gemini_api.py index 3011578..2b371de 100644 --- a/packages/image-generation/src/celeste_image_generation/providers/google/gemini_api.py +++ b/packages/image-generation/src/celeste_image_generation/providers/google/gemini_api.py @@ -70,6 +70,7 @@ def parse_usage(self, response_data: dict[str, Any]) -> ImageGenerationUsage: input_tokens=usage_metadata.get("promptTokenCount"), output_tokens=usage_metadata.get("candidatesTokenCount"), total_tokens=usage_metadata.get("totalTokenCount"), + reasoning_tokens=usage_metadata.get("thoughtsTokenCount"), generated_images=len(candidates), ) diff --git a/packages/image-generation/src/celeste_image_generation/providers/google/models.py b/packages/image-generation/src/celeste_image_generation/providers/google/models.py index 5cf45b1..f3e596b 100644 --- a/packages/image-generation/src/celeste_image_generation/providers/google/models.py +++ b/packages/image-generation/src/celeste_image_generation/providers/google/models.py @@ -77,6 +77,28 @@ ), }, ), + Model( + id="gemini-3-pro-image-preview", + provider=Provider.GOOGLE, + display_name="Gemini 3 Pro Image (Preview)", + parameter_constraints={ + ImageGenerationParameter.ASPECT_RATIO: Choice( + options=[ + "1:1", + "2:3", + "3:2", + "3:4", + "4:3", + "4:5", + "5:4", + "9:16", + "16:9", + "21:9", + ] + ), + ImageGenerationParameter.QUALITY: Choice(options=["1K", "2K", "4K"]), + }, + ), ] # Unified model list for registration diff --git a/pyproject.toml b/pyproject.toml index b4c423c..c7a473a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "celeste-ai" -version = "0.2.9" +version = "0.2.10" description = "Open source, type-safe primitives for multi-modal AI. All capabilities, all providers, one interface" authors = [{name = "Kamilbenkirane", email = "kamil@withceleste.ai"}] readme = "README.md" @@ -34,11 +34,11 @@ Issues = "https://github.com/withceleste/celeste-python/issues" [project.optional-dependencies] text-generation = ["celeste-text-generation>=0.2.9"] -image-generation = ["celeste-image-generation>=0.2.8"] +image-generation = ["celeste-image-generation>=0.2.9"] video-generation = ["celeste-video-generation>=0.2.8"] all = [ "celeste-text-generation>=0.2.9", - "celeste-image-generation>=0.2.8", + "celeste-image-generation>=0.2.9", "celeste-video-generation>=0.2.8", ]