diff --git a/server/model.go b/server/model.go index bf38c415b..b57e93094 100644 --- a/server/model.go +++ b/server/model.go @@ -245,7 +245,12 @@ func parseFromFile(ctx context.Context, file *os.File, digest string, fn func(ap mediatype = "application/vnd.ollama.image.projector" } - layer, err := NewLayer(io.NewSectionReader(file, offset, n), mediatype) + var layer *Layer + if digest != "" && n == stat.Size() { + layer, err = NewLayerFromLayer(digest, mediatype, file.Name()) + } else { + layer, err = NewLayer(io.NewSectionReader(file, offset, n), mediatype) + } if err != nil { return nil, err }