@@ -78,18 +78,18 @@ agent = Agent(model, model_settings=settings)
7878
7979You can use OpenRouter models that support image generation with the ` openrouter_modalities ` setting:
8080
81- ``` python
81+ ``` python {test="skip"}
8282from pydantic_ai import Agent, BinaryImage
83- from pydantic_ai.models.openrouter import OpenRouterModel, OpenRouterModelSettings
83+ from pydantic_ai.models.openrouter import OpenRouterModelSettings
8484
85- settings = OpenRouterModelSettings(
86- openrouter_modalities = [' image' , ' text' ]
85+ agent = Agent(
86+ model = ' openrouter:google/gemini-2.5-flash-image-preview' ,
87+ output_type = str | BinaryImage,
88+ model_settings = OpenRouterModelSettings(openrouter_modalities = [' image' , ' text' ]),
8789)
88- model = OpenRouterModel(' google/gemini-2.5-flash-image-preview' , provider = provider)
89- agent = Agent(model = model, output_type = str | BinaryImage, model_settings = settings)
9090
91- result = await agent.run (' A cat' )
92- # result.output is a BinaryImage
91+ result = agent.run_sync (' A cat' )
92+ assert isinstance ( result.output, BinaryImage)
9393```
9494
9595You can further customize image generation using ` openrouter_image_config ` :
@@ -107,22 +107,24 @@ settings = OpenRouterModelSettings(
107107
108108Image generation also works with streaming:
109109
110- ``` python
110+ ``` python {test="skip"}
111111from pydantic_ai import Agent, BinaryImage
112- from pydantic_ai.models.openrouter import OpenRouterModel, OpenRouterModelSettings
112+ from pydantic_ai.models.openrouter import OpenRouterModelSettings
113113
114- settings = OpenRouterModelSettings(
115- openrouter_modalities = [' image' , ' text' ],
116- openrouter_image_config = {' aspect_ratio' : ' 3:2' }
114+ agent = Agent(
115+ model = ' openrouter:google/gemini-2.5-flash-image-preview' ,
116+ output_type = str | BinaryImage,
117+ model_settings = OpenRouterModelSettings(
118+ openrouter_modalities = [' image' , ' text' ],
119+ openrouter_image_config = {' aspect_ratio' : ' 3:2' },
120+ ),
117121)
118- model = OpenRouterModel(' google/gemini-2.5-flash-image-preview' , provider = provider)
119- agent = Agent(model = model, output_type = str | BinaryImage, model_settings = settings)
120-
121- async with agent.run_stream(' A dog' ) as result:
122- async for output in result.stream_output():
123- if isinstance (output, str ):
124- print (output)
125- elif isinstance (output, BinaryImage):
126- # Handle the generated image
127- print (f ' Generated image: { output.media_type} ' )
122+
123+ response = agent.run_stream_sync(' A dog' )
124+ for output in response.stream_output():
125+ if isinstance (output, str ):
126+ print (output)
127+ elif isinstance (output, BinaryImage):
128+ # Handle the generated image
129+ print (f ' Generated image: { output.media_type} ' )
128130```
0 commit comments