diff --git a/example_workflows/Lumina 2 Example.json b/example_workflows/Lumina 2 Example.json index a0ce12d..c57e641 100644 --- a/example_workflows/Lumina 2 Example.json +++ b/example_workflows/Lumina 2 Example.json @@ -1 +1 @@ -{"last_node_id":28,"last_link_id":44,"nodes":[{"id":14,"type":"Note","pos":[860,-50],"size":[310,180],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"properties":{},"widgets_values":["The official way to sample this model is: shift 6 with 36 steps\n\nSampling it with lower steps works but you might have to lower the shift value to reduce the amount of artifacts.\n\nEx: 20 steps with shift 3 seems to not produce artifacts"],"color":"#432","bgcolor":"#653"},{"id":25,"type":"Sage_LoraStackLoader","pos":[153,-149],"size":[267,86],"flags":{},"order":7,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":32},{"name":"clip","localized_name":"clip","type":"CLIP","link":34},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":null}],"outputs":[{"name":"model","localized_name":"model","type":"MODEL","links":[33],"slot_index":0},{"name":"clip","localized_name":"clip","type":"CLIP","links":[35],"slot_index":1},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","links":null},{"name":"keywords","localized_name":"keywords","type":"STRING","links":[36],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_LoraStackLoader"},"widgets_values":[],"color":"#233","bgcolor":"#355"},{"id":20,"type":"Sage_SetText","pos":[168,294],"size":[407,156],"flags":{},"order":1,"mode":0,"inputs":[{"name":"prefix","type":"STRING","shape":7,"widget":{"name":"prefix"},"link":null},{"name":"suffix","type":"STRING","shape":7,"widget":{"name":"suffix"},"link":null}],"outputs":[{"name":"str","localized_name":"str","type":"STRING","links":[44]}],"title":"Negative","properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SetText"},"widgets_values":["blurry ugly bad","",""],"color":"#332922","bgcolor":"#593930"},{"id":17,"type":"Sage_DualCLIPTextEncodeLumina2","pos":[603,-1],"size":[235.1999969482422,166],"flags":{},"order":9,"mode":0,"inputs":[{"name":"clip","localized_name":"clip","type":"CLIP","link":35},{"name":"pos","type":"STRING","shape":7,"widget":{"name":"pos"},"link":43},{"name":"neg","type":"STRING","shape":7,"widget":{"name":"neg"},"link":44}],"outputs":[{"name":"pos_cond","localized_name":"pos_cond","type":"CONDITIONING","links":[20],"slot_index":0},{"name":"neg_cond","localized_name":"neg_cond","type":"CONDITIONING","links":[21],"slot_index":1},{"name":"pos_text","localized_name":"pos_text","type":"STRING","links":[29],"slot_index":2},{"name":"neg_text","localized_name":"neg_text","type":"STRING","links":[30],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_DualCLIPTextEncodeLumina2"},"widgets_values":["superior","",""],"color":"#232","bgcolor":"#353"},{"id":22,"type":"Sage_SamplerInfo","pos":[234,500],"size":[249,181],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[{"name":"SAMPLER_INFO","localized_name":"SAMPLER_INFO","type":"SAMPLER_INFO","links":[19,28],"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SamplerInfo"},"widgets_values":[0,"fixed",36,4,"res_multistep","simple"],"color":"#332922","bgcolor":"#593930"},{"id":11,"type":"ModelSamplingAuraFlow","pos":[-199.2619171142578,-139.40213012695312],"size":[315,58],"flags":{},"order":6,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":18}],"outputs":[{"name":"MODEL","localized_name":"MODEL","type":"MODEL","links":[32],"slot_index":0}],"properties":{"cnr_id":"comfy-core","ver":"0.3.26","Node name for S&R":"ModelSamplingAuraFlow"},"widgets_values":[6],"color":"#223","bgcolor":"#335"},{"id":24,"type":"Sage_LoraStack","pos":[-210,-23],"size":[315,130],"flags":{},"order":3,"mode":0,"inputs":[{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":null}],"outputs":[{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","links":null,"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_LoraStack"},"widgets_values":[false,"lumina/studio_ghibli_lumina_000017200_comfy.safetensors",1,1],"color":"#233","bgcolor":"#355"},{"id":16,"type":"Sage_CheckpointLoaderSimple","pos":[-233,161],"size":[340.20001220703125,118],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[{"name":"model","localized_name":"model","type":"MODEL","links":[18],"slot_index":0},{"name":"clip","localized_name":"clip","type":"CLIP","links":[34],"slot_index":1},{"name":"vae","localized_name":"vae","type":"VAE","links":[24],"slot_index":2},{"name":"model_info","localized_name":"model_info","type":"MODEL_INFO","links":[26],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_CheckpointLoaderSimple"},"widgets_values":["lumina/lumina_2.safetensors"],"color":"#223","bgcolor":"#335"},{"id":27,"type":"Sage_EmptyLatentImagePassthrough","pos":[-125,333],"size":[210,170],"flags":{},"order":5,"mode":0,"inputs":[],"outputs":[{"name":"latent","localized_name":"latent","type":"LATENT","links":[41],"slot_index":0},{"name":"width","localized_name":"width","type":"INT","links":[39],"slot_index":1},{"name":"height","localized_name":"height","type":"INT","links":[40],"slot_index":2}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_EmptyLatentImagePassthrough"},"widgets_values":[1024,1024,1,true],"color":"#232","bgcolor":"#353"},{"id":23,"type":"Sage_ConstructMetadata","pos":[233,731],"size":[253.60000610351562,250],"flags":{},"order":11,"mode":0,"inputs":[{"name":"model_info","localized_name":"model_info","type":"MODEL_INFO","link":26},{"name":"sampler_info","localized_name":"sampler_info","type":"SAMPLER_INFO","link":28},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":null},{"name":"positive_string","type":"STRING","widget":{"name":"positive_string"},"link":29},{"name":"negative_string","type":"STRING","widget":{"name":"negative_string"},"link":30},{"name":"width","type":"INT","widget":{"name":"width"},"link":39},{"name":"height","type":"INT","widget":{"name":"height"},"link":40}],"outputs":[{"name":"param_metadata","localized_name":"param_metadata","type":"STRING","links":[37,42],"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_ConstructMetadata"},"widgets_values":["","",0,0],"color":"#222","bgcolor":"#000"},{"id":21,"type":"Sage_KSamplerDecoder","pos":[629,254],"size":[210,382],"flags":{},"order":10,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":33},{"name":"sampler_info","localized_name":"sampler_info","type":"SAMPLER_INFO","link":19},{"name":"positive","localized_name":"positive","type":"CONDITIONING","link":20},{"name":"negative","localized_name":"negative","type":"CONDITIONING","link":21},{"name":"latent_image","localized_name":"latent_image","type":"LATENT","link":41},{"name":"vae","localized_name":"vae","type":"VAE","link":24},{"name":"advanced_info","localized_name":"advanced_info","type":"ADV_SAMPLER_INFO","shape":7,"link":null}],"outputs":[{"name":"LATENT","localized_name":"LATENT","type":"LATENT","links":null},{"name":"IMAGE","localized_name":"IMAGE","type":"IMAGE","links":[38],"slot_index":1}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_KSamplerDecoder"},"widgets_values":[1],"color":"#332922","bgcolor":"#593930"},{"id":26,"type":"Sage_SaveImageWithMetadata","pos":[869,184],"size":[421.20001220703125,566],"flags":{},"order":12,"mode":0,"inputs":[{"name":"images","localized_name":"images","type":"IMAGE","link":38},{"name":"param_metadata","type":"STRING","shape":7,"widget":{"name":"param_metadata"},"link":37},{"name":"extra_metadata","type":"STRING","shape":7,"widget":{"name":"extra_metadata"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SaveImageWithMetadata"},"widgets_values":["ComfyUI_Meta",true,true,"",""]},{"id":19,"type":"Sage_SetText","pos":[152,-8],"size":[435,240],"flags":{},"order":8,"mode":0,"inputs":[{"name":"prefix","type":"STRING","shape":7,"widget":{"name":"prefix"},"link":null},{"name":"suffix","type":"STRING","shape":7,"widget":{"name":"suffix"},"link":36}],"outputs":[{"name":"str","localized_name":"str","type":"STRING","links":[43],"slot_index":0}],"title":"Positive","properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SetText"},"widgets_values":["a cute anime girl with massive fennec ears mouth open and a big fluffy tail long red hair and green eyes wearing a gothic outfit with a long black lace dress and a large purple liquid stained pink apron and blue gloves and black leggings sitting on a large cushion in the middle of a kitchen in a dark victorian mansion with a shuttered window with a wood frame drinking a glass with a galaxy inside. A vase of black orchids sits on the counter.","",""],"color":"#232","bgcolor":"#353"},{"id":28,"type":"Sage_ViewText","pos":[533,793],"size":[472,324],"flags":{},"order":13,"mode":0,"inputs":[{"name":"text","type":"STRING","widget":{"name":"text"},"link":42}],"outputs":[{"name":"STRING","localized_name":"STRING","type":"STRING","links":null}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_ViewText"},"widgets_values":[""]}],"links":[[18,16,0,11,0,"MODEL"],[19,22,0,21,1,"SAMPLER_INFO"],[20,17,0,21,2,"CONDITIONING"],[21,17,1,21,3,"CONDITIONING"],[24,16,2,21,5,"VAE"],[26,16,3,23,0,"MODEL_INFO"],[28,22,0,23,1,"SAMPLER_INFO"],[29,17,2,23,3,"STRING"],[30,17,3,23,4,"STRING"],[32,11,0,25,0,"MODEL"],[33,25,0,21,0,"MODEL"],[34,16,1,25,1,"CLIP"],[35,25,1,17,0,"CLIP"],[36,25,3,19,1,"STRING"],[37,23,0,26,1,"STRING"],[38,21,1,26,0,"IMAGE"],[39,27,1,23,5,"INT"],[40,27,2,23,6,"INT"],[41,27,0,21,4,"LATENT"],[42,23,0,28,0,"STRING"],[43,19,0,17,1,"STRING"],[44,20,0,17,2,"STRING"]],"groups":[],"config":{},"extra":{"ds":{"scale":1,"offset":[448,30]},"node_versions":{"comfy-core":"0.3.14"},"VHS_latentpreview":true,"VHS_latentpreviewrate":0,"ue_links":[]},"version":0.4} \ No newline at end of file +{"last_node_id":28,"last_link_id":45,"nodes":[{"id":14,"type":"Note","pos":[860,-50],"size":[310,180],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"properties":{},"widgets_values":["The official way to sample this model is: shift 6 with 36 steps\n\nSampling it with lower steps works but you might have to lower the shift value to reduce the amount of artifacts.\n\nEx: 20 steps with shift 3 seems to not produce artifacts"],"color":"#432","bgcolor":"#653"},{"id":25,"type":"Sage_LoraStackLoader","pos":[153,-149],"size":[267,86],"flags":{},"order":7,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":32},{"name":"clip","localized_name":"clip","type":"CLIP","link":34},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":45}],"outputs":[{"name":"model","localized_name":"model","type":"MODEL","links":[33],"slot_index":0},{"name":"clip","localized_name":"clip","type":"CLIP","links":[35],"slot_index":1},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","links":null},{"name":"keywords","localized_name":"keywords","type":"STRING","links":[36],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_LoraStackLoader"},"widgets_values":[],"color":"#233","bgcolor":"#355"},{"id":20,"type":"Sage_SetText","pos":[168,294],"size":[407,156],"flags":{},"order":1,"mode":0,"inputs":[{"name":"prefix","type":"STRING","shape":7,"widget":{"name":"prefix"},"link":null},{"name":"suffix","type":"STRING","shape":7,"widget":{"name":"suffix"},"link":null}],"outputs":[{"name":"str","localized_name":"str","type":"STRING","links":[44]}],"title":"Negative","properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SetText"},"widgets_values":["blurry ugly bad","",""],"color":"#332922","bgcolor":"#593930"},{"id":22,"type":"Sage_SamplerInfo","pos":[234,500],"size":[249,181],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[{"name":"SAMPLER_INFO","localized_name":"SAMPLER_INFO","type":"SAMPLER_INFO","links":[19,28],"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SamplerInfo"},"widgets_values":[0,"fixed",36,4,"res_multistep","simple"],"color":"#332922","bgcolor":"#593930"},{"id":11,"type":"ModelSamplingAuraFlow","pos":[-199.2619171142578,-139.40213012695312],"size":[315,58],"flags":{},"order":6,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":18}],"outputs":[{"name":"MODEL","localized_name":"MODEL","type":"MODEL","links":[32],"slot_index":0}],"properties":{"cnr_id":"comfy-core","ver":"0.3.26","Node name for S&R":"ModelSamplingAuraFlow"},"widgets_values":[6],"color":"#223","bgcolor":"#335"},{"id":16,"type":"Sage_CheckpointLoaderSimple","pos":[-233,161],"size":[340.20001220703125,118],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[{"name":"model","localized_name":"model","type":"MODEL","links":[18],"slot_index":0},{"name":"clip","localized_name":"clip","type":"CLIP","links":[34],"slot_index":1},{"name":"vae","localized_name":"vae","type":"VAE","links":[24],"slot_index":2},{"name":"model_info","localized_name":"model_info","type":"MODEL_INFO","links":[26],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_CheckpointLoaderSimple"},"widgets_values":["lumina/lumina_2.safetensors"],"color":"#223","bgcolor":"#335"},{"id":27,"type":"Sage_EmptyLatentImagePassthrough","pos":[-125,333],"size":[210,170],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[{"name":"latent","localized_name":"latent","type":"LATENT","links":[41],"slot_index":0},{"name":"width","localized_name":"width","type":"INT","links":[39],"slot_index":1},{"name":"height","localized_name":"height","type":"INT","links":[40],"slot_index":2}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_EmptyLatentImagePassthrough"},"widgets_values":[1024,1024,1,true],"color":"#232","bgcolor":"#353"},{"id":23,"type":"Sage_ConstructMetadata","pos":[233,731],"size":[253.60000610351562,250],"flags":{},"order":11,"mode":0,"inputs":[{"name":"model_info","localized_name":"model_info","type":"MODEL_INFO","link":26},{"name":"sampler_info","localized_name":"sampler_info","type":"SAMPLER_INFO","link":28},{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":null},{"name":"positive_string","type":"STRING","widget":{"name":"positive_string"},"link":29},{"name":"negative_string","type":"STRING","widget":{"name":"negative_string"},"link":30},{"name":"width","type":"INT","widget":{"name":"width"},"link":39},{"name":"height","type":"INT","widget":{"name":"height"},"link":40}],"outputs":[{"name":"param_metadata","localized_name":"param_metadata","type":"STRING","links":[37,42],"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_ConstructMetadata"},"widgets_values":["","",0,0],"color":"#222","bgcolor":"#000"},{"id":21,"type":"Sage_KSamplerDecoder","pos":[629,254],"size":[210,382],"flags":{},"order":10,"mode":0,"inputs":[{"name":"model","localized_name":"model","type":"MODEL","link":33},{"name":"sampler_info","localized_name":"sampler_info","type":"SAMPLER_INFO","link":19},{"name":"positive","localized_name":"positive","type":"CONDITIONING","link":20},{"name":"negative","localized_name":"negative","type":"CONDITIONING","link":21},{"name":"latent_image","localized_name":"latent_image","type":"LATENT","link":41},{"name":"vae","localized_name":"vae","type":"VAE","link":24},{"name":"advanced_info","localized_name":"advanced_info","type":"ADV_SAMPLER_INFO","shape":7,"link":null}],"outputs":[{"name":"LATENT","localized_name":"LATENT","type":"LATENT","links":null},{"name":"IMAGE","localized_name":"IMAGE","type":"IMAGE","links":[38],"slot_index":1}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_KSamplerDecoder"},"widgets_values":[1,""],"color":"#332922","bgcolor":"#593930"},{"id":26,"type":"Sage_SaveImageWithMetadata","pos":[869,184],"size":[421.20001220703125,566],"flags":{},"order":12,"mode":0,"inputs":[{"name":"images","localized_name":"images","type":"IMAGE","link":38},{"name":"param_metadata","type":"STRING","shape":7,"widget":{"name":"param_metadata"},"link":37},{"name":"extra_metadata","type":"STRING","shape":7,"widget":{"name":"extra_metadata"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SaveImageWithMetadata"},"widgets_values":["ComfyUI_Meta",true,true,"",""]},{"id":19,"type":"Sage_SetText","pos":[152,-8],"size":[435,240],"flags":{},"order":8,"mode":0,"inputs":[{"name":"prefix","type":"STRING","shape":7,"widget":{"name":"prefix"},"link":null},{"name":"suffix","type":"STRING","shape":7,"widget":{"name":"suffix"},"link":36}],"outputs":[{"name":"str","localized_name":"str","type":"STRING","links":[43],"slot_index":0}],"title":"Positive","properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_SetText"},"widgets_values":["a cute anime girl with massive fennec ears mouth open and a big fluffy tail long red hair and green eyes wearing a gothic outfit with a long black lace dress and a large purple liquid stained pink apron and blue gloves and black leggings sitting on a large cushion in the middle of a kitchen in a dark victorian mansion with a shuttered window with a wood frame drinking a glass with a galaxy inside. A vase of black orchids sits on the counter.","",""],"color":"#232","bgcolor":"#353"},{"id":28,"type":"Sage_ViewText","pos":[533,793],"size":[472,324],"flags":{},"order":13,"mode":0,"inputs":[{"name":"text","type":"STRING","widget":{"name":"text"},"link":42}],"outputs":[{"name":"STRING","localized_name":"STRING","type":"STRING","links":null}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_ViewText"},"widgets_values":["","You are an assistant designed to generate superior images with the superior degree of image-text alignment based on textual prompts or user prompts. a cute anime girl with massive fennec ears mouth open and a big fluffy tail long red hair and green eyes wearing a gothic outfit with a long black lace dress and a large purple liquid stained pink apron and blue gloves and black leggings sitting on a large cushion in the middle of a kitchen in a dark victorian mansion with a shuttered window with a wood frame drinking a glass with a galaxy inside. A vase of black orchids sits on the counter. \nNegative prompt: You are an assistant designed to generate superior images with the superior degree of image-text alignment based on textual prompts or user prompts. blurry ugly bad\nSteps: 36, Sampler: res_multistep, Scheduler type: simple, CFG scale: 4.0, Seed: 0, Size: 1024x1024,Model: lumina_2.safetensors, Model hash: b703b020a8, Version: v1.10-RC-6-comfyui, Civitai resources: [], Lora hashes: "]},{"id":17,"type":"Sage_DualCLIPTextEncodeLumina2","pos":[603,-1],"size":[235.1999969482422,190],"flags":{},"order":9,"mode":0,"inputs":[{"name":"clip","localized_name":"clip","type":"CLIP","link":35},{"name":"pos","type":"STRING","shape":7,"widget":{"name":"pos"},"link":43},{"name":"neg","type":"STRING","shape":7,"widget":{"name":"neg"},"link":44}],"outputs":[{"name":"pos_cond","localized_name":"pos_cond","type":"CONDITIONING","links":[20],"slot_index":0},{"name":"neg_cond","localized_name":"neg_cond","type":"CONDITIONING","links":[21],"slot_index":1},{"name":"pos_text","localized_name":"pos_text","type":"STRING","links":[29],"slot_index":2},{"name":"neg_text","localized_name":"neg_text","type":"STRING","links":[30],"slot_index":3}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_DualCLIPTextEncodeLumina2"},"widgets_values":["superior",true,"",""],"color":"#232","bgcolor":"#353"},{"id":24,"type":"Sage_LoraStack","pos":[-209,-31],"size":[315,130],"flags":{},"order":5,"mode":0,"inputs":[{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","shape":7,"link":null}],"outputs":[{"name":"lora_stack","localized_name":"lora_stack","type":"LORA_STACK","links":[45],"slot_index":0}],"properties":{"cnr_id":"comfyui_sageutils","ver":"45c8414c4caf2f696c90120bc3438de821223fbc","Node name for S&R":"Sage_LoraStack"},"widgets_values":[false,"lumina/studio_ghibli_lumina_000017200_comfy.safetensors",1,1],"color":"#233","bgcolor":"#355"}],"links":[[18,16,0,11,0,"MODEL"],[19,22,0,21,1,"SAMPLER_INFO"],[20,17,0,21,2,"CONDITIONING"],[21,17,1,21,3,"CONDITIONING"],[24,16,2,21,5,"VAE"],[26,16,3,23,0,"MODEL_INFO"],[28,22,0,23,1,"SAMPLER_INFO"],[29,17,2,23,3,"STRING"],[30,17,3,23,4,"STRING"],[32,11,0,25,0,"MODEL"],[33,25,0,21,0,"MODEL"],[34,16,1,25,1,"CLIP"],[35,25,1,17,0,"CLIP"],[36,25,3,19,1,"STRING"],[37,23,0,26,1,"STRING"],[38,21,1,26,0,"IMAGE"],[39,27,1,23,5,"INT"],[40,27,2,23,6,"INT"],[41,27,0,21,4,"LATENT"],[42,23,0,28,0,"STRING"],[43,19,0,17,1,"STRING"],[44,20,0,17,2,"STRING"],[45,24,0,25,2,"LORA_STACK"]],"groups":[],"config":{},"extra":{"ds":{"scale":1,"offset":[653,266]},"node_versions":{"comfy-core":"0.3.14"},"VHS_latentpreview":true,"VHS_latentpreviewrate":0,"ue_links":[]},"version":0.4} \ No newline at end of file diff --git a/nodes/conditioning.py b/nodes/conditioning.py index b336130..ace2142 100644 --- a/nodes/conditioning.py +++ b/nodes/conditioning.py @@ -139,6 +139,7 @@ class Sage_DualCLIPTextEncodeLumina2(ComfyNodeABC): "required": { "clip": ("CLIP", {"defaultInput": True, "tooltip": "The CLIP model used for encoding the text."}), "system_prompt": (list(Sage_CLIPTextEncodeLumina2.SYSTEM_PROMPT.keys()), {"tooltip": Sage_CLIPTextEncodeLumina2.SYSTEM_PROMPT_TIP}), + "clean": ("BOOLEAN", {"defaultInput": False, "tooltip": "Clean up the text, getting rid of extra spaces, commas, etc."}), }, "optional": { @@ -155,29 +156,25 @@ class Sage_DualCLIPTextEncodeLumina2(ComfyNodeABC): CATEGORY = "Sage Utils/lumina 2" DESCRIPTION = "Turns a positive and negative prompt into conditionings, and passes through the prompts. Saves space over two CLIP Text Encoders, and zeros any input not hooked up." - def get_conditioning(self, pbar, clip, system_prompt, text=None): - zero_text = text is None - system_prompt = Sage_DualCLIPTextEncodeLumina2.SYSTEM_PROMPT[system_prompt] - text = f'{system_prompt} {text}' or "" - - tokens = clip.tokenize(text) - output = clip.encode_from_tokens(tokens, return_pooled=True, return_dict=True) - cond = output.pop("cond") + def get_conditioning(self, pbar, clip, text=None): pbar.update(1) + return condition_text(clip, text) - if zero_text: - pooled_output = output.get("pooled_output") - if pooled_output is not None: - output["pooled_output"] = torch.zeros_like(pooled_output) - return [[torch.zeros_like(cond), output]] - - return [[cond, output]] - - def encode(self, clip, system_prompt, pos=None, neg=None): + def encode(self, clip, system_prompt, clean, pos=None, neg=None): pbar = comfy.utils.ProgressBar(2) + system_prompt = Sage_DualCLIPTextEncodeLumina2.SYSTEM_PROMPT[system_prompt] + + if pos is not None: + pos = f'{system_prompt} {pos}' + pos = clean_text(pos) if clean else pos + + if neg is not None: + neg = f'{system_prompt} {neg}' + neg = clean_text(neg) if clean else neg + return ( - self.get_conditioning(pbar, clip, system_prompt, pos), - self.get_conditioning(pbar, clip, system_prompt, neg), + self.get_conditioning(pbar, clip, pos), + self.get_conditioning(pbar, clip, neg), pos or "", neg or "" )