Skip to content

Commit 9abd59c

Browse files
committed
set vae tile size via env var
1 parent 24529f5 commit 9abd59c

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

stable-diffusion.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,6 +1426,20 @@ class StableDiffusionGGML {
14261426
decode ? 3 : C,
14271427
x->ne[3]); // channels
14281428
int64_t t0 = ggml_time_ms();
1429+
1430+
int tile_size = 32;
1431+
// TODO: arg instead of env?
1432+
const char* SD_TILE_SIZE = getenv("SD_TILE_SIZE");
1433+
if (SD_TILE_SIZE != nullptr) {
1434+
std::string sd_tile_size_str = SD_TILE_SIZE;
1435+
try {
1436+
tile_size = std::stoi(sd_tile_size_str);
1437+
} catch (const std::invalid_argument&) {
1438+
LOG_WARN("Invalid");
1439+
} catch (const std::out_of_range&) {
1440+
LOG_WARN("OOR");
1441+
}
1442+
}
14291443
if (!use_tiny_autoencoder) {
14301444
if (decode) {
14311445
ggml_tensor_scale(x, 1.0f / scale_factor);
@@ -1437,7 +1451,7 @@ class StableDiffusionGGML {
14371451
auto on_tiling = [&](ggml_tensor* in, ggml_tensor* out, bool init) {
14381452
first_stage_model->compute(n_threads, in, decode, &out);
14391453
};
1440-
sd_tiling(x, result, 8, 32, 0.5f, on_tiling, decode);
1454+
sd_tiling(x, result, 8, tile_size, 0.5f, on_tiling, decode);
14411455
} else {
14421456
first_stage_model->compute(n_threads, x, decode, &result);
14431457
}

0 commit comments

Comments
 (0)