Skip to content

Commit d2766bb

Browse files
committed
Merge remote-tracking branch 'upstream/master' into feature/unified-streaming
2 parents 5cd49ca + d3b2cb0 commit d2766bb

20 files changed

Lines changed: 164 additions & 52 deletions

src/conditioner.hpp

Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ struct Conditioner {
113113
public:
114114
virtual SDCondition get_learned_condition(int n_threads,
115115
const ConditionerParams& conditioner_params) = 0;
116-
virtual void alloc_params_buffer() = 0;
116+
virtual bool alloc_params_buffer() = 0;
117117
virtual void free_params_buffer() = 0;
118118
virtual void get_param_tensors(std::map<std::string, ggml_tensor*>& tensors) = 0;
119119
virtual size_t get_params_buffer_size() = 0;
@@ -177,11 +177,16 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner {
177177
}
178178
}
179179

180-
void alloc_params_buffer() override {
181-
text_model->alloc_params_buffer();
180+
bool alloc_params_buffer() override {
181+
if (!text_model->alloc_params_buffer()) {
182+
return false;
183+
}
182184
if (sd_version_is_sdxl(version)) {
183-
text_model2->alloc_params_buffer();
185+
if (!text_model2->alloc_params_buffer()) {
186+
return false;
187+
}
184188
}
189+
return true;
185190
}
186191

187192
void free_params_buffer() override {
@@ -789,16 +794,23 @@ struct SD3CLIPEmbedder : public Conditioner {
789794
}
790795
}
791796

792-
void alloc_params_buffer() override {
797+
bool alloc_params_buffer() override {
793798
if (clip_l) {
794-
clip_l->alloc_params_buffer();
799+
if (!clip_l->alloc_params_buffer()) {
800+
return false;
801+
}
795802
}
796803
if (clip_g) {
797-
clip_g->alloc_params_buffer();
804+
if (!clip_g->alloc_params_buffer()) {
805+
return false;
806+
}
798807
}
799808
if (t5) {
800-
t5->alloc_params_buffer();
809+
if (!t5->alloc_params_buffer()) {
810+
return false;
811+
}
801812
}
813+
return true;
802814
}
803815

804816
void free_params_buffer() override {
@@ -1165,15 +1177,21 @@ struct FluxCLIPEmbedder : public Conditioner {
11651177
}
11661178
}
11671179

1168-
void alloc_params_buffer() override {
1180+
bool alloc_params_buffer() override {
11691181
if (clip_l) {
1170-
clip_l->alloc_params_buffer();
1182+
if (!clip_l->alloc_params_buffer()) {
1183+
return false;
1184+
}
11711185
}
11721186
if (t5) {
1173-
t5->alloc_params_buffer();
1187+
if (!t5->alloc_params_buffer()) {
1188+
return false;
1189+
}
11741190
}
1191+
return true;
11751192
}
11761193

1194+
11771195
void free_params_buffer() override {
11781196
if (clip_l) {
11791197
clip_l->free_params_buffer();
@@ -1417,10 +1435,13 @@ struct T5CLIPEmbedder : public Conditioner {
14171435
}
14181436
}
14191437

1420-
void alloc_params_buffer() override {
1438+
bool alloc_params_buffer() override {
14211439
if (t5) {
1422-
t5->alloc_params_buffer();
1440+
if (!t5->alloc_params_buffer()) {
1441+
return false;
1442+
}
14231443
}
1444+
return true;
14241445
}
14251446

14261447
void free_params_buffer() override {
@@ -1613,8 +1634,11 @@ struct AnimaConditioner : public Conditioner {
16131634
llm->get_param_tensors(tensors, "text_encoders.llm");
16141635
}
16151636

1616-
void alloc_params_buffer() override {
1617-
llm->alloc_params_buffer();
1637+
bool alloc_params_buffer() override {
1638+
if (!llm->alloc_params_buffer()) {
1639+
return false;
1640+
}
1641+
return true;
16181642
}
16191643

16201644
void free_params_buffer() override {
@@ -1756,8 +1780,11 @@ struct LLMEmbedder : public Conditioner {
17561780
llm->get_param_tensors(tensors, "text_encoders.llm");
17571781
}
17581782

1759-
void alloc_params_buffer() override {
1760-
llm->alloc_params_buffer();
1783+
bool alloc_params_buffer() override {
1784+
if (!llm->alloc_params_buffer()) {
1785+
return false;
1786+
}
1787+
return true;
17611788
}
17621789

17631790
void free_params_buffer() override {
@@ -2282,9 +2309,14 @@ struct LTXAVEmbedder : public Conditioner {
22822309
projector->get_param_tensors(tensors, "text_embedding_projection");
22832310
}
22842311

2285-
void alloc_params_buffer() override {
2286-
llm->alloc_params_buffer();
2287-
projector->alloc_params_buffer();
2312+
bool alloc_params_buffer() override {
2313+
if (!llm->alloc_params_buffer()) {
2314+
return false;
2315+
}
2316+
if (!projector->alloc_params_buffer()) {
2317+
return false;
2318+
}
2319+
return true;
22882320
}
22892321

22902322
void free_params_buffer() override {

src/control.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,11 @@ struct ControlNet : public GGMLRunner {
457457

458458
bool load_from_file(const std::string& file_path, int n_threads) {
459459
LOG_INFO("loading control net from '%s'", file_path.c_str());
460-
alloc_params_buffer();
460+
if (!alloc_params_buffer()) {
461+
LOG_ERROR("control net model buffer allocation failed");
462+
return false;
463+
}
464+
461465
std::map<std::string, ggml_tensor*> tensors;
462466
control_net.get_param_tensors(tensors);
463467
std::set<std::string> ignore_tensors;

src/esrgan.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,11 @@ struct ESRGAN : public GGMLRunner {
270270
rrdb_net = std::make_unique<RRDBNet>(detected_scale, detected_num_block, detected_num_in_ch, detected_num_out_ch, detected_num_feat, detected_num_grow_ch);
271271
rrdb_net->init(params_ctx, {}, "");
272272

273-
alloc_params_buffer();
273+
if (!alloc_params_buffer()) {
274+
LOG_ERROR("esrgan model buffer allocation failed");
275+
return false;
276+
}
277+
274278
std::map<std::string, ggml_tensor*> esrgan_tensors;
275279
rrdb_net->get_param_tensors(esrgan_tensors);
276280

src/flux.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1592,7 +1592,11 @@ namespace Flux {
15921592
VERSION_FLUX2,
15931593
false);
15941594

1595-
flux->alloc_params_buffer();
1595+
if (!flux->alloc_params_buffer()) {
1596+
LOG_ERROR("flux model allocation failed");
1597+
return;
1598+
}
1599+
15961600
std::map<std::string, ggml_tensor*> tensors;
15971601
flux->get_param_tensors(tensors, "model.diffusion_model");
15981602

src/hidream_o1.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,8 +492,11 @@ namespace HiDreamO1 {
492492
vision_runner->get_param_tensors(tensors);
493493
}
494494

495-
void alloc_params_buffer() override {
496-
vision_runner->alloc_params_buffer();
495+
bool alloc_params_buffer() override {
496+
if (!vision_runner->alloc_params_buffer()) {
497+
return false;
498+
}
499+
return true;
497500
}
498501

499502
void free_params_buffer() override {

src/llm.hpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1769,8 +1769,11 @@ namespace LLM {
17691769
model.get_param_tensors(tensors, prefix);
17701770
}
17711771

1772-
void alloc_params_buffer() {
1773-
model.alloc_params_buffer();
1772+
bool alloc_params_buffer() {
1773+
if (!model.alloc_params_buffer()) {
1774+
return false;
1775+
}
1776+
return true;
17741777
}
17751778

17761779
std::tuple<std::vector<int>, std::vector<float>> tokenize(std::string text,
@@ -2012,7 +2015,11 @@ namespace LLM {
20122015
"text_encoders.llm",
20132016
true);
20142017

2015-
llm->alloc_params_buffer();
2018+
if (!llm->alloc_params_buffer()) {
2019+
LOG_ERROR("llm model allocation failed");
2020+
return;
2021+
}
2022+
20162023
std::map<std::string, ggml_tensor*> tensors;
20172024
llm->get_param_tensors(tensors, "text_encoders.llm");
20182025

src/lora.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,11 @@ struct LoraModel : public GGMLRunner {
8686
lora_tensors[name] = real;
8787
}
8888

89-
alloc_params_buffer();
89+
if (!alloc_params_buffer()) {
90+
LOG_ERROR("lora model buffer allocation failed");
91+
return false;
92+
}
93+
9094

9195
dry_run = false;
9296
model_loader.load_tensors(on_new_tensor_cb, n_threads);

src/ltx_audio_vae.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1068,7 +1068,11 @@ namespace LTXV {
10681068
tensor_storage_map,
10691069
prefix);
10701070

1071-
ltx_audio_vae->alloc_params_buffer();
1071+
if (!ltx_audio_vae->alloc_params_buffer()) {
1072+
LOG_ERROR("ltx audio vae buffer allocation failed");
1073+
return;
1074+
}
1075+
10721076
std::map<std::string, ggml_tensor*> tensors;
10731077
ltx_audio_vae->get_param_tensors(tensors, "");
10741078

src/ltx_vae.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1534,7 +1534,11 @@ struct LTXVideoVAE : public VAE {
15341534
true,
15351535
VERSION_LTXAV);
15361536

1537-
vae->alloc_params_buffer();
1537+
if (!vae->alloc_params_buffer()) {
1538+
LOG_ERROR("vae buffer allocation failed");
1539+
return;
1540+
}
1541+
15381542
std::map<std::string, ggml_tensor*> tensors;
15391543
vae->get_param_tensors(tensors, "first_stage_model");
15401544

src/ltxv.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2017,7 +2017,10 @@ namespace LTXV {
20172017
tensor_storage_map,
20182018
"model.diffusion_model");
20192019

2020-
ltxav->alloc_params_buffer();
2020+
if (!ltxav->alloc_params_buffer()) {
2021+
LOG_ERROR("ltxav buffer allocation failed");
2022+
return;
2023+
}
20212024
std::map<std::string, ggml_tensor*> tensors;
20222025
ltxav->get_param_tensors(tensors, "model.diffusion_model");
20232026

0 commit comments

Comments
 (0)