11
22#include "../global.h"
33
4- static string_array_t * edit_image_node_flux_klein_args (char * dir , char * prompt ) {
4+ static string_array_t * edit_image_node_flux_klein_args (char * dir ) {
55 string_array_t * argv = any_array_create_from_raw (
66 (void * []){
77 string ("%s/%s" , dir , neural_node_sd_bin ()),
@@ -11,33 +11,14 @@ static string_array_t *edit_image_node_flux_klein_args(char *dir, char *prompt)
1111 string ("%s/taef2.safetensors" , dir ),
1212 "--llm" ,
1313 string ("%s/Qwen3-4B-Q8_0.gguf" , dir ),
14- "--cfg-scale" ,
15- "1.0" ,
16- "--sampling-method" ,
17- "euler" ,
18- "--diffusion-fa" ,
19- "--offload-to-cpu" ,
2014 "--steps" ,
2115 "4" ,
22- "-s" ,
23- "-1" ,
24- "-W" ,
25- string ("%d" , g_config -> neural_res ),
26- "-H" ,
27- string ("%d" , g_config -> neural_res ),
28- "-r" ,
29- string ("%s/input.png" , dir ),
30- "-p" ,
31- prompt ,
32- "-o" ,
33- string ("%s/output.png" , dir ),
34- NULL ,
3516 },
36- 28 );
17+ 9 );
3718 return argv ;
3819}
3920
40- static string_array_t * edit_image_node_qwen_args (char * dir , char * prompt ) {
21+ static string_array_t * edit_image_node_qwen_args (char * dir ) {
4122 string_array_t * argv = any_array_create_from_raw (
4223 (void * []){
4324 string ("%s/%s" , dir , neural_node_sd_bin ()),
@@ -49,30 +30,11 @@ static string_array_t *edit_image_node_qwen_args(char *dir, char *prompt) {
4930 string ("%s/Qwen2.5-VL-7B-Instruct-Q4_K_S.gguf" , dir ),
5031 "--llm_vision" ,
5132 string ("%s/mmproj-F16.gguf" , dir ),
52- "--offload-to-cpu" ,
53- "--diffusion-fa" ,
33+ "--qwen-image-zero-cond-t" ,
5434 "--steps" ,
5535 "30" ,
56- "-s" ,
57- "-1" ,
58- "--cfg-scale" ,
59- "2.5" ,
60- "--flow-shift" ,
61- "3" ,
62- "--qwen-image-zero-cond-t" ,
63- "-W" ,
64- string ("%d" , g_config -> neural_res ),
65- "-H" ,
66- string ("%d" , g_config -> neural_res ),
67- "-p" ,
68- prompt ,
69- "-r" ,
70- string ("%s/input.png" , dir ),
71- "-o" ,
72- string ("%s/output.png" , dir ),
73- NULL ,
7436 },
75- 31 );
37+ 12 );
7638 return argv ;
7739}
7840
@@ -82,10 +44,18 @@ void edit_image_node_button(i32 node_id) {
8244 char * node_name = parser_material_node_name (node , NULL );
8345 ui_handle_t * h = ui_handle (node_name );
8446
85- string_array_t * models = any_array_create_from_raw ((void * []){"Qwen Image Edit " , "FLUX 2 klein " }, 2 );
47+ string_array_t * models = any_array_create_from_raw ((void * []){"FLUX 2 klein " , "Qwen Image Edit " }, 2 );
8648 i32 model = ui_combo (ui_nest (h , 0 ), models , tr ("Model" ), false, UI_ALIGN_LEFT , true);
8749 char * prompt = ui_text_area (ui_nest (h , 1 ), UI_ALIGN_LEFT , true, tr ("prompt" ), true);
88- node -> buttons -> buffer [0 ]-> height = string_split (prompt , "\n" )-> length + 2 ;
50+ node -> buttons -> buffer [0 ]-> height = string_split (prompt , "\n" )-> length + 4 ;
51+
52+ ui_handle_t * hs = ui_nest (h , 2 );
53+ if (hs -> init ) {
54+ hs -> f = 1.0 ;
55+ }
56+ f32 strength = ui_slider (hs , tr ("Strength" ), 0.0 , 1.0 , true, 100.0 , true, UI_ALIGN_LEFT , true);
57+
58+ bool tiled = ui_check (ui_nest (h , 3 ), tr ("Tiled" ), "" );
8959
9060 if (neural_node_button (node , models -> buffer [model ])) {
9161 ui_node_t * from_node = neural_from_node (node -> inputs -> buffer [0 ], 0 );
@@ -100,17 +70,36 @@ void edit_image_node_button(i32 node_id) {
10070 char * dir = neural_node_dir ();
10171 iron_write_png (string ("%s%sinput.png" , dir , PATH_SEP ), input_buf , input -> width , input -> height , 0 );
10272
103- if (string_equals (prompt , "" )) {
104- prompt = "." ;
105- }
106-
10773 string_array_t * argv ;
10874 if (model == 0 ) {
109- argv = edit_image_node_flux_klein_args (dir , prompt );
75+ argv = edit_image_node_flux_klein_args (dir );
11076 }
11177 else {
112- argv = edit_image_node_qwen_args (dir , prompt );
78+ argv = edit_image_node_qwen_args (dir );
79+ }
80+
81+ string_array_push (argv , "--cfg-scale" );
82+ string_array_push (argv , "1.0" );
83+ string_array_push (argv , "--diffusion-fa" );
84+ string_array_push (argv , "--offload-to-cpu" );
85+ string_array_push (argv , "--strength" );
86+ string_array_push (argv , string ("%f" , strength ));
87+ string_array_push (argv , "-s" );
88+ string_array_push (argv , "-1" );
89+ string_array_push (argv , "-W" );
90+ string_array_push (argv , string ("%d" , g_config -> neural_res ));
91+ string_array_push (argv , "-H" );
92+ string_array_push (argv , string ("%d" , g_config -> neural_res ));
93+ string_array_push (argv , "-p" );
94+ string_array_push (argv , prompt );
95+ string_array_push (argv , "-r" );
96+ string_array_push (argv , string ("%s/input.png" , dir ));
97+ string_array_push (argv , "-o" );
98+ string_array_push (argv , string ("%s/output.png" , dir ));
99+ if (tiled ) {
100+ string_array_push (argv , "--circular" );
113101 }
102+ string_array_push (argv , NULL );
114103
115104 iron_exec_async (argv -> buffer [0 ], argv -> buffer );
116105 sys_notify_on_update (neural_node_check_result , node );
0 commit comments