allow reversing the reference image

This commit is contained in:
Concedo 2026-05-31 23:08:58 +08:00
parent fcceb68f3f
commit 14b7da5e44
4 changed files with 32 additions and 27 deletions

File diff suppressed because one or more lines are too long

View file

@ -223,6 +223,7 @@ struct sd_generation_inputs
const char * mask = "";
const int extra_images_len = 0;
const char ** extra_images = nullptr;
const bool reverse_refimg = false;
const bool flip_mask = false;
const float denoising_strength = 0.0f;
const float cfg_scale = 0.0f;

View file

@ -407,6 +407,7 @@ class sd_generation_inputs(ctypes.Structure):
("mask", ctypes.c_char_p),
("extra_images_len", ctypes.c_int),
("extra_images", ctypes.POINTER(ctypes.c_char_p)),
("reverse_refimg", ctypes.c_bool),
("flip_mask", ctypes.c_bool),
("denoising_strength", ctypes.c_float),
("cfg_scale", ctypes.c_float),
@ -2814,6 +2815,7 @@ def sd_generate(genparams):
vid_fps = (16 if vid_fps < 16 else (24 if vid_fps > 24 else vid_fps))
swap_refimg = (True if tryparseint(genparams.get("send_as_refimg", 0),0) else False)
reverse_refimg = (True if tryparseint(genparams.get("reverse_refimg", 0),0) else False)
if len(extra_images_arr)==0 and swap_refimg and init_images and init_images!="" and not mask:
extra_images_arr = [init_images]
init_images = ""
@ -2828,6 +2830,7 @@ def sd_generate(genparams):
for n, estr in enumerate(extra_images_arr):
extra_image = strip_base64_prefix(estr)
inputs.extra_images[n] = extra_image.encode("UTF-8")
inputs.reverse_refimg = reverse_refimg
inputs.flip_mask = flip_mask
inputs.cfg_scale = cfg_scale
if distilled_guidance is not None:

View file

@ -1371,15 +1371,16 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs)
vid_gen_params.video_frames = vid_req_frames;
vid_gen_params.fps = vid_fps;
vid_gen_params.vae_tiling_params = params.vae_tiling_params;
if(wan_imgs.size()>0)
{
if(wan_imgs.size()>=1)
{
if (wan_imgs.size() > 0) {
if (wan_imgs.size() >= 2) {
vid_gen_params.init_image = wan_imgs[0];
}
if(wan_imgs.size()>=2)
{
vid_gen_params.end_image = wan_imgs[1];
vid_gen_params.end_image = wan_imgs[1];
} else if (wan_imgs.size() == 1) {
if (inputs.reverse_refimg) {
vid_gen_params.end_image = wan_imgs[0];
} else {
vid_gen_params.init_image = wan_imgs[0];
}
}
}
if(!sd_is_quiet && sddebugmode==1)