Skip to content

Commit 30e7033

Browse files
authored
llava-cli: fix base64 prompt (#7248)
1 parent 1c570d8 commit 30e7033

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

examples/llava/llava-cli.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,14 +300,10 @@ int main(int argc, char ** argv) {
300300
return 1;
301301
}
302302

303-
for (auto & image : params.image) {
303+
if (prompt_contains_image(params.prompt)) {
304304
auto ctx_llava = llava_init_context(&params, model);
305305

306-
auto image_embed = load_image(ctx_llava, &params, image);
307-
if (!image_embed) {
308-
std::cerr << "error: failed to load image " << image << ". Terminating\n\n";
309-
return 1;
310-
}
306+
auto image_embed = load_image(ctx_llava, &params, "");
311307

312308
// process the prompt
313309
process_prompt(ctx_llava, image_embed, &params, params.prompt);
@@ -316,7 +312,26 @@ int main(int argc, char ** argv) {
316312
llava_image_embed_free(image_embed);
317313
ctx_llava->model = NULL;
318314
llava_free(ctx_llava);
315+
} else {
316+
for (auto & image : params.image) {
317+
auto ctx_llava = llava_init_context(&params, model);
318+
319+
auto image_embed = load_image(ctx_llava, &params, image);
320+
if (!image_embed) {
321+
std::cerr << "error: failed to load image " << image << ". Terminating\n\n";
322+
return 1;
323+
}
324+
325+
// process the prompt
326+
process_prompt(ctx_llava, image_embed, &params, params.prompt);
327+
328+
llama_print_timings(ctx_llava->ctx_llama);
329+
llava_image_embed_free(image_embed);
330+
ctx_llava->model = NULL;
331+
llava_free(ctx_llava);
332+
}
319333
}
334+
320335
llama_free_model(model);
321336

322337
return 0;

0 commit comments

Comments
 (0)