@@ -848,30 +848,32 @@ int main(int argc, const char* argv[]) {
848848 }
849849 }
850850
851- sd_ctx_t * sd_ctx = new_sd_ctx (params.model_path .c_str (),
852- params.clip_l_path .c_str (),
853- params.clip_g_path .c_str (),
854- params.t5xxl_path .c_str (),
855- params.diffusion_model_path .c_str (),
856- params.vae_path .c_str (),
857- params.taesd_path .c_str (),
858- params.controlnet_path .c_str (),
859- params.lora_model_dir .c_str (),
860- params.embeddings_path .c_str (),
861- params.stacked_id_embeddings_path .c_str (),
862- vae_decode_only,
863- params.vae_tiling ,
864- true ,
865- params.n_threads ,
866- params.wtype ,
867- params.rng_type ,
868- params.schedule ,
869- params.clip_on_cpu ,
870- params.control_net_cpu ,
871- params.vae_on_cpu );
851+ sd_ctx_t * sd_ctx;
852+ SDError err = new_sd_ctx (&sd_ctx,
853+ params.model_path .c_str (),
854+ params.clip_l_path .c_str (),
855+ params.clip_g_path .c_str (),
856+ params.t5xxl_path .c_str (),
857+ params.diffusion_model_path .c_str (),
858+ params.vae_path .c_str (),
859+ params.taesd_path .c_str (),
860+ params.controlnet_path .c_str (),
861+ params.lora_model_dir .c_str (),
862+ params.embeddings_path .c_str (),
863+ params.stacked_id_embeddings_path .c_str (),
864+ vae_decode_only,
865+ params.vae_tiling ,
866+ true ,
867+ params.n_threads ,
868+ params.wtype ,
869+ params.rng_type ,
870+ params.schedule ,
871+ params.clip_on_cpu ,
872+ params.control_net_cpu ,
873+ params.vae_on_cpu );
872874
873- if (sd_ctx == NULL ) {
874- printf (" new_sd_ctx_t failed\n " );
875+ if (err != SD_SUCCESS ) {
876+ printf (" new_sd_ctx failed with error code %d \n " , err );
875877 return 1 ;
876878 }
877879
@@ -900,28 +902,37 @@ int main(int argc, const char* argv[]) {
900902 }
901903
902904 sd_image_t * results;
905+ int result_count;
903906 if (params.mode == TXT2IMG) {
904- results = txt2img (sd_ctx,
905- params.prompt .c_str (),
906- params.negative_prompt .c_str (),
907- params.clip_skip ,
908- params.cfg_scale ,
909- params.guidance ,
910- params.width ,
911- params.height ,
912- params.sample_method ,
913- params.sample_steps ,
914- params.seed ,
915- params.batch_count ,
916- control_image,
917- params.control_strength ,
918- params.style_ratio ,
919- params.normalize_input ,
920- params.input_id_images_path .c_str (),
921- params.skip_layers ,
922- params.slg_scale ,
923- params.skip_layer_start ,
924- params.skip_layer_end );
907+ err = txt2img (sd_ctx,
908+ &results,
909+ &result_count,
910+ params.prompt .c_str (),
911+ params.negative_prompt .c_str (),
912+ params.clip_skip ,
913+ params.cfg_scale ,
914+ params.guidance ,
915+ params.width ,
916+ params.height ,
917+ params.sample_method ,
918+ params.sample_steps ,
919+ params.seed ,
920+ params.batch_count ,
921+ control_image,
922+ params.control_strength ,
923+ params.style_ratio ,
924+ params.normalize_input ,
925+ params.input_id_images_path .c_str (),
926+ params.skip_layers ,
927+ params.slg_scale ,
928+ params.skip_layer_start ,
929+ params.skip_layer_end );
930+
931+ if (err != SD_SUCCESS) {
932+ printf (" txt2img failed with error code %d\n " , err);
933+ free_sd_ctx (sd_ctx);
934+ return 1 ;
935+ }
925936 } else {
926937 sd_image_t input_image = {(uint32_t )params.width ,
927938 (uint32_t )params.height ,
0 commit comments