mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-11-11 19:36:33 +00:00
feat: support external Hugging Face tokenizer JSON files (#1973)
This commit is contained in:
1 parent
42d6c0ab92
commit
4964abdfc5
58 files changed
+97390
-180
No files matched your search
+25
-13
@@ -1139,10 +1139,10 @@ namespace sd::pipeline {
|
||||
return latents;
|
||||
}
|
||||
|
||||
static ImageGenerationEmbeds prepare_video_generation_embeds(StableDiffusionGGML* sd,
|
||||
const sd_vid_gen_params_t* sd_vid_gen_params,
|
||||
const GenerationRequest& request,
|
||||
const ImageGenerationLatents& latents) {
|
||||
static std::optional<ImageGenerationEmbeds> prepare_video_generation_embeds(StableDiffusionGGML* sd,
|
||||
const sd_vid_gen_params_t* sd_vid_gen_params,
|
||||
const GenerationRequest& request,
|
||||
const ImageGenerationLatents& latents) {
|
||||
ConditionerRunnerEndOnExit conditioner_runner_end{sd->cond_stage_model.get()};
|
||||
|
||||
ImageGenerationEmbeds embeds;
|
||||
@@ -1159,8 +1159,12 @@ namespace sd::pipeline {
|
||||
int64_t prepare_start_ms = ggml_time_ms();
|
||||
embeds.cond = sd->cond_stage_model->get_learned_condition(sd->n_threads,
|
||||
condition_params);
|
||||
embeds.cond.c_concat = latents.concat_latent;
|
||||
embeds.cond.c_vector = latents.clip_vision_output;
|
||||
if (embeds.cond.empty()) {
|
||||
LOG_ERROR("failed to encode video prompt");
|
||||
return std::nullopt;
|
||||
}
|
||||
embeds.cond.c_concat = latents.concat_latent;
|
||||
embeds.cond.c_vector = latents.clip_vision_output;
|
||||
if (sd_version_is_minimax_h3(sd->version)) {
|
||||
embeds.cond.c_ref_images = latents.ref_latents;
|
||||
embeds.cond.c_ref_audios = latents.reference_audio_latents;
|
||||
@@ -1178,9 +1182,13 @@ namespace sd::pipeline {
|
||||
}
|
||||
}
|
||||
if (request.use_uncond) {
|
||||
condition_params.text = request.negative_prompt;
|
||||
embeds.uncond = sd->cond_stage_model->get_learned_condition(sd->n_threads,
|
||||
condition_params);
|
||||
condition_params.text = request.negative_prompt;
|
||||
embeds.uncond = sd->cond_stage_model->get_learned_condition(sd->n_threads,
|
||||
condition_params);
|
||||
if (embeds.uncond.empty()) {
|
||||
LOG_ERROR("failed to encode negative video prompt");
|
||||
return std::nullopt;
|
||||
}
|
||||
embeds.uncond.c_concat = latents.concat_latent;
|
||||
embeds.uncond.c_vector = latents.clip_vision_output;
|
||||
if (sd_version_is_minimax_h3(sd->version)) {
|
||||
@@ -1574,10 +1582,14 @@ namespace sd::pipeline {
|
||||
}
|
||||
ImageGenerationLatents latents = std::move(*latent_inputs_opt);
|
||||
|
||||
ImageGenerationEmbeds embeds = prepare_video_generation_embeds(sd,
|
||||
sd_vid_gen_params,
|
||||
request,
|
||||
latents);
|
||||
auto embeds_opt = prepare_video_generation_embeds(sd,
|
||||
sd_vid_gen_params,
|
||||
request,
|
||||
latents);
|
||||
if (!embeds_opt) {
|
||||
return false;
|
||||
}
|
||||
ImageGenerationEmbeds embeds = std::move(*embeds_opt);
|
||||
if (latent_upscale_enabled) {
|
||||
LOG_INFO("generate_video %dx%dx%d -> LTX latent spatial upscale",
|
||||
request.width,
|
||||
|
||||
Reference in new issue
Block a user