Skip to content

Commit 96f741d

Browse files
committed
refactor(tx): scale up image workspace
Signed-off-by: thxCode <thxcode0824@gmail.com>
1 parent 366665b commit 96f741d

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

stable-diffusion.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,10 @@ class StableDiffusionGGML {
304304
// no GPU devices available
305305
backend = ggml_backend_cpu_init();
306306
} else if (gpu_devices.size() < 3) {
307-
// use the last GPU device
307+
// use the last GPU device: device 0, device 1
308308
backend = ggml_backend_dev_init(gpu_devices[gpu_devices.size() - 1].first, nullptr);
309309
} else {
310-
// use the 3rd GPU device
310+
// use the 3rd GPU device: device 2
311311
backend = ggml_backend_dev_init(gpu_devices[2].first, nullptr);
312312
}
313313
switch (gpu_devices.size()) {
@@ -337,8 +337,7 @@ class StableDiffusionGGML {
337337
break;
338338
}
339339
case 2: {
340-
// device 0: clip, vae
341-
// device 1: control_net
340+
// device 0: clip, vae, control_net
342341
if (clip_on_cpu) {
343342
LOG_INFO("CLIP: Using CPU backend");
344343
clip_backend = ggml_backend_cpu_init();
@@ -355,14 +354,13 @@ class StableDiffusionGGML {
355354
LOG_INFO("ControlNet: Using CPU backend");
356355
control_net_backend = ggml_backend_cpu_init();
357356
} 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);
359358
}
360359
break;
361360
}
362361
default: {
363-
// device 0: clip
362+
// device 0: clip, control_net
364363
// device 1: vae
365-
// device 2: control_net
366364
if (clip_on_cpu) {
367365
LOG_INFO("CLIP: Using CPU backend");
368366
clip_backend = ggml_backend_cpu_init();
@@ -379,7 +377,7 @@ class StableDiffusionGGML {
379377
LOG_INFO("ControlNet: Using CPU backend");
380378
control_net_backend = ggml_backend_cpu_init();
381379
} 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);
383381
}
384382
}
385383
}
@@ -2676,7 +2674,7 @@ sd_sampling_stream_t* txt2img_stream(sd_ctx_t* sd_ctx,
26762674
auto rng = sd_ctx->sd->get_rng(seed);
26772675

26782676
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
26802678
params.mem_size += width * height * 3 * sizeof(float) * 3;
26812679
params.mem_buffer = nullptr;
26822680
params.no_alloc = false;
@@ -2768,7 +2766,7 @@ sd_sampling_stream_t* img2img_stream(sd_ctx_t* sd_ctx,
27682766
auto rng = sd_ctx->sd->get_rng(seed);
27692767

27702768
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
27722770
params.mem_size += width * height * 3 * sizeof(float) * 3;
27732771
params.mem_buffer = nullptr;
27742772
params.no_alloc = false;

upscaler.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,9 @@ struct UpscalerGGML {
8383
if (gpu_devices.empty()) {
8484
// no GPU devices available
8585
backend = ggml_backend_cpu_init();
86-
} else if (gpu_devices.size() < 4) {
87-
// use the last GPU device
88-
backend = ggml_backend_dev_init(gpu_devices[gpu_devices.size() - 1].first, nullptr);
8986
} else {
90-
// use the 4th GPU device
91-
backend = ggml_backend_dev_init(gpu_devices[3].first, nullptr);
87+
// use the first GPU device: device 0
88+
backend = ggml_backend_dev_init(gpu_devices[0].first, nullptr);
9289
}
9390

9491
ModelLoader model_loader;

0 commit comments

Comments
 (0)