Skip to content

Commit efaa574

Browse files
matthew29tangcopybara-github
authored andcommitted
fix: Fix validation for image_config
PiperOrigin-RevId: 814362301
1 parent 53e7bd8 commit efaa574

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

google/genai/tests/models/test_generate_content_image_generation.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
pytest_helper.TestTableItem(
2828
name='test_image_generation_config',
2929
parameters=types._GenerateContentParameters(
30-
model='gemini-2.5-flash-image-preview',
30+
model='gemini-2.5-flash-image',
3131
contents=t.t_contents('A photorealistic red apple on a table.'),
3232
config=types.GenerateContentConfig(
3333
response_modalities=["IMAGE"],
@@ -40,16 +40,27 @@
4040
pytest_helper.TestTableItem(
4141
name='test_image_generation_filtered',
4242
parameters=types._GenerateContentParameters(
43-
model='gemini-2.5-flash-image-preview',
43+
model='gemini-2.5-flash-image',
4444
contents=t.t_contents('Make a zombie anime style'),
4545
config=types.GenerateContentConfig(
46-
response_modalities=["IMAGE"],
46+
response_modalities=['IMAGE'],
4747
image_config=types.ImageConfig(
4848
aspect_ratio='16:9',
4949
)
5050
),
5151
),
5252
),
53+
pytest_helper.TestTableItem(
54+
name='test_image_generation_config_validation_none',
55+
parameters=types._GenerateContentParameters(
56+
model='gemini-2.5-flash-image',
57+
contents=t.t_contents('A photorealistic red apple on a table.'),
58+
config=types.GenerateContentConfig(
59+
response_modalities=['IMAGE'],
60+
image_config=None
61+
),
62+
),
63+
),
5364
]
5465

5566

@@ -64,7 +75,7 @@
6475
def test_image_generation_wrong_config(client):
6576
with pytest.raises(pydantic.ValidationError):
6677
client.models.generate_content(
67-
model='gemini-2.5-flash-image-preview',
78+
model='gemini-2.5-flash-image',
6879
contents=t.t_contents('A photorealistic red apple on a table.'),
6980
config=types.GenerateContentConfig(
7081
response_modalities=["IMAGE"],
@@ -74,3 +85,16 @@ def test_image_generation_wrong_config(client):
7485
)
7586
),
7687
)
88+
89+
90+
def test_image_generation_validation_model_dump(client):
91+
config = types.GenerateContentConfig(
92+
response_modalities=['IMAGE'],
93+
)
94+
95+
class Foo(pydantic.BaseModel):
96+
value: types.GenerateContentConfig
97+
98+
f = Foo(value=config)
99+
in_memory = f.model_dump(mode='json')
100+
Foo.model_validate(in_memory)

google/genai/types.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4320,8 +4320,10 @@ def _convert_literal_to_enum(cls, value: Any) -> Union[Any, EnumMeta]:
43204320
@pydantic.field_validator('image_config', mode='before')
43214321
@classmethod
43224322
def _check_image_config_type(cls, value: Any) -> Any:
4323-
if not isinstance(value, ImageConfig):
4324-
raise ValueError('image_config must be an instance of ImageConfig.')
4323+
if isinstance(value, GenerateImagesConfig):
4324+
raise ValueError(
4325+
'image_config must be an instance of ImageConfig or compatible dict.'
4326+
)
43254327
return value
43264328

43274329

0 commit comments

Comments
 (0)