diff --git a/dist/index.js b/dist/index.js
index 73045a7d38faafdc7f7d2cd79d7ff0e2b031056b..8d948c9ac4ea4b474db9ef3c5491961e7fcf9a07 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -421,6 +421,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) {
         content.push({
@@ -598,6 +609,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) {
               for (const toolCallDelta of delta.tool_calls) {
                 const index = toolCallDelta.index;
@@ -765,6 +787,14 @@ var OpenAICompatibleChatResponseSchema = import_v43.z.object({
               arguments: import_v43.z.string()
             })
           })
+        ).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()
@@ -795,6 +825,14 @@ var createOpenAICompatibleChatChunkSchema = (errorSchema) => import_v43.z.union(
                 arguments: import_v43.z.string().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 1c2b9560bbfbfe10cb01af080aeeed4ff59db29c..2c8ddc4fc9bfc5e7e06cfca105d197a08864c427 100644
--- a/dist/index.mjs
+++ b/dist/index.mjs
@@ -405,6 +405,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) {
         content.push({
@@ -582,6 +593,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) {
               for (const toolCallDelta of delta.tool_calls) {
                 const index = toolCallDelta.index;
@@ -749,6 +771,14 @@ var OpenAICompatibleChatResponseSchema = z3.object({
               arguments: z3.string()
             })
           })
+        ).nullish(),
+        images: z3.array(
+          z3.object({
+            type: z3.literal('image_url'),
+            image_url: z3.object({
+              url: z3.string(),
+            })
+          })
         ).nullish()
       }),
       finish_reason: z3.string().nullish()
@@ -779,6 +809,14 @@ var createOpenAICompatibleChatChunkSchema = (errorSchema) => z3.union([
                 arguments: z3.string().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()
