Skip to content

Commit 24cebc9

Browse files
committed
add support for Qwen Image Pruning
From leejet/stable-diffusion.cpp#874 .
1 parent 356453c commit 24cebc9

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

otherarch/sdcpp/qwen_image.hpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,27 @@ namespace Qwen {
492492
bool flash_attn = false)
493493
: GGMLRunner(backend, offload_params_to_cpu) {
494494
qwen_image_params.flash_attn = flash_attn;
495+
496+
int model_layers = qwen_image_params.num_layers;
497+
int num_layers = 1;
498+
std::string layer_prefix = "transformer_blocks.";
499+
if (prefix.size() > 0) {
500+
layer_prefix = prefix + "." + layer_prefix;
501+
}
502+
for (int layer = model_layers; layer > num_layers; layer--) {
503+
std::string layer_name = layer_prefix + std::to_string(layer-1) + ".attn.add_k_proj.bias";
504+
for (auto pair : tensor_types) {
505+
if (pair.first.find(layer_name) != std::string::npos) {
506+
num_layers = layer;
507+
break;
508+
}
509+
}
510+
}
511+
if (num_layers < model_layers) {
512+
LOG_INFO("Qwen Image: some layers missing, assuming pruned model");
513+
}
514+
515+
qwen_image_params.num_layers = num_layers;
495516
qwen_image = QwenImageModel(qwen_image_params);
496517
qwen_image.init(params_ctx, tensor_types, prefix);
497518
}

0 commit comments

Comments
 (0)