aleph65 commited on
Commit
4c0f0e7
·
verified ·
1 Parent(s): cc2faf6

krea2 edit workflows: longest-edge resolution control (Input max size INT, qwen-edit-v4 style)

Browse files
workflows/api/krea2-turbo-edit-2img.json CHANGED
@@ -10,6 +10,26 @@
10
  }
11
  },
12
  "10": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  "_meta": {
14
  "title": "Edit Instruction (grounded on source)"
15
  },
@@ -21,17 +41,17 @@
21
  ],
22
  "grounding_px": 768,
23
  "image": [
24
- "6",
25
  0
26
  ],
27
  "image_b": [
28
- "17",
29
  0
30
  ],
31
  "prompt": "replace the robot on the street with the man in the gray jacket"
32
  }
33
  },
34
- "11": {
35
  "_meta": {
36
  "title": "Negative (grounded, empty \u2014 used at CFG > 1)"
37
  },
@@ -43,17 +63,17 @@
43
  ],
44
  "grounding_px": 768,
45
  "image": [
46
- "6",
47
  0
48
  ],
49
  "image_b": [
50
- "17",
51
  0
52
  ],
53
  "prompt": ""
54
  }
55
  },
56
- "12": {
57
  "_meta": {
58
  "title": "Target Latent (auto-sized from source)"
59
  },
@@ -61,34 +81,34 @@
61
  "inputs": {
62
  "batch_size": 1,
63
  "height": [
64
- "7",
65
  1
66
  ],
67
  "width": [
68
- "7",
69
  0
70
  ]
71
  }
72
  },
73
- "13": {
74
  "class_type": "KSampler",
75
  "inputs": {
76
  "cfg": 1.0,
77
  "denoise": 1.0,
78
  "latent_image": [
79
- "12",
80
  0
81
  ],
82
  "model": [
83
- "9",
84
  0
85
  ],
86
  "negative": [
87
- "11",
88
  0
89
  ],
90
  "positive": [
91
- "10",
92
  0
93
  ],
94
  "sampler_name": "euler",
@@ -97,11 +117,11 @@
97
  "steps": 10
98
  }
99
  },
100
- "14": {
101
  "class_type": "VAEDecode",
102
  "inputs": {
103
  "samples": [
104
- "13",
105
  0
106
  ],
107
  "vae": [
@@ -110,17 +130,17 @@
110
  ]
111
  }
112
  },
113
- "15": {
114
  "class_type": "SaveImage",
115
  "inputs": {
116
  "filename_prefix": "krea2_turbo_edit_2img",
117
  "images": [
118
- "14",
119
  0
120
  ]
121
  }
122
  },
123
- "16": {
124
  "_meta": {
125
  "title": "Reference Image B (subject)"
126
  },
@@ -129,33 +149,33 @@
129
  "image": "example.png"
130
  }
131
  },
132
- "17": {
133
  "_meta": {
134
  "title": "Resize B to match A"
135
  },
136
  "class_type": "ResizeImageMaskNode",
137
  "inputs": {
138
  "input": [
139
- "16",
140
  0
141
  ],
142
  "resize_type": "match size",
143
  "resize_type.crop": "center",
144
  "resize_type.match": [
145
- "6",
146
  0
147
  ],
148
  "scale_method": "area"
149
  }
150
  },
151
- "18": {
152
  "_meta": {
153
  "title": "VAE Encode Reference B"
154
  },
155
  "class_type": "VAEEncode",
156
  "inputs": {
157
  "pixels": [
158
- "17",
159
  0
160
  ],
161
  "vae": [
@@ -209,39 +229,50 @@
209
  },
210
  "6": {
211
  "_meta": {
212
- "title": "Scale source to ~1MP"
213
  },
214
- "class_type": "ImageScaleToTotalPixels",
 
 
 
 
 
 
 
 
 
215
  "inputs": {
216
  "image": [
217
  "5",
218
  0
219
  ],
220
- "megapixels": 1.0,
221
- "resolution_steps": 1,
 
 
222
  "upscale_method": "lanczos"
223
  }
224
  },
225
- "7": {
226
  "_meta": {
227
  "title": "Source size \u2192 target latent"
228
  },
229
  "class_type": "GetImageSize",
230
  "inputs": {
231
  "image": [
232
- "6",
233
  0
234
  ]
235
  }
236
  },
237
- "8": {
238
  "_meta": {
239
  "title": "VAE Encode Source"
240
  },
241
  "class_type": "VAEEncode",
242
  "inputs": {
243
  "pixels": [
244
- "6",
245
  0
246
  ],
247
  "vae": [
@@ -249,25 +280,5 @@
249
  0
250
  ]
251
  }
252
- },
253
- "9": {
254
- "_meta": {
255
- "title": "Krea2 Edit (source patch)"
256
- },
257
- "class_type": "Krea2EditModelPatch",
258
- "inputs": {
259
- "model": [
260
- "2",
261
- 0
262
- ],
263
- "source_latent": [
264
- "8",
265
- 0
266
- ],
267
- "source_latent_b": [
268
- "18",
269
- 0
270
- ]
271
- }
272
  }
273
  }
 
10
  }
11
  },
12
  "10": {
13
+ "_meta": {
14
+ "title": "Krea2 Edit (source patch)"
15
+ },
16
+ "class_type": "Krea2EditModelPatch",
17
+ "inputs": {
18
+ "model": [
19
+ "2",
20
+ 0
21
+ ],
22
+ "source_latent": [
23
+ "9",
24
+ 0
25
+ ],
26
+ "source_latent_b": [
27
+ "19",
28
+ 0
29
+ ]
30
+ }
31
+ },
32
+ "11": {
33
  "_meta": {
34
  "title": "Edit Instruction (grounded on source)"
35
  },
 
41
  ],
42
  "grounding_px": 768,
43
  "image": [
44
+ "7",
45
  0
46
  ],
47
  "image_b": [
48
+ "18",
49
  0
50
  ],
51
  "prompt": "replace the robot on the street with the man in the gray jacket"
52
  }
53
  },
54
+ "12": {
55
  "_meta": {
56
  "title": "Negative (grounded, empty \u2014 used at CFG > 1)"
57
  },
 
63
  ],
64
  "grounding_px": 768,
65
  "image": [
66
+ "7",
67
  0
68
  ],
69
  "image_b": [
70
+ "18",
71
  0
72
  ],
73
  "prompt": ""
74
  }
75
  },
76
+ "13": {
77
  "_meta": {
78
  "title": "Target Latent (auto-sized from source)"
79
  },
 
81
  "inputs": {
82
  "batch_size": 1,
83
  "height": [
84
+ "8",
85
  1
86
  ],
87
  "width": [
88
+ "8",
89
  0
90
  ]
91
  }
92
  },
93
+ "14": {
94
  "class_type": "KSampler",
95
  "inputs": {
96
  "cfg": 1.0,
97
  "denoise": 1.0,
98
  "latent_image": [
99
+ "13",
100
  0
101
  ],
102
  "model": [
103
+ "10",
104
  0
105
  ],
106
  "negative": [
107
+ "12",
108
  0
109
  ],
110
  "positive": [
111
+ "11",
112
  0
113
  ],
114
  "sampler_name": "euler",
 
117
  "steps": 10
118
  }
119
  },
120
+ "15": {
121
  "class_type": "VAEDecode",
122
  "inputs": {
123
  "samples": [
124
+ "14",
125
  0
126
  ],
127
  "vae": [
 
130
  ]
131
  }
132
  },
133
+ "16": {
134
  "class_type": "SaveImage",
135
  "inputs": {
136
  "filename_prefix": "krea2_turbo_edit_2img",
137
  "images": [
138
+ "15",
139
  0
140
  ]
141
  }
142
  },
143
+ "17": {
144
  "_meta": {
145
  "title": "Reference Image B (subject)"
146
  },
 
149
  "image": "example.png"
150
  }
151
  },
152
+ "18": {
153
  "_meta": {
154
  "title": "Resize B to match A"
155
  },
156
  "class_type": "ResizeImageMaskNode",
157
  "inputs": {
158
  "input": [
159
+ "17",
160
  0
161
  ],
162
  "resize_type": "match size",
163
  "resize_type.crop": "center",
164
  "resize_type.match": [
165
+ "7",
166
  0
167
  ],
168
  "scale_method": "area"
169
  }
170
  },
171
+ "19": {
172
  "_meta": {
173
  "title": "VAE Encode Reference B"
174
  },
175
  "class_type": "VAEEncode",
176
  "inputs": {
177
  "pixels": [
178
+ "18",
179
  0
180
  ],
181
  "vae": [
 
229
  },
230
  "6": {
231
  "_meta": {
232
+ "title": "Input max size (longest edge)"
233
  },
234
+ "class_type": "PrimitiveInt",
235
+ "inputs": {
236
+ "value": 1280
237
+ }
238
+ },
239
+ "7": {
240
+ "_meta": {
241
+ "title": "Scale source (longest edge = max size)"
242
+ },
243
+ "class_type": "ImageScaleToMaxDimension",
244
  "inputs": {
245
  "image": [
246
  "5",
247
  0
248
  ],
249
+ "largest_size": [
250
+ "6",
251
+ 0
252
+ ],
253
  "upscale_method": "lanczos"
254
  }
255
  },
256
+ "8": {
257
  "_meta": {
258
  "title": "Source size \u2192 target latent"
259
  },
260
  "class_type": "GetImageSize",
261
  "inputs": {
262
  "image": [
263
+ "7",
264
  0
265
  ]
266
  }
267
  },
268
+ "9": {
269
  "_meta": {
270
  "title": "VAE Encode Source"
271
  },
272
  "class_type": "VAEEncode",
273
  "inputs": {
274
  "pixels": [
275
+ "7",
276
  0
277
  ],
278
  "vae": [
 
280
  0
281
  ]
282
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  }
284
  }
workflows/api/krea2-turbo-edit.json CHANGED
@@ -10,6 +10,22 @@
10
  }
11
  },
12
  "10": {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  "_meta": {
14
  "title": "Edit Instruction (grounded on source)"
15
  },
@@ -21,13 +37,13 @@
21
  ],
22
  "grounding_px": 768,
23
  "image": [
24
- "6",
25
  0
26
  ],
27
  "prompt": "change the background to a beach at sunset"
28
  }
29
  },
30
- "11": {
31
  "_meta": {
32
  "title": "Negative (grounded, empty \u2014 used at CFG > 1)"
33
  },
@@ -39,13 +55,13 @@
39
  ],
40
  "grounding_px": 768,
41
  "image": [
42
- "6",
43
  0
44
  ],
45
  "prompt": ""
46
  }
47
  },
48
- "12": {
49
  "_meta": {
50
  "title": "Target Latent (auto-sized from source)"
51
  },
@@ -53,34 +69,34 @@
53
  "inputs": {
54
  "batch_size": 1,
55
  "height": [
56
- "7",
57
  1
58
  ],
59
  "width": [
60
- "7",
61
  0
62
  ]
63
  }
64
  },
65
- "13": {
66
  "class_type": "KSampler",
67
  "inputs": {
68
  "cfg": 1.0,
69
  "denoise": 1.0,
70
  "latent_image": [
71
- "12",
72
  0
73
  ],
74
  "model": [
75
- "9",
76
  0
77
  ],
78
  "negative": [
79
- "11",
80
  0
81
  ],
82
  "positive": [
83
- "10",
84
  0
85
  ],
86
  "sampler_name": "euler",
@@ -89,11 +105,11 @@
89
  "steps": 10
90
  }
91
  },
92
- "14": {
93
  "class_type": "VAEDecode",
94
  "inputs": {
95
  "samples": [
96
- "13",
97
  0
98
  ],
99
  "vae": [
@@ -102,12 +118,12 @@
102
  ]
103
  }
104
  },
105
- "15": {
106
  "class_type": "SaveImage",
107
  "inputs": {
108
  "filename_prefix": "krea2_turbo_edit",
109
  "images": [
110
- "14",
111
  0
112
  ]
113
  }
@@ -157,39 +173,50 @@
157
  },
158
  "6": {
159
  "_meta": {
160
- "title": "Scale source to ~1MP"
161
  },
162
- "class_type": "ImageScaleToTotalPixels",
 
 
 
 
 
 
 
 
 
163
  "inputs": {
164
  "image": [
165
  "5",
166
  0
167
  ],
168
- "megapixels": 1.0,
169
- "resolution_steps": 1,
 
 
170
  "upscale_method": "lanczos"
171
  }
172
  },
173
- "7": {
174
  "_meta": {
175
  "title": "Source size \u2192 target latent"
176
  },
177
  "class_type": "GetImageSize",
178
  "inputs": {
179
  "image": [
180
- "6",
181
  0
182
  ]
183
  }
184
  },
185
- "8": {
186
  "_meta": {
187
  "title": "VAE Encode Source"
188
  },
189
  "class_type": "VAEEncode",
190
  "inputs": {
191
  "pixels": [
192
- "6",
193
  0
194
  ],
195
  "vae": [
@@ -197,21 +224,5 @@
197
  0
198
  ]
199
  }
200
- },
201
- "9": {
202
- "_meta": {
203
- "title": "Krea2 Edit (source patch)"
204
- },
205
- "class_type": "Krea2EditModelPatch",
206
- "inputs": {
207
- "model": [
208
- "2",
209
- 0
210
- ],
211
- "source_latent": [
212
- "8",
213
- 0
214
- ]
215
- }
216
  }
217
  }
 
10
  }
11
  },
12
  "10": {
13
+ "_meta": {
14
+ "title": "Krea2 Edit (source patch)"
15
+ },
16
+ "class_type": "Krea2EditModelPatch",
17
+ "inputs": {
18
+ "model": [
19
+ "2",
20
+ 0
21
+ ],
22
+ "source_latent": [
23
+ "9",
24
+ 0
25
+ ]
26
+ }
27
+ },
28
+ "11": {
29
  "_meta": {
30
  "title": "Edit Instruction (grounded on source)"
31
  },
 
37
  ],
38
  "grounding_px": 768,
39
  "image": [
40
+ "7",
41
  0
42
  ],
43
  "prompt": "change the background to a beach at sunset"
44
  }
45
  },
46
+ "12": {
47
  "_meta": {
48
  "title": "Negative (grounded, empty \u2014 used at CFG > 1)"
49
  },
 
55
  ],
56
  "grounding_px": 768,
57
  "image": [
58
+ "7",
59
  0
60
  ],
61
  "prompt": ""
62
  }
63
  },
64
+ "13": {
65
  "_meta": {
66
  "title": "Target Latent (auto-sized from source)"
67
  },
 
69
  "inputs": {
70
  "batch_size": 1,
71
  "height": [
72
+ "8",
73
  1
74
  ],
75
  "width": [
76
+ "8",
77
  0
78
  ]
79
  }
80
  },
81
+ "14": {
82
  "class_type": "KSampler",
83
  "inputs": {
84
  "cfg": 1.0,
85
  "denoise": 1.0,
86
  "latent_image": [
87
+ "13",
88
  0
89
  ],
90
  "model": [
91
+ "10",
92
  0
93
  ],
94
  "negative": [
95
+ "12",
96
  0
97
  ],
98
  "positive": [
99
+ "11",
100
  0
101
  ],
102
  "sampler_name": "euler",
 
105
  "steps": 10
106
  }
107
  },
108
+ "15": {
109
  "class_type": "VAEDecode",
110
  "inputs": {
111
  "samples": [
112
+ "14",
113
  0
114
  ],
115
  "vae": [
 
118
  ]
119
  }
120
  },
121
+ "16": {
122
  "class_type": "SaveImage",
123
  "inputs": {
124
  "filename_prefix": "krea2_turbo_edit",
125
  "images": [
126
+ "15",
127
  0
128
  ]
129
  }
 
173
  },
174
  "6": {
175
  "_meta": {
176
+ "title": "Input max size (longest edge)"
177
  },
178
+ "class_type": "PrimitiveInt",
179
+ "inputs": {
180
+ "value": 1280
181
+ }
182
+ },
183
+ "7": {
184
+ "_meta": {
185
+ "title": "Scale source (longest edge = max size)"
186
+ },
187
+ "class_type": "ImageScaleToMaxDimension",
188
  "inputs": {
189
  "image": [
190
  "5",
191
  0
192
  ],
193
+ "largest_size": [
194
+ "6",
195
+ 0
196
+ ],
197
  "upscale_method": "lanczos"
198
  }
199
  },
200
+ "8": {
201
  "_meta": {
202
  "title": "Source size \u2192 target latent"
203
  },
204
  "class_type": "GetImageSize",
205
  "inputs": {
206
  "image": [
207
+ "7",
208
  0
209
  ]
210
  }
211
  },
212
+ "9": {
213
  "_meta": {
214
  "title": "VAE Encode Source"
215
  },
216
  "class_type": "VAEEncode",
217
  "inputs": {
218
  "pixels": [
219
+ "7",
220
  0
221
  ],
222
  "vae": [
 
224
  0
225
  ]
226
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  }
228
  }
workflows/krea2-turbo-edit-2img.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
- "last_node_id": 19,
3
- "last_link_id": 27,
4
  "nodes": [
5
  {
6
  "id": 1,
@@ -22,7 +22,7 @@
22
  "name": "MODEL",
23
  "type": "MODEL",
24
  "links": [
25
- 1
26
  ],
27
  "slot_index": 0
28
  }
@@ -54,7 +54,7 @@
54
  {
55
  "name": "model",
56
  "type": "MODEL",
57
- "link": 1
58
  }
59
  ],
60
  "outputs": [
@@ -62,7 +62,7 @@
62
  "name": "MODEL",
63
  "type": "MODEL",
64
  "links": [
65
- 2
66
  ],
67
  "slot_index": 0
68
  }
@@ -96,8 +96,8 @@
96
  "name": "CLIP",
97
  "type": "CLIP",
98
  "links": [
99
- 3,
100
- 4
101
  ],
102
  "slot_index": 0
103
  }
@@ -132,9 +132,9 @@
132
  "name": "VAE",
133
  "type": "VAE",
134
  "links": [
135
- 8,
136
- 17,
137
- 26
138
  ],
139
  "slot_index": 0
140
  }
@@ -167,7 +167,7 @@
167
  "name": "IMAGE",
168
  "type": "IMAGE",
169
  "links": [
170
- 5
171
  ],
172
  "slot_index": 0
173
  },
@@ -189,7 +189,41 @@
189
  },
190
  {
191
  "id": 6,
192
- "type": "ImageScaleToTotalPixels",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  "pos": [
194
  440,
195
  620
@@ -199,13 +233,21 @@
199
  106
200
  ],
201
  "flags": {},
202
- "order": 5,
203
  "mode": 0,
204
  "inputs": [
205
  {
206
  "name": "image",
207
  "type": "IMAGE",
208
- "link": 5
 
 
 
 
 
 
 
 
209
  }
210
  ],
211
  "outputs": [
@@ -213,27 +255,26 @@
213
  "name": "IMAGE",
214
  "type": "IMAGE",
215
  "links": [
216
- 6,
217
  7,
218
- 9,
219
  10,
220
- 15
 
221
  ],
222
  "slot_index": 0
223
  }
224
  ],
225
  "properties": {
226
- "Node name for S&R": "ImageScaleToTotalPixels"
227
  },
228
  "widgets_values": [
229
  "lanczos",
230
- 1.0,
231
- 1
232
  ],
233
- "title": "Scale source to ~1MP"
234
  },
235
  {
236
- "id": 7,
237
  "type": "GetImageSize",
238
  "pos": [
239
  440,
@@ -244,13 +285,13 @@
244
  90
245
  ],
246
  "flags": {},
247
- "order": 6,
248
  "mode": 0,
249
  "inputs": [
250
  {
251
  "name": "image",
252
  "type": "IMAGE",
253
- "link": 6
254
  }
255
  ],
256
  "outputs": [
@@ -258,7 +299,7 @@
258
  "name": "width",
259
  "type": "INT",
260
  "links": [
261
- 12
262
  ],
263
  "slot_index": 0
264
  },
@@ -266,7 +307,7 @@
266
  "name": "height",
267
  "type": "INT",
268
  "links": [
269
- 13
270
  ],
271
  "slot_index": 1
272
  },
@@ -284,7 +325,7 @@
284
  "title": "Source size → target latent"
285
  },
286
  {
287
- "id": 8,
288
  "type": "VAEEncode",
289
  "pos": [
290
  440,
@@ -295,18 +336,18 @@
295
  46
296
  ],
297
  "flags": {},
298
- "order": 7,
299
  "mode": 0,
300
  "inputs": [
301
  {
302
  "name": "pixels",
303
  "type": "IMAGE",
304
- "link": 7
305
  },
306
  {
307
  "name": "vae",
308
  "type": "VAE",
309
- "link": 8
310
  }
311
  ],
312
  "outputs": [
@@ -314,7 +355,7 @@
314
  "name": "LATENT",
315
  "type": "LATENT",
316
  "links": [
317
- 11
318
  ],
319
  "slot_index": 0
320
  }
@@ -325,7 +366,7 @@
325
  "title": "VAE Encode Source"
326
  },
327
  {
328
- "id": 9,
329
  "type": "Krea2EditModelPatch",
330
  "pos": [
331
  760,
@@ -336,23 +377,23 @@
336
  66
337
  ],
338
  "flags": {},
339
- "order": 8,
340
  "mode": 0,
341
  "inputs": [
342
  {
343
  "name": "model",
344
  "type": "MODEL",
345
- "link": 2
346
  },
347
  {
348
  "name": "source_latent",
349
  "type": "LATENT",
350
- "link": 11
351
  },
352
  {
353
  "name": "source_latent_b",
354
  "type": "LATENT",
355
- "link": 18
356
  }
357
  ],
358
  "outputs": [
@@ -360,7 +401,7 @@
360
  "name": "MODEL",
361
  "type": "MODEL",
362
  "links": [
363
- 21
364
  ],
365
  "slot_index": 0
366
  }
@@ -374,7 +415,7 @@
374
  "title": "Krea2 Edit (source patch)"
375
  },
376
  {
377
- "id": 10,
378
  "type": "Krea2EditGroundedEncode",
379
  "pos": [
380
  440,
@@ -385,23 +426,23 @@
385
  190
386
  ],
387
  "flags": {},
388
- "order": 9,
389
  "mode": 0,
390
  "inputs": [
391
  {
392
  "name": "clip",
393
  "type": "CLIP",
394
- "link": 3
395
  },
396
  {
397
  "name": "image",
398
  "type": "IMAGE",
399
- "link": 9
400
  },
401
  {
402
  "name": "image_b",
403
  "type": "IMAGE",
404
- "link": 19
405
  }
406
  ],
407
  "outputs": [
@@ -409,7 +450,7 @@
409
  "name": "CONDITIONING",
410
  "type": "CONDITIONING",
411
  "links": [
412
- 22
413
  ],
414
  "slot_index": 0
415
  }
@@ -426,7 +467,7 @@
426
  "title": "Edit Instruction (grounded on source)"
427
  },
428
  {
429
- "id": 11,
430
  "type": "Krea2EditGroundedEncode",
431
  "pos": [
432
  440,
@@ -437,23 +478,23 @@
437
  130
438
  ],
439
  "flags": {},
440
- "order": 10,
441
  "mode": 0,
442
  "inputs": [
443
  {
444
  "name": "clip",
445
  "type": "CLIP",
446
- "link": 4
447
  },
448
  {
449
  "name": "image",
450
  "type": "IMAGE",
451
- "link": 10
452
  },
453
  {
454
  "name": "image_b",
455
  "type": "IMAGE",
456
- "link": 20
457
  }
458
  ],
459
  "outputs": [
@@ -461,7 +502,7 @@
461
  "name": "CONDITIONING",
462
  "type": "CONDITIONING",
463
  "links": [
464
- 23
465
  ],
466
  "slot_index": 0
467
  }
@@ -478,7 +519,7 @@
478
  "title": "Negative (grounded, empty — used at CFG > 1)"
479
  },
480
  {
481
- "id": 12,
482
  "type": "EmptySD3LatentImage",
483
  "pos": [
484
  760,
@@ -489,13 +530,13 @@
489
  106
490
  ],
491
  "flags": {},
492
- "order": 11,
493
  "mode": 0,
494
  "inputs": [
495
  {
496
  "name": "width",
497
  "type": "INT",
498
- "link": 12,
499
  "widget": {
500
  "name": "width"
501
  }
@@ -503,7 +544,7 @@
503
  {
504
  "name": "height",
505
  "type": "INT",
506
- "link": 13,
507
  "widget": {
508
  "name": "height"
509
  }
@@ -514,7 +555,7 @@
514
  "name": "LATENT",
515
  "type": "LATENT",
516
  "links": [
517
- 24
518
  ],
519
  "slot_index": 0
520
  }
@@ -530,7 +571,7 @@
530
  "title": "Target Latent (auto-sized from source)"
531
  },
532
  {
533
- "id": 13,
534
  "type": "KSampler",
535
  "pos": [
536
  1120,
@@ -541,28 +582,28 @@
541
  262
542
  ],
543
  "flags": {},
544
- "order": 12,
545
  "mode": 0,
546
  "inputs": [
547
  {
548
  "name": "model",
549
  "type": "MODEL",
550
- "link": 21
551
  },
552
  {
553
  "name": "positive",
554
  "type": "CONDITIONING",
555
- "link": 22
556
  },
557
  {
558
  "name": "negative",
559
  "type": "CONDITIONING",
560
- "link": 23
561
  },
562
  {
563
  "name": "latent_image",
564
  "type": "LATENT",
565
- "link": 24
566
  }
567
  ],
568
  "outputs": [
@@ -570,7 +611,7 @@
570
  "name": "LATENT",
571
  "type": "LATENT",
572
  "links": [
573
- 25
574
  ],
575
  "slot_index": 0
576
  }
@@ -589,7 +630,7 @@
589
  ]
590
  },
591
  {
592
- "id": 14,
593
  "type": "VAEDecode",
594
  "pos": [
595
  1120,
@@ -600,18 +641,18 @@
600
  46
601
  ],
602
  "flags": {},
603
- "order": 13,
604
  "mode": 0,
605
  "inputs": [
606
  {
607
  "name": "samples",
608
  "type": "LATENT",
609
- "link": 25
610
  },
611
  {
612
  "name": "vae",
613
  "type": "VAE",
614
- "link": 26
615
  }
616
  ],
617
  "outputs": [
@@ -619,7 +660,7 @@
619
  "name": "IMAGE",
620
  "type": "IMAGE",
621
  "links": [
622
- 27
623
  ],
624
  "slot_index": 0
625
  }
@@ -629,7 +670,7 @@
629
  }
630
  },
631
  {
632
- "id": 15,
633
  "type": "SaveImage",
634
  "pos": [
635
  1120,
@@ -640,13 +681,13 @@
640
  270
641
  ],
642
  "flags": {},
643
- "order": 14,
644
  "mode": 0,
645
  "inputs": [
646
  {
647
  "name": "images",
648
  "type": "IMAGE",
649
- "link": 27
650
  }
651
  ],
652
  "outputs": [],
@@ -658,7 +699,7 @@
658
  ]
659
  },
660
  {
661
- "id": 16,
662
  "type": "LoadImage",
663
  "pos": [
664
  40,
@@ -669,7 +710,7 @@
669
  314
670
  ],
671
  "flags": {},
672
- "order": 15,
673
  "mode": 0,
674
  "inputs": [],
675
  "outputs": [
@@ -677,7 +718,7 @@
677
  "name": "IMAGE",
678
  "type": "IMAGE",
679
  "links": [
680
- 14
681
  ],
682
  "slot_index": 0
683
  },
@@ -698,7 +739,7 @@
698
  "title": "Reference Image B (subject)"
699
  },
700
  {
701
- "id": 17,
702
  "type": "ResizeImageMaskNode",
703
  "pos": [
704
  440,
@@ -709,18 +750,18 @@
709
  150
710
  ],
711
  "flags": {},
712
- "order": 16,
713
  "mode": 0,
714
  "inputs": [
715
  {
716
  "name": "input",
717
  "type": "IMAGE",
718
- "link": 14
719
  },
720
  {
721
  "name": "resize_type.match",
722
  "type": "IMAGE",
723
- "link": 15
724
  }
725
  ],
726
  "outputs": [
@@ -728,9 +769,9 @@
728
  "name": "resized",
729
  "type": "IMAGE",
730
  "links": [
731
- 16,
732
- 19,
733
- 20
734
  ],
735
  "slot_index": 0
736
  }
@@ -746,7 +787,7 @@
746
  "title": "Resize B to match A"
747
  },
748
  {
749
- "id": 18,
750
  "type": "VAEEncode",
751
  "pos": [
752
  760,
@@ -757,18 +798,18 @@
757
  46
758
  ],
759
  "flags": {},
760
- "order": 17,
761
  "mode": 0,
762
  "inputs": [
763
  {
764
  "name": "pixels",
765
  "type": "IMAGE",
766
- "link": 16
767
  },
768
  {
769
  "name": "vae",
770
  "type": "VAE",
771
- "link": 17
772
  }
773
  ],
774
  "outputs": [
@@ -776,7 +817,7 @@
776
  "name": "LATENT",
777
  "type": "LATENT",
778
  "links": [
779
- 18
780
  ],
781
  "slot_index": 0
782
  }
@@ -787,7 +828,7 @@
787
  "title": "VAE Encode Reference B"
788
  },
789
  {
790
- "id": 19,
791
  "type": "MarkdownNote",
792
  "pos": [
793
  1500,
@@ -798,7 +839,7 @@
798
  420
799
  ],
800
  "flags": {},
801
- "order": 18,
802
  "mode": 0,
803
  "inputs": [],
804
  "outputs": [],
@@ -806,7 +847,7 @@
806
  "Node name for S&R": "MarkdownNote"
807
  },
808
  "widgets_values": [
809
- "## Krea 2 — instruction-based image editing (Identity Edit LoRA, two references)\n\nTwo-reference editing with Krea 2: image **A is the scene/base**, image **B is the subject** (person, outfit, character sheet). Composite characters into scenes, virtual try-ons, character swaps — e.g. `replace the robot on the street with the man in the gray jacket`. From [Benji's AI Playground video](https://www.youtube.com/watch?v=QW2Wp6WjQF4).\n\n**Required:** `krea2_identity_edit_v1_1.safetensors` ([conradlocke/krea2-identity-edit](https://huggingface.co/conradlocke/krea2-identity-edit)) at strength 1.0, plus the [comfyui-krea2edit](https://github.com/lbouaraba/comfyui-krea2edit) node pack. Order matters and is training-matched: scene first (`source_latent` / `image`), subject second (`source_latent_b` / `image_b`).\n\n**Dimensions:** output size follows image A (scaled to ~1MP); image B is resized to A's dimensions automatically. For two-person edits keep it ~1–1.5MP to avoid identity blending.\n\n**Tips:** a character sheet as image B works well for style/identity consistency. If likeness drifts (e.g. glasses fade), try another seed. Faces at ~1MP are soft — add a second pass / upscaler for production quality.\n\n**grounding_px:** lower = stronger edit adherence, higher = stronger identity (trained 384–768).\n\n**Turbo vs Raw:** turbo (this file) = 10 steps / CFG 1.0 / euler. For removals/large deletions swap UNETLoader to `krea2_raw_bf16.safetensors`, 20 steps / CFG 3.0 — the empty grounded negative is already wired for CFG > 1."
810
  ],
811
  "title": "About this workflow"
812
  }
@@ -814,27 +855,27 @@
814
  "links": [
815
  [
816
  1,
817
- 1,
818
- 0,
819
- 2,
820
  0,
821
- "MODEL"
 
 
822
  ],
823
  [
824
  2,
825
- 2,
826
  0,
827
- 9,
828
  0,
829
  "MODEL"
830
  ],
831
  [
832
  3,
833
- 3,
834
  0,
835
  10,
836
  0,
837
- "CLIP"
838
  ],
839
  [
840
  4,
@@ -846,15 +887,15 @@
846
  ],
847
  [
848
  5,
849
- 5,
850
  0,
851
- 6,
852
  0,
853
- "IMAGE"
854
  ],
855
  [
856
  6,
857
- 6,
858
  0,
859
  7,
860
  0,
@@ -862,7 +903,7 @@
862
  ],
863
  [
864
  7,
865
- 6,
866
  0,
867
  8,
868
  0,
@@ -870,23 +911,23 @@
870
  ],
871
  [
872
  8,
873
- 4,
874
  0,
875
- 8,
876
- 1,
877
- "VAE"
878
  ],
879
  [
880
  9,
881
- 6,
882
  0,
883
- 10,
884
  1,
885
- "IMAGE"
886
  ],
887
  [
888
  10,
889
- 6,
890
  0,
891
  11,
892
  1,
@@ -894,79 +935,79 @@
894
  ],
895
  [
896
  11,
897
- 8,
898
  0,
 
 
 
 
 
 
899
  9,
 
 
900
  1,
901
  "LATENT"
902
  ],
903
  [
904
- 12,
905
- 7,
906
  0,
907
- 12,
908
  0,
909
  "INT"
910
  ],
911
  [
912
- 13,
913
- 7,
914
  1,
915
- 12,
916
  1,
917
  "INT"
918
  ],
919
  [
920
- 14,
921
- 16,
922
- 0,
923
  17,
924
  0,
 
 
925
  "IMAGE"
926
  ],
927
  [
928
- 15,
929
- 6,
930
  0,
931
- 17,
932
  1,
933
  "IMAGE"
934
  ],
935
  [
936
- 16,
937
  17,
938
- 0,
939
  18,
940
  0,
 
 
941
  "IMAGE"
942
  ],
943
  [
944
- 17,
945
  4,
946
  0,
947
- 18,
948
  1,
949
  "VAE"
950
  ],
951
- [
952
- 18,
953
- 18,
954
- 0,
955
- 9,
956
- 2,
957
- "LATENT"
958
- ],
959
  [
960
  19,
961
- 17,
962
  0,
963
  10,
964
  2,
965
- "IMAGE"
966
  ],
967
  [
968
  20,
969
- 17,
970
  0,
971
  11,
972
  2,
@@ -974,58 +1015,66 @@
974
  ],
975
  [
976
  21,
977
- 9,
978
- 0,
979
- 13,
980
  0,
981
- "MODEL"
 
 
982
  ],
983
  [
984
  22,
985
  10,
986
  0,
987
- 13,
988
- 1,
989
- "CONDITIONING"
990
  ],
991
  [
992
  23,
993
  11,
994
  0,
995
- 13,
996
- 2,
997
  "CONDITIONING"
998
  ],
999
  [
1000
  24,
1001
  12,
1002
  0,
1003
- 13,
1004
- 3,
1005
- "LATENT"
1006
  ],
1007
  [
1008
  25,
1009
  13,
1010
  0,
1011
  14,
1012
- 0,
1013
  "LATENT"
1014
  ],
1015
  [
1016
  26,
 
 
 
 
 
 
 
 
1017
  4,
1018
  0,
1019
- 14,
1020
  1,
1021
  "VAE"
1022
  ],
1023
  [
1024
- 27,
1025
- 14,
1026
- 0,
1027
  15,
1028
  0,
 
 
1029
  "IMAGE"
1030
  ]
1031
  ],
 
1
  {
2
+ "last_node_id": 20,
3
+ "last_link_id": 28,
4
  "nodes": [
5
  {
6
  "id": 1,
 
22
  "name": "MODEL",
23
  "type": "MODEL",
24
  "links": [
25
+ 2
26
  ],
27
  "slot_index": 0
28
  }
 
54
  {
55
  "name": "model",
56
  "type": "MODEL",
57
+ "link": 2
58
  }
59
  ],
60
  "outputs": [
 
62
  "name": "MODEL",
63
  "type": "MODEL",
64
  "links": [
65
+ 3
66
  ],
67
  "slot_index": 0
68
  }
 
96
  "name": "CLIP",
97
  "type": "CLIP",
98
  "links": [
99
+ 4,
100
+ 5
101
  ],
102
  "slot_index": 0
103
  }
 
132
  "name": "VAE",
133
  "type": "VAE",
134
  "links": [
135
+ 9,
136
+ 18,
137
+ 27
138
  ],
139
  "slot_index": 0
140
  }
 
167
  "name": "IMAGE",
168
  "type": "IMAGE",
169
  "links": [
170
+ 6
171
  ],
172
  "slot_index": 0
173
  },
 
189
  },
190
  {
191
  "id": 6,
192
+ "type": "PrimitiveInt",
193
+ "pos": [
194
+ 760,
195
+ 300
196
+ ],
197
+ "size": [
198
+ 300,
199
+ 82
200
+ ],
201
+ "flags": {},
202
+ "order": 5,
203
+ "mode": 0,
204
+ "inputs": [],
205
+ "outputs": [
206
+ {
207
+ "name": "INT",
208
+ "type": "INT",
209
+ "links": [
210
+ 1
211
+ ],
212
+ "slot_index": 0
213
+ }
214
+ ],
215
+ "properties": {
216
+ "Node name for S&R": "PrimitiveInt"
217
+ },
218
+ "widgets_values": [
219
+ 1280,
220
+ "fixed"
221
+ ],
222
+ "title": "Input max size (longest edge)"
223
+ },
224
+ {
225
+ "id": 7,
226
+ "type": "ImageScaleToMaxDimension",
227
  "pos": [
228
  440,
229
  620
 
233
  106
234
  ],
235
  "flags": {},
236
+ "order": 6,
237
  "mode": 0,
238
  "inputs": [
239
  {
240
  "name": "image",
241
  "type": "IMAGE",
242
+ "link": 6
243
+ },
244
+ {
245
+ "name": "largest_size",
246
+ "type": "INT",
247
+ "link": 1,
248
+ "widget": {
249
+ "name": "largest_size"
250
+ }
251
  }
252
  ],
253
  "outputs": [
 
255
  "name": "IMAGE",
256
  "type": "IMAGE",
257
  "links": [
 
258
  7,
259
+ 8,
260
  10,
261
+ 11,
262
+ 16
263
  ],
264
  "slot_index": 0
265
  }
266
  ],
267
  "properties": {
268
+ "Node name for S&R": "ImageScaleToMaxDimension"
269
  },
270
  "widgets_values": [
271
  "lanczos",
272
+ 1280
 
273
  ],
274
+ "title": "Scale source (longest edge = max size)"
275
  },
276
  {
277
+ "id": 8,
278
  "type": "GetImageSize",
279
  "pos": [
280
  440,
 
285
  90
286
  ],
287
  "flags": {},
288
+ "order": 7,
289
  "mode": 0,
290
  "inputs": [
291
  {
292
  "name": "image",
293
  "type": "IMAGE",
294
+ "link": 7
295
  }
296
  ],
297
  "outputs": [
 
299
  "name": "width",
300
  "type": "INT",
301
  "links": [
302
+ 13
303
  ],
304
  "slot_index": 0
305
  },
 
307
  "name": "height",
308
  "type": "INT",
309
  "links": [
310
+ 14
311
  ],
312
  "slot_index": 1
313
  },
 
325
  "title": "Source size → target latent"
326
  },
327
  {
328
+ "id": 9,
329
  "type": "VAEEncode",
330
  "pos": [
331
  440,
 
336
  46
337
  ],
338
  "flags": {},
339
+ "order": 8,
340
  "mode": 0,
341
  "inputs": [
342
  {
343
  "name": "pixels",
344
  "type": "IMAGE",
345
+ "link": 8
346
  },
347
  {
348
  "name": "vae",
349
  "type": "VAE",
350
+ "link": 9
351
  }
352
  ],
353
  "outputs": [
 
355
  "name": "LATENT",
356
  "type": "LATENT",
357
  "links": [
358
+ 12
359
  ],
360
  "slot_index": 0
361
  }
 
366
  "title": "VAE Encode Source"
367
  },
368
  {
369
+ "id": 10,
370
  "type": "Krea2EditModelPatch",
371
  "pos": [
372
  760,
 
377
  66
378
  ],
379
  "flags": {},
380
+ "order": 9,
381
  "mode": 0,
382
  "inputs": [
383
  {
384
  "name": "model",
385
  "type": "MODEL",
386
+ "link": 3
387
  },
388
  {
389
  "name": "source_latent",
390
  "type": "LATENT",
391
+ "link": 12
392
  },
393
  {
394
  "name": "source_latent_b",
395
  "type": "LATENT",
396
+ "link": 19
397
  }
398
  ],
399
  "outputs": [
 
401
  "name": "MODEL",
402
  "type": "MODEL",
403
  "links": [
404
+ 22
405
  ],
406
  "slot_index": 0
407
  }
 
415
  "title": "Krea2 Edit (source patch)"
416
  },
417
  {
418
+ "id": 11,
419
  "type": "Krea2EditGroundedEncode",
420
  "pos": [
421
  440,
 
426
  190
427
  ],
428
  "flags": {},
429
+ "order": 10,
430
  "mode": 0,
431
  "inputs": [
432
  {
433
  "name": "clip",
434
  "type": "CLIP",
435
+ "link": 4
436
  },
437
  {
438
  "name": "image",
439
  "type": "IMAGE",
440
+ "link": 10
441
  },
442
  {
443
  "name": "image_b",
444
  "type": "IMAGE",
445
+ "link": 20
446
  }
447
  ],
448
  "outputs": [
 
450
  "name": "CONDITIONING",
451
  "type": "CONDITIONING",
452
  "links": [
453
+ 23
454
  ],
455
  "slot_index": 0
456
  }
 
467
  "title": "Edit Instruction (grounded on source)"
468
  },
469
  {
470
+ "id": 12,
471
  "type": "Krea2EditGroundedEncode",
472
  "pos": [
473
  440,
 
478
  130
479
  ],
480
  "flags": {},
481
+ "order": 11,
482
  "mode": 0,
483
  "inputs": [
484
  {
485
  "name": "clip",
486
  "type": "CLIP",
487
+ "link": 5
488
  },
489
  {
490
  "name": "image",
491
  "type": "IMAGE",
492
+ "link": 11
493
  },
494
  {
495
  "name": "image_b",
496
  "type": "IMAGE",
497
+ "link": 21
498
  }
499
  ],
500
  "outputs": [
 
502
  "name": "CONDITIONING",
503
  "type": "CONDITIONING",
504
  "links": [
505
+ 24
506
  ],
507
  "slot_index": 0
508
  }
 
519
  "title": "Negative (grounded, empty — used at CFG > 1)"
520
  },
521
  {
522
+ "id": 13,
523
  "type": "EmptySD3LatentImage",
524
  "pos": [
525
  760,
 
530
  106
531
  ],
532
  "flags": {},
533
+ "order": 12,
534
  "mode": 0,
535
  "inputs": [
536
  {
537
  "name": "width",
538
  "type": "INT",
539
+ "link": 13,
540
  "widget": {
541
  "name": "width"
542
  }
 
544
  {
545
  "name": "height",
546
  "type": "INT",
547
+ "link": 14,
548
  "widget": {
549
  "name": "height"
550
  }
 
555
  "name": "LATENT",
556
  "type": "LATENT",
557
  "links": [
558
+ 25
559
  ],
560
  "slot_index": 0
561
  }
 
571
  "title": "Target Latent (auto-sized from source)"
572
  },
573
  {
574
+ "id": 14,
575
  "type": "KSampler",
576
  "pos": [
577
  1120,
 
582
  262
583
  ],
584
  "flags": {},
585
+ "order": 13,
586
  "mode": 0,
587
  "inputs": [
588
  {
589
  "name": "model",
590
  "type": "MODEL",
591
+ "link": 22
592
  },
593
  {
594
  "name": "positive",
595
  "type": "CONDITIONING",
596
+ "link": 23
597
  },
598
  {
599
  "name": "negative",
600
  "type": "CONDITIONING",
601
+ "link": 24
602
  },
603
  {
604
  "name": "latent_image",
605
  "type": "LATENT",
606
+ "link": 25
607
  }
608
  ],
609
  "outputs": [
 
611
  "name": "LATENT",
612
  "type": "LATENT",
613
  "links": [
614
+ 26
615
  ],
616
  "slot_index": 0
617
  }
 
630
  ]
631
  },
632
  {
633
+ "id": 15,
634
  "type": "VAEDecode",
635
  "pos": [
636
  1120,
 
641
  46
642
  ],
643
  "flags": {},
644
+ "order": 14,
645
  "mode": 0,
646
  "inputs": [
647
  {
648
  "name": "samples",
649
  "type": "LATENT",
650
+ "link": 26
651
  },
652
  {
653
  "name": "vae",
654
  "type": "VAE",
655
+ "link": 27
656
  }
657
  ],
658
  "outputs": [
 
660
  "name": "IMAGE",
661
  "type": "IMAGE",
662
  "links": [
663
+ 28
664
  ],
665
  "slot_index": 0
666
  }
 
670
  }
671
  },
672
  {
673
+ "id": 16,
674
  "type": "SaveImage",
675
  "pos": [
676
  1120,
 
681
  270
682
  ],
683
  "flags": {},
684
+ "order": 15,
685
  "mode": 0,
686
  "inputs": [
687
  {
688
  "name": "images",
689
  "type": "IMAGE",
690
+ "link": 28
691
  }
692
  ],
693
  "outputs": [],
 
699
  ]
700
  },
701
  {
702
+ "id": 17,
703
  "type": "LoadImage",
704
  "pos": [
705
  40,
 
710
  314
711
  ],
712
  "flags": {},
713
+ "order": 16,
714
  "mode": 0,
715
  "inputs": [],
716
  "outputs": [
 
718
  "name": "IMAGE",
719
  "type": "IMAGE",
720
  "links": [
721
+ 15
722
  ],
723
  "slot_index": 0
724
  },
 
739
  "title": "Reference Image B (subject)"
740
  },
741
  {
742
+ "id": 18,
743
  "type": "ResizeImageMaskNode",
744
  "pos": [
745
  440,
 
750
  150
751
  ],
752
  "flags": {},
753
+ "order": 17,
754
  "mode": 0,
755
  "inputs": [
756
  {
757
  "name": "input",
758
  "type": "IMAGE",
759
+ "link": 15
760
  },
761
  {
762
  "name": "resize_type.match",
763
  "type": "IMAGE",
764
+ "link": 16
765
  }
766
  ],
767
  "outputs": [
 
769
  "name": "resized",
770
  "type": "IMAGE",
771
  "links": [
772
+ 17,
773
+ 20,
774
+ 21
775
  ],
776
  "slot_index": 0
777
  }
 
787
  "title": "Resize B to match A"
788
  },
789
  {
790
+ "id": 19,
791
  "type": "VAEEncode",
792
  "pos": [
793
  760,
 
798
  46
799
  ],
800
  "flags": {},
801
+ "order": 18,
802
  "mode": 0,
803
  "inputs": [
804
  {
805
  "name": "pixels",
806
  "type": "IMAGE",
807
+ "link": 17
808
  },
809
  {
810
  "name": "vae",
811
  "type": "VAE",
812
+ "link": 18
813
  }
814
  ],
815
  "outputs": [
 
817
  "name": "LATENT",
818
  "type": "LATENT",
819
  "links": [
820
+ 19
821
  ],
822
  "slot_index": 0
823
  }
 
828
  "title": "VAE Encode Reference B"
829
  },
830
  {
831
+ "id": 20,
832
  "type": "MarkdownNote",
833
  "pos": [
834
  1500,
 
839
  420
840
  ],
841
  "flags": {},
842
+ "order": 19,
843
  "mode": 0,
844
  "inputs": [],
845
  "outputs": [],
 
847
  "Node name for S&R": "MarkdownNote"
848
  },
849
  "widgets_values": [
850
+ "## Krea 2 — instruction-based image editing (Identity Edit LoRA, two references)\n\nTwo-reference editing with Krea 2: image **A is the scene/base**, image **B is the subject** (person, outfit, character sheet). Composite characters into scenes, virtual try-ons, character swaps — e.g. `replace the robot on the street with the man in the gray jacket`. From [Benji's AI Playground video](https://www.youtube.com/watch?v=QW2Wp6WjQF4).\n\n**Required:** `krea2_identity_edit_v1_1.safetensors` ([conradlocke/krea2-identity-edit](https://huggingface.co/conradlocke/krea2-identity-edit)) at strength 1.0, plus the [comfyui-krea2edit](https://github.com/lbouaraba/comfyui-krea2edit) node pack. Order matters and is training-matched: scene first (`source_latent` / `image`), subject second (`source_latent_b` / `image_b`).\n\n**Dimensions:** the *Input max size* INT sets the render's longest edge (default 1280), same control as qwen-edit-turbo-v4. Output follows image A's aspect ratio; image B is resized/cropped to A's dimensions automatically. For two-person edits keep total area ~1–1.5MP (longest edge ≈1152–1408) to avoid identity blending; the LoRA's trained ceiling is 2MP.\n\n**Tips:** a character sheet as image B works well for style/identity consistency. If likeness drifts (e.g. glasses fade), try another seed. Faces at ~1MP are soft — add a second pass / upscaler for production quality.\n\n**grounding_px:** lower = stronger edit adherence, higher = stronger identity (trained 384–768).\n\n**Turbo vs Raw:** turbo (this file) = 10 steps / CFG 1.0 / euler. For removals/large deletions swap UNETLoader to `krea2_raw_bf16.safetensors`, 20 steps / CFG 3.0 — the empty grounded negative is already wired for CFG > 1."
851
  ],
852
  "title": "About this workflow"
853
  }
 
855
  "links": [
856
  [
857
  1,
858
+ 6,
 
 
859
  0,
860
+ 7,
861
+ 1,
862
+ "INT"
863
  ],
864
  [
865
  2,
866
+ 1,
867
  0,
868
+ 2,
869
  0,
870
  "MODEL"
871
  ],
872
  [
873
  3,
874
+ 2,
875
  0,
876
  10,
877
  0,
878
+ "MODEL"
879
  ],
880
  [
881
  4,
 
887
  ],
888
  [
889
  5,
890
+ 3,
891
  0,
892
+ 12,
893
  0,
894
+ "CLIP"
895
  ],
896
  [
897
  6,
898
+ 5,
899
  0,
900
  7,
901
  0,
 
903
  ],
904
  [
905
  7,
906
+ 7,
907
  0,
908
  8,
909
  0,
 
911
  ],
912
  [
913
  8,
914
+ 7,
915
  0,
916
+ 9,
917
+ 0,
918
+ "IMAGE"
919
  ],
920
  [
921
  9,
922
+ 4,
923
  0,
924
+ 9,
925
  1,
926
+ "VAE"
927
  ],
928
  [
929
  10,
930
+ 7,
931
  0,
932
  11,
933
  1,
 
935
  ],
936
  [
937
  11,
938
+ 7,
939
  0,
940
+ 12,
941
+ 1,
942
+ "IMAGE"
943
+ ],
944
+ [
945
+ 12,
946
  9,
947
+ 0,
948
+ 10,
949
  1,
950
  "LATENT"
951
  ],
952
  [
953
+ 13,
954
+ 8,
955
  0,
956
+ 13,
957
  0,
958
  "INT"
959
  ],
960
  [
961
+ 14,
962
+ 8,
963
  1,
964
+ 13,
965
  1,
966
  "INT"
967
  ],
968
  [
969
+ 15,
 
 
970
  17,
971
  0,
972
+ 18,
973
+ 0,
974
  "IMAGE"
975
  ],
976
  [
977
+ 16,
978
+ 7,
979
  0,
980
+ 18,
981
  1,
982
  "IMAGE"
983
  ],
984
  [
 
985
  17,
 
986
  18,
987
  0,
988
+ 19,
989
+ 0,
990
  "IMAGE"
991
  ],
992
  [
993
+ 18,
994
  4,
995
  0,
996
+ 19,
997
  1,
998
  "VAE"
999
  ],
 
 
 
 
 
 
 
 
1000
  [
1001
  19,
1002
+ 19,
1003
  0,
1004
  10,
1005
  2,
1006
+ "LATENT"
1007
  ],
1008
  [
1009
  20,
1010
+ 18,
1011
  0,
1012
  11,
1013
  2,
 
1015
  ],
1016
  [
1017
  21,
1018
+ 18,
 
 
1019
  0,
1020
+ 12,
1021
+ 2,
1022
+ "IMAGE"
1023
  ],
1024
  [
1025
  22,
1026
  10,
1027
  0,
1028
+ 14,
1029
+ 0,
1030
+ "MODEL"
1031
  ],
1032
  [
1033
  23,
1034
  11,
1035
  0,
1036
+ 14,
1037
+ 1,
1038
  "CONDITIONING"
1039
  ],
1040
  [
1041
  24,
1042
  12,
1043
  0,
1044
+ 14,
1045
+ 2,
1046
+ "CONDITIONING"
1047
  ],
1048
  [
1049
  25,
1050
  13,
1051
  0,
1052
  14,
1053
+ 3,
1054
  "LATENT"
1055
  ],
1056
  [
1057
  26,
1058
+ 14,
1059
+ 0,
1060
+ 15,
1061
+ 0,
1062
+ "LATENT"
1063
+ ],
1064
+ [
1065
+ 27,
1066
  4,
1067
  0,
1068
+ 15,
1069
  1,
1070
  "VAE"
1071
  ],
1072
  [
1073
+ 28,
 
 
1074
  15,
1075
  0,
1076
+ 16,
1077
+ 0,
1078
  "IMAGE"
1079
  ]
1080
  ],
workflows/krea2-turbo-edit.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
- "last_node_id": 16,
3
- "last_link_id": 20,
4
  "nodes": [
5
  {
6
  "id": 1,
@@ -22,7 +22,7 @@
22
  "name": "MODEL",
23
  "type": "MODEL",
24
  "links": [
25
- 1
26
  ],
27
  "slot_index": 0
28
  }
@@ -54,7 +54,7 @@
54
  {
55
  "name": "model",
56
  "type": "MODEL",
57
- "link": 1
58
  }
59
  ],
60
  "outputs": [
@@ -62,7 +62,7 @@
62
  "name": "MODEL",
63
  "type": "MODEL",
64
  "links": [
65
- 2
66
  ],
67
  "slot_index": 0
68
  }
@@ -96,8 +96,8 @@
96
  "name": "CLIP",
97
  "type": "CLIP",
98
  "links": [
99
- 3,
100
- 4
101
  ],
102
  "slot_index": 0
103
  }
@@ -132,8 +132,8 @@
132
  "name": "VAE",
133
  "type": "VAE",
134
  "links": [
135
- 8,
136
- 19
137
  ],
138
  "slot_index": 0
139
  }
@@ -166,7 +166,7 @@
166
  "name": "IMAGE",
167
  "type": "IMAGE",
168
  "links": [
169
- 5
170
  ],
171
  "slot_index": 0
172
  },
@@ -188,7 +188,41 @@
188
  },
189
  {
190
  "id": 6,
191
- "type": "ImageScaleToTotalPixels",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  "pos": [
193
  440,
194
  620
@@ -198,13 +232,21 @@
198
  106
199
  ],
200
  "flags": {},
201
- "order": 5,
202
  "mode": 0,
203
  "inputs": [
204
  {
205
  "name": "image",
206
  "type": "IMAGE",
207
- "link": 5
 
 
 
 
 
 
 
 
208
  }
209
  ],
210
  "outputs": [
@@ -212,26 +254,25 @@
212
  "name": "IMAGE",
213
  "type": "IMAGE",
214
  "links": [
215
- 6,
216
  7,
217
- 9,
218
- 10
 
219
  ],
220
  "slot_index": 0
221
  }
222
  ],
223
  "properties": {
224
- "Node name for S&R": "ImageScaleToTotalPixels"
225
  },
226
  "widgets_values": [
227
  "lanczos",
228
- 1.0,
229
- 1
230
  ],
231
- "title": "Scale source to ~1MP"
232
  },
233
  {
234
- "id": 7,
235
  "type": "GetImageSize",
236
  "pos": [
237
  440,
@@ -242,13 +283,13 @@
242
  90
243
  ],
244
  "flags": {},
245
- "order": 6,
246
  "mode": 0,
247
  "inputs": [
248
  {
249
  "name": "image",
250
  "type": "IMAGE",
251
- "link": 6
252
  }
253
  ],
254
  "outputs": [
@@ -256,7 +297,7 @@
256
  "name": "width",
257
  "type": "INT",
258
  "links": [
259
- 12
260
  ],
261
  "slot_index": 0
262
  },
@@ -264,7 +305,7 @@
264
  "name": "height",
265
  "type": "INT",
266
  "links": [
267
- 13
268
  ],
269
  "slot_index": 1
270
  },
@@ -282,7 +323,7 @@
282
  "title": "Source size → target latent"
283
  },
284
  {
285
- "id": 8,
286
  "type": "VAEEncode",
287
  "pos": [
288
  440,
@@ -293,18 +334,18 @@
293
  46
294
  ],
295
  "flags": {},
296
- "order": 7,
297
  "mode": 0,
298
  "inputs": [
299
  {
300
  "name": "pixels",
301
  "type": "IMAGE",
302
- "link": 7
303
  },
304
  {
305
  "name": "vae",
306
  "type": "VAE",
307
- "link": 8
308
  }
309
  ],
310
  "outputs": [
@@ -312,7 +353,7 @@
312
  "name": "LATENT",
313
  "type": "LATENT",
314
  "links": [
315
- 11
316
  ],
317
  "slot_index": 0
318
  }
@@ -323,7 +364,7 @@
323
  "title": "VAE Encode Source"
324
  },
325
  {
326
- "id": 9,
327
  "type": "Krea2EditModelPatch",
328
  "pos": [
329
  760,
@@ -334,18 +375,18 @@
334
  46
335
  ],
336
  "flags": {},
337
- "order": 8,
338
  "mode": 0,
339
  "inputs": [
340
  {
341
  "name": "model",
342
  "type": "MODEL",
343
- "link": 2
344
  },
345
  {
346
  "name": "source_latent",
347
  "type": "LATENT",
348
- "link": 11
349
  }
350
  ],
351
  "outputs": [
@@ -353,7 +394,7 @@
353
  "name": "MODEL",
354
  "type": "MODEL",
355
  "links": [
356
- 14
357
  ],
358
  "slot_index": 0
359
  }
@@ -367,7 +408,7 @@
367
  "title": "Krea2 Edit (source patch)"
368
  },
369
  {
370
- "id": 10,
371
  "type": "Krea2EditGroundedEncode",
372
  "pos": [
373
  440,
@@ -378,18 +419,18 @@
378
  190
379
  ],
380
  "flags": {},
381
- "order": 9,
382
  "mode": 0,
383
  "inputs": [
384
  {
385
  "name": "clip",
386
  "type": "CLIP",
387
- "link": 3
388
  },
389
  {
390
  "name": "image",
391
  "type": "IMAGE",
392
- "link": 9
393
  }
394
  ],
395
  "outputs": [
@@ -397,7 +438,7 @@
397
  "name": "CONDITIONING",
398
  "type": "CONDITIONING",
399
  "links": [
400
- 15
401
  ],
402
  "slot_index": 0
403
  }
@@ -414,7 +455,7 @@
414
  "title": "Edit Instruction (grounded on source)"
415
  },
416
  {
417
- "id": 11,
418
  "type": "Krea2EditGroundedEncode",
419
  "pos": [
420
  440,
@@ -425,18 +466,18 @@
425
  130
426
  ],
427
  "flags": {},
428
- "order": 10,
429
  "mode": 0,
430
  "inputs": [
431
  {
432
  "name": "clip",
433
  "type": "CLIP",
434
- "link": 4
435
  },
436
  {
437
  "name": "image",
438
  "type": "IMAGE",
439
- "link": 10
440
  }
441
  ],
442
  "outputs": [
@@ -444,7 +485,7 @@
444
  "name": "CONDITIONING",
445
  "type": "CONDITIONING",
446
  "links": [
447
- 16
448
  ],
449
  "slot_index": 0
450
  }
@@ -461,7 +502,7 @@
461
  "title": "Negative (grounded, empty — used at CFG > 1)"
462
  },
463
  {
464
- "id": 12,
465
  "type": "EmptySD3LatentImage",
466
  "pos": [
467
  760,
@@ -472,13 +513,13 @@
472
  106
473
  ],
474
  "flags": {},
475
- "order": 11,
476
  "mode": 0,
477
  "inputs": [
478
  {
479
  "name": "width",
480
  "type": "INT",
481
- "link": 12,
482
  "widget": {
483
  "name": "width"
484
  }
@@ -486,7 +527,7 @@
486
  {
487
  "name": "height",
488
  "type": "INT",
489
- "link": 13,
490
  "widget": {
491
  "name": "height"
492
  }
@@ -497,7 +538,7 @@
497
  "name": "LATENT",
498
  "type": "LATENT",
499
  "links": [
500
- 17
501
  ],
502
  "slot_index": 0
503
  }
@@ -513,7 +554,7 @@
513
  "title": "Target Latent (auto-sized from source)"
514
  },
515
  {
516
- "id": 13,
517
  "type": "KSampler",
518
  "pos": [
519
  1120,
@@ -524,28 +565,28 @@
524
  262
525
  ],
526
  "flags": {},
527
- "order": 12,
528
  "mode": 0,
529
  "inputs": [
530
  {
531
  "name": "model",
532
  "type": "MODEL",
533
- "link": 14
534
  },
535
  {
536
  "name": "positive",
537
  "type": "CONDITIONING",
538
- "link": 15
539
  },
540
  {
541
  "name": "negative",
542
  "type": "CONDITIONING",
543
- "link": 16
544
  },
545
  {
546
  "name": "latent_image",
547
  "type": "LATENT",
548
- "link": 17
549
  }
550
  ],
551
  "outputs": [
@@ -553,7 +594,7 @@
553
  "name": "LATENT",
554
  "type": "LATENT",
555
  "links": [
556
- 18
557
  ],
558
  "slot_index": 0
559
  }
@@ -572,7 +613,7 @@
572
  ]
573
  },
574
  {
575
- "id": 14,
576
  "type": "VAEDecode",
577
  "pos": [
578
  1120,
@@ -583,18 +624,18 @@
583
  46
584
  ],
585
  "flags": {},
586
- "order": 13,
587
  "mode": 0,
588
  "inputs": [
589
  {
590
  "name": "samples",
591
  "type": "LATENT",
592
- "link": 18
593
  },
594
  {
595
  "name": "vae",
596
  "type": "VAE",
597
- "link": 19
598
  }
599
  ],
600
  "outputs": [
@@ -602,7 +643,7 @@
602
  "name": "IMAGE",
603
  "type": "IMAGE",
604
  "links": [
605
- 20
606
  ],
607
  "slot_index": 0
608
  }
@@ -612,7 +653,7 @@
612
  }
613
  },
614
  {
615
- "id": 15,
616
  "type": "SaveImage",
617
  "pos": [
618
  1120,
@@ -623,13 +664,13 @@
623
  270
624
  ],
625
  "flags": {},
626
- "order": 14,
627
  "mode": 0,
628
  "inputs": [
629
  {
630
  "name": "images",
631
  "type": "IMAGE",
632
- "link": 20
633
  }
634
  ],
635
  "outputs": [],
@@ -641,7 +682,7 @@
641
  ]
642
  },
643
  {
644
- "id": 16,
645
  "type": "MarkdownNote",
646
  "pos": [
647
  1500,
@@ -652,7 +693,7 @@
652
  420
653
  ],
654
  "flags": {},
655
- "order": 15,
656
  "mode": 0,
657
  "inputs": [],
658
  "outputs": [],
@@ -660,7 +701,7 @@
660
  "Node name for S&R": "MarkdownNote"
661
  },
662
  "widgets_values": [
663
- "## Krea 2 — instruction-based image editing (Identity Edit LoRA, single reference)\n\nTurns Krea 2 from text-to-image into an instruction-based image editor (background swaps, restyles, object changes) using one LoRA — no separate edit model. From [Benji's AI Playground video](https://www.youtube.com/watch?v=QW2Wp6WjQF4).\n\n**Required:** `krea2_identity_edit_v1_1.safetensors` ([conradlocke/krea2-identity-edit](https://huggingface.co/conradlocke/krea2-identity-edit)) at strength 1.0, plus the [comfyui-krea2edit](https://github.com/lbouaraba/comfyui-krea2edit) node pack. **Krea2 Edit (source patch)** injects the VAE-encoded source as clean context tokens; **Krea2 Edit (grounded encode)** encodes the instruction while the text encoder sees the source image. Do not bypass either.\n\n**Prompting:** plain-English instructions — `change the background to a beach at sunset`, `make his jacket red`. The target latent auto-matches the ~1MP-scaled source, so aspect ratio is preserved (keep total size ≤2MP).\n\n**grounding_px** (on the grounded-encode nodes): 384–768 trained range. Lower = stronger edit adherence, higher = stronger identity/likeness. 768 default.\n\n**Turbo vs Raw:** turbo (this file) = 10 steps / CFG 1.0 / euler. For removals or large deletions the LoRA author recommends the raw model: swap UNETLoader to `krea2_raw_bf16.safetensors`, 20 steps / CFG 3.0 — the empty grounded negative is already wired for CFG > 1.\n\n**Face detail:** at ~1MP faces can come back soft; run a second pass or an upscaler for production quality."
664
  ],
665
  "title": "About this workflow"
666
  }
@@ -668,27 +709,27 @@
668
  "links": [
669
  [
670
  1,
671
- 1,
672
- 0,
673
- 2,
674
  0,
675
- "MODEL"
 
 
676
  ],
677
  [
678
  2,
679
- 2,
680
  0,
681
- 9,
682
  0,
683
  "MODEL"
684
  ],
685
  [
686
  3,
687
- 3,
688
  0,
689
  10,
690
  0,
691
- "CLIP"
692
  ],
693
  [
694
  4,
@@ -700,15 +741,15 @@
700
  ],
701
  [
702
  5,
703
- 5,
704
  0,
705
- 6,
706
  0,
707
- "IMAGE"
708
  ],
709
  [
710
  6,
711
- 6,
712
  0,
713
  7,
714
  0,
@@ -716,7 +757,7 @@
716
  ],
717
  [
718
  7,
719
- 6,
720
  0,
721
  8,
722
  0,
@@ -724,23 +765,23 @@
724
  ],
725
  [
726
  8,
727
- 4,
728
  0,
729
- 8,
730
- 1,
731
- "VAE"
732
  ],
733
  [
734
  9,
735
- 6,
736
  0,
737
- 10,
738
  1,
739
- "IMAGE"
740
  ],
741
  [
742
  10,
743
- 6,
744
  0,
745
  11,
746
  1,
@@ -748,82 +789,90 @@
748
  ],
749
  [
750
  11,
751
- 8,
752
  0,
 
 
 
 
 
 
753
  9,
 
 
754
  1,
755
  "LATENT"
756
  ],
757
  [
758
- 12,
759
- 7,
760
  0,
761
- 12,
762
  0,
763
  "INT"
764
  ],
765
  [
766
- 13,
767
- 7,
768
  1,
769
- 12,
770
  1,
771
  "INT"
772
  ],
773
  [
774
- 14,
775
- 9,
776
  0,
777
- 13,
778
  0,
779
  "MODEL"
780
  ],
781
  [
782
- 15,
783
- 10,
784
  0,
785
- 13,
786
  1,
787
  "CONDITIONING"
788
  ],
789
  [
790
- 16,
791
- 11,
792
  0,
793
- 13,
794
  2,
795
  "CONDITIONING"
796
  ],
797
  [
798
- 17,
799
- 12,
800
- 0,
801
  13,
 
 
802
  3,
803
  "LATENT"
804
  ],
805
  [
806
- 18,
807
- 13,
808
- 0,
809
  14,
810
  0,
 
 
811
  "LATENT"
812
  ],
813
  [
814
- 19,
815
  4,
816
  0,
817
- 14,
818
  1,
819
  "VAE"
820
  ],
821
  [
822
- 20,
823
- 14,
824
- 0,
825
  15,
826
  0,
 
 
827
  "IMAGE"
828
  ]
829
  ],
 
1
  {
2
+ "last_node_id": 17,
3
+ "last_link_id": 21,
4
  "nodes": [
5
  {
6
  "id": 1,
 
22
  "name": "MODEL",
23
  "type": "MODEL",
24
  "links": [
25
+ 2
26
  ],
27
  "slot_index": 0
28
  }
 
54
  {
55
  "name": "model",
56
  "type": "MODEL",
57
+ "link": 2
58
  }
59
  ],
60
  "outputs": [
 
62
  "name": "MODEL",
63
  "type": "MODEL",
64
  "links": [
65
+ 3
66
  ],
67
  "slot_index": 0
68
  }
 
96
  "name": "CLIP",
97
  "type": "CLIP",
98
  "links": [
99
+ 4,
100
+ 5
101
  ],
102
  "slot_index": 0
103
  }
 
132
  "name": "VAE",
133
  "type": "VAE",
134
  "links": [
135
+ 9,
136
+ 20
137
  ],
138
  "slot_index": 0
139
  }
 
166
  "name": "IMAGE",
167
  "type": "IMAGE",
168
  "links": [
169
+ 6
170
  ],
171
  "slot_index": 0
172
  },
 
188
  },
189
  {
190
  "id": 6,
191
+ "type": "PrimitiveInt",
192
+ "pos": [
193
+ 760,
194
+ 300
195
+ ],
196
+ "size": [
197
+ 300,
198
+ 82
199
+ ],
200
+ "flags": {},
201
+ "order": 5,
202
+ "mode": 0,
203
+ "inputs": [],
204
+ "outputs": [
205
+ {
206
+ "name": "INT",
207
+ "type": "INT",
208
+ "links": [
209
+ 1
210
+ ],
211
+ "slot_index": 0
212
+ }
213
+ ],
214
+ "properties": {
215
+ "Node name for S&R": "PrimitiveInt"
216
+ },
217
+ "widgets_values": [
218
+ 1280,
219
+ "fixed"
220
+ ],
221
+ "title": "Input max size (longest edge)"
222
+ },
223
+ {
224
+ "id": 7,
225
+ "type": "ImageScaleToMaxDimension",
226
  "pos": [
227
  440,
228
  620
 
232
  106
233
  ],
234
  "flags": {},
235
+ "order": 6,
236
  "mode": 0,
237
  "inputs": [
238
  {
239
  "name": "image",
240
  "type": "IMAGE",
241
+ "link": 6
242
+ },
243
+ {
244
+ "name": "largest_size",
245
+ "type": "INT",
246
+ "link": 1,
247
+ "widget": {
248
+ "name": "largest_size"
249
+ }
250
  }
251
  ],
252
  "outputs": [
 
254
  "name": "IMAGE",
255
  "type": "IMAGE",
256
  "links": [
 
257
  7,
258
+ 8,
259
+ 10,
260
+ 11
261
  ],
262
  "slot_index": 0
263
  }
264
  ],
265
  "properties": {
266
+ "Node name for S&R": "ImageScaleToMaxDimension"
267
  },
268
  "widgets_values": [
269
  "lanczos",
270
+ 1280
 
271
  ],
272
+ "title": "Scale source (longest edge = max size)"
273
  },
274
  {
275
+ "id": 8,
276
  "type": "GetImageSize",
277
  "pos": [
278
  440,
 
283
  90
284
  ],
285
  "flags": {},
286
+ "order": 7,
287
  "mode": 0,
288
  "inputs": [
289
  {
290
  "name": "image",
291
  "type": "IMAGE",
292
+ "link": 7
293
  }
294
  ],
295
  "outputs": [
 
297
  "name": "width",
298
  "type": "INT",
299
  "links": [
300
+ 13
301
  ],
302
  "slot_index": 0
303
  },
 
305
  "name": "height",
306
  "type": "INT",
307
  "links": [
308
+ 14
309
  ],
310
  "slot_index": 1
311
  },
 
323
  "title": "Source size → target latent"
324
  },
325
  {
326
+ "id": 9,
327
  "type": "VAEEncode",
328
  "pos": [
329
  440,
 
334
  46
335
  ],
336
  "flags": {},
337
+ "order": 8,
338
  "mode": 0,
339
  "inputs": [
340
  {
341
  "name": "pixels",
342
  "type": "IMAGE",
343
+ "link": 8
344
  },
345
  {
346
  "name": "vae",
347
  "type": "VAE",
348
+ "link": 9
349
  }
350
  ],
351
  "outputs": [
 
353
  "name": "LATENT",
354
  "type": "LATENT",
355
  "links": [
356
+ 12
357
  ],
358
  "slot_index": 0
359
  }
 
364
  "title": "VAE Encode Source"
365
  },
366
  {
367
+ "id": 10,
368
  "type": "Krea2EditModelPatch",
369
  "pos": [
370
  760,
 
375
  46
376
  ],
377
  "flags": {},
378
+ "order": 9,
379
  "mode": 0,
380
  "inputs": [
381
  {
382
  "name": "model",
383
  "type": "MODEL",
384
+ "link": 3
385
  },
386
  {
387
  "name": "source_latent",
388
  "type": "LATENT",
389
+ "link": 12
390
  }
391
  ],
392
  "outputs": [
 
394
  "name": "MODEL",
395
  "type": "MODEL",
396
  "links": [
397
+ 15
398
  ],
399
  "slot_index": 0
400
  }
 
408
  "title": "Krea2 Edit (source patch)"
409
  },
410
  {
411
+ "id": 11,
412
  "type": "Krea2EditGroundedEncode",
413
  "pos": [
414
  440,
 
419
  190
420
  ],
421
  "flags": {},
422
+ "order": 10,
423
  "mode": 0,
424
  "inputs": [
425
  {
426
  "name": "clip",
427
  "type": "CLIP",
428
+ "link": 4
429
  },
430
  {
431
  "name": "image",
432
  "type": "IMAGE",
433
+ "link": 10
434
  }
435
  ],
436
  "outputs": [
 
438
  "name": "CONDITIONING",
439
  "type": "CONDITIONING",
440
  "links": [
441
+ 16
442
  ],
443
  "slot_index": 0
444
  }
 
455
  "title": "Edit Instruction (grounded on source)"
456
  },
457
  {
458
+ "id": 12,
459
  "type": "Krea2EditGroundedEncode",
460
  "pos": [
461
  440,
 
466
  130
467
  ],
468
  "flags": {},
469
+ "order": 11,
470
  "mode": 0,
471
  "inputs": [
472
  {
473
  "name": "clip",
474
  "type": "CLIP",
475
+ "link": 5
476
  },
477
  {
478
  "name": "image",
479
  "type": "IMAGE",
480
+ "link": 11
481
  }
482
  ],
483
  "outputs": [
 
485
  "name": "CONDITIONING",
486
  "type": "CONDITIONING",
487
  "links": [
488
+ 17
489
  ],
490
  "slot_index": 0
491
  }
 
502
  "title": "Negative (grounded, empty — used at CFG > 1)"
503
  },
504
  {
505
+ "id": 13,
506
  "type": "EmptySD3LatentImage",
507
  "pos": [
508
  760,
 
513
  106
514
  ],
515
  "flags": {},
516
+ "order": 12,
517
  "mode": 0,
518
  "inputs": [
519
  {
520
  "name": "width",
521
  "type": "INT",
522
+ "link": 13,
523
  "widget": {
524
  "name": "width"
525
  }
 
527
  {
528
  "name": "height",
529
  "type": "INT",
530
+ "link": 14,
531
  "widget": {
532
  "name": "height"
533
  }
 
538
  "name": "LATENT",
539
  "type": "LATENT",
540
  "links": [
541
+ 18
542
  ],
543
  "slot_index": 0
544
  }
 
554
  "title": "Target Latent (auto-sized from source)"
555
  },
556
  {
557
+ "id": 14,
558
  "type": "KSampler",
559
  "pos": [
560
  1120,
 
565
  262
566
  ],
567
  "flags": {},
568
+ "order": 13,
569
  "mode": 0,
570
  "inputs": [
571
  {
572
  "name": "model",
573
  "type": "MODEL",
574
+ "link": 15
575
  },
576
  {
577
  "name": "positive",
578
  "type": "CONDITIONING",
579
+ "link": 16
580
  },
581
  {
582
  "name": "negative",
583
  "type": "CONDITIONING",
584
+ "link": 17
585
  },
586
  {
587
  "name": "latent_image",
588
  "type": "LATENT",
589
+ "link": 18
590
  }
591
  ],
592
  "outputs": [
 
594
  "name": "LATENT",
595
  "type": "LATENT",
596
  "links": [
597
+ 19
598
  ],
599
  "slot_index": 0
600
  }
 
613
  ]
614
  },
615
  {
616
+ "id": 15,
617
  "type": "VAEDecode",
618
  "pos": [
619
  1120,
 
624
  46
625
  ],
626
  "flags": {},
627
+ "order": 14,
628
  "mode": 0,
629
  "inputs": [
630
  {
631
  "name": "samples",
632
  "type": "LATENT",
633
+ "link": 19
634
  },
635
  {
636
  "name": "vae",
637
  "type": "VAE",
638
+ "link": 20
639
  }
640
  ],
641
  "outputs": [
 
643
  "name": "IMAGE",
644
  "type": "IMAGE",
645
  "links": [
646
+ 21
647
  ],
648
  "slot_index": 0
649
  }
 
653
  }
654
  },
655
  {
656
+ "id": 16,
657
  "type": "SaveImage",
658
  "pos": [
659
  1120,
 
664
  270
665
  ],
666
  "flags": {},
667
+ "order": 15,
668
  "mode": 0,
669
  "inputs": [
670
  {
671
  "name": "images",
672
  "type": "IMAGE",
673
+ "link": 21
674
  }
675
  ],
676
  "outputs": [],
 
682
  ]
683
  },
684
  {
685
+ "id": 17,
686
  "type": "MarkdownNote",
687
  "pos": [
688
  1500,
 
693
  420
694
  ],
695
  "flags": {},
696
+ "order": 16,
697
  "mode": 0,
698
  "inputs": [],
699
  "outputs": [],
 
701
  "Node name for S&R": "MarkdownNote"
702
  },
703
  "widgets_values": [
704
+ "## Krea 2 — instruction-based image editing (Identity Edit LoRA, single reference)\n\nTurns Krea 2 from text-to-image into an instruction-based image editor (background swaps, restyles, object changes) using one LoRA — no separate edit model. From [Benji's AI Playground video](https://www.youtube.com/watch?v=QW2Wp6WjQF4).\n\n**Required:** `krea2_identity_edit_v1_1.safetensors` ([conradlocke/krea2-identity-edit](https://huggingface.co/conradlocke/krea2-identity-edit)) at strength 1.0, plus the [comfyui-krea2edit](https://github.com/lbouaraba/comfyui-krea2edit) node pack. **Krea2 Edit (source patch)** injects the VAE-encoded source as clean context tokens; **Krea2 Edit (grounded encode)** encodes the instruction while the text encoder sees the source image. Do not bypass either.\n\n**Prompting:** plain-English instructions — `change the background to a beach at sunset`, `make his jacket red`.\n\n**Resolution:** the *Input max size* INT sets the render's longest edge (default 1280), same control as qwen-edit-turbo-v4. The source keeps its aspect ratio and the target latent auto-follows its post-scale size. Keep total area ≤2MP (the LoRA's trained ceiling); at native-resolution inputs just raise/lower this one INT.\n\n**grounding_px** (on the grounded-encode nodes): 384–768 trained range. Lower = stronger edit adherence, higher = stronger identity/likeness. 768 default.\n\n**Turbo vs Raw:** turbo (this file) = 10 steps / CFG 1.0 / euler. For removals or large deletions the LoRA author recommends the raw model: swap UNETLoader to `krea2_raw_bf16.safetensors`, 20 steps / CFG 3.0 — the empty grounded negative is already wired for CFG > 1.\n\n**Face detail:** at ~1MP faces can come back soft; run a second pass or an upscaler for production quality."
705
  ],
706
  "title": "About this workflow"
707
  }
 
709
  "links": [
710
  [
711
  1,
712
+ 6,
 
 
713
  0,
714
+ 7,
715
+ 1,
716
+ "INT"
717
  ],
718
  [
719
  2,
720
+ 1,
721
  0,
722
+ 2,
723
  0,
724
  "MODEL"
725
  ],
726
  [
727
  3,
728
+ 2,
729
  0,
730
  10,
731
  0,
732
+ "MODEL"
733
  ],
734
  [
735
  4,
 
741
  ],
742
  [
743
  5,
744
+ 3,
745
  0,
746
+ 12,
747
  0,
748
+ "CLIP"
749
  ],
750
  [
751
  6,
752
+ 5,
753
  0,
754
  7,
755
  0,
 
757
  ],
758
  [
759
  7,
760
+ 7,
761
  0,
762
  8,
763
  0,
 
765
  ],
766
  [
767
  8,
768
+ 7,
769
  0,
770
+ 9,
771
+ 0,
772
+ "IMAGE"
773
  ],
774
  [
775
  9,
776
+ 4,
777
  0,
778
+ 9,
779
  1,
780
+ "VAE"
781
  ],
782
  [
783
  10,
784
+ 7,
785
  0,
786
  11,
787
  1,
 
789
  ],
790
  [
791
  11,
792
+ 7,
793
  0,
794
+ 12,
795
+ 1,
796
+ "IMAGE"
797
+ ],
798
+ [
799
+ 12,
800
  9,
801
+ 0,
802
+ 10,
803
  1,
804
  "LATENT"
805
  ],
806
  [
807
+ 13,
808
+ 8,
809
  0,
810
+ 13,
811
  0,
812
  "INT"
813
  ],
814
  [
815
+ 14,
816
+ 8,
817
  1,
818
+ 13,
819
  1,
820
  "INT"
821
  ],
822
  [
823
+ 15,
824
+ 10,
825
  0,
826
+ 14,
827
  0,
828
  "MODEL"
829
  ],
830
  [
831
+ 16,
832
+ 11,
833
  0,
834
+ 14,
835
  1,
836
  "CONDITIONING"
837
  ],
838
  [
839
+ 17,
840
+ 12,
841
  0,
842
+ 14,
843
  2,
844
  "CONDITIONING"
845
  ],
846
  [
847
+ 18,
 
 
848
  13,
849
+ 0,
850
+ 14,
851
  3,
852
  "LATENT"
853
  ],
854
  [
855
+ 19,
 
 
856
  14,
857
  0,
858
+ 15,
859
+ 0,
860
  "LATENT"
861
  ],
862
  [
863
+ 20,
864
  4,
865
  0,
866
+ 15,
867
  1,
868
  "VAE"
869
  ],
870
  [
871
+ 21,
 
 
872
  15,
873
  0,
874
+ 16,
875
+ 0,
876
  "IMAGE"
877
  ]
878
  ],