Skip to content

Commit 8e9f3a4

Browse files
authored
feat: add support for underline style lora of flux (#1103)
* feat: add support for underline style lora of flux * add support for underline style lora of t5 * add more protected tokens
1 parent 78e15bd commit 8e9f3a4

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

name_conversion.cpp

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,7 @@ std::string convert_sep_to_dot(std::string name) {
835835
"proj_out",
836836
"transformer_blocks",
837837
"single_transformer_blocks",
838+
"single_blocks",
838839
"diffusion_model",
839840
"cond_stage_model",
840841
"first_stage_model",
@@ -876,7 +877,18 @@ std::string convert_sep_to_dot(std::string name) {
876877
"ff_context",
877878
"norm_added_q",
878879
"norm_added_v",
879-
"to_add_out"};
880+
"to_add_out",
881+
"txt_mod",
882+
"img_mod",
883+
"txt_mlp",
884+
"img_mlp",
885+
"proj_mlp",
886+
"wi_0",
887+
"wi_1",
888+
"norm1_context",
889+
"ff_context",
890+
"x_embedder",
891+
};
880892

881893
// record the positions of underscores that should NOT be replaced
882894
std::unordered_set<size_t> protected_positions;
@@ -1020,12 +1032,14 @@ std::string convert_tensor_name(std::string name, SDVersion version) {
10201032
}
10211033
}
10221034

1023-
if (sd_version_is_unet(version) || is_lycoris_underline) {
1035+
// LOG_DEBUG("name %s %d", name.c_str(), version);
1036+
1037+
if (sd_version_is_unet(version) || sd_version_is_flux(version) || is_lycoris_underline) {
10241038
name = convert_sep_to_dot(name);
10251039
}
10261040
}
10271041

1028-
std::vector<std::pair<std::string, std::string>> prefix_map = {
1042+
std::unordered_map<std::string, std::string> prefix_map = {
10291043
{"diffusion_model.", "model.diffusion_model."},
10301044
{"unet.", "model.diffusion_model."},
10311045
{"transformer.", "model.diffusion_model."}, // dit
@@ -1040,8 +1054,13 @@ std::string convert_tensor_name(std::string name, SDVersion version) {
10401054
// {"te2.text_model.encoder.layers.", "cond_stage_model.1.model.transformer.resblocks."},
10411055
{"te2.", "cond_stage_model.1.transformer."},
10421056
{"te1.", "cond_stage_model.transformer."},
1057+
{"te3.", "text_encoders.t5xxl.transformer."},
10431058
};
10441059

1060+
if (sd_version_is_flux(version)) {
1061+
prefix_map["te1."] = "text_encoders.clip_l.transformer.";
1062+
}
1063+
10451064
replace_with_prefix_map(name, prefix_map);
10461065

10471066
// diffusion model

0 commit comments

Comments
 (0)