@@ -113,7 +113,7 @@ struct Conditioner {
113113public:
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 {
0 commit comments