diff --git a/LLama.Examples/Examples/LlavaInteractiveModeExecute.cs b/LLama.Examples/Examples/LlavaInteractiveModeExecute.cs
index 8cfa7376..507f041b 100644
--- a/LLama.Examples/Examples/LlavaInteractiveModeExecute.cs
+++ b/LLama.Examples/Examples/LlavaInteractiveModeExecute.cs
@@ -102,7 +102,7 @@ namespace LLama.Examples.Examples
//
foreach (var image in imagePaths)
{
- ex.Images.Add(new ImageData(ImageData.DataType.ImagePath, image));
+ ex.Images.Add(File.ReadAllBytes(image));
}
}
diff --git a/LLama/Abstractions/ILLamaExecutor.cs b/LLama/Abstractions/ILLamaExecutor.cs
index 977cbc5e..d6c8d2ce 100644
--- a/LLama/Abstractions/ILLamaExecutor.cs
+++ b/LLama/Abstractions/ILLamaExecutor.cs
@@ -27,7 +27,7 @@ namespace LLama.Abstractions
///
/// List of images: Image filen path, uri or image byte array. See ImageData.
///
- public List Images { get; }
+ public List Images { get; }
///
/// Asynchronously infers a response from the model.
@@ -38,46 +38,4 @@ namespace LLama.Abstractions
///
IAsyncEnumerable InferAsync(string text, IInferenceParams? inferenceParams = null, CancellationToken token = default);
}
-
- ///
- /// Holds image data
- ///
- public class ImageData
- {
- ///
- /// constructor
- ///
- ///
- ///
- public ImageData(DataType type, object data) { Type = type; Data = data; }
-
- ///
- /// the possible types of image data
- ///
- public enum DataType
- {
- ///
- /// file path
- ///
- ImagePath,
- ///
- /// byte array
- ///
- ImageBytes,
- ///
- /// uri
- ///
- ImageURL
- }
-
- ///
- /// the type of this image data
- ///
- public DataType Type { get; set; }
-
- ///
- /// the image data (string, byte array or uri)
- ///
- public object? Data { get; set; }
- }
}
diff --git a/LLama/LLamaExecutorBase.cs b/LLama/LLamaExecutorBase.cs
index 9914f0ec..65c0dcb4 100644
--- a/LLama/LLamaExecutorBase.cs
+++ b/LLama/LLamaExecutorBase.cs
@@ -79,7 +79,7 @@ namespace LLama
public LLavaWeights? ClipModel { get; }
///
- public List Images { get; set; }
+ public List Images { get; set; }
///
/// Current "mu" value for mirostat sampling
@@ -95,7 +95,7 @@ namespace LLama
///
protected StatefulExecutorBase(LLamaContext context, ILogger? logger = null)
{
- Images = new List();
+ Images = new List();
_logger = logger;
Context = context;
_pastTokensCount = 0;
diff --git a/LLama/LLamaInteractExecutor.cs b/LLama/LLamaInteractExecutor.cs
index 0944bb4e..a87a0f37 100644
--- a/LLama/LLamaInteractExecutor.cs
+++ b/LLama/LLamaInteractExecutor.cs
@@ -153,24 +153,7 @@ namespace LLama
{
foreach (var image in Images)
{
- if (image.Type == ImageData.DataType.ImagePath && image.Data != null)
- {
- _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromFileName(ClipModel.NativeHandle, Context, (string)image.Data));
- }
- else if (image.Type == ImageData.DataType.ImageBytes && image.Data != null)
- {
- _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromMemory(ClipModel.NativeHandle, Context, (byte[])image.Data));
- }
- else if (image.Type == ImageData.DataType.ImageURL && image.Data != null)
- {
- using var httpClient = new HttpClient();
- var uri = new Uri((string)image.Data);
- var imageBytes = httpClient.GetByteArrayAsync(uri).Result;
- if (imageBytes != null && imageBytes.Length > 0)
- {
- _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromMemory(ClipModel.NativeHandle, Context, imageBytes));
- }
- }
+ _imageEmbedHandles.Add(SafeLlavaImageEmbedHandle.CreateFromMemory(ClipModel.NativeHandle, Context, image));
}
int imageIndex = text.IndexOf("");
diff --git a/LLama/LLamaStatelessExecutor.cs b/LLama/LLamaStatelessExecutor.cs
index 9d2f8c78..f9d6ca5b 100644
--- a/LLama/LLamaStatelessExecutor.cs
+++ b/LLama/LLamaStatelessExecutor.cs
@@ -34,7 +34,7 @@ namespace LLama
public LLavaWeights? ClipModel { get; }
///
- public List Images { get; set; }
+ public List Images { get; set; }
///
/// The context used by the executor when running the inference.
@@ -49,7 +49,7 @@ namespace LLama
///
public StatelessExecutor(LLamaWeights weights, IContextParams @params, ILogger? logger = null)
{
- Images = new List();
+ Images = new List();
_weights = weights;
_params = @params;
_logger = logger;