1919import nodes
2020
2121
22+
23+ # -----------------------------------------------------------
24+ # BEGIN GENERIC TYPES
25+ # -----------------------------------------------------------
26+
2227##
2328# ANY TYPE
2429##
@@ -72,11 +77,11 @@ def __ne__(self, __value: object) -> bool:
7277)})
7378
7479# IMAGE
75- TYPE_IMG_WIDTH = ('INT' , {'default' : 1024 , 'min' : 16 , 'max' : nodes .MAX_RESOLUTION , 'step' : 8 , 'tooltip' : (
80+ TYPE_IMG_WIDTH = ('INT' , {'default' : 1024 , 'min' : 16 , 'max' : nodes .MAX_RESOLUTION , 'step' : 1 , 'tooltip' : (
7681 f' Width\n { "-" * TOOLTIP_UNDERLINE } \n '
7782 f' - Defines the width of the image.\n \n '
7883)})
79- TYPE_IMG_HEIGHT = ('INT' , {'default' : 1024 , 'min' : 16 , 'max' : nodes .MAX_RESOLUTION , 'step' : 8 , 'tooltip' : (
84+ TYPE_IMG_HEIGHT = ('INT' , {'default' : 1024 , 'min' : 16 , 'max' : nodes .MAX_RESOLUTION , 'step' : 1 , 'tooltip' : (
8085 f' Height\n { "-" * TOOLTIP_UNDERLINE } \n '
8186 f' - Defines the height of the image.\n \n '
8287)})
@@ -115,9 +120,13 @@ def __ne__(self, __value: object) -> bool:
115120 f' - The amount of denoising applied, lower values will maintain the structure of the initial image allowing for image to image sampling.\n \n '
116121 )
117122})
118- TYPE_PROMPT_POSITIVE = ('STRING' , {'multiline' : True , 'default' : 'Enter your positive prompt.' , 'tooltip' : (
123+ TYPE_PROMPT_POSITIVE = ('STRING' , {'multiline' : True , 'default' : '✅ Describe the image you want the model to create.' , 'tooltip' : (
124+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
125+ f' - ✅ Describe the image you want the model to create.\n \n '
126+ )})
127+ TYPE_PROMPT_NEGATIVE = ('STRING' , {'multiline' : True , 'default' : '⛔ Describe what you do not want to see in the image.' , 'tooltip' : (
119128 f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
120- f' - Positive text prompt describing your desired output .\n \n '
129+ f' - ⛔ Describe what you do not want to see in the image .\n \n '
121130)})
122131
123132# MODEL
@@ -186,12 +195,12 @@ def __ne__(self, __value: object) -> bool:
186195 f' - Used to encode and decode images.\n \n '
187196)})
188197
189- TYPE_CONTROL_NETS_LIST = lambda : (['none ' ] + CONTROL_NETS_LIST (), {'tooltip' : (
198+ TYPE_CONTROL_NETS_LIST = lambda : (['disabled ' ] + CONTROL_NETS_LIST (), {'tooltip' : (
190199 f' Control Net List\n { "-" * TOOLTIP_UNDERLINE } \n '
191200 f' - List of available Control Nets.\n '
192201 f' - Used to transfer structure of an input image to a generated output image.\n \n '
193202)})
194- TYPE_LORAS_LIST = lambda : (['none ' ] + LORAS_LIST (), {'tooltip' : (
203+ TYPE_LORAS_LIST = lambda : (['disabled ' ] + LORAS_LIST (), {'tooltip' : (
195204 f' LoRA List\n { "-" * TOOLTIP_UNDERLINE } \n '
196205 f' - List of available Low-Rank Adaptation models.\n '
197206 f' - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image.\n \n '
@@ -232,10 +241,67 @@ def __ne__(self, __value: object) -> bool:
232241TYPE_IMAGE = ('IMAGE' , )
233242
234243
244+
245+ # -----------------------------------------------------------
246+ # BEGIN FLOWSTATE TYPES
247+ # -----------------------------------------------------------
248+
249+
235250##
236- # FLOWSTATE CREATOR TYPES
251+ # FLOWSTATE CREATOR LABELS
237252##
238253
254+ def pad_label (label ):
255+ width = 100
256+ len_label = len (label )
257+ num_spaces = width - len_label
258+ left_side = num_spaces // 2 - 10
259+ right_side = num_spaces - left_side
260+ padded_label = ' ' * left_side + '--- ' + label + ' ---' + ' ' * right_side
261+ return padded_label
262+
263+ # GENERIC LABELS
264+ TYPE_FLOWSTATE_LABEL_MODEL = ('STRING' , {'default' : pad_label ('🤖 Model Settings' ), 'tooltip' : (
265+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
266+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
267+ )})
268+
269+ TYPE_FLOWSTATE_LABEL_AUG = ('STRING' , {'default' : pad_label ('🔥 Augmentation Settings' ), 'tooltip' : (
270+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
271+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
272+ )})
273+
274+ TYPE_FLOWSTATE_LABEL_ENCODER = ('STRING' , {'default' : pad_label ('🔣 Encoder Settings' ), 'tooltip' : (
275+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
276+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
277+ )})
278+
279+ TYPE_FLOWSTATE_LABEL_IMAGE = ('STRING' , {'default' : pad_label ('🖼️ Image Settings' ), 'tooltip' : (
280+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
281+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
282+ )})
283+
284+ TYPE_FLOWSTATE_LABEL_VIDEO = ('STRING' , {'default' : pad_label ('🎥 Video Settings' ), 'tooltip' : (
285+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
286+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
287+ )})
288+
289+ TYPE_FLOWSTATE_LABEL_SAMPLING = ('STRING' , {'default' : pad_label ('🧪 Sampling Settings' ), 'tooltip' : (
290+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
291+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
292+ )})
293+
294+ TYPE_FLOWSTATE_LABEL_PROMPT = ('STRING' , {'default' : pad_label ('📝 Prompt(s)' ), 'tooltip' : (
295+ f' Label\n { "-" * TOOLTIP_UNDERLINE } \n '
296+ f' - This field is not functional. It is just a label for the group of settings below.\n \n '
297+ )})
298+
299+
300+ ##
301+ # FLOWSTATE CREATOR GENERIC TYPES
302+ ##
303+
304+
239305# SAGE ATTENTION
240306enabled_sage_modes = [
241307 "disabled" ,
@@ -261,11 +327,66 @@ def __ne__(self, __value: object) -> bool:
261327 f' - If using a checkpoint, then the weight_dtype, clip_1_name, clip_2_name & vae_name fields will ignored.\n \n '
262328)})
263329
264- # LATENT SOURCE
330+
331+ # VIDEO
332+ TYPE_NUM_VIDEO_FRAMES = ('INT' , {'default' : 48 , 'min' : 1 , 'max' : nodes .MAX_RESOLUTION , 'step' : 1 , 'tooltip' : (
333+ f' Number of Video Frames\n { "-" * TOOLTIP_UNDERLINE } \n '
334+ f' - The number of frames you want in your final video.\n \n '
335+ )})
336+
337+
338+ ##
339+ # FLOWSTATE VIDEO CREATOR
340+ ##
341+ TYPE_FPS = ('INT' , {'default' : 12 , 'min' : 1 , 'max' : 120 , 'tooltip' : (
342+ f' Frames Per Second\n { "-" * TOOLTIP_UNDERLINE } \n '
343+ f' - The number of frames per second in the created video.\n \n '
344+ )})
345+ TYPE_FRAMES_IN = ('IMAGE' , {'tooltip' : (
346+ f' Video Frames\n { "-" * TOOLTIP_UNDERLINE } \n '
347+ f' - The frames used to create the video.\n \n '
348+ )})
349+ TYPE_AUDIO_IN = ('AUDIO' , {'tooltip' : (
350+ f' Video Audio\n { "-" * TOOLTIP_UNDERLINE } \n '
351+ f' - Optional audio to be added to the video.\n \n '
352+ )})
353+ TYPE_FILENAME_PREFIX = ('STRING' , {'default' : 'video/ComyUI' , 'tooltip' : (
354+ f' Filename Prefix\n { "-" * TOOLTIP_UNDERLINE } \n '
355+ f' - The prefix for the file to save.\n '
356+ f' - This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes.\n \n '
357+ )})
358+ TYPE_VIDEO_FORMAT = (['mp4' , 'auto' ], {
359+ 'tooltip' : (
360+ f' Video Format\n { "-" * TOOLTIP_UNDERLINE } \n '
361+ f' - The format to save the video as.\n \n '
362+ )
363+ })
364+ TYPE_VIDEO_CODEC = (['h264' , 'auto' ], {
365+ 'tooltip' : (
366+ f' Video Codec\n { "-" * TOOLTIP_UNDERLINE } \n '
367+ f' - The codec to use for the video.\n \n '
368+ )
369+ })
370+
371+
372+ ##
373+ # FLOWSTATE SIMPLE LATENT
374+ ##
375+ TYPE_SIMPLE_LATENT_INPUT_TYPE = (['Empty Latent' , 'Input Image' ], {
376+ 'tooltip' : (
377+ f' Latent Type\n { "-" * TOOLTIP_UNDERLINE } \n '
378+ f' - Your choice of an empty latent (all zeros) or an image as a latent.\n \n '
379+ )
380+ })
381+
382+
383+ ##
384+ # FLOWSTATE LATENT SOURCE
385+ ##
265386TYPE_LATENT_BATCH_SIZE = ('INT' , {'default' : 1 , 'min' : 1 , 'max' : 4096 , 'tooltip' : (
266- f' Custom Batch Size\n { "-" * TOOLTIP_UNDERLINE } \n '
267- f' - The number of images you want to generate.\n \n '
268- )})
387+ f' Custom Batch Size\n { "-" * TOOLTIP_UNDERLINE } \n '
388+ f' - The number of images you want to generate.\n \n '
389+ )})
269390TYPE_LATENT_SOURCE_INPUT_TYPE = (['Empty Latent' , 'Input Image' , 'Uploaded Image' ], {
270391 'tooltip' : (
271392 f' Latent Type\n { "-" * TOOLTIP_UNDERLINE } \n '
@@ -296,7 +417,8 @@ def __ne__(self, __value: object) -> bool:
296417 ], {
297418 'tooltip' : (
298419 f' Resolution Selector\n { "-" * TOOLTIP_UNDERLINE } \n '
299- f' - Select custom to use the entered width & height, or select a resolution.\n \n '
420+ f' - Select "Custom" to use the entered custom_width & custom_height.\n '
421+ f' - Select a preset resolution & orientation.\n \n '
300422 )
301423})
302424TYPE_LATENT_SOURCE_ORIENTATION = (['Horizontal' , 'Vertical' ], {
@@ -305,8 +427,81 @@ def __ne__(self, __value: object) -> bool:
305427 f' - Resolutions given in horizontal orientation. Select vertical to swap resolution aspect ratio.\n \n '
306428 )
307429})
308- TYPE_LATENT_SOURCE_OUT = ('LATENT' , )
430+ TYPE_LATENT_SOURCE_OUT = ('LATENT' ,)
431+
432+
433+ ##
434+ # FLOWSTATE FLUX ENGINE
435+ ##
436+ TYPE_PROMPT_FLUX_ENGINE = ('STRING' , {'multiline' : True , 'default' : '✅ Describe the image you want Flux to create.' , 'tooltip' : (
437+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
438+ f' - ✅ Describe the image you want Flux to create.\n \n '
439+ )})
440+ TYPE_FLUX_ENGINE_OUT = ('MODEL' , 'CLIP' , 'VAE' , 'IMAGE' , 'LATENT' )
441+
442+
443+ ##
444+ # FLOWSTATE WAN STUDIO
445+ ##
446+ TYPE_PROMPT_WAN_STUDIO_POSITIVE = ('STRING' , {'multiline' : True , 'default' : '✅ Describe the video you want WAN to create.' , 'tooltip' : (
447+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
448+ f' - ✅ Describe the video you want WAN to create.\n \n '
449+ )})
450+ TYPE_PROMPT_WAN_STUDIO_NEGATIVE = ('STRING' , {'multiline' : True , 'default' : '⛔ Describe what you do not want to see in the video.' , 'tooltip' : (
451+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
452+ f' - ⛔ Describe what you do not want to see in the video.\n \n '
453+ )})
454+ TYPE_WAN_STUDIO_STARTING_FRAME = ('IMAGE' , {'tooltip' : (
455+ f' Starting Frame\n { "-" * TOOLTIP_UNDERLINE } \n '
456+ f' - Optionally, select an input image to use as the starting frame.\n \n '
457+ )})
458+ TYPE_WAN_STUDIO_RESOLUTION = ([
459+ 'Custom' ,
460+ 'Use Starting Frame Resolution' ,
461+ # HORIZONTAL
462+ '1920x1080 - 16:9' ,
463+ '1280x720 - 16:9' ,
464+ '1280x768 - 5:3' ,
465+ '1280x960 - 4:3' ,
466+ '1024x768 - 4:3' ,
467+ '2048x512 - 4:1' ,
468+ '1152x896 - 9:7' ,
469+ '4096x2048 - 2:1' ,
470+ '2048x1024 - 2:1' ,
471+ '1564x670 - 21:9' ,
472+ '2212x948 - 21:9' ,
473+ # SQUARE
474+ '4096x4096 - 1:1' ,
475+ '3072x3072 - 1:1' ,
476+ '2048x2048 - 1:1' ,
477+ '1024x1024 - 1:1' ,
478+ '720x720 - 1:1' ,
479+ '512x512 - 1:1'
480+ ], {
481+ 'tooltip' : (
482+ f' Resolution Selector\n { "-" * TOOLTIP_UNDERLINE } \n '
483+ f' - Select "Custom" to use the entered custom_width & custom_height.\n '
484+ f' - Select "Use Starting Frame Resolution" to use the resolution of the input image.\n '
485+ f' - Select a preset resolution & orientation.\n \n '
486+ )
487+ })
488+ TYPE_WAN_CLIP_VISION = ('CLIP_VISION' , {'tooltip' : (
489+ f' CLIP Vision Output\n { "-" * TOOLTIP_UNDERLINE } \n '
490+ f' - Optionally, use a CLIP Vision model.\n \n '
491+ )})
492+ TYPE_WAN_STUDIO_OUT = ('IMAGE' , 'LATENT' )
493+
309494
310- # FLUX ENGINE
311- TYPE_FLUX_ENGINE_OUT = ('MODEL' , 'CLIP' , 'VAE' , 'IMAGE' , 'LATENT' , )
495+ ##
496+ # FLOWSTATE QUICK EDIT
497+ ##
498+ TYPE_PROMPT_QUICK_EDIT_CHANGES = ('STRING' , {'multiline' : True , 'default' : 'Describe the edits you want Qwen to make.' , 'tooltip' : (
499+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
500+ f' - Describe the edits you want Qwen to make.\n \n '
501+ )})
502+ TYPE_PROMPT_QUICK_EDIT_REFINE = ('STRING' , {'multiline' : True , 'default' : 'Describe the new image after the edits are made.' , 'tooltip' : (
503+ f' Positive Prompt\n { "-" * TOOLTIP_UNDERLINE } \n '
504+ f' - Describe the new image after the edits are made.\n \n '
505+ )})
506+ TYPE_QUICK_EDIT_OUT = ('MODEL' , 'CLIP' , 'VAE' , 'IMAGE' , 'LATENT' )
312507
0 commit comments