diff --git a/dist/index.js b/dist/index.js
index d73573b013e61903991cad2074187a3ade8921ab..919cbb2d14c0019716080c1bf041dde96c2b6cab 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -572,6 +572,17 @@ var OpenAICompatibleChatLanguageModel = class {
         text: reasoning
       });
     }
+    if (choice.message.images) {
+      for (const image of choice.message.images) {
+        const match1 = image.image_url.url.match(/^data:([^;]+)/);
+        const match2 = image.image_url.url.match(/^data:[^;]*;base64,(.+)$/);
+        content.push({
+          type: 'file',
+          mediaType: match1 ? (match1[1] ?? 'image/jpeg') : 'image/jpeg',
+          data: match2 ? match2[1] : image.image_url.url,
+        });
+      }
+    }
     if (choice.message.tool_calls != null) {
       for (const toolCall of choice.message.tool_calls) {
         const thoughtSignature = (_c = (_b = toolCall.extra_content) == null ? void 0 : _b.google) == null ? void 0 : _c.thought_signature;
@@ -732,6 +743,17 @@ var OpenAICompatibleChatLanguageModel = class {
                 delta: delta.content
               });
             }
+            if (delta.images) {
+              for (const image of delta.images) {
+                const match1 = image.image_url.url.match(/^data:([^;]+)/);
+                const match2 = image.image_url.url.match(/^data:[^;]*;base64,(.+)$/);
+                controller.enqueue({
+                  type: 'file',
+                  mediaType: match1 ? (match1[1] ?? 'image/jpeg') : 'image/jpeg',
+                  data: match2 ? match2[1] : image.image_url.url,
+                });
+              }
+            }
             if (delta.tool_calls != null) {
               if (isActiveReasoning) {
                 controller.enqueue({
@@ -928,6 +950,14 @@ var OpenAICompatibleChatResponseSchema = import_v43.z.looseObject({
               }).nullish()
             }).nullish()
           })
+        ).nullish(),
+        images: import_v43.z.array(
+          import_v43.z.object({
+            type: import_v43.z.literal('image_url'),
+            image_url: import_v43.z.object({
+              url: import_v43.z.string(),
+            })
+          })
         ).nullish()
       }),
       finish_reason: import_v43.z.string().nullish()
@@ -964,6 +994,14 @@ var chunkBaseSchema = import_v43.z.looseObject({
               }).nullish()
             }).nullish()
           })
+        ).nullish(),
+        images: import_v43.z.array(
+          import_v43.z.object({
+            type: import_v43.z.literal('image_url'),
+            image_url: import_v43.z.object({
+              url: import_v43.z.string(),
+            })
+          })
         ).nullish()
       }).nullish(),
       finish_reason: import_v43.z.string().nullish()
diff --git a/dist/index.mjs b/dist/index.mjs
index 237c9e209da9da2d4d557eb309e1adc2157c1426..2e140f053bb9d7e88ed6b54238d355e7f5aae49b 100644
--- a/dist/index.mjs
+++ b/dist/index.mjs
@@ -559,6 +559,17 @@ var OpenAICompatibleChatLanguageModel = class {
         text: reasoning
       });
     }
+    if (choice.message.images) {
+      for (const image of choice.message.images) {
+        const match1 = image.image_url.url.match(/^data:([^;]+)/);
+        const match2 = image.image_url.url.match(/^data:[^;]*;base64,(.+)$/);
+        content.push({
+          type: 'file',
+          mediaType: match1 ? (match1[1] ?? 'image/jpeg') : 'image/jpeg',
+          data: match2 ? match2[1] : image.image_url.url,
+        });
+      }
+    }
     if (choice.message.tool_calls != null) {
       for (const toolCall of choice.message.tool_calls) {
         const thoughtSignature = (_c = (_b = toolCall.extra_content) == null ? void 0 : _b.google) == null ? void 0 : _c.thought_signature;
@@ -719,6 +730,17 @@ var OpenAICompatibleChatLanguageModel = class {
                 delta: delta.content
               });
             }
+            if (delta.images) {
+              for (const image of delta.images) {
+                const match1 = image.image_url.url.match(/^data:([^;]+)/);
+                const match2 = image.image_url.url.match(/^data:[^;]*;base64,(.+)$/);
+                controller.enqueue({
+                  type: 'file',
+                  mediaType: match1 ? (match1[1] ?? 'image/jpeg') : 'image/jpeg',
+                  data: match2 ? match2[1] : image.image_url.url,
+                });
+              }
+            }
             if (delta.tool_calls != null) {
               if (isActiveReasoning) {
                 controller.enqueue({
@@ -915,6 +937,14 @@ var OpenAICompatibleChatResponseSchema = z3.looseObject({
               }).nullish()
             }).nullish()
           })
+        ).nullish(),
+        images: z3.array(
+          z3.object({
+            type: z3.literal('image_url'),
+            image_url: z3.object({
+              url: z3.string(),
+            })
+          })
         ).nullish()
       }),
       finish_reason: z3.string().nullish()
@@ -951,6 +981,14 @@ var chunkBaseSchema = z3.looseObject({
               }).nullish()
             }).nullish()
           })
+        ).nullish(),
+        images: z3.array(
+          z3.object({
+            type: z3.literal('image_url'),
+            image_url: z3.object({
+              url: z3.string(),
+            })
+          })
         ).nullish()
       }).nullish(),
       finish_reason: z3.string().nullish()
