Skip to content

Commit f6a5bcd

Browse files
committed
paint: neural fixes
1 parent 799148b commit f6a5bcd

10 files changed

Lines changed: 192 additions & 569 deletions

paint/sources/functions.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ void util_uv_cache_uv_map();
678678
void util_uv_cache_triangle_map();
679679
void util_uv_cache_dilate_map();
680680
void util_uv_cache_uv_island_map();
681-
void util_texture_capture_output(gpu_texture_t *img, char *basename);
681+
void util_texture_capture_output(gpu_texture_t *img, char *basename, bool bgra);
682682
void render_path_raytrace_init();
683683
void render_path_raytrace_raytrace_init(char *shader_name, bool build);
684684
void render_path_raytrace_draw(bool use_live_layer);
@@ -794,11 +794,8 @@ char *neural_node_dir();
794794
void neural_node_download_models(string_array_t *models);
795795
void neural_node_models_init();
796796
void edit_image_node_init();
797-
void tile_image_node_init();
798797
void image_to_3d_mesh_node_init();
799798
void image_to_3d_mesh_node_button(i32 node_id);
800-
void image_to_normal_map_node_init();
801-
void image_to_depth_node_init();
802799
void *tex_image_node_create(ui_node_t *raw, f32_array_t *args);
803800
void *random_node_create(ui_node_t *raw, f32_array_t *args);
804801
void *boolean_node_create(ui_node_t *raw, f32_array_t *args);

paint/sources/main.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,6 @@
104104

105105
#include "nodes_neural/edit_image_node.c"
106106
#include "nodes_neural/image_to_3d_mesh_node.c"
107-
#include "nodes_neural/image_to_depth_node.c"
108-
#include "nodes_neural/image_to_normal_map_node.c"
109107
#include "nodes_neural/image_to_pbr_node.c"
110108
#include "nodes_neural/inpaint_image_node.c"
111109
#include "nodes_neural/neural_node.c"
@@ -115,7 +113,6 @@
115113
#include "nodes_neural/text_to_image_node.c"
116114
#include "nodes_neural/text_to_text_node.c"
117115
#include "nodes_neural/texture_mesh_node.c"
118-
#include "nodes_neural/tile_image_node.c"
119116
#include "nodes_neural/upscale_image_node.c"
120117

121118
#include "render/make_bake.c"

paint/sources/nodes_material.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,6 @@ void nodes_material_init() {
9090
#ifdef IRON_WINDOWS
9191
image_to_3d_mesh_node_init();
9292
#endif
93-
image_to_depth_node_init();
94-
image_to_normal_map_node_init();
9593
image_to_pbr_node_init();
9694
inpaint_image_node_init();
9795
repeat_node_init();
@@ -100,7 +98,6 @@ void nodes_material_init() {
10098
if (g_config->experimental) {
10199
texture_mesh_node_init();
102100
}
103-
tile_image_node_init();
104101
upscale_image_node_init();
105102

106103
#endif

paint/sources/nodes_neural/edit_image_node.c

Lines changed: 40 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
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);

paint/sources/nodes_neural/image_to_depth_node.c

Lines changed: 0 additions & 114 deletions
This file was deleted.

0 commit comments

Comments
 (0)