mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-09-25 15:38:00 -05:00
feat: add SenseNova U1.5 support (#1935)
This commit is contained in:
@@ -96,6 +96,7 @@ const char* model_version_to_str[] = {
|
||||
"SeFi-Image",
|
||||
"Krea2",
|
||||
"Mage Flow",
|
||||
"SenseNova U1.5",
|
||||
"ESRGAN",
|
||||
};
|
||||
|
||||
@@ -1309,6 +1310,9 @@ bool StableDiffusionGGML::build_denoiser() {
|
||||
pred_type = SEFI_FLOW_PRED;
|
||||
} else if (sd_version_is_minit2i(version)) {
|
||||
pred_type = MINIT2I_FLOW_PRED;
|
||||
} else if (sd_version_is_sensenova_u1(version)) {
|
||||
pred_type = SENSENOVA_U1_FLOW_PRED;
|
||||
default_flow_shift = 3.f;
|
||||
} else {
|
||||
pred_type = EPS_PRED;
|
||||
}
|
||||
@@ -1354,6 +1358,11 @@ bool StableDiffusionGGML::build_denoiser() {
|
||||
denoiser = std::make_shared<MiniT2IFlowDenoiser>();
|
||||
break;
|
||||
}
|
||||
case SENSENOVA_U1_FLOW_PRED: {
|
||||
LOG_INFO("running in SenseNova U1.5 FLOW mode");
|
||||
denoiser = std::make_shared<SenseNovaU1FlowDenoiser>(default_flow_shift);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
LOG_ERROR("Unknown predition type %i", pred_type);
|
||||
return false;
|
||||
@@ -2336,6 +2345,9 @@ sd::Tensor<float> StableDiffusionGGML::sample(const std::shared_ptr<DiffusionMod
|
||||
} else if (sd_version_is_minit2i(version)) {
|
||||
diffusion_params.extra = MiniT2IDiffusionExtra{
|
||||
condition.c_vector.empty() ? nullptr : &condition.c_vector};
|
||||
} else if (sd_version_is_sensenova_u1(version)) {
|
||||
diffusion_params.extra = SenseNovaU1DiffusionExtra{
|
||||
condition.c_input_ids.empty() ? nullptr : &condition.c_input_ids};
|
||||
} else {
|
||||
diffusion_params.extra = std::monostate{};
|
||||
}
|
||||
@@ -2492,7 +2504,9 @@ int StableDiffusionGGML::get_vae_scale_factor() {
|
||||
int StableDiffusionGGML::get_diffusion_model_down_factor() {
|
||||
int down_factor = 8; // unet
|
||||
if (sd_version_is_dit(version)) {
|
||||
if (sd_version_is_wan(version) || sd_version_is_lingbot_video(version) || sd_version_is_minimax_h3(version)) {
|
||||
if (sd_version_is_sensenova_u1(version)) {
|
||||
down_factor = 32;
|
||||
} else if (sd_version_is_wan(version) || sd_version_is_lingbot_video(version) || sd_version_is_minimax_h3(version)) {
|
||||
down_factor = 2;
|
||||
} else {
|
||||
down_factor = 1;
|
||||
@@ -2518,6 +2532,8 @@ int StableDiffusionGGML::get_latent_channel() {
|
||||
latent_channel = 3;
|
||||
} else if (sd_version_is_minit2i(version)) {
|
||||
latent_channel = 3;
|
||||
} else if (sd_version_is_sensenova_u1(version)) {
|
||||
latent_channel = 3;
|
||||
} else if (sd_version_is_pid(version)) {
|
||||
latent_channel = 3;
|
||||
} else if (sd_version_is_sefi_image(version)) {
|
||||
|
||||
Reference in New Issue
Block a user