Skip to content

Commit 4f62a9c

Browse files
stduhpfthxCode
authored andcommitted
Latent preview support for img2img and img2vid
1 parent 3a95549 commit 4f62a9c

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed

examples/cli/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,8 @@ int main(int argc, const char* argv[]) {
968968
params.sample_method,
969969
params.sample_steps,
970970
params.strength,
971-
params.seed);
971+
params.seed,
972+
(step_callback_t)step_callback);
972973
if (results == NULL) {
973974
printf("generate failed\n");
974975
free_sd_ctx(sd_ctx);
@@ -1014,7 +1015,8 @@ int main(int argc, const char* argv[]) {
10141015
params.skip_layers.size(),
10151016
params.slg_scale,
10161017
params.skip_layer_start,
1017-
params.skip_layer_end);
1018+
params.skip_layer_end,
1019+
(step_callback_t)step_callback);
10181020
}
10191021
}
10201022

stable-diffusion.cpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,10 +1320,10 @@ sd_image_t* generate_image(sd_ctx_t* sd_ctx,
13201320
float style_ratio,
13211321
bool normalize_input,
13221322
std::string input_id_images_path,
1323-
std::vector<int> skip_layers = {},
1324-
float slg_scale = 0,
1325-
float skip_layer_start = 0.01,
1326-
float skip_layer_end = 0.2,
1323+
std::vector<int> skip_layers = {},
1324+
float slg_scale = 0,
1325+
float skip_layer_start = 0.01,
1326+
float skip_layer_end = 0.2,
13271327
std::function<void(int, ggml_tensor*, SDVersion)> step_callback = nullptr) {
13281328
if (seed < 0) {
13291329
// Generally, when using the provided command line, the seed is always >0.
@@ -1624,7 +1624,7 @@ sd_image_t* txt2img(sd_ctx_t* sd_ctx,
16241624
float slg_scale = 0,
16251625
float skip_layer_start = 0.01,
16261626
float skip_layer_end = 0.2,
1627-
step_callback_t step_callback) {
1627+
step_callback_t step_callback = NULL) {
16281628
std::vector<int> skip_layers_vec(skip_layers, skip_layers + skip_layers_count);
16291629
LOG_DEBUG("txt2img %dx%d", width, height);
16301630
if (sd_ctx == NULL) {
@@ -1730,7 +1730,8 @@ sd_image_t* img2img(sd_ctx_t* sd_ctx,
17301730
size_t skip_layers_count = 0,
17311731
float slg_scale = 0,
17321732
float skip_layer_start = 0.01,
1733-
float skip_layer_end = 0.2) {
1733+
float skip_layer_end = 0.2,
1734+
step_callback_t step_callback = NULL) {
17341735
std::vector<int> skip_layers_vec(skip_layers, skip_layers + skip_layers_count);
17351736
LOG_DEBUG("img2img %dx%d", width, height);
17361737
if (sd_ctx == NULL) {
@@ -1805,7 +1806,8 @@ sd_image_t* img2img(sd_ctx_t* sd_ctx,
18051806
skip_layers_vec,
18061807
slg_scale,
18071808
skip_layer_start,
1808-
skip_layer_end);
1809+
skip_layer_end,
1810+
step_callback);
18091811

18101812
size_t t2 = ggml_time_ms();
18111813

@@ -1827,7 +1829,8 @@ SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx,
18271829
enum sample_method_t sample_method,
18281830
int sample_steps,
18291831
float strength,
1830-
int64_t seed) {
1832+
int64_t seed,
1833+
step_callback_t step_callback = NULL) {
18311834
if (sd_ctx == NULL) {
18321835
return NULL;
18331836
}
@@ -1903,7 +1906,10 @@ SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx,
19031906
sigmas,
19041907
-1,
19051908
SDCondition(NULL, NULL, NULL),
1906-
rng);
1909+
rng,
1910+
{},
1911+
0, 0, 0,
1912+
step_callback);
19071913

19081914
int64_t t2 = ggml_time_ms();
19091915
LOG_INFO("sampling completed, taking %.2fs", (t2 - t1) * 1.0f / 1000);

stable-diffusion.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ SD_API sd_image_t* img2img(sd_ctx_t* sd_ctx,
210210
size_t skip_layers_count,
211211
float slg_scale,
212212
float skip_layer_start,
213-
float skip_layer_end);
213+
float skip_layer_end,
214+
step_callback_t step_callback);
214215

215216
SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx,
216217
sd_image_t init_image,
@@ -225,7 +226,8 @@ SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx,
225226
enum sample_method_t sample_method,
226227
int sample_steps,
227228
float strength,
228-
int64_t seed);
229+
int64_t seed,
230+
step_callback_t step_callback);
229231

230232
typedef struct sd_lora_adapter_container_t {
231233
const char* path;

0 commit comments

Comments
 (0)