@@ -252,7 +252,7 @@ def generate(
252252 stream = stream ,
253253 raw = raw ,
254254 format = format ,
255- images = [Image ( value = image ) for image in images ] if images else None ,
255+ images = [image for image in _copy_images ( images ) ] if images else None ,
256256 options = options ,
257257 keep_alive = keep_alive ,
258258 ).model_dump (exclude_none = True ),
@@ -753,7 +753,7 @@ async def generate(
753753 stream = stream ,
754754 raw = raw ,
755755 format = format ,
756- images = [Image ( value = image ) for image in images ] if images else None ,
756+ images = [image for image in _copy_images ( images ) ] if images else None ,
757757 options = options ,
758758 keep_alive = keep_alive ,
759759 ).model_dump (exclude_none = True ),
@@ -1121,10 +1121,15 @@ async def ps(self) -> ProcessResponse:
11211121 )
11221122
11231123
1124+ def _copy_images (images : Optional [Sequence [Union [Image , Any ]]]) -> Iterator [Image ]:
1125+ for image in images or []:
1126+ yield image if isinstance (image , Image ) else Image (value = image )
1127+
1128+
11241129def _copy_messages (messages : Optional [Sequence [Union [Mapping [str , Any ], Message ]]]) -> Iterator [Message ]:
11251130 for message in messages or []:
11261131 yield Message .model_validate (
1127- {k : [Image ( value = image ) for image in v ] if k == 'images' else v for k , v in dict (message ).items () if v },
1132+ {k : [image for image in _copy_images ( v ) ] if k == 'images' else v for k , v in dict (message ).items () if v },
11281133 )
11291134
11301135
0 commit comments