@@ -13,12 +13,13 @@ struct DiffusionModel {
1313 struct ggml_tensor * c_concat,
1414 struct ggml_tensor * y,
1515 struct ggml_tensor * guidance,
16- int num_video_frames = -1 ,
17- std::vector<struct ggml_tensor *> controls = {},
18- float control_strength = 0 .f,
19- struct ggml_tensor ** output = NULL ,
20- struct ggml_context * output_ctx = NULL ,
21- std::vector<int > skip_layers = std::vector<int >()) = 0;
16+ int num_video_frames = -1 ,
17+ std::vector<struct ggml_tensor *> controls = {},
18+ float control_strength = 0 .f,
19+ std::vector<struct ggml_tensor *> kontext_imgs = std::vector<struct ggml_tensor *>(),
20+ struct ggml_tensor** output = NULL,
21+ struct ggml_context* output_ctx = NULL,
22+ std::vector<int> skip_layers = std::vector<int>()) = 0;
2223 virtual void alloc_params_buffer () = 0;
2324 virtual void free_params_buffer () = 0;
2425 virtual void free_compute_buffer () = 0;
@@ -68,12 +69,13 @@ struct UNetModel : public DiffusionModel {
6869 struct ggml_tensor * c_concat,
6970 struct ggml_tensor * y,
7071 struct ggml_tensor * guidance,
71- int num_video_frames = -1 ,
72- std::vector<struct ggml_tensor *> controls = {},
73- float control_strength = 0 .f,
74- struct ggml_tensor ** output = NULL ,
75- struct ggml_context * output_ctx = NULL ,
76- std::vector<int > skip_layers = std::vector<int >()) {
72+ int num_video_frames = -1 ,
73+ std::vector<struct ggml_tensor *> controls = {},
74+ float control_strength = 0 .f,
75+ std::vector<struct ggml_tensor *> kontext_imgs = std::vector<struct ggml_tensor *>(),
76+ struct ggml_tensor** output = NULL,
77+ struct ggml_context* output_ctx = NULL,
78+ std::vector<int> skip_layers = std::vector<int>()) {
7779 (void )skip_layers; // SLG doesn't work with UNet models
7880 return unet.compute (n_threads, x, timesteps, context, c_concat, y, num_video_frames, controls, control_strength, output, output_ctx);
7981 }
@@ -118,12 +120,13 @@ struct MMDiTModel : public DiffusionModel {
118120 struct ggml_tensor * c_concat,
119121 struct ggml_tensor * y,
120122 struct ggml_tensor * guidance,
121- int num_video_frames = -1 ,
122- std::vector<struct ggml_tensor *> controls = {},
123- float control_strength = 0 .f,
124- struct ggml_tensor ** output = NULL ,
125- struct ggml_context * output_ctx = NULL ,
126- std::vector<int > skip_layers = std::vector<int >()) {
123+ int num_video_frames = -1 ,
124+ std::vector<struct ggml_tensor *> controls = {},
125+ float control_strength = 0 .f,
126+ std::vector<struct ggml_tensor *> kontext_imgs = std::vector<struct ggml_tensor *>(),
127+ struct ggml_tensor** output = NULL,
128+ struct ggml_context* output_ctx = NULL,
129+ std::vector<int> skip_layers = std::vector<int>()) {
127130 return mmdit.compute (n_threads, x, timesteps, context, y, output, output_ctx, skip_layers);
128131 }
129132};
@@ -169,13 +172,14 @@ struct FluxModel : public DiffusionModel {
169172 struct ggml_tensor * c_concat,
170173 struct ggml_tensor * y,
171174 struct ggml_tensor * guidance,
172- int num_video_frames = -1 ,
173- std::vector<struct ggml_tensor *> controls = {},
174- float control_strength = 0 .f,
175- struct ggml_tensor ** output = NULL ,
176- struct ggml_context * output_ctx = NULL ,
177- std::vector<int > skip_layers = std::vector<int >()) {
178- return flux.compute (n_threads, x, timesteps, context, c_concat, y, guidance, output, output_ctx, skip_layers);
175+ int num_video_frames = -1 ,
176+ std::vector<struct ggml_tensor *> controls = {},
177+ float control_strength = 0 .f,
178+ std::vector<struct ggml_tensor *> kontext_imgs = std::vector<struct ggml_tensor *>(),
179+ struct ggml_tensor** output = NULL,
180+ struct ggml_context* output_ctx = NULL,
181+ std::vector<int> skip_layers = std::vector<int>()) {
182+ return flux.compute (n_threads, x, timesteps, context, c_concat, y, guidance, kontext_imgs, output, output_ctx, skip_layers);
179183 }
180184};
181185
0 commit comments