fix server_output_limits

This commit is contained in:
Xuan Son Nguyen
2026-08-18 20:26:53 +02:00
parent 2072dfae41
commit 14cc550c70
6 changed files with 14 additions and 7 deletions
+3 -2
View File
@@ -3898,8 +3898,9 @@ struct clip_init_result clip_init(const char * fname, struct clip_context_params
struct clip_cap clip_get_cap(const char * fname) {
clip_cap res;
clip_model_loader loader(fname, /* skip_tensors= */ true);
res.has_vision = loader.has_vision;
res.has_audio = loader.has_audio;
res.has_vision = loader.has_vision;
res.has_audio = loader.has_audio;
res.has_gen_audio = loader.has_gen_audio;
return res;
}
+1
View File
@@ -134,5 +134,6 @@ std::map<ggml_backend_dev_t, size_t> clip_get_mem_usage(const struct clip_ctx *
struct clip_cap {
bool has_vision;
bool has_audio;
bool has_gen_audio;
};
struct clip_cap clip_get_cap(const char * fname);
+2 -1
View File
@@ -2510,10 +2510,11 @@ struct mtmd_caps mtmd_get_cap_from_file(const char * fname) {
mtmd_caps cap;
cap.inp_audio = tmp.has_audio;
cap.inp_vision = tmp.has_vision;
cap.gen_audio = tmp.has_gen_audio;
return cap;
} catch (const std::exception & e) {
LOG_ERR("%s: failed to get capabilities from file '%s': %s\n", __func__, fname, e.what());
return mtmd_caps{ false, false };
return mtmd_caps{ false, false, false };
}
}
+1
View File
@@ -337,6 +337,7 @@ MTMD_API void mtmd_log_set(ggml_log_callback log_callback, void * user_data);
struct mtmd_caps {
bool inp_vision;
bool inp_audio;
bool gen_audio;
};
MTMD_API struct mtmd_caps mtmd_get_cap_from_file(const char * mmproj_fname);
+5 -2
View File
@@ -42,8 +42,11 @@ constexpr int HTTP_POLLING_SECONDS = 1;
static common_speculative_output_limits server_output_limits(const common_params & params) {
if (!params.mmproj.path.empty()) {
// gen-audio (TTS) capability isn't known until the mmproj loads, size generously
return { params.n_batch, params.n_batch };
const auto mcaps = mtmd_get_cap_from_file(params.mmproj.path.c_str());
if (mcaps.gen_audio) {
// some TTS models decode with embeddings output for the whole batch
return { params.n_batch, params.n_batch };
}
}
if (params.embedding ||
+2 -2
View File
@@ -624,7 +624,7 @@ void server_models::load_models() {
/* progress */ {},
/* exit_code */ 0,
/* stop_timeout */ DEFAULT_STOP_TIMEOUT,
/* multimodal */ mtmd_caps{false, false},
/* multimodal */ mtmd_caps{false, false, false},
// /* need_download */ false,
};
add_model(std::move(meta));
@@ -797,7 +797,7 @@ void server_models::load_models() {
/* progress */ {},
/* exit_code */ 0,
/* stop_timeout */ DEFAULT_STOP_TIMEOUT,
/* multimodal */ mtmd_caps{false, false},
/* multimodal */ mtmd_caps{false, false, false},
// /* need_download */ false,
};
add_model(std::move(meta));