fix: added a clean exit in ModelLoader::load_tensors if OOM (#1097)

This commit is contained in:
akleine 2025-12-16 15:45:10 +01:00 committed by GitHub
parent e687913bf1
commit a23262dfde
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View File

@ -862,7 +862,7 @@ static bool is_absolute_path(const std::string& p) {
struct SDGenerationParams { struct SDGenerationParams {
std::string prompt; std::string prompt;
std::string prompt_with_lora; // for metadata record only std::string prompt_with_lora; // for metadata record only
std::string negative_prompt; std::string negative_prompt;
int clip_skip = -1; // <= 0 represents unspecified int clip_skip = -1; // <= 0 represents unspecified
int width = 512; int width = 512;

View File

@ -1520,6 +1520,11 @@ bool ModelLoader::load_tensors(on_new_tensor_cb_t on_new_tensor_cb, int n_thread
i64_to_i32_vec((int64_t*)read_buf, (int32_t*)target_buf, tensor_storage.nelements()); i64_to_i32_vec((int64_t*)read_buf, (int32_t*)target_buf, tensor_storage.nelements());
} }
if (tensor_storage.type != dst_tensor->type) { if (tensor_storage.type != dst_tensor->type) {
if (convert_buf == nullptr) {
LOG_ERROR("read tensor data failed: too less memory for conversion");
failed = true;
return;
}
convert_tensor((void*)target_buf, convert_tensor((void*)target_buf,
tensor_storage.type, tensor_storage.type,
convert_buf, convert_buf,