Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bc14a78

Browse files
stduhpfSkutteOleg
authored andcommitted
Use C arrays instead of cpp vectors in C API
1 parent f33df0f commit bc14a78

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

examples/cli/main.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,8 @@ int main(int argc, const char* argv[]) {
926926
params.style_ratio,
927927
params.normalize_input,
928928
params.input_id_images_path.c_str(),
929-
params.skip_layers,
929+
params.skip_layers.data(),
930+
params.skip_layers.size(),
930931
params.slg_scale,
931932
params.skip_layer_start,
932933
params.skip_layer_end);
@@ -992,7 +993,8 @@ int main(int argc, const char* argv[]) {
992993
params.style_ratio,
993994
params.normalize_input,
994995
params.input_id_images_path.c_str(),
995-
params.skip_layers,
996+
params.skip_layers.data(),
997+
params.skip_layers.size(),
996998
params.slg_scale,
997999
params.skip_layer_start,
9981000
params.skip_layer_end);

stable-diffusion.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,10 +1453,12 @@ sd_image_t* txt2img(sd_ctx_t* sd_ctx,
14531453
float style_ratio,
14541454
bool normalize_input,
14551455
const char* input_id_images_path_c_str,
1456-
std::vector<int> skip_layers = {},
1457-
float slg_scale = 0,
1458-
float skip_layer_start = 0.01,
1459-
float skip_layer_end = 0.2) {
1456+
int* skip_layers = NULL,
1457+
size_t skip_layers_count = 0,
1458+
float slg_scale = 0,
1459+
float skip_layer_start = 0.01,
1460+
float skip_layer_end = 0.2) {
1461+
std::vector<int> skip_layers_vec(skip_layers, skip_layers + skip_layers_count);
14601462
LOG_DEBUG("txt2img %dx%d", width, height);
14611463
if (sd_ctx == NULL) {
14621464
return NULL;
@@ -1525,7 +1527,7 @@ sd_image_t* txt2img(sd_ctx_t* sd_ctx,
15251527
style_ratio,
15261528
normalize_input,
15271529
input_id_images_path_c_str,
1528-
skip_layers,
1530+
skip_layers_vec,
15291531
slg_scale,
15301532
skip_layer_start,
15311533
skip_layer_end);
@@ -1556,10 +1558,12 @@ sd_image_t* img2img(sd_ctx_t* sd_ctx,
15561558
float style_ratio,
15571559
bool normalize_input,
15581560
const char* input_id_images_path_c_str,
1559-
std::vector<int> skip_layers = {},
1560-
float slg_scale = 0,
1561-
float skip_layer_start = 0.01,
1562-
float skip_layer_end = 0.2) {
1561+
int* skip_layers = NULL,
1562+
size_t skip_layers_count = 0,
1563+
float slg_scale = 0,
1564+
float skip_layer_start = 0.01,
1565+
float skip_layer_end = 0.2) {
1566+
std::vector<int> skip_layers_vec(skip_layers, skip_layers + skip_layers_count);
15631567
LOG_DEBUG("img2img %dx%d", width, height);
15641568
if (sd_ctx == NULL) {
15651569
return NULL;
@@ -1634,7 +1638,7 @@ sd_image_t* img2img(sd_ctx_t* sd_ctx,
16341638
style_ratio,
16351639
normalize_input,
16361640
input_id_images_path_c_str,
1637-
skip_layers,
1641+
skip_layers_vec,
16381642
slg_scale,
16391643
skip_layer_start,
16401644
skip_layer_end);

stable-diffusion.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ SD_API sd_image_t* txt2img(sd_ctx_t* sd_ctx,
166166
float style_strength,
167167
bool normalize_input,
168168
const char* input_id_images_path,
169-
std::vector<int> skip_layers,
169+
int* skip_layers,
170+
size_t skip_layers_count,
170171
float slg_scale,
171172
float skip_layer_start,
172173
float skip_layer_end);
@@ -190,7 +191,8 @@ SD_API sd_image_t* img2img(sd_ctx_t* sd_ctx,
190191
float style_strength,
191192
bool normalize_input,
192193
const char* input_id_images_path,
193-
std::vector<int> skip_layers,
194+
int* skip_layers,
195+
size_t skip_layers_count,
194196
float slg_scale,
195197
float skip_layer_start,
196198
float skip_layer_end);

0 commit comments

Comments
 (0)