This commit is contained in:
Wagner Bruna 2026-05-21 11:52:04 +08:00 committed by GitHub
commit 471989a272
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 0 deletions

View file

@ -17,6 +17,7 @@ namespace kcpp_sd {
bool is_sdxs;
bool is_wan;
bool is_zimage;
int vae_scale_factor;
int spatial_multiple;
};

View file

@ -1070,6 +1070,16 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs)
// trigger tiling by image area, the memory used for the VAE buffer is 6656 bytes per image pixel, default 768x768
bool dotile = (sd_params->width*sd_params->height > cfg_tiled_vae_threshold*cfg_tiled_vae_threshold);
int vae_tile_size = -1;
if (dotile) {
int new_vae_tile_size = cfg_tiled_vae_threshold / info.vae_scale_factor;
new_vae_tile_size = new_vae_tile_size / 2;
new_vae_tile_size -= new_vae_tile_size % 2;
if (new_vae_tile_size > vae_tile_size) {
vae_tile_size = new_vae_tile_size;
}
}
//for img2img
sd_image_t input_image = {0,0,0,nullptr};
std::vector<sd_image_t> reference_imgs;
@ -1220,6 +1230,10 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs)
params.seed = sd_params->seed;
params.strength = sd_params->strength;
params.vae_tiling_params.enabled = dotile;
if (vae_tile_size > 0) {
params.vae_tiling_params.tile_size_x = vae_tile_size;
params.vae_tiling_params.tile_size_y = vae_tile_size;
}
parse_cache_options(params.cache, sd_params->cache_mode, sd_params->cache_options);
LoraMap lora_map = sd_params->lora_map;

View file

@ -4464,6 +4464,7 @@ namespace kcpp_sd {
res.is_sdxs = (loadedsdver == SDVersion::VERSION_SDXS_512_DS || loadedsdver == SDVersion::VERSION_SDXS_09);
res.is_sd1 = (loadedsdver == SDVersion::VERSION_SD1);
res.is_sd2 = (loadedsdver == SDVersion::VERSION_SD2);
res.vae_scale_factor = ctx->sd->get_vae_scale_factor();
res.spatial_multiple = get_spatial_multiple(ctx);
return res;
}