@@ -304,10 +304,10 @@ class StableDiffusionGGML {
304
304
// no GPU devices available
305
305
backend = ggml_backend_cpu_init ();
306
306
} else if (gpu_devices.size () < 3 ) {
307
- // use the last GPU device
307
+ // use the last GPU device: device 0, device 1
308
308
backend = ggml_backend_dev_init (gpu_devices[gpu_devices.size () - 1 ].first , nullptr );
309
309
} else {
310
- // use the 3rd GPU device
310
+ // use the 3rd GPU device: device 2
311
311
backend = ggml_backend_dev_init (gpu_devices[2 ].first , nullptr );
312
312
}
313
313
switch (gpu_devices.size ()) {
@@ -337,8 +337,7 @@ class StableDiffusionGGML {
337
337
break ;
338
338
}
339
339
case 2 : {
340
- // device 0: clip, vae
341
- // device 1: control_net
340
+ // device 0: clip, vae, control_net
342
341
if (clip_on_cpu) {
343
342
LOG_INFO (" CLIP: Using CPU backend" );
344
343
clip_backend = ggml_backend_cpu_init ();
@@ -355,14 +354,13 @@ class StableDiffusionGGML {
355
354
LOG_INFO (" ControlNet: Using CPU backend" );
356
355
control_net_backend = ggml_backend_cpu_init ();
357
356
} else {
358
- control_net_backend = ggml_backend_dev_init (gpu_devices[1 ].first , nullptr );
357
+ control_net_backend = ggml_backend_dev_init (gpu_devices[0 ].first , nullptr );
359
358
}
360
359
break ;
361
360
}
362
361
default : {
363
- // device 0: clip
362
+ // device 0: clip, control_net
364
363
// device 1: vae
365
- // device 2: control_net
366
364
if (clip_on_cpu) {
367
365
LOG_INFO (" CLIP: Using CPU backend" );
368
366
clip_backend = ggml_backend_cpu_init ();
@@ -379,7 +377,7 @@ class StableDiffusionGGML {
379
377
LOG_INFO (" ControlNet: Using CPU backend" );
380
378
control_net_backend = ggml_backend_cpu_init ();
381
379
} else {
382
- control_net_backend = ggml_backend_dev_init (gpu_devices[2 ].first , nullptr );
380
+ control_net_backend = ggml_backend_dev_init (gpu_devices[0 ].first , nullptr );
383
381
}
384
382
}
385
383
}
@@ -2676,7 +2674,7 @@ sd_sampling_stream_t* txt2img_stream(sd_ctx_t* sd_ctx,
2676
2674
auto rng = sd_ctx->sd ->get_rng (seed);
2677
2675
2678
2676
struct ggml_init_params params{};
2679
- params.mem_size = static_cast <size_t >(5 * 10 * 1024 * 1024 ); // 50 MB
2677
+ params.mem_size = static_cast <size_t >(100 * 1024 * 1024 ); // 100 MB
2680
2678
params.mem_size += width * height * 3 * sizeof (float ) * 3 ;
2681
2679
params.mem_buffer = nullptr ;
2682
2680
params.no_alloc = false ;
@@ -2768,7 +2766,7 @@ sd_sampling_stream_t* img2img_stream(sd_ctx_t* sd_ctx,
2768
2766
auto rng = sd_ctx->sd ->get_rng (seed);
2769
2767
2770
2768
struct ggml_init_params params{};
2771
- params.mem_size = static_cast <size_t >(5 * 10 * 1024 * 1024 ); // 50 MB
2769
+ params.mem_size = static_cast <size_t >(100 * 1024 * 1024 ); // 100 MB
2772
2770
params.mem_size += width * height * 3 * sizeof (float ) * 3 ;
2773
2771
params.mem_buffer = nullptr ;
2774
2772
params.no_alloc = false ;
0 commit comments