@@ -151,5 +151,44 @@ async def test__transform_request_body_image_config():
151151
152152 rb : RequestBody = transformation ._transform_request_body (** transform_request_params )
153153
154- assert "imageConfig" in rb
155- assert rb ["imageConfig" ] == {"aspectRatio" : "16:9" }
154+ assert "generationConfig" in rb
155+ assert "imageConfig" in rb ["generationConfig" ]
156+ assert rb ["generationConfig" ]["imageConfig" ] == {"aspectRatio" : "16:9" }
157+
158+
159+ @pytest .mark .asyncio
160+ async def test__transform_request_body_image_config_snake_case ():
161+ """
162+ Test that Vertex AI Gemini supports the image_config parameter (snake_case) for gemini-2.5-flash-image model.
163+ This should be transformed to imageConfig with aspectRatio.
164+ """
165+ model = "gemini-2.5-flash-image"
166+ messages = [
167+ {
168+ "role" : "user" ,
169+ "content" : [
170+ {
171+ "type" : "text" ,
172+ "text" : "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"
173+ }
174+ ]
175+ }
176+ ]
177+ optional_params = {
178+ "image_config" : {"aspect_ratio" : "16:9" }
179+ }
180+ litellm_params = {}
181+ transform_request_params = {
182+ "messages" : messages ,
183+ "model" : model ,
184+ "optional_params" : optional_params ,
185+ "custom_llm_provider" : "gemini" ,
186+ "litellm_params" : litellm_params ,
187+ "cached_content" : None ,
188+ }
189+
190+ rb : RequestBody = transformation ._transform_request_body (** transform_request_params )
191+
192+ assert "generationConfig" in rb
193+ assert "image_config" in rb ["generationConfig" ]
194+ assert rb ["generationConfig" ]["image_config" ] == {"aspect_ratio" : "16:9" }
0 commit comments