faisalhr1997 commited on
Commit
c07abba
1 Parent(s): 6c2c6e5

Upload 3 files

Browse files
Files changed (3) hide show
  1. comparison_workflow.json +2209 -0
  2. ksampler_sdxl.py +290 -0
  3. simple_workflow.json +844 -0
comparison_workflow.json ADDED
@@ -0,0 +1,2209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "last_node_id": 34,
3
+ "last_link_id": 80,
4
+ "nodes": [
5
+ {
6
+ "id": 12,
7
+ "type": "VAEDecode",
8
+ "pos": [
9
+ 2060,
10
+ 240
11
+ ],
12
+ "size": {
13
+ "0": 180,
14
+ "1": 60
15
+ },
16
+ "flags": {},
17
+ "order": 17,
18
+ "mode": 0,
19
+ "inputs": [
20
+ {
21
+ "name": "samples",
22
+ "type": "LATENT",
23
+ "link": 2
24
+ },
25
+ {
26
+ "name": "vae",
27
+ "type": "VAE",
28
+ "link": 3
29
+ }
30
+ ],
31
+ "outputs": [
32
+ {
33
+ "name": "IMAGE",
34
+ "type": "IMAGE",
35
+ "links": [
36
+ 1
37
+ ],
38
+ "shape": 3,
39
+ "slot_index": 0
40
+ }
41
+ ],
42
+ "properties": {
43
+ "Node name for S&R": "VAEDecode"
44
+ }
45
+ },
46
+ {
47
+ "id": 3,
48
+ "type": "VAELoader",
49
+ "pos": [
50
+ 1640,
51
+ 360
52
+ ],
53
+ "size": {
54
+ "0": 360,
55
+ "1": 60
56
+ },
57
+ "flags": {},
58
+ "order": 0,
59
+ "mode": 0,
60
+ "outputs": [
61
+ {
62
+ "name": "VAE",
63
+ "type": "VAE",
64
+ "links": [
65
+ 3,
66
+ 66,
67
+ 68,
68
+ 70,
69
+ 72,
70
+ 78
71
+ ],
72
+ "shape": 3,
73
+ "slot_index": 0
74
+ }
75
+ ],
76
+ "properties": {
77
+ "Node name for S&R": "VAELoader"
78
+ },
79
+ "widgets_values": [
80
+ "sdxl_vae_fixed.safetensors"
81
+ ]
82
+ },
83
+ {
84
+ "id": 8,
85
+ "type": "CheckpointLoaderSimple",
86
+ "pos": [
87
+ 80,
88
+ 400
89
+ ],
90
+ "size": {
91
+ "0": 360,
92
+ "1": 100
93
+ },
94
+ "flags": {},
95
+ "order": 1,
96
+ "mode": 0,
97
+ "outputs": [
98
+ {
99
+ "name": "MODEL",
100
+ "type": "MODEL",
101
+ "links": [
102
+ 13,
103
+ 20,
104
+ 26,
105
+ 32,
106
+ 38,
107
+ 50
108
+ ],
109
+ "shape": 3,
110
+ "slot_index": 0
111
+ },
112
+ {
113
+ "name": "CLIP",
114
+ "type": "CLIP",
115
+ "links": [
116
+ 8,
117
+ 9
118
+ ],
119
+ "shape": 3,
120
+ "slot_index": 1
121
+ },
122
+ {
123
+ "name": "VAE",
124
+ "type": "VAE",
125
+ "links": null,
126
+ "shape": 3
127
+ }
128
+ ],
129
+ "properties": {
130
+ "Node name for S&R": "CheckpointLoaderSimple"
131
+ },
132
+ "widgets_values": [
133
+ "SDXL\\sd_xl_refiner_1.0.safetensors"
134
+ ]
135
+ },
136
+ {
137
+ "id": 14,
138
+ "type": "PrimitiveNode",
139
+ "pos": [
140
+ 460,
141
+ 260
142
+ ],
143
+ "size": {
144
+ "0": 340,
145
+ "1": 220
146
+ },
147
+ "flags": {},
148
+ "order": 2,
149
+ "mode": 0,
150
+ "outputs": [
151
+ {
152
+ "name": "STRING",
153
+ "type": "STRING",
154
+ "links": [
155
+ 4,
156
+ 5
157
+ ],
158
+ "slot_index": 0,
159
+ "widget": {
160
+ "name": "text",
161
+ "config": [
162
+ "STRING",
163
+ {
164
+ "multiline": true
165
+ }
166
+ ]
167
+ }
168
+ }
169
+ ],
170
+ "title": "Positive prompt",
171
+ "properties": {},
172
+ "widgets_values": [
173
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
174
+ ],
175
+ "color": "#232",
176
+ "bgcolor": "#353"
177
+ },
178
+ {
179
+ "id": 15,
180
+ "type": "PrimitiveNode",
181
+ "pos": [
182
+ 460,
183
+ 520
184
+ ],
185
+ "size": {
186
+ "0": 340,
187
+ "1": 220
188
+ },
189
+ "flags": {},
190
+ "order": 3,
191
+ "mode": 0,
192
+ "outputs": [
193
+ {
194
+ "name": "STRING",
195
+ "type": "STRING",
196
+ "links": [
197
+ 6,
198
+ 7
199
+ ],
200
+ "slot_index": 0,
201
+ "widget": {
202
+ "name": "text",
203
+ "config": [
204
+ "STRING",
205
+ {
206
+ "multiline": true
207
+ }
208
+ ]
209
+ }
210
+ }
211
+ ],
212
+ "title": "Negative prompt",
213
+ "properties": {},
214
+ "widgets_values": [
215
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
216
+ ],
217
+ "color": "#322",
218
+ "bgcolor": "#533"
219
+ },
220
+ {
221
+ "id": 16,
222
+ "type": "EmptyLatentImage",
223
+ "pos": [
224
+ 900,
225
+ 660
226
+ ],
227
+ "size": {
228
+ "0": 220,
229
+ "1": 120
230
+ },
231
+ "flags": {},
232
+ "order": 4,
233
+ "mode": 0,
234
+ "outputs": [
235
+ {
236
+ "name": "LATENT",
237
+ "type": "LATENT",
238
+ "links": [
239
+ 18,
240
+ 24,
241
+ 30,
242
+ 36,
243
+ 42,
244
+ 54
245
+ ],
246
+ "shape": 3,
247
+ "slot_index": 0
248
+ }
249
+ ],
250
+ "properties": {
251
+ "Node name for S&R": "EmptyLatentImage"
252
+ },
253
+ "widgets_values": [
254
+ 1024,
255
+ 1024,
256
+ 1
257
+ ],
258
+ "color": "#323",
259
+ "bgcolor": "#535"
260
+ },
261
+ {
262
+ "id": 2,
263
+ "type": "CheckpointLoaderSimple",
264
+ "pos": [
265
+ 80,
266
+ 260
267
+ ],
268
+ "size": {
269
+ "0": 360,
270
+ "1": 100
271
+ },
272
+ "flags": {},
273
+ "order": 5,
274
+ "mode": 0,
275
+ "outputs": [
276
+ {
277
+ "name": "MODEL",
278
+ "type": "MODEL",
279
+ "links": [
280
+ 12,
281
+ 56,
282
+ 57,
283
+ 58,
284
+ 59,
285
+ 60
286
+ ],
287
+ "shape": 3,
288
+ "slot_index": 0
289
+ },
290
+ {
291
+ "name": "CLIP",
292
+ "type": "CLIP",
293
+ "links": [
294
+ 10,
295
+ 11
296
+ ],
297
+ "shape": 3,
298
+ "slot_index": 1
299
+ },
300
+ {
301
+ "name": "VAE",
302
+ "type": "VAE",
303
+ "links": null,
304
+ "shape": 3
305
+ }
306
+ ],
307
+ "properties": {
308
+ "Node name for S&R": "CheckpointLoaderSimple"
309
+ },
310
+ "widgets_values": [
311
+ "SDXL\\sd_xl_base_1.0.safetensors"
312
+ ]
313
+ },
314
+ {
315
+ "id": 9,
316
+ "type": "CLIPTextEncode",
317
+ "pos": [
318
+ 900,
319
+ 360
320
+ ],
321
+ "size": {
322
+ "0": 220,
323
+ "1": 60
324
+ },
325
+ "flags": {},
326
+ "order": 10,
327
+ "mode": 0,
328
+ "inputs": [
329
+ {
330
+ "name": "clip",
331
+ "type": "CLIP",
332
+ "link": 11
333
+ },
334
+ {
335
+ "name": "text",
336
+ "type": "STRING",
337
+ "link": 7,
338
+ "widget": {
339
+ "name": "text",
340
+ "config": [
341
+ "STRING",
342
+ {
343
+ "multiline": true
344
+ }
345
+ ]
346
+ }
347
+ }
348
+ ],
349
+ "outputs": [
350
+ {
351
+ "name": "CONDITIONING",
352
+ "type": "CONDITIONING",
353
+ "links": [
354
+ 15,
355
+ 21,
356
+ 27,
357
+ 33,
358
+ 39,
359
+ 51
360
+ ],
361
+ "shape": 3,
362
+ "slot_index": 0
363
+ }
364
+ ],
365
+ "properties": {
366
+ "Node name for S&R": "CLIPTextEncode"
367
+ },
368
+ "widgets_values": [
369
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
370
+ ]
371
+ },
372
+ {
373
+ "id": 10,
374
+ "type": "CLIPTextEncode",
375
+ "pos": [
376
+ 900,
377
+ 460
378
+ ],
379
+ "size": {
380
+ "0": 220,
381
+ "1": 60
382
+ },
383
+ "flags": {},
384
+ "order": 7,
385
+ "mode": 0,
386
+ "inputs": [
387
+ {
388
+ "name": "clip",
389
+ "type": "CLIP",
390
+ "link": 9
391
+ },
392
+ {
393
+ "name": "text",
394
+ "type": "STRING",
395
+ "link": 5,
396
+ "widget": {
397
+ "name": "text",
398
+ "config": [
399
+ "STRING",
400
+ {
401
+ "multiline": true
402
+ }
403
+ ]
404
+ }
405
+ }
406
+ ],
407
+ "outputs": [
408
+ {
409
+ "name": "CONDITIONING",
410
+ "type": "CONDITIONING",
411
+ "links": [
412
+ 16,
413
+ 22,
414
+ 28,
415
+ 34,
416
+ 40,
417
+ 52
418
+ ],
419
+ "shape": 3,
420
+ "slot_index": 0
421
+ }
422
+ ],
423
+ "properties": {
424
+ "Node name for S&R": "CLIPTextEncode"
425
+ },
426
+ "widgets_values": [
427
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
428
+ ]
429
+ },
430
+ {
431
+ "id": 11,
432
+ "type": "CLIPTextEncode",
433
+ "pos": [
434
+ 900,
435
+ 560
436
+ ],
437
+ "size": {
438
+ "0": 220,
439
+ "1": 60
440
+ },
441
+ "flags": {},
442
+ "order": 8,
443
+ "mode": 0,
444
+ "inputs": [
445
+ {
446
+ "name": "clip",
447
+ "type": "CLIP",
448
+ "link": 8
449
+ },
450
+ {
451
+ "name": "text",
452
+ "type": "STRING",
453
+ "link": 6,
454
+ "widget": {
455
+ "name": "text",
456
+ "config": [
457
+ "STRING",
458
+ {
459
+ "multiline": true
460
+ }
461
+ ]
462
+ }
463
+ }
464
+ ],
465
+ "outputs": [
466
+ {
467
+ "name": "CONDITIONING",
468
+ "type": "CONDITIONING",
469
+ "links": [
470
+ 17,
471
+ 23,
472
+ 29,
473
+ 35,
474
+ 41,
475
+ 53
476
+ ],
477
+ "shape": 3,
478
+ "slot_index": 0
479
+ }
480
+ ],
481
+ "properties": {
482
+ "Node name for S&R": "CLIPTextEncode"
483
+ },
484
+ "widgets_values": [
485
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
486
+ ]
487
+ },
488
+ {
489
+ "id": 4,
490
+ "type": "CLIPTextEncode",
491
+ "pos": [
492
+ 900,
493
+ 260
494
+ ],
495
+ "size": {
496
+ "0": 220,
497
+ "1": 60
498
+ },
499
+ "flags": {},
500
+ "order": 9,
501
+ "mode": 0,
502
+ "inputs": [
503
+ {
504
+ "name": "clip",
505
+ "type": "CLIP",
506
+ "link": 10
507
+ },
508
+ {
509
+ "name": "text",
510
+ "type": "STRING",
511
+ "link": 4,
512
+ "widget": {
513
+ "name": "text",
514
+ "config": [
515
+ "STRING",
516
+ {
517
+ "multiline": true
518
+ }
519
+ ]
520
+ }
521
+ }
522
+ ],
523
+ "outputs": [
524
+ {
525
+ "name": "CONDITIONING",
526
+ "type": "CONDITIONING",
527
+ "links": [
528
+ 14,
529
+ 61,
530
+ 62,
531
+ 63,
532
+ 64,
533
+ 65
534
+ ],
535
+ "shape": 3,
536
+ "slot_index": 0
537
+ }
538
+ ],
539
+ "properties": {
540
+ "Node name for S&R": "CLIPTextEncode"
541
+ },
542
+ "widgets_values": [
543
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
544
+ ]
545
+ },
546
+ {
547
+ "id": 24,
548
+ "type": "VAEDecode",
549
+ "pos": [
550
+ 2102.3250068359366,
551
+ 882.6137916992182
552
+ ],
553
+ "size": {
554
+ "0": 180,
555
+ "1": 60
556
+ },
557
+ "flags": {},
558
+ "order": 18,
559
+ "mode": 0,
560
+ "inputs": [
561
+ {
562
+ "name": "samples",
563
+ "type": "LATENT",
564
+ "link": 77
565
+ },
566
+ {
567
+ "name": "vae",
568
+ "type": "VAE",
569
+ "link": 66
570
+ }
571
+ ],
572
+ "outputs": [
573
+ {
574
+ "name": "IMAGE",
575
+ "type": "IMAGE",
576
+ "links": [
577
+ 67
578
+ ],
579
+ "shape": 3,
580
+ "slot_index": 0
581
+ }
582
+ ],
583
+ "properties": {
584
+ "Node name for S&R": "VAEDecode"
585
+ }
586
+ },
587
+ {
588
+ "id": 26,
589
+ "type": "VAEDecode",
590
+ "pos": [
591
+ 2155.0328053710928,
592
+ 1425.7948447265624
593
+ ],
594
+ "size": {
595
+ "0": 180,
596
+ "1": 60
597
+ },
598
+ "flags": {},
599
+ "order": 19,
600
+ "mode": 0,
601
+ "inputs": [
602
+ {
603
+ "name": "samples",
604
+ "type": "LATENT",
605
+ "link": 76
606
+ },
607
+ {
608
+ "name": "vae",
609
+ "type": "VAE",
610
+ "link": 68
611
+ }
612
+ ],
613
+ "outputs": [
614
+ {
615
+ "name": "IMAGE",
616
+ "type": "IMAGE",
617
+ "links": [
618
+ 69
619
+ ],
620
+ "shape": 3,
621
+ "slot_index": 0
622
+ }
623
+ ],
624
+ "properties": {
625
+ "Node name for S&R": "VAEDecode"
626
+ }
627
+ },
628
+ {
629
+ "id": 28,
630
+ "type": "VAEDecode",
631
+ "pos": [
632
+ 2231.166005371093,
633
+ 1936.765744726562
634
+ ],
635
+ "size": {
636
+ "0": 180,
637
+ "1": 60
638
+ },
639
+ "flags": {},
640
+ "order": 21,
641
+ "mode": 0,
642
+ "inputs": [
643
+ {
644
+ "name": "samples",
645
+ "type": "LATENT",
646
+ "link": 75
647
+ },
648
+ {
649
+ "name": "vae",
650
+ "type": "VAE",
651
+ "link": 70
652
+ }
653
+ ],
654
+ "outputs": [
655
+ {
656
+ "name": "IMAGE",
657
+ "type": "IMAGE",
658
+ "links": [
659
+ 71
660
+ ],
661
+ "shape": 3,
662
+ "slot_index": 0
663
+ }
664
+ ],
665
+ "properties": {
666
+ "Node name for S&R": "VAEDecode"
667
+ }
668
+ },
669
+ {
670
+ "id": 30,
671
+ "type": "VAEDecode",
672
+ "pos": [
673
+ 2130.143059374999,
674
+ 2535.582888476562
675
+ ],
676
+ "size": {
677
+ "0": 180,
678
+ "1": 60
679
+ },
680
+ "flags": {},
681
+ "order": 22,
682
+ "mode": 0,
683
+ "inputs": [
684
+ {
685
+ "name": "samples",
686
+ "type": "LATENT",
687
+ "link": 74
688
+ },
689
+ {
690
+ "name": "vae",
691
+ "type": "VAE",
692
+ "link": 72
693
+ }
694
+ ],
695
+ "outputs": [
696
+ {
697
+ "name": "IMAGE",
698
+ "type": "IMAGE",
699
+ "links": [
700
+ 73
701
+ ],
702
+ "shape": 3,
703
+ "slot_index": 0
704
+ }
705
+ ],
706
+ "properties": {
707
+ "Node name for S&R": "VAEDecode"
708
+ }
709
+ },
710
+ {
711
+ "id": 32,
712
+ "type": "VAEDecode",
713
+ "pos": [
714
+ 2040.832960546874,
715
+ -297.4507091796877
716
+ ],
717
+ "size": {
718
+ "0": 180,
719
+ "1": 60
720
+ },
721
+ "flags": {},
722
+ "order": 20,
723
+ "mode": 0,
724
+ "inputs": [
725
+ {
726
+ "name": "samples",
727
+ "type": "LATENT",
728
+ "link": 80
729
+ },
730
+ {
731
+ "name": "vae",
732
+ "type": "VAE",
733
+ "link": 78
734
+ }
735
+ ],
736
+ "outputs": [
737
+ {
738
+ "name": "IMAGE",
739
+ "type": "IMAGE",
740
+ "links": [
741
+ 79
742
+ ],
743
+ "shape": 3,
744
+ "slot_index": 0
745
+ }
746
+ ],
747
+ "properties": {
748
+ "Node name for S&R": "VAEDecode"
749
+ }
750
+ },
751
+ {
752
+ "id": 31,
753
+ "type": "SaveImage",
754
+ "pos": [
755
+ 2340,
756
+ 2540
757
+ ],
758
+ "size": {
759
+ "0": 220,
760
+ "1": 270.0001220703125
761
+ },
762
+ "flags": {
763
+ "collapsed": true
764
+ },
765
+ "order": 28,
766
+ "mode": 0,
767
+ "inputs": [
768
+ {
769
+ "name": "images",
770
+ "type": "IMAGE",
771
+ "link": 73
772
+ }
773
+ ],
774
+ "properties": {},
775
+ "widgets_values": [
776
+ "ComfyUI"
777
+ ]
778
+ },
779
+ {
780
+ "id": 29,
781
+ "type": "SaveImage",
782
+ "pos": [
783
+ 2440,
784
+ 1940
785
+ ],
786
+ "size": {
787
+ "0": 220,
788
+ "1": 270
789
+ },
790
+ "flags": {
791
+ "collapsed": true
792
+ },
793
+ "order": 27,
794
+ "mode": 0,
795
+ "inputs": [
796
+ {
797
+ "name": "images",
798
+ "type": "IMAGE",
799
+ "link": 71
800
+ }
801
+ ],
802
+ "properties": {},
803
+ "widgets_values": [
804
+ "ComfyUI"
805
+ ]
806
+ },
807
+ {
808
+ "id": 27,
809
+ "type": "SaveImage",
810
+ "pos": [
811
+ 2360,
812
+ 1420
813
+ ],
814
+ "size": {
815
+ "0": 220,
816
+ "1": 270
817
+ },
818
+ "flags": {
819
+ "collapsed": true
820
+ },
821
+ "order": 25,
822
+ "mode": 0,
823
+ "inputs": [
824
+ {
825
+ "name": "images",
826
+ "type": "IMAGE",
827
+ "link": 69
828
+ }
829
+ ],
830
+ "properties": {},
831
+ "widgets_values": [
832
+ "ComfyUI"
833
+ ]
834
+ },
835
+ {
836
+ "id": 25,
837
+ "type": "SaveImage",
838
+ "pos": [
839
+ 2300,
840
+ 880
841
+ ],
842
+ "size": {
843
+ "0": 220,
844
+ "1": 270
845
+ },
846
+ "flags": {
847
+ "collapsed": true
848
+ },
849
+ "order": 24,
850
+ "mode": 0,
851
+ "inputs": [
852
+ {
853
+ "name": "images",
854
+ "type": "IMAGE",
855
+ "link": 67
856
+ }
857
+ ],
858
+ "properties": {},
859
+ "widgets_values": [
860
+ "ComfyUI"
861
+ ]
862
+ },
863
+ {
864
+ "id": 13,
865
+ "type": "SaveImage",
866
+ "pos": [
867
+ 2260,
868
+ 240
869
+ ],
870
+ "size": {
871
+ "0": 220,
872
+ "1": 270
873
+ },
874
+ "flags": {
875
+ "collapsed": true
876
+ },
877
+ "order": 23,
878
+ "mode": 0,
879
+ "inputs": [
880
+ {
881
+ "name": "images",
882
+ "type": "IMAGE",
883
+ "link": 1
884
+ }
885
+ ],
886
+ "properties": {},
887
+ "widgets_values": [
888
+ "ComfyUI"
889
+ ]
890
+ },
891
+ {
892
+ "id": 33,
893
+ "type": "SaveImage",
894
+ "pos": [
895
+ 2240,
896
+ -300
897
+ ],
898
+ "size": {
899
+ "0": 220,
900
+ "1": 270
901
+ },
902
+ "flags": {
903
+ "collapsed": true
904
+ },
905
+ "order": 26,
906
+ "mode": 0,
907
+ "inputs": [
908
+ {
909
+ "name": "images",
910
+ "type": "IMAGE",
911
+ "link": 79
912
+ }
913
+ ],
914
+ "properties": {},
915
+ "widgets_values": [
916
+ "ComfyUI"
917
+ ]
918
+ },
919
+ {
920
+ "id": 21,
921
+ "type": "KSamplerSDXLAdvanced",
922
+ "pos": [
923
+ 1220,
924
+ 1920
925
+ ],
926
+ "size": {
927
+ "0": 393,
928
+ "1": 506
929
+ },
930
+ "flags": {},
931
+ "order": 15,
932
+ "mode": 0,
933
+ "inputs": [
934
+ {
935
+ "name": "model_model",
936
+ "type": "MODEL",
937
+ "link": 59
938
+ },
939
+ {
940
+ "name": "model_refiner",
941
+ "type": "MODEL",
942
+ "link": 38
943
+ },
944
+ {
945
+ "name": "CONDITIONING_model_pos",
946
+ "type": "CONDITIONING",
947
+ "link": 64
948
+ },
949
+ {
950
+ "name": "CONDITIONING_model_neg",
951
+ "type": "CONDITIONING",
952
+ "link": 39
953
+ },
954
+ {
955
+ "name": "CONDITIONING_refiner_pos",
956
+ "type": "CONDITIONING",
957
+ "link": 40
958
+ },
959
+ {
960
+ "name": "CONDITIONING_refiner_neg",
961
+ "type": "CONDITIONING",
962
+ "link": 41
963
+ },
964
+ {
965
+ "name": "latent_image",
966
+ "type": "LATENT",
967
+ "link": 42
968
+ },
969
+ {
970
+ "name": "SD15VAE",
971
+ "type": "VAE",
972
+ "link": null
973
+ },
974
+ {
975
+ "name": "SDXLVAE",
976
+ "type": "VAE",
977
+ "link": null
978
+ },
979
+ {
980
+ "name": "seed",
981
+ "type": "INT",
982
+ "link": 43,
983
+ "widget": {
984
+ "name": "seed",
985
+ "config": [
986
+ "INT",
987
+ {
988
+ "default": 0,
989
+ "min": 0,
990
+ "max": 18446744073709552000
991
+ }
992
+ ]
993
+ }
994
+ }
995
+ ],
996
+ "outputs": [
997
+ {
998
+ "name": "LATENT",
999
+ "type": "LATENT",
1000
+ "links": [
1001
+ 75
1002
+ ],
1003
+ "shape": 3,
1004
+ "slot_index": 0
1005
+ }
1006
+ ],
1007
+ "properties": {
1008
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1009
+ },
1010
+ "widgets_values": [
1011
+ 702632666099872,
1012
+ "randomize",
1013
+ 7.5,
1014
+ "dpmpp_2m",
1015
+ "karras",
1016
+ 0,
1017
+ 15,
1018
+ 5,
1019
+ 1.3000000000000003,
1020
+ "penultimate_step",
1021
+ "GPU",
1022
+ "enable",
1023
+ 7.5
1024
+ ]
1025
+ },
1026
+ {
1027
+ "id": 19,
1028
+ "type": "KSamplerSDXLAdvanced",
1029
+ "pos": [
1030
+ 1220,
1031
+ 1360
1032
+ ],
1033
+ "size": {
1034
+ "0": 393,
1035
+ "1": 506
1036
+ },
1037
+ "flags": {},
1038
+ "order": 13,
1039
+ "mode": 0,
1040
+ "inputs": [
1041
+ {
1042
+ "name": "model_model",
1043
+ "type": "MODEL",
1044
+ "link": 58
1045
+ },
1046
+ {
1047
+ "name": "model_refiner",
1048
+ "type": "MODEL",
1049
+ "link": 26
1050
+ },
1051
+ {
1052
+ "name": "CONDITIONING_model_pos",
1053
+ "type": "CONDITIONING",
1054
+ "link": 63
1055
+ },
1056
+ {
1057
+ "name": "CONDITIONING_model_neg",
1058
+ "type": "CONDITIONING",
1059
+ "link": 27
1060
+ },
1061
+ {
1062
+ "name": "CONDITIONING_refiner_pos",
1063
+ "type": "CONDITIONING",
1064
+ "link": 28
1065
+ },
1066
+ {
1067
+ "name": "CONDITIONING_refiner_neg",
1068
+ "type": "CONDITIONING",
1069
+ "link": 29
1070
+ },
1071
+ {
1072
+ "name": "latent_image",
1073
+ "type": "LATENT",
1074
+ "link": 30
1075
+ },
1076
+ {
1077
+ "name": "SD15VAE",
1078
+ "type": "VAE",
1079
+ "link": null
1080
+ },
1081
+ {
1082
+ "name": "SDXLVAE",
1083
+ "type": "VAE",
1084
+ "link": null
1085
+ },
1086
+ {
1087
+ "name": "seed",
1088
+ "type": "INT",
1089
+ "link": 31,
1090
+ "widget": {
1091
+ "name": "seed",
1092
+ "config": [
1093
+ "INT",
1094
+ {
1095
+ "default": 0,
1096
+ "min": 0,
1097
+ "max": 18446744073709552000
1098
+ }
1099
+ ]
1100
+ }
1101
+ }
1102
+ ],
1103
+ "outputs": [
1104
+ {
1105
+ "name": "LATENT",
1106
+ "type": "LATENT",
1107
+ "links": [
1108
+ 76
1109
+ ],
1110
+ "shape": 3,
1111
+ "slot_index": 0
1112
+ }
1113
+ ],
1114
+ "properties": {
1115
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1116
+ },
1117
+ "widgets_values": [
1118
+ 702632666099872,
1119
+ "randomize",
1120
+ 7.5,
1121
+ "dpmpp_2m",
1122
+ "karras",
1123
+ 0,
1124
+ 15,
1125
+ 5,
1126
+ 1,
1127
+ "penultimate_step",
1128
+ "GPU",
1129
+ "enable",
1130
+ 7.5
1131
+ ]
1132
+ },
1133
+ {
1134
+ "id": 1,
1135
+ "type": "KSamplerSDXLAdvanced",
1136
+ "pos": [
1137
+ 1220,
1138
+ 240
1139
+ ],
1140
+ "size": {
1141
+ "0": 393,
1142
+ "1": 506
1143
+ },
1144
+ "flags": {},
1145
+ "order": 11,
1146
+ "mode": 0,
1147
+ "inputs": [
1148
+ {
1149
+ "name": "model_model",
1150
+ "type": "MODEL",
1151
+ "link": 12
1152
+ },
1153
+ {
1154
+ "name": "model_refiner",
1155
+ "type": "MODEL",
1156
+ "link": 13
1157
+ },
1158
+ {
1159
+ "name": "CONDITIONING_model_pos",
1160
+ "type": "CONDITIONING",
1161
+ "link": 14
1162
+ },
1163
+ {
1164
+ "name": "CONDITIONING_model_neg",
1165
+ "type": "CONDITIONING",
1166
+ "link": 15
1167
+ },
1168
+ {
1169
+ "name": "CONDITIONING_refiner_pos",
1170
+ "type": "CONDITIONING",
1171
+ "link": 16
1172
+ },
1173
+ {
1174
+ "name": "CONDITIONING_refiner_neg",
1175
+ "type": "CONDITIONING",
1176
+ "link": 17
1177
+ },
1178
+ {
1179
+ "name": "latent_image",
1180
+ "type": "LATENT",
1181
+ "link": 18
1182
+ },
1183
+ {
1184
+ "name": "SD15VAE",
1185
+ "type": "VAE",
1186
+ "link": null
1187
+ },
1188
+ {
1189
+ "name": "SDXLVAE",
1190
+ "type": "VAE",
1191
+ "link": null
1192
+ },
1193
+ {
1194
+ "name": "seed",
1195
+ "type": "INT",
1196
+ "link": 19,
1197
+ "widget": {
1198
+ "name": "seed",
1199
+ "config": [
1200
+ "INT",
1201
+ {
1202
+ "default": 0,
1203
+ "min": 0,
1204
+ "max": 18446744073709552000
1205
+ }
1206
+ ]
1207
+ }
1208
+ }
1209
+ ],
1210
+ "outputs": [
1211
+ {
1212
+ "name": "LATENT",
1213
+ "type": "LATENT",
1214
+ "links": [
1215
+ 2
1216
+ ],
1217
+ "shape": 3,
1218
+ "slot_index": 0
1219
+ }
1220
+ ],
1221
+ "properties": {
1222
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1223
+ },
1224
+ "widgets_values": [
1225
+ 702632666099872,
1226
+ "randomize",
1227
+ 7.5,
1228
+ "dpmpp_2m",
1229
+ "karras",
1230
+ 0,
1231
+ 15,
1232
+ 5,
1233
+ 0,
1234
+ "penultimate_step",
1235
+ "GPU",
1236
+ "enable",
1237
+ 7.5
1238
+ ]
1239
+ },
1240
+ {
1241
+ "id": 18,
1242
+ "type": "KSamplerSDXLAdvanced",
1243
+ "pos": [
1244
+ 1220,
1245
+ 800
1246
+ ],
1247
+ "size": {
1248
+ "0": 393,
1249
+ "1": 506
1250
+ },
1251
+ "flags": {},
1252
+ "order": 12,
1253
+ "mode": 0,
1254
+ "inputs": [
1255
+ {
1256
+ "name": "model_model",
1257
+ "type": "MODEL",
1258
+ "link": 57
1259
+ },
1260
+ {
1261
+ "name": "model_refiner",
1262
+ "type": "MODEL",
1263
+ "link": 20
1264
+ },
1265
+ {
1266
+ "name": "CONDITIONING_model_pos",
1267
+ "type": "CONDITIONING",
1268
+ "link": 62
1269
+ },
1270
+ {
1271
+ "name": "CONDITIONING_model_neg",
1272
+ "type": "CONDITIONING",
1273
+ "link": 21
1274
+ },
1275
+ {
1276
+ "name": "CONDITIONING_refiner_pos",
1277
+ "type": "CONDITIONING",
1278
+ "link": 22
1279
+ },
1280
+ {
1281
+ "name": "CONDITIONING_refiner_neg",
1282
+ "type": "CONDITIONING",
1283
+ "link": 23
1284
+ },
1285
+ {
1286
+ "name": "latent_image",
1287
+ "type": "LATENT",
1288
+ "link": 24
1289
+ },
1290
+ {
1291
+ "name": "SD15VAE",
1292
+ "type": "VAE",
1293
+ "link": null
1294
+ },
1295
+ {
1296
+ "name": "SDXLVAE",
1297
+ "type": "VAE",
1298
+ "link": null
1299
+ },
1300
+ {
1301
+ "name": "seed",
1302
+ "type": "INT",
1303
+ "link": 25,
1304
+ "widget": {
1305
+ "name": "seed",
1306
+ "config": [
1307
+ "INT",
1308
+ {
1309
+ "default": 0,
1310
+ "min": 0,
1311
+ "max": 18446744073709552000
1312
+ }
1313
+ ]
1314
+ }
1315
+ }
1316
+ ],
1317
+ "outputs": [
1318
+ {
1319
+ "name": "LATENT",
1320
+ "type": "LATENT",
1321
+ "links": [
1322
+ 77
1323
+ ],
1324
+ "shape": 3,
1325
+ "slot_index": 0
1326
+ }
1327
+ ],
1328
+ "properties": {
1329
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1330
+ },
1331
+ "widgets_values": [
1332
+ 702632666099872,
1333
+ "randomize",
1334
+ 7.5,
1335
+ "dpmpp_2m",
1336
+ "karras",
1337
+ 0,
1338
+ 15,
1339
+ 5,
1340
+ 0.7000000000000001,
1341
+ "penultimate_step",
1342
+ "GPU",
1343
+ "enable",
1344
+ 7.5
1345
+ ]
1346
+ },
1347
+ {
1348
+ "id": 20,
1349
+ "type": "KSamplerSDXLAdvanced",
1350
+ "pos": [
1351
+ 1220,
1352
+ 3040
1353
+ ],
1354
+ "size": {
1355
+ "0": 393,
1356
+ "1": 506
1357
+ },
1358
+ "flags": {},
1359
+ "order": 14,
1360
+ "mode": 0,
1361
+ "inputs": [
1362
+ {
1363
+ "name": "model_model",
1364
+ "type": "MODEL",
1365
+ "link": 56
1366
+ },
1367
+ {
1368
+ "name": "model_refiner",
1369
+ "type": "MODEL",
1370
+ "link": 32
1371
+ },
1372
+ {
1373
+ "name": "CONDITIONING_model_pos",
1374
+ "type": "CONDITIONING",
1375
+ "link": 61
1376
+ },
1377
+ {
1378
+ "name": "CONDITIONING_model_neg",
1379
+ "type": "CONDITIONING",
1380
+ "link": 33
1381
+ },
1382
+ {
1383
+ "name": "CONDITIONING_refiner_pos",
1384
+ "type": "CONDITIONING",
1385
+ "link": 34
1386
+ },
1387
+ {
1388
+ "name": "CONDITIONING_refiner_neg",
1389
+ "type": "CONDITIONING",
1390
+ "link": 35
1391
+ },
1392
+ {
1393
+ "name": "latent_image",
1394
+ "type": "LATENT",
1395
+ "link": 36
1396
+ },
1397
+ {
1398
+ "name": "SD15VAE",
1399
+ "type": "VAE",
1400
+ "link": null
1401
+ },
1402
+ {
1403
+ "name": "SDXLVAE",
1404
+ "type": "VAE",
1405
+ "link": null
1406
+ },
1407
+ {
1408
+ "name": "seed",
1409
+ "type": "INT",
1410
+ "link": 37,
1411
+ "widget": {
1412
+ "name": "seed",
1413
+ "config": [
1414
+ "INT",
1415
+ {
1416
+ "default": 0,
1417
+ "min": 0,
1418
+ "max": 18446744073709552000
1419
+ }
1420
+ ]
1421
+ }
1422
+ }
1423
+ ],
1424
+ "outputs": [
1425
+ {
1426
+ "name": "LATENT",
1427
+ "type": "LATENT",
1428
+ "links": [
1429
+ 80
1430
+ ],
1431
+ "shape": 3,
1432
+ "slot_index": 0
1433
+ }
1434
+ ],
1435
+ "properties": {
1436
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1437
+ },
1438
+ "widgets_values": [
1439
+ 702632666099872,
1440
+ "randomize",
1441
+ 7.5,
1442
+ "dpmpp_2m",
1443
+ "karras",
1444
+ 0,
1445
+ 15,
1446
+ 5,
1447
+ 2,
1448
+ "penultimate_step",
1449
+ "GPU",
1450
+ "enable",
1451
+ 7.5
1452
+ ]
1453
+ },
1454
+ {
1455
+ "id": 23,
1456
+ "type": "KSamplerSDXLAdvanced",
1457
+ "pos": [
1458
+ 1220,
1459
+ 2480
1460
+ ],
1461
+ "size": {
1462
+ "0": 393,
1463
+ "1": 506
1464
+ },
1465
+ "flags": {},
1466
+ "order": 16,
1467
+ "mode": 0,
1468
+ "inputs": [
1469
+ {
1470
+ "name": "model_model",
1471
+ "type": "MODEL",
1472
+ "link": 60
1473
+ },
1474
+ {
1475
+ "name": "model_refiner",
1476
+ "type": "MODEL",
1477
+ "link": 50
1478
+ },
1479
+ {
1480
+ "name": "CONDITIONING_model_pos",
1481
+ "type": "CONDITIONING",
1482
+ "link": 65
1483
+ },
1484
+ {
1485
+ "name": "CONDITIONING_model_neg",
1486
+ "type": "CONDITIONING",
1487
+ "link": 51
1488
+ },
1489
+ {
1490
+ "name": "CONDITIONING_refiner_pos",
1491
+ "type": "CONDITIONING",
1492
+ "link": 52
1493
+ },
1494
+ {
1495
+ "name": "CONDITIONING_refiner_neg",
1496
+ "type": "CONDITIONING",
1497
+ "link": 53
1498
+ },
1499
+ {
1500
+ "name": "latent_image",
1501
+ "type": "LATENT",
1502
+ "link": 54
1503
+ },
1504
+ {
1505
+ "name": "SD15VAE",
1506
+ "type": "VAE",
1507
+ "link": null
1508
+ },
1509
+ {
1510
+ "name": "SDXLVAE",
1511
+ "type": "VAE",
1512
+ "link": null
1513
+ },
1514
+ {
1515
+ "name": "seed",
1516
+ "type": "INT",
1517
+ "link": 55,
1518
+ "widget": {
1519
+ "name": "seed",
1520
+ "config": [
1521
+ "INT",
1522
+ {
1523
+ "default": 0,
1524
+ "min": 0,
1525
+ "max": 18446744073709552000
1526
+ }
1527
+ ]
1528
+ }
1529
+ }
1530
+ ],
1531
+ "outputs": [
1532
+ {
1533
+ "name": "LATENT",
1534
+ "type": "LATENT",
1535
+ "links": [
1536
+ 74
1537
+ ],
1538
+ "shape": 3,
1539
+ "slot_index": 0
1540
+ }
1541
+ ],
1542
+ "properties": {
1543
+ "Node name for S&R": "KSamplerSDXLAdvanced"
1544
+ },
1545
+ "widgets_values": [
1546
+ 702632666099872,
1547
+ "randomize",
1548
+ 7.5,
1549
+ "dpmpp_2m",
1550
+ "karras",
1551
+ 0,
1552
+ 15,
1553
+ 5,
1554
+ 1.5999999999999996,
1555
+ "penultimate_step",
1556
+ "GPU",
1557
+ "enable",
1558
+ 7.5
1559
+ ]
1560
+ },
1561
+ {
1562
+ "id": 17,
1563
+ "type": "PrimitiveNode",
1564
+ "pos": [
1565
+ 900,
1566
+ 820
1567
+ ],
1568
+ "size": [
1569
+ 259.717481376711,
1570
+ 82
1571
+ ],
1572
+ "flags": {},
1573
+ "order": 6,
1574
+ "mode": 0,
1575
+ "outputs": [
1576
+ {
1577
+ "name": "INT",
1578
+ "type": "INT",
1579
+ "links": [
1580
+ 19,
1581
+ 25,
1582
+ 31,
1583
+ 37,
1584
+ 43,
1585
+ 55
1586
+ ],
1587
+ "slot_index": 0,
1588
+ "widget": {
1589
+ "name": "seed",
1590
+ "config": [
1591
+ "INT",
1592
+ {
1593
+ "default": 0,
1594
+ "min": 0,
1595
+ "max": 18446744073709552000
1596
+ }
1597
+ ]
1598
+ }
1599
+ }
1600
+ ],
1601
+ "title": "SEED",
1602
+ "properties": {},
1603
+ "widgets_values": [
1604
+ 702632666099872,
1605
+ "fixed"
1606
+ ],
1607
+ "color": "#432",
1608
+ "bgcolor": "#653"
1609
+ }
1610
+ ],
1611
+ "links": [
1612
+ [
1613
+ 1,
1614
+ 12,
1615
+ 0,
1616
+ 13,
1617
+ 0,
1618
+ "IMAGE"
1619
+ ],
1620
+ [
1621
+ 2,
1622
+ 1,
1623
+ 0,
1624
+ 12,
1625
+ 0,
1626
+ "LATENT"
1627
+ ],
1628
+ [
1629
+ 3,
1630
+ 3,
1631
+ 0,
1632
+ 12,
1633
+ 1,
1634
+ "VAE"
1635
+ ],
1636
+ [
1637
+ 4,
1638
+ 14,
1639
+ 0,
1640
+ 4,
1641
+ 1,
1642
+ "STRING"
1643
+ ],
1644
+ [
1645
+ 5,
1646
+ 14,
1647
+ 0,
1648
+ 10,
1649
+ 1,
1650
+ "STRING"
1651
+ ],
1652
+ [
1653
+ 6,
1654
+ 15,
1655
+ 0,
1656
+ 11,
1657
+ 1,
1658
+ "STRING"
1659
+ ],
1660
+ [
1661
+ 7,
1662
+ 15,
1663
+ 0,
1664
+ 9,
1665
+ 1,
1666
+ "STRING"
1667
+ ],
1668
+ [
1669
+ 8,
1670
+ 8,
1671
+ 1,
1672
+ 11,
1673
+ 0,
1674
+ "CLIP"
1675
+ ],
1676
+ [
1677
+ 9,
1678
+ 8,
1679
+ 1,
1680
+ 10,
1681
+ 0,
1682
+ "CLIP"
1683
+ ],
1684
+ [
1685
+ 10,
1686
+ 2,
1687
+ 1,
1688
+ 4,
1689
+ 0,
1690
+ "CLIP"
1691
+ ],
1692
+ [
1693
+ 11,
1694
+ 2,
1695
+ 1,
1696
+ 9,
1697
+ 0,
1698
+ "CLIP"
1699
+ ],
1700
+ [
1701
+ 12,
1702
+ 2,
1703
+ 0,
1704
+ 1,
1705
+ 0,
1706
+ "MODEL"
1707
+ ],
1708
+ [
1709
+ 13,
1710
+ 8,
1711
+ 0,
1712
+ 1,
1713
+ 1,
1714
+ "MODEL"
1715
+ ],
1716
+ [
1717
+ 14,
1718
+ 4,
1719
+ 0,
1720
+ 1,
1721
+ 2,
1722
+ "CONDITIONING"
1723
+ ],
1724
+ [
1725
+ 15,
1726
+ 9,
1727
+ 0,
1728
+ 1,
1729
+ 3,
1730
+ "CONDITIONING"
1731
+ ],
1732
+ [
1733
+ 16,
1734
+ 10,
1735
+ 0,
1736
+ 1,
1737
+ 4,
1738
+ "CONDITIONING"
1739
+ ],
1740
+ [
1741
+ 17,
1742
+ 11,
1743
+ 0,
1744
+ 1,
1745
+ 5,
1746
+ "CONDITIONING"
1747
+ ],
1748
+ [
1749
+ 18,
1750
+ 16,
1751
+ 0,
1752
+ 1,
1753
+ 6,
1754
+ "LATENT"
1755
+ ],
1756
+ [
1757
+ 19,
1758
+ 17,
1759
+ 0,
1760
+ 1,
1761
+ 9,
1762
+ "INT"
1763
+ ],
1764
+ [
1765
+ 20,
1766
+ 8,
1767
+ 0,
1768
+ 18,
1769
+ 1,
1770
+ "MODEL"
1771
+ ],
1772
+ [
1773
+ 21,
1774
+ 9,
1775
+ 0,
1776
+ 18,
1777
+ 3,
1778
+ "CONDITIONING"
1779
+ ],
1780
+ [
1781
+ 22,
1782
+ 10,
1783
+ 0,
1784
+ 18,
1785
+ 4,
1786
+ "CONDITIONING"
1787
+ ],
1788
+ [
1789
+ 23,
1790
+ 11,
1791
+ 0,
1792
+ 18,
1793
+ 5,
1794
+ "CONDITIONING"
1795
+ ],
1796
+ [
1797
+ 24,
1798
+ 16,
1799
+ 0,
1800
+ 18,
1801
+ 6,
1802
+ "LATENT"
1803
+ ],
1804
+ [
1805
+ 25,
1806
+ 17,
1807
+ 0,
1808
+ 18,
1809
+ 9,
1810
+ "INT"
1811
+ ],
1812
+ [
1813
+ 26,
1814
+ 8,
1815
+ 0,
1816
+ 19,
1817
+ 1,
1818
+ "MODEL"
1819
+ ],
1820
+ [
1821
+ 27,
1822
+ 9,
1823
+ 0,
1824
+ 19,
1825
+ 3,
1826
+ "CONDITIONING"
1827
+ ],
1828
+ [
1829
+ 28,
1830
+ 10,
1831
+ 0,
1832
+ 19,
1833
+ 4,
1834
+ "CONDITIONING"
1835
+ ],
1836
+ [
1837
+ 29,
1838
+ 11,
1839
+ 0,
1840
+ 19,
1841
+ 5,
1842
+ "CONDITIONING"
1843
+ ],
1844
+ [
1845
+ 30,
1846
+ 16,
1847
+ 0,
1848
+ 19,
1849
+ 6,
1850
+ "LATENT"
1851
+ ],
1852
+ [
1853
+ 31,
1854
+ 17,
1855
+ 0,
1856
+ 19,
1857
+ 9,
1858
+ "INT"
1859
+ ],
1860
+ [
1861
+ 32,
1862
+ 8,
1863
+ 0,
1864
+ 20,
1865
+ 1,
1866
+ "MODEL"
1867
+ ],
1868
+ [
1869
+ 33,
1870
+ 9,
1871
+ 0,
1872
+ 20,
1873
+ 3,
1874
+ "CONDITIONING"
1875
+ ],
1876
+ [
1877
+ 34,
1878
+ 10,
1879
+ 0,
1880
+ 20,
1881
+ 4,
1882
+ "CONDITIONING"
1883
+ ],
1884
+ [
1885
+ 35,
1886
+ 11,
1887
+ 0,
1888
+ 20,
1889
+ 5,
1890
+ "CONDITIONING"
1891
+ ],
1892
+ [
1893
+ 36,
1894
+ 16,
1895
+ 0,
1896
+ 20,
1897
+ 6,
1898
+ "LATENT"
1899
+ ],
1900
+ [
1901
+ 37,
1902
+ 17,
1903
+ 0,
1904
+ 20,
1905
+ 9,
1906
+ "INT"
1907
+ ],
1908
+ [
1909
+ 38,
1910
+ 8,
1911
+ 0,
1912
+ 21,
1913
+ 1,
1914
+ "MODEL"
1915
+ ],
1916
+ [
1917
+ 39,
1918
+ 9,
1919
+ 0,
1920
+ 21,
1921
+ 3,
1922
+ "CONDITIONING"
1923
+ ],
1924
+ [
1925
+ 40,
1926
+ 10,
1927
+ 0,
1928
+ 21,
1929
+ 4,
1930
+ "CONDITIONING"
1931
+ ],
1932
+ [
1933
+ 41,
1934
+ 11,
1935
+ 0,
1936
+ 21,
1937
+ 5,
1938
+ "CONDITIONING"
1939
+ ],
1940
+ [
1941
+ 42,
1942
+ 16,
1943
+ 0,
1944
+ 21,
1945
+ 6,
1946
+ "LATENT"
1947
+ ],
1948
+ [
1949
+ 43,
1950
+ 17,
1951
+ 0,
1952
+ 21,
1953
+ 9,
1954
+ "INT"
1955
+ ],
1956
+ [
1957
+ 50,
1958
+ 8,
1959
+ 0,
1960
+ 23,
1961
+ 1,
1962
+ "MODEL"
1963
+ ],
1964
+ [
1965
+ 51,
1966
+ 9,
1967
+ 0,
1968
+ 23,
1969
+ 3,
1970
+ "CONDITIONING"
1971
+ ],
1972
+ [
1973
+ 52,
1974
+ 10,
1975
+ 0,
1976
+ 23,
1977
+ 4,
1978
+ "CONDITIONING"
1979
+ ],
1980
+ [
1981
+ 53,
1982
+ 11,
1983
+ 0,
1984
+ 23,
1985
+ 5,
1986
+ "CONDITIONING"
1987
+ ],
1988
+ [
1989
+ 54,
1990
+ 16,
1991
+ 0,
1992
+ 23,
1993
+ 6,
1994
+ "LATENT"
1995
+ ],
1996
+ [
1997
+ 55,
1998
+ 17,
1999
+ 0,
2000
+ 23,
2001
+ 9,
2002
+ "INT"
2003
+ ],
2004
+ [
2005
+ 56,
2006
+ 2,
2007
+ 0,
2008
+ 20,
2009
+ 0,
2010
+ "MODEL"
2011
+ ],
2012
+ [
2013
+ 57,
2014
+ 2,
2015
+ 0,
2016
+ 18,
2017
+ 0,
2018
+ "MODEL"
2019
+ ],
2020
+ [
2021
+ 58,
2022
+ 2,
2023
+ 0,
2024
+ 19,
2025
+ 0,
2026
+ "MODEL"
2027
+ ],
2028
+ [
2029
+ 59,
2030
+ 2,
2031
+ 0,
2032
+ 21,
2033
+ 0,
2034
+ "MODEL"
2035
+ ],
2036
+ [
2037
+ 60,
2038
+ 2,
2039
+ 0,
2040
+ 23,
2041
+ 0,
2042
+ "MODEL"
2043
+ ],
2044
+ [
2045
+ 61,
2046
+ 4,
2047
+ 0,
2048
+ 20,
2049
+ 2,
2050
+ "CONDITIONING"
2051
+ ],
2052
+ [
2053
+ 62,
2054
+ 4,
2055
+ 0,
2056
+ 18,
2057
+ 2,
2058
+ "CONDITIONING"
2059
+ ],
2060
+ [
2061
+ 63,
2062
+ 4,
2063
+ 0,
2064
+ 19,
2065
+ 2,
2066
+ "CONDITIONING"
2067
+ ],
2068
+ [
2069
+ 64,
2070
+ 4,
2071
+ 0,
2072
+ 21,
2073
+ 2,
2074
+ "CONDITIONING"
2075
+ ],
2076
+ [
2077
+ 65,
2078
+ 4,
2079
+ 0,
2080
+ 23,
2081
+ 2,
2082
+ "CONDITIONING"
2083
+ ],
2084
+ [
2085
+ 66,
2086
+ 3,
2087
+ 0,
2088
+ 24,
2089
+ 1,
2090
+ "VAE"
2091
+ ],
2092
+ [
2093
+ 67,
2094
+ 24,
2095
+ 0,
2096
+ 25,
2097
+ 0,
2098
+ "IMAGE"
2099
+ ],
2100
+ [
2101
+ 68,
2102
+ 3,
2103
+ 0,
2104
+ 26,
2105
+ 1,
2106
+ "VAE"
2107
+ ],
2108
+ [
2109
+ 69,
2110
+ 26,
2111
+ 0,
2112
+ 27,
2113
+ 0,
2114
+ "IMAGE"
2115
+ ],
2116
+ [
2117
+ 70,
2118
+ 3,
2119
+ 0,
2120
+ 28,
2121
+ 1,
2122
+ "VAE"
2123
+ ],
2124
+ [
2125
+ 71,
2126
+ 28,
2127
+ 0,
2128
+ 29,
2129
+ 0,
2130
+ "IMAGE"
2131
+ ],
2132
+ [
2133
+ 72,
2134
+ 3,
2135
+ 0,
2136
+ 30,
2137
+ 1,
2138
+ "VAE"
2139
+ ],
2140
+ [
2141
+ 73,
2142
+ 30,
2143
+ 0,
2144
+ 31,
2145
+ 0,
2146
+ "IMAGE"
2147
+ ],
2148
+ [
2149
+ 74,
2150
+ 23,
2151
+ 0,
2152
+ 30,
2153
+ 0,
2154
+ "LATENT"
2155
+ ],
2156
+ [
2157
+ 75,
2158
+ 21,
2159
+ 0,
2160
+ 28,
2161
+ 0,
2162
+ "LATENT"
2163
+ ],
2164
+ [
2165
+ 76,
2166
+ 19,
2167
+ 0,
2168
+ 26,
2169
+ 0,
2170
+ "LATENT"
2171
+ ],
2172
+ [
2173
+ 77,
2174
+ 18,
2175
+ 0,
2176
+ 24,
2177
+ 0,
2178
+ "LATENT"
2179
+ ],
2180
+ [
2181
+ 78,
2182
+ 3,
2183
+ 0,
2184
+ 32,
2185
+ 1,
2186
+ "VAE"
2187
+ ],
2188
+ [
2189
+ 79,
2190
+ 32,
2191
+ 0,
2192
+ 33,
2193
+ 0,
2194
+ "IMAGE"
2195
+ ],
2196
+ [
2197
+ 80,
2198
+ 20,
2199
+ 0,
2200
+ 32,
2201
+ 0,
2202
+ "LATENT"
2203
+ ]
2204
+ ],
2205
+ "groups": [],
2206
+ "config": {},
2207
+ "extra": {},
2208
+ "version": 0.4
2209
+ }
ksampler_sdxl.py ADDED
@@ -0,0 +1,290 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import comfy.model_management
3
+ import comfy.sample
4
+ import latent_preview
5
+
6
+ def prepare_mask(mask, shape):
7
+ mask = torch.nn.functional.interpolate(mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])), size=(shape[2], shape[3]), mode="bilinear")
8
+ mask = mask.expand((-1,shape[1],-1,-1))
9
+ if mask.shape[0] < shape[0]:
10
+ mask = mask.repeat((shape[0] -1) // mask.shape[0] + 1, 1, 1, 1)[:shape[0]]
11
+ return mask
12
+ def remap_range(value, minIn, MaxIn, minOut, maxOut):
13
+ if value > MaxIn: value = MaxIn;
14
+ if value < minIn: value = minIn;
15
+ finalValue = ((value - minIn) / (MaxIn - minIn)) * (maxOut - minOut) + minOut;
16
+ return finalValue;
17
+
18
+ class KSamplerSDXLAdvanced:
19
+ @classmethod
20
+ def INPUT_TYPES(s):
21
+ ui_widgets = {"required":
22
+ {
23
+ "model_model": ("MODEL",),
24
+ "model_refiner": ("MODEL",),
25
+ "CONDITIONING_model_pos": ("CONDITIONING", ),
26
+ "CONDITIONING_model_neg": ("CONDITIONING", ),
27
+ "CONDITIONING_refiner_pos": ("CONDITIONING", ),
28
+ "CONDITIONING_refiner_neg": ("CONDITIONING", ),
29
+ "latent_image": ("LATENT", ),
30
+
31
+ "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
32
+ "cfg_scale": ("FLOAT", {"default": 7.5, "min": 0.0, "max": 100.0}),
33
+ # "cfg_rescale_multiplier": ("FLOAT", {"default": 1, "min": -1.0, "max": 2.0, "step": 0.1}),
34
+
35
+ "sampler": (comfy.samplers.KSampler.SAMPLERS, {"default": "dpmpp_2m"}),
36
+ "scheduler": (comfy.samplers.KSampler.SCHEDULERS, {"default": "karras"}),
37
+
38
+ "start_at_step": ("INT", {"default": 0, "min": 0, "max": 10000}),
39
+ "base_steps": ("INT", {"default": 12, "min": 0, "max": 10000}),
40
+ "refiner_steps": ("INT", {"default": 4, "min": 0, "max": 10000}),
41
+ "detail_level": ("FLOAT", {"default": 1, "min": 0.0, "max": 2.0, "step": 0.1}),
42
+ "detail_from": (["penultimate_step","base_sample"], {"default": "penultimate_step"}),
43
+ "noise_source": (["CPU","GPU"], {"default": "CPU"}),
44
+ "auto_rescale_tonemap": (["enable","disable"], {"default": "enable"}),
45
+ "rescale_tonemap_to": ("FLOAT", {"default": 7.5, "min": 0, "max": 30.0, "step": 0.5}),
46
+ # "refiner_extra_noise": (["enable","disable"], {"default": "disable"}),
47
+ # "base_noise": ("FLOAT", {"default": 1, "min": 0.0, "max": 10.0, "step": 0.01}),
48
+ # "noise_shift_end_refiner": ("INT", {"default": -1, "min": -10000, "max": 0})
49
+ },
50
+ "optional":
51
+ {
52
+ "SD15VAE": ("VAE", ),
53
+ "SDXLVAE": ("VAE", ),
54
+ }
55
+ }
56
+ return ui_widgets
57
+
58
+ RETURN_TYPES = ("LATENT",)
59
+ FUNCTION = "sample_sdxl"
60
+ CATEGORY = "sampling"
61
+
62
+
63
+ def patch_tonemap(self, model, multiplier):
64
+ def sampler_tonemap_reinhard(args):
65
+ cond = args["cond"]
66
+ uncond = args["uncond"]
67
+ cond_scale = args["cond_scale"]
68
+ noise_pred = (cond - uncond)
69
+ noise_pred_vector_magnitude = (torch.linalg.vector_norm(noise_pred, dim=(1)) + 0.0000000001)[:,None]
70
+ noise_pred /= noise_pred_vector_magnitude
71
+
72
+ mean = torch.mean(noise_pred_vector_magnitude, dim=(1,2,3), keepdim=True)
73
+ std = torch.std(noise_pred_vector_magnitude, dim=(1,2,3), keepdim=True)
74
+ top = (std * 3 + mean) * multiplier
75
+
76
+ #reinhard
77
+ noise_pred_vector_magnitude *= (1.0 / top)
78
+ new_magnitude = noise_pred_vector_magnitude / (noise_pred_vector_magnitude + 1.0)
79
+ new_magnitude *= top
80
+
81
+ return uncond + noise_pred * new_magnitude * cond_scale
82
+
83
+ m = model.clone()
84
+ m.set_model_sampler_cfg_function(sampler_tonemap_reinhard)
85
+ return m
86
+
87
+ # def patch_model(self, model, multiplier):
88
+ # def rescale_cfg(args):
89
+ # cond = args["cond"]
90
+ # uncond = args["uncond"]
91
+ # cond_scale = args["cond_scale"]
92
+
93
+ # x_cfg = uncond + cond_scale * (cond - uncond)
94
+ # ro_pos = torch.std(cond, dim=(1,2,3), keepdim=True)
95
+ # ro_cfg = torch.std(x_cfg, dim=(1,2,3), keepdim=True)
96
+
97
+ # x_rescaled = x_cfg * (ro_pos / ro_cfg)
98
+ # x_final = multiplier * x_rescaled + (1.0 - multiplier) * x_cfg
99
+
100
+ # return x_final
101
+
102
+ # m = model.clone()
103
+ # m.set_model_sampler_cfg_function(rescale_cfg)
104
+ # return m
105
+
106
+ def common_ksampler(self, model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent, denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False):
107
+ device = comfy.model_management.get_torch_device()
108
+ latent_image = latent["samples"]
109
+
110
+ if disable_noise:
111
+ noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu")
112
+ else:
113
+ batch_inds = latent["batch_index"] if "batch_index" in latent else None
114
+ noise = comfy.sample.prepare_noise(latent_image, seed, batch_inds)
115
+
116
+ noise_mask = None
117
+ if "noise_mask" in latent:
118
+ noise_mask = latent["noise_mask"]
119
+
120
+ preview_format = "JPEG"
121
+ if preview_format not in ["JPEG", "PNG"]:
122
+ preview_format = "JPEG"
123
+
124
+ previewer = latent_preview.get_previewer(device, model.model.latent_format)
125
+
126
+ pbar = comfy.utils.ProgressBar(steps)
127
+ def callback(step, x0, x, total_steps):
128
+ preview_bytes = None
129
+ if previewer:
130
+ preview_bytes = previewer.decode_latent_to_preview_image(preview_format, x0)
131
+ pbar.update_absolute(step + 1, total_steps, preview_bytes)
132
+
133
+ samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,
134
+ denoise=denoise, disable_noise=disable_noise, start_step=start_step, last_step=last_step,
135
+ force_full_denoise=force_full_denoise, noise_mask=noise_mask, callback=callback, seed=seed)
136
+ out = latent.copy()
137
+ out["samples"] = samples
138
+ return out
139
+
140
+ def sample(self, model, add_noise, noise_seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, start_at_step, end_at_step, return_with_leftover_noise, denoise=1.0):
141
+ force_full_denoise = True
142
+ if return_with_leftover_noise == "enable":
143
+ force_full_denoise = False
144
+ disable_noise = False
145
+ if add_noise == "disable":
146
+ disable_noise = True
147
+ return self.common_ksampler(model, noise_seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise, disable_noise=disable_noise, start_step=start_at_step, last_step=end_at_step, force_full_denoise=force_full_denoise)
148
+
149
+ def calc_sigma(self, model, sampler_name, scheduler, steps, start_at_step, end_at_step):
150
+ device = comfy.model_management.get_torch_device()
151
+ end_at_step = min(steps, end_at_step)
152
+ start_at_step = min(start_at_step, end_at_step)
153
+ real_model = None
154
+ comfy.model_management.load_model_gpu(model)
155
+ real_model = model.model
156
+ sampler = comfy.samplers.KSampler(real_model, steps=steps, device=device, sampler=sampler_name, scheduler=scheduler, denoise=1.0, model_options=model.model_options)
157
+ sigmas = sampler.sigmas
158
+ sigma = sigmas[start_at_step] - sigmas[end_at_step]
159
+ sigma /= model.model.latent_format.scale_factor
160
+ sigma_output = sigma.cpu().numpy()
161
+ print("Calculated sigma:",sigma_output)
162
+ return sigma_output
163
+
164
+ def create_noisy_latents(self, source, seed, width, height, batch_size):
165
+ torch.manual_seed(seed)
166
+ if source == "CPU":
167
+ device = "cpu"
168
+ else:
169
+ device = comfy.model_management.get_torch_device()
170
+ noise = torch.randn((batch_size, 4, height // 8, width // 8), dtype=torch.float32, device=device).cpu()
171
+ return {"samples":noise}
172
+
173
+ def inject_noise(self, latents, strength, noise=None, mask=None):
174
+ s = latents.copy()
175
+ if noise is None:
176
+ return s
177
+ if latents["samples"].shape != noise["samples"].shape:
178
+ print("warning, shapes in InjectNoise not the same, ignoring")
179
+ return s
180
+ noised = s["samples"].clone() + noise["samples"].clone() * strength
181
+ if mask is not None:
182
+ mask = prepare_mask(mask, noised.shape)
183
+ noised = mask * noised + (1-mask) * latents["samples"]
184
+ s["samples"] = noised
185
+ return s
186
+
187
+ # from https://discuss.pytorch.org/t/help-regarding-slerp-function-for-generative-model-sampling/32475
188
+ def slerp(self, val, low, high):
189
+ dims = low.shape
190
+
191
+ #flatten to batches
192
+ low = low.reshape(dims[0], -1)
193
+ high = high.reshape(dims[0], -1)
194
+
195
+ low_norm = low/torch.norm(low, dim=1, keepdim=True)
196
+ high_norm = high/torch.norm(high, dim=1, keepdim=True)
197
+
198
+ # in case we divide by zero
199
+ low_norm[low_norm != low_norm] = 0.0
200
+ high_norm[high_norm != high_norm] = 0.0
201
+
202
+ omega = torch.acos((low_norm*high_norm).sum(1))
203
+ so = torch.sin(omega)
204
+ res = (torch.sin((1.0-val)*omega)/so).unsqueeze(1)*low + (torch.sin(val*omega)/so).unsqueeze(1) * high
205
+ return res.reshape(dims)
206
+
207
+ def slerp_latents(self, latents1, factor, latents2=None, mask=None):
208
+ s = latents1.copy()
209
+ if latents2 is None:
210
+ return (s,)
211
+ if latents1["samples"].shape != latents2["samples"].shape:
212
+ print("warning, shapes in LatentSlerp not the same, ignoring")
213
+ return (s,)
214
+ slerped = self.slerp(factor, latents1["samples"].clone(), latents2["samples"].clone())
215
+ if mask is not None:
216
+ mask = prepare_mask(mask, slerped.shape)
217
+ slerped = mask * slerped + (1-mask) * latents1["samples"]
218
+ s["samples"] = slerped
219
+ return s
220
+
221
+ def compute_and_generate_noise(self,samples,seed,width,height,batch_size,model,sampler,scheduler,total_steps,start_at,end_at,source):
222
+ noisy_latent = self.create_noisy_latents(source,seed,width,height,batch_size)
223
+ sigma_balls = self.calc_sigma(model,sampler,scheduler,total_steps,start_at,end_at)
224
+ samples_output = self.inject_noise(samples,sigma_balls,noisy_latent)
225
+ return samples_output
226
+
227
+ def sample_sdxl(self, model_model, model_refiner, CONDITIONING_model_pos, CONDITIONING_model_neg, CONDITIONING_refiner_pos, CONDITIONING_refiner_neg, latent_image, seed, cfg_scale, sampler, scheduler, start_at_step, base_steps, refiner_steps,detail_level,detail_from,noise_source,auto_rescale_tonemap,rescale_tonemap_to,SD15VAE=None, SDXLVAE=None):
228
+
229
+ # if cfg_rescale_multiplier != 1:
230
+ # model_model = self.patch_model(model_model,cfg_rescale_multiplier)
231
+ # model_refiner = self.patch_model(model_refiner,cfg_rescale_multiplier)
232
+ if auto_rescale_tonemap == "enable" and cfg_scale!=rescale_tonemap_to:
233
+ scale_model = 1/cfg_scale*rescale_tonemap_to
234
+ model_model = self.patch_tonemap(model_model,scale_model)
235
+ if sampler == "uni_pc" or sampler == "uni_pc_bh2":
236
+ scale_model = 1/cfg_scale*7.5
237
+ model_refiner = self.patch_tonemap(model_refiner,scale_model)
238
+
239
+ for lat in latent_image['samples']:
240
+ d, y, x = lat.size()
241
+ break
242
+
243
+ batch_size = len(latent_image['samples'])
244
+ width = x*8
245
+ height = y*8
246
+
247
+ base_start_at = start_at_step
248
+ base_end_at = base_steps
249
+ base_total_steps = base_steps + refiner_steps
250
+ refiner_start_at = base_steps
251
+ refiner_end_at = base_steps + refiner_steps
252
+ refiner_total_steps = base_steps + refiner_steps
253
+
254
+ if sampler == "uni_pc" or sampler == "uni_pc_bh2":
255
+ noisy_base = self.compute_and_generate_noise(latent_image,seed,width,height,batch_size,model_model,sampler,scheduler,base_end_at-1,base_start_at,base_end_at-1,noise_source)
256
+ else:
257
+ noisy_base = self.compute_and_generate_noise(latent_image,seed,width,height,batch_size,model_model,sampler,scheduler,base_end_at,base_start_at,base_end_at,noise_source)
258
+ sample_model = self.sample(model_model,"disable",seed,base_total_steps,cfg_scale,sampler,scheduler,CONDITIONING_model_pos,CONDITIONING_model_neg,noisy_base,base_start_at,base_end_at,"disable")
259
+
260
+ if SD15VAE is not None and SDXLVAE is not None:
261
+ sample_model["samples"] = SD15VAE.decode(sample_model["samples"])
262
+ sample_model["samples"] = SDXLVAE.encode(sample_model["samples"])
263
+
264
+ if sampler == "uni_pc" or sampler == "uni_pc_bh2":
265
+ sampler = "dpmpp_2m"
266
+ scheduler = "karras"
267
+
268
+ if detail_level < 0.9999 or detail_level > 1:
269
+ if detail_from == "penultimate_step":
270
+ if detail_level > 1:
271
+ noisy_latent_1 = self.compute_and_generate_noise(sample_model,seed,width,height,batch_size,model_refiner,sampler,scheduler,refiner_total_steps+1,refiner_start_at,refiner_end_at+1,noise_source)
272
+ else:
273
+ noisy_latent_1 = self.compute_and_generate_noise(sample_model,seed,width,height,batch_size,model_refiner,sampler,scheduler,refiner_total_steps-1,refiner_start_at,refiner_end_at-1,noise_source)
274
+ else:
275
+ noisy_latent_1 = sample_model
276
+ noisy_latent_2 = self.compute_and_generate_noise(sample_model,seed,width,height,batch_size,model_refiner,sampler,scheduler,refiner_total_steps, refiner_start_at,refiner_end_at,noise_source)
277
+ if detail_level > 1:
278
+ noisy_latent_3 = self.slerp_latents(noisy_latent_1,remap_range(detail_level,1,2,1,0),noisy_latent_2)
279
+ else:
280
+ noisy_latent_3 = self.slerp_latents(noisy_latent_1,detail_level,noisy_latent_2)
281
+ else:
282
+ noisy_latent_3 = self.compute_and_generate_noise(sample_model,seed,width,height,batch_size,model_refiner,sampler,scheduler,refiner_total_steps, refiner_start_at,refiner_end_at,noise_source)
283
+
284
+ sample_refiner = self.sample(model_refiner,"disable",seed,refiner_total_steps,cfg_scale,sampler,scheduler,CONDITIONING_refiner_pos,CONDITIONING_refiner_neg,noisy_latent_3,refiner_start_at,refiner_end_at,"disable")
285
+
286
+ return (sample_refiner,)
287
+
288
+ NODE_CLASS_MAPPINGS = {
289
+ "KSamplerSDXLAdvanced": KSamplerSDXLAdvanced
290
+ }
simple_workflow.json ADDED
@@ -0,0 +1,844 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "last_node_id": 34,
3
+ "last_link_id": 80,
4
+ "nodes": [
5
+ {
6
+ "id": 12,
7
+ "type": "VAEDecode",
8
+ "pos": [
9
+ 2060,
10
+ 240
11
+ ],
12
+ "size": {
13
+ "0": 180,
14
+ "1": 60
15
+ },
16
+ "flags": {},
17
+ "order": 12,
18
+ "mode": 0,
19
+ "inputs": [
20
+ {
21
+ "name": "samples",
22
+ "type": "LATENT",
23
+ "link": 2
24
+ },
25
+ {
26
+ "name": "vae",
27
+ "type": "VAE",
28
+ "link": 3
29
+ }
30
+ ],
31
+ "outputs": [
32
+ {
33
+ "name": "IMAGE",
34
+ "type": "IMAGE",
35
+ "links": [
36
+ 1
37
+ ],
38
+ "shape": 3,
39
+ "slot_index": 0
40
+ }
41
+ ],
42
+ "properties": {
43
+ "Node name for S&R": "VAEDecode"
44
+ }
45
+ },
46
+ {
47
+ "id": 3,
48
+ "type": "VAELoader",
49
+ "pos": [
50
+ 1640,
51
+ 360
52
+ ],
53
+ "size": {
54
+ "0": 360,
55
+ "1": 60
56
+ },
57
+ "flags": {},
58
+ "order": 0,
59
+ "mode": 0,
60
+ "outputs": [
61
+ {
62
+ "name": "VAE",
63
+ "type": "VAE",
64
+ "links": [
65
+ 3
66
+ ],
67
+ "shape": 3,
68
+ "slot_index": 0
69
+ }
70
+ ],
71
+ "properties": {
72
+ "Node name for S&R": "VAELoader"
73
+ },
74
+ "widgets_values": [
75
+ "sdxl_vae_fixed.safetensors"
76
+ ]
77
+ },
78
+ {
79
+ "id": 8,
80
+ "type": "CheckpointLoaderSimple",
81
+ "pos": [
82
+ 80,
83
+ 400
84
+ ],
85
+ "size": {
86
+ "0": 360,
87
+ "1": 100
88
+ },
89
+ "flags": {},
90
+ "order": 1,
91
+ "mode": 0,
92
+ "outputs": [
93
+ {
94
+ "name": "MODEL",
95
+ "type": "MODEL",
96
+ "links": [
97
+ 13
98
+ ],
99
+ "shape": 3,
100
+ "slot_index": 0
101
+ },
102
+ {
103
+ "name": "CLIP",
104
+ "type": "CLIP",
105
+ "links": [
106
+ 8,
107
+ 9
108
+ ],
109
+ "shape": 3,
110
+ "slot_index": 1
111
+ },
112
+ {
113
+ "name": "VAE",
114
+ "type": "VAE",
115
+ "links": null,
116
+ "shape": 3
117
+ }
118
+ ],
119
+ "properties": {
120
+ "Node name for S&R": "CheckpointLoaderSimple"
121
+ },
122
+ "widgets_values": [
123
+ "SDXL\\sd_xl_refiner_1.0.safetensors"
124
+ ]
125
+ },
126
+ {
127
+ "id": 14,
128
+ "type": "PrimitiveNode",
129
+ "pos": [
130
+ 460,
131
+ 260
132
+ ],
133
+ "size": {
134
+ "0": 340,
135
+ "1": 220
136
+ },
137
+ "flags": {},
138
+ "order": 2,
139
+ "mode": 0,
140
+ "outputs": [
141
+ {
142
+ "name": "STRING",
143
+ "type": "STRING",
144
+ "links": [
145
+ 4,
146
+ 5
147
+ ],
148
+ "slot_index": 0,
149
+ "widget": {
150
+ "name": "text",
151
+ "config": [
152
+ "STRING",
153
+ {
154
+ "multiline": true
155
+ }
156
+ ]
157
+ }
158
+ }
159
+ ],
160
+ "title": "Positive prompt",
161
+ "properties": {},
162
+ "widgets_values": [
163
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
164
+ ],
165
+ "color": "#232",
166
+ "bgcolor": "#353"
167
+ },
168
+ {
169
+ "id": 15,
170
+ "type": "PrimitiveNode",
171
+ "pos": [
172
+ 460,
173
+ 520
174
+ ],
175
+ "size": {
176
+ "0": 340,
177
+ "1": 220
178
+ },
179
+ "flags": {},
180
+ "order": 3,
181
+ "mode": 0,
182
+ "outputs": [
183
+ {
184
+ "name": "STRING",
185
+ "type": "STRING",
186
+ "links": [
187
+ 6,
188
+ 7
189
+ ],
190
+ "slot_index": 0,
191
+ "widget": {
192
+ "name": "text",
193
+ "config": [
194
+ "STRING",
195
+ {
196
+ "multiline": true
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ ],
202
+ "title": "Negative prompt",
203
+ "properties": {},
204
+ "widgets_values": [
205
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
206
+ ],
207
+ "color": "#322",
208
+ "bgcolor": "#533"
209
+ },
210
+ {
211
+ "id": 16,
212
+ "type": "EmptyLatentImage",
213
+ "pos": [
214
+ 900,
215
+ 660
216
+ ],
217
+ "size": {
218
+ "0": 220,
219
+ "1": 120
220
+ },
221
+ "flags": {},
222
+ "order": 4,
223
+ "mode": 0,
224
+ "outputs": [
225
+ {
226
+ "name": "LATENT",
227
+ "type": "LATENT",
228
+ "links": [
229
+ 18
230
+ ],
231
+ "shape": 3,
232
+ "slot_index": 0
233
+ }
234
+ ],
235
+ "properties": {
236
+ "Node name for S&R": "EmptyLatentImage"
237
+ },
238
+ "widgets_values": [
239
+ 1024,
240
+ 1024,
241
+ 1
242
+ ],
243
+ "color": "#323",
244
+ "bgcolor": "#535"
245
+ },
246
+ {
247
+ "id": 2,
248
+ "type": "CheckpointLoaderSimple",
249
+ "pos": [
250
+ 80,
251
+ 260
252
+ ],
253
+ "size": {
254
+ "0": 360,
255
+ "1": 100
256
+ },
257
+ "flags": {},
258
+ "order": 5,
259
+ "mode": 0,
260
+ "outputs": [
261
+ {
262
+ "name": "MODEL",
263
+ "type": "MODEL",
264
+ "links": [
265
+ 12
266
+ ],
267
+ "shape": 3,
268
+ "slot_index": 0
269
+ },
270
+ {
271
+ "name": "CLIP",
272
+ "type": "CLIP",
273
+ "links": [
274
+ 10,
275
+ 11
276
+ ],
277
+ "shape": 3,
278
+ "slot_index": 1
279
+ },
280
+ {
281
+ "name": "VAE",
282
+ "type": "VAE",
283
+ "links": null,
284
+ "shape": 3
285
+ }
286
+ ],
287
+ "properties": {
288
+ "Node name for S&R": "CheckpointLoaderSimple"
289
+ },
290
+ "widgets_values": [
291
+ "SDXL\\sd_xl_base_1.0.safetensors"
292
+ ]
293
+ },
294
+ {
295
+ "id": 9,
296
+ "type": "CLIPTextEncode",
297
+ "pos": [
298
+ 900,
299
+ 360
300
+ ],
301
+ "size": {
302
+ "0": 220,
303
+ "1": 60
304
+ },
305
+ "flags": {},
306
+ "order": 10,
307
+ "mode": 0,
308
+ "inputs": [
309
+ {
310
+ "name": "clip",
311
+ "type": "CLIP",
312
+ "link": 11
313
+ },
314
+ {
315
+ "name": "text",
316
+ "type": "STRING",
317
+ "link": 7,
318
+ "widget": {
319
+ "name": "text",
320
+ "config": [
321
+ "STRING",
322
+ {
323
+ "multiline": true
324
+ }
325
+ ]
326
+ }
327
+ }
328
+ ],
329
+ "outputs": [
330
+ {
331
+ "name": "CONDITIONING",
332
+ "type": "CONDITIONING",
333
+ "links": [
334
+ 15
335
+ ],
336
+ "shape": 3,
337
+ "slot_index": 0
338
+ }
339
+ ],
340
+ "properties": {
341
+ "Node name for S&R": "CLIPTextEncode"
342
+ },
343
+ "widgets_values": [
344
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
345
+ ]
346
+ },
347
+ {
348
+ "id": 10,
349
+ "type": "CLIPTextEncode",
350
+ "pos": [
351
+ 900,
352
+ 460
353
+ ],
354
+ "size": {
355
+ "0": 220,
356
+ "1": 60
357
+ },
358
+ "flags": {},
359
+ "order": 7,
360
+ "mode": 0,
361
+ "inputs": [
362
+ {
363
+ "name": "clip",
364
+ "type": "CLIP",
365
+ "link": 9
366
+ },
367
+ {
368
+ "name": "text",
369
+ "type": "STRING",
370
+ "link": 5,
371
+ "widget": {
372
+ "name": "text",
373
+ "config": [
374
+ "STRING",
375
+ {
376
+ "multiline": true
377
+ }
378
+ ]
379
+ }
380
+ }
381
+ ],
382
+ "outputs": [
383
+ {
384
+ "name": "CONDITIONING",
385
+ "type": "CONDITIONING",
386
+ "links": [
387
+ 16
388
+ ],
389
+ "shape": 3,
390
+ "slot_index": 0
391
+ }
392
+ ],
393
+ "properties": {
394
+ "Node name for S&R": "CLIPTextEncode"
395
+ },
396
+ "widgets_values": [
397
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
398
+ ]
399
+ },
400
+ {
401
+ "id": 11,
402
+ "type": "CLIPTextEncode",
403
+ "pos": [
404
+ 900,
405
+ 560
406
+ ],
407
+ "size": {
408
+ "0": 220,
409
+ "1": 60
410
+ },
411
+ "flags": {},
412
+ "order": 8,
413
+ "mode": 0,
414
+ "inputs": [
415
+ {
416
+ "name": "clip",
417
+ "type": "CLIP",
418
+ "link": 8
419
+ },
420
+ {
421
+ "name": "text",
422
+ "type": "STRING",
423
+ "link": 6,
424
+ "widget": {
425
+ "name": "text",
426
+ "config": [
427
+ "STRING",
428
+ {
429
+ "multiline": true
430
+ }
431
+ ]
432
+ }
433
+ }
434
+ ],
435
+ "outputs": [
436
+ {
437
+ "name": "CONDITIONING",
438
+ "type": "CONDITIONING",
439
+ "links": [
440
+ 17
441
+ ],
442
+ "shape": 3,
443
+ "slot_index": 0
444
+ }
445
+ ],
446
+ "properties": {
447
+ "Node name for S&R": "CLIPTextEncode"
448
+ },
449
+ "widgets_values": [
450
+ "3d render, grayscale, too dark, doll, not realistic, bad quality, low quality, drawing, sketch, simple, backlit, backlight, underexposure, underexposed, repetitive, tiled, cloned, child, copied, cartoon, (low quality:1.3), blurry, ugly, tiling, poorly drawn"
451
+ ]
452
+ },
453
+ {
454
+ "id": 4,
455
+ "type": "CLIPTextEncode",
456
+ "pos": [
457
+ 900,
458
+ 260
459
+ ],
460
+ "size": {
461
+ "0": 220,
462
+ "1": 60
463
+ },
464
+ "flags": {},
465
+ "order": 9,
466
+ "mode": 0,
467
+ "inputs": [
468
+ {
469
+ "name": "clip",
470
+ "type": "CLIP",
471
+ "link": 10
472
+ },
473
+ {
474
+ "name": "text",
475
+ "type": "STRING",
476
+ "link": 4,
477
+ "widget": {
478
+ "name": "text",
479
+ "config": [
480
+ "STRING",
481
+ {
482
+ "multiline": true
483
+ }
484
+ ]
485
+ }
486
+ }
487
+ ],
488
+ "outputs": [
489
+ {
490
+ "name": "CONDITIONING",
491
+ "type": "CONDITIONING",
492
+ "links": [
493
+ 14
494
+ ],
495
+ "shape": 3,
496
+ "slot_index": 0
497
+ }
498
+ ],
499
+ "properties": {
500
+ "Node name for S&R": "CLIPTextEncode"
501
+ },
502
+ "widgets_values": [
503
+ "amateur photo of a 22yo girl eye, detailed face, long hair, close-up on the eye, detailed eye, at night"
504
+ ]
505
+ },
506
+ {
507
+ "id": 13,
508
+ "type": "SaveImage",
509
+ "pos": [
510
+ 2260,
511
+ 240
512
+ ],
513
+ "size": {
514
+ "0": 220,
515
+ "1": 270
516
+ },
517
+ "flags": {
518
+ "collapsed": true
519
+ },
520
+ "order": 13,
521
+ "mode": 0,
522
+ "inputs": [
523
+ {
524
+ "name": "images",
525
+ "type": "IMAGE",
526
+ "link": 1
527
+ }
528
+ ],
529
+ "properties": {},
530
+ "widgets_values": [
531
+ "ComfyUI"
532
+ ]
533
+ },
534
+ {
535
+ "id": 1,
536
+ "type": "KSamplerSDXLAdvanced",
537
+ "pos": [
538
+ 1220,
539
+ 240
540
+ ],
541
+ "size": {
542
+ "0": 393,
543
+ "1": 506
544
+ },
545
+ "flags": {},
546
+ "order": 11,
547
+ "mode": 0,
548
+ "inputs": [
549
+ {
550
+ "name": "model_model",
551
+ "type": "MODEL",
552
+ "link": 12
553
+ },
554
+ {
555
+ "name": "model_refiner",
556
+ "type": "MODEL",
557
+ "link": 13
558
+ },
559
+ {
560
+ "name": "CONDITIONING_model_pos",
561
+ "type": "CONDITIONING",
562
+ "link": 14
563
+ },
564
+ {
565
+ "name": "CONDITIONING_model_neg",
566
+ "type": "CONDITIONING",
567
+ "link": 15
568
+ },
569
+ {
570
+ "name": "CONDITIONING_refiner_pos",
571
+ "type": "CONDITIONING",
572
+ "link": 16
573
+ },
574
+ {
575
+ "name": "CONDITIONING_refiner_neg",
576
+ "type": "CONDITIONING",
577
+ "link": 17
578
+ },
579
+ {
580
+ "name": "latent_image",
581
+ "type": "LATENT",
582
+ "link": 18
583
+ },
584
+ {
585
+ "name": "SD15VAE",
586
+ "type": "VAE",
587
+ "link": null
588
+ },
589
+ {
590
+ "name": "SDXLVAE",
591
+ "type": "VAE",
592
+ "link": null
593
+ },
594
+ {
595
+ "name": "seed",
596
+ "type": "INT",
597
+ "link": 19,
598
+ "widget": {
599
+ "name": "seed",
600
+ "config": [
601
+ "INT",
602
+ {
603
+ "default": 0,
604
+ "min": 0,
605
+ "max": 18446744073709552000
606
+ }
607
+ ]
608
+ }
609
+ }
610
+ ],
611
+ "outputs": [
612
+ {
613
+ "name": "LATENT",
614
+ "type": "LATENT",
615
+ "links": [
616
+ 2
617
+ ],
618
+ "shape": 3,
619
+ "slot_index": 0
620
+ }
621
+ ],
622
+ "properties": {
623
+ "Node name for S&R": "KSamplerSDXLAdvanced"
624
+ },
625
+ "widgets_values": [
626
+ 702632666099873,
627
+ "randomize",
628
+ 7.5,
629
+ "dpmpp_2m",
630
+ "karras",
631
+ 0,
632
+ 15,
633
+ 5,
634
+ 0.9999999999999999,
635
+ "penultimate_step",
636
+ "GPU",
637
+ "enable",
638
+ 7.5
639
+ ]
640
+ },
641
+ {
642
+ "id": 17,
643
+ "type": "PrimitiveNode",
644
+ "pos": [
645
+ 900,
646
+ 820
647
+ ],
648
+ "size": [
649
+ 259.717481376711,
650
+ 82
651
+ ],
652
+ "flags": {},
653
+ "order": 6,
654
+ "mode": 0,
655
+ "outputs": [
656
+ {
657
+ "name": "INT",
658
+ "type": "INT",
659
+ "links": [
660
+ 19
661
+ ],
662
+ "slot_index": 0,
663
+ "widget": {
664
+ "name": "seed",
665
+ "config": [
666
+ "INT",
667
+ {
668
+ "default": 0,
669
+ "min": 0,
670
+ "max": 18446744073709552000
671
+ }
672
+ ]
673
+ }
674
+ }
675
+ ],
676
+ "title": "SEED",
677
+ "properties": {},
678
+ "widgets_values": [
679
+ 702632666099873,
680
+ "randomize"
681
+ ],
682
+ "color": "#432",
683
+ "bgcolor": "#653"
684
+ }
685
+ ],
686
+ "links": [
687
+ [
688
+ 1,
689
+ 12,
690
+ 0,
691
+ 13,
692
+ 0,
693
+ "IMAGE"
694
+ ],
695
+ [
696
+ 2,
697
+ 1,
698
+ 0,
699
+ 12,
700
+ 0,
701
+ "LATENT"
702
+ ],
703
+ [
704
+ 3,
705
+ 3,
706
+ 0,
707
+ 12,
708
+ 1,
709
+ "VAE"
710
+ ],
711
+ [
712
+ 4,
713
+ 14,
714
+ 0,
715
+ 4,
716
+ 1,
717
+ "STRING"
718
+ ],
719
+ [
720
+ 5,
721
+ 14,
722
+ 0,
723
+ 10,
724
+ 1,
725
+ "STRING"
726
+ ],
727
+ [
728
+ 6,
729
+ 15,
730
+ 0,
731
+ 11,
732
+ 1,
733
+ "STRING"
734
+ ],
735
+ [
736
+ 7,
737
+ 15,
738
+ 0,
739
+ 9,
740
+ 1,
741
+ "STRING"
742
+ ],
743
+ [
744
+ 8,
745
+ 8,
746
+ 1,
747
+ 11,
748
+ 0,
749
+ "CLIP"
750
+ ],
751
+ [
752
+ 9,
753
+ 8,
754
+ 1,
755
+ 10,
756
+ 0,
757
+ "CLIP"
758
+ ],
759
+ [
760
+ 10,
761
+ 2,
762
+ 1,
763
+ 4,
764
+ 0,
765
+ "CLIP"
766
+ ],
767
+ [
768
+ 11,
769
+ 2,
770
+ 1,
771
+ 9,
772
+ 0,
773
+ "CLIP"
774
+ ],
775
+ [
776
+ 12,
777
+ 2,
778
+ 0,
779
+ 1,
780
+ 0,
781
+ "MODEL"
782
+ ],
783
+ [
784
+ 13,
785
+ 8,
786
+ 0,
787
+ 1,
788
+ 1,
789
+ "MODEL"
790
+ ],
791
+ [
792
+ 14,
793
+ 4,
794
+ 0,
795
+ 1,
796
+ 2,
797
+ "CONDITIONING"
798
+ ],
799
+ [
800
+ 15,
801
+ 9,
802
+ 0,
803
+ 1,
804
+ 3,
805
+ "CONDITIONING"
806
+ ],
807
+ [
808
+ 16,
809
+ 10,
810
+ 0,
811
+ 1,
812
+ 4,
813
+ "CONDITIONING"
814
+ ],
815
+ [
816
+ 17,
817
+ 11,
818
+ 0,
819
+ 1,
820
+ 5,
821
+ "CONDITIONING"
822
+ ],
823
+ [
824
+ 18,
825
+ 16,
826
+ 0,
827
+ 1,
828
+ 6,
829
+ "LATENT"
830
+ ],
831
+ [
832
+ 19,
833
+ 17,
834
+ 0,
835
+ 1,
836
+ 9,
837
+ "INT"
838
+ ]
839
+ ],
840
+ "groups": [],
841
+ "config": {},
842
+ "extra": {},
843
+ "version": 0.4
844
+ }