Merge branch 'ltdrdata:main' into main

This commit is contained in:
Robin Huang 2024-12-05 11:56:56 -08:00 committed by GitHub
commit 65a4d55a8a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 3694 additions and 2949 deletions

View File

@ -391,7 +391,6 @@ When you run the `scan.sh` script:
* https://github.com/SimithWang/comfyui-renameImages
* https://github.com/Tcheko243/ComfyUI-Photographer-Alpha7-Nodes
* https://github.com/Limbicnation/ComfyUINodeToolbox
* https://github.com/chenpipi0807/pip_longsize
* https://github.com/APZmedia/ComfyUI-APZmedia-srtTools
## Roadmap

View File

@ -1,10 +1,12 @@
import os
import sys
cli_mode_flag = os.path.join(os.path.dirname(__file__), '.enable-cli-only-mode')
if not os.path.exists(cli_mode_flag):
from .glob import manager_server
from .glob import share_3rdparty
sys.path.append(os.path.join(os.path.dirname(__file__), "glob"))
import manager_server
import share_3rdparty
WEB_DIRECTORY = "js"
else:
print(f"\n[ComfyUI-Manager] !! cli-only-mode is enabled !!\n")

View File

@ -19,7 +19,7 @@
"files": [
"https://github.com/ltdrdata/ComfyUI-Impact-Pack"
],
"pip": ["ultralytics"],
"pip": ["ultralytics==8.3.40"],
"install_type": "git-clone",
"description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.",
"preemptions":["SAMLoader"]
@ -11692,14 +11692,13 @@
},
{
"author": "PnthrLeo",
"title": "comfyUI-image-search",
"id": "image-search",
"title": "comfyUI-PL-data-tools",
"reference": "https://github.com/PnthrLeo/comfyUI-image-search",
"files": [
"https://github.com/PnthrLeo/comfyUI-image-search"
],
"install_type": "git-clone",
"description": "Nodes:Close Images Searcher"
"description": "Nodes:Close Images Searcher, Areas Generator,Batch Image Getter"
},
{
"author": "l20richo",
@ -12974,7 +12973,7 @@
"https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils"
],
"install_type": "git-clone",
"description": "NODES: Add Mask For IC Lora, Create Context Window, Concatenate Context Window"
"description": "NODES: Add Mask For IC Lora, Create Context Window, Concatenate Context Window, Auto Patch"
},
{
"author": "lrzjason",
@ -13335,6 +13334,17 @@
"install_type": "git-clone",
"description": "a simple reimgsize node(s) in comfyui."
},
{
"author": "Makki_Shizu",
"title": "ComfyUI-Prompt-Wildcards",
"id": "Prompt-Wildcards",
"reference": "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards",
"files": [
"https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards"
],
"install_type": "git-clone",
"description": "Optional wildcards in ComfyUI"
},
{
"author": "JosefKuchar",
"title": "ComfyUI-AdvancedTiling",
@ -14476,6 +14486,16 @@
"install_type": "git-clone",
"description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows."
},
{
"author": "Rvage0815",
"title": "RvTComfyUI-RvTools_v2",
"reference": "https://github.com/Rvage0815/ComfyUI-RvTools_v2",
"files": [
"https://github.com/Rvage0815/ComfyUI-RvTools_v2"
],
"install_type": "git-clone",
"description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows."
},
{
"author": "erosDiffusion",
"title": "Compositor Node",
@ -14488,13 +14508,14 @@
},
{
"author": "Steudio",
"title": "ComfyUI_Steudio",
"title": "ComfyUI Steudio",
"id": "Steudio",
"reference": "https://github.com/Steudio/ComfyUI_Steudio",
"files": [
"https://github.com/Steudio/ComfyUI_Steudio"
],
"install_type": "git-clone",
"description": "Nodes: Divide and Conquer Algorithm, Divide Image, Combine Tiles, Make_Size"
"description": "Divide and Conquer Node Suite: It calculates the optimal upscale resolution and seamlessly divides the image into tiles, ready for individual processing using your preferred workflow. After processing, the tiles are seamlessly merged into a larger image, offering sharper and more detailed visuals."
},
{
"author": "Assistant",
@ -16061,7 +16082,7 @@
"https://github.com/sousakujikken/ComfyUI-PixydustQuantizer"
],
"install_type": "git-clone",
"description": "Pixydust Quantizer is a custom node extension for ComfyUI that allows for the simplified recreation of tile patterns used in 1990s 16-color PC graphics, offering advanced color quantization and palette optimization features."
"description": "Pixydust Quantizer is a custom node extension for ComfyUI that allows for the simplified recreation of tile patterns used in 1990s 16-color PC graphics, offering advanced color quantization and palette optimization features.Additionally, it includes a CRT-like effect node that mimics the phosphor glow and slight color bleeding of old CRT displays, adding a nostalgic aesthetic.With version 2.0.0, it now supports batch image processing, enabling efficient handling of video frames and image sequences."
},
{
"author": "hoveychen",
@ -16468,17 +16489,6 @@
"install_type": "git-clone",
"description": "This extension integrates ebsynth_utility into comfyui, and I've written some of my own nodes for secondary use."
},
{
"author": "Makki_Shizu",
"title": "ComfyUI-Prompt-Wildcards",
"id": "Prompt-Wildcards",
"reference": "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards",
"files": [
"https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards"
],
"install_type": "git-clone",
"description": "Optional wildcards in ComfyUI"
},
{
"author": "zubenelakrab",
"title": "ComfyUI-ASV-Nodes Node",
@ -17480,6 +17490,59 @@
"install_type": "git-clone",
"description": "ComfyUI-CatvtonFluxWrapper provides ComfyUI nodes for diffusers implementation of Catvton-Flux."
},
{
"author": "Stable Diffusion VN",
"title": "SDVN Comfy node",
"id": "SDVN",
"reference": "https://github.com/StableDiffusionVN/SDVN_Comfy_node",
"files": [
"https://github.com/StableDiffusionVN/SDVN_Comfy_node"
],
"install_type": "git-clone",
"description": "Collection of nodes supports using comfyUi more quickly and conveniently (Auto download model, image, easy merger ...)"
},
{
"author": "Eugene (JEONG-JIWOO)",
"title": "ComfyUI_Eugene_Nodes",
"reference": "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes",
"files": [
"https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes"
],
"install_type": "git-clone",
"description": "A collection of utility nodes using Dictionary designed to optimize and manage workflows in ComfyUI."
},
{
"author": "xs315431",
"title": "Comfyui_Get_promptId",
"reference": "https://github.com/xs315431/Comfyui_Get_promptId",
"files": [
"https://github.com/xs315431/Comfyui_Get_promptId"
],
"install_type": "git-clone",
"description": "NODES: Get Prompt_Id, Success Callback\nget comfyui task id and Callback for successful image generation, in conjunction with the back-end"
},
{
"author": "5x00",
"title": "ComfyUI-VLM_Captions",
"reference": "https://github.com/5x00/ComfyUI-VLM_Captions",
"files": [
"https://github.com/5x00/ComfyUI-VLM_Captions"
],
"install_type": "git-clone",
"description": "A simple ComfyUI node that let's you use Claude or ChatGPT 4o's VLM capabilities to generate captions/tags for images."
},
{
"author": "ClownsharkBatwing",
"title": "RES4LYF",
"id": "res4lyf",
"reference": "https://github.com/ClownsharkBatwing/RES4LYF",
"files": [
"https://github.com/ClownsharkBatwing/RES4LYF"
],
"install_type": "git-clone",
"description": "Advanced samplers with new noise scaling math to enable SDE sampling with all publicly available rectified flow models; new unsampling/noise inversion methods and other advanced techniques for inpainting and/or guiding the sampling process with latent images. 40 sampler types, 20 noise types, 7 noise scaling modes, in a single node. Also includes a wide variety of QoF and other utility nodes for manipulating sigmas, latents, images, and more."
},
@ -17863,6 +17926,17 @@
"install_type": "copy",
"description": "NODES:Animated Offset Padding, Animated Rotation & Zoom"
},
{
"author": "duskfallcrew",
"title": "Embedding Merge for ComfyUI",
"reference": "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node",
"files": [
"https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py"
],
"install_type": "copy",
"description": "Extremely inspired and forked from: [a/https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge](https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge)"
},
@ -17902,6 +17976,17 @@
"install_type": "unzip",
"description": "Various image processing nodes."
},
{
"author": "mithamunda",
"title": "Together Vision Node",
"id": "comfyui_together_vision",
"reference": "https://github.com/mithamunda/ComfyUI-TogetherVision",
"files": [
"https://github.com/mithamunda/ComfyUI-TogetherVision"
],
"install_type": "git-clone",
"description": "A custom ComfyUI node for generating AI-powered image descriptions using Together AI's Vision models (both free and paid versions). Features include customizable prompts, advanced generation parameters, and robust image handling with comprehensive error management."
},
{
"author": "aimingfail",
"title": "Image2Halftone Node for ComfyUI",
@ -17912,6 +17997,17 @@
],
"install_type": "unzip",
"description": "This is a node to convert an image into a CMYK Halftone dot image."
},
{
"author": "NeoGriever",
"title": "ComfyUI - NeoGriever",
"id": "neogrievernodes",
"reference": "https://github.com/NeoGriever/ComfyUI-NeoGriever",
"files": [
"https://github.com/NeoGriever/ComfyUI-NeoGriever"
],
"install_type": "git-clone",
"description": "NeoGriever's helper nodes. Better CLIP Text Encoder, Resolution Provider, Multimask Write/Read, TextBoxes Simple/Join/x2/x3, Sliders INT/FLOAT/STEPPER, String Tool/Squisher/Cutter, Create Solid Color, Fill with Color, Checkerboard Generator, Image Progress Bar"
}
]
}

View File

@ -252,21 +252,36 @@
"title_aux": "ComfyUI-DareMerge"
}
],
"https://github.com/5x00/ComfyUI-VLM_Captions": [
[
"Image To Caption"
],
{
"title_aux": "ComfyUI-VLM_Captions"
}
],
"https://github.com/6174/comflowy-nodes": [
[
"Comflowy_Clarity_Upscale",
"Comflowy_Extract_JSON",
"Comflowy_Flux",
"Comflowy_Flux_Dev_Lora",
"Comflowy_Flux_Pro_Ultra",
"Comflowy_Hailuo",
"Comflowy_Http_Request",
"Comflowy_Ideogram",
"Comflowy_Kling",
"Comflowy_LLM",
"Comflowy_Load_JSON",
"Comflowy_Luma",
"Comflowy_Omost_LLM",
"Comflowy_Omost_Load_Canvas_Conditioning",
"Comflowy_Omost_Load_Canvas_Python_Code",
"Comflowy_Omost_Preview",
"Comflowy_Omost_To_Conditioning",
"Comflowy_Preview_JSON",
"Comflowy_Preview_Video",
"Comflowy_Recraft",
"Comflowy_Set_API_Key"
],
{
@ -1918,7 +1933,8 @@
],
"https://github.com/Bria-AI/ComfyUI-BRIA-API": [
[
"BriaEraser"
"BriaEraser",
"BriaGenFill"
],
{
"title_aux": "BRIA AI API nodes"
@ -2066,6 +2082,107 @@
"title_aux": "ComfyUI-Line-counter"
}
],
"https://github.com/ClownsharkBatwing/RES4LYF": [
[
"AdvancedNoise",
"Base64ToConditioning",
"CLIPTextEncodeFluxUnguided",
"ClownSampler",
"ClownsharKSampler",
"ClownsharKSamplerAutomation",
"ClownsharKSamplerGuides",
"ClownsharKSamplerOptions",
"ClownsharKSamplerOptions_SDE_Noise",
"Conditioning Recast FP64",
"ConditioningAverageScheduler",
"ConditioningMultiply",
"ConditioningToBase64",
"ConditioningTruncate",
"ConditioningZeroAndTruncate",
"EmptyLatentImage64",
"EmptyLatentImageCustom",
"Film Grain",
"FluxLoader",
"Frequency Separation Hard Light",
"Frequency Separation Hard Light LAB",
"Image Channels LAB",
"Image Crop Location Exact",
"Image Median Blur",
"Image Pair Split",
"Latent Batcher",
"Latent Match Channelwise",
"Latent Normalize Channels",
"Latent to Cuda",
"LatentBatch_channels",
"LatentBatch_channels_16",
"LatentNoiseBatch_fractal",
"LatentNoiseBatch_gaussian",
"LatentNoiseBatch_gaussian_channels",
"LatentNoiseBatch_perlin",
"LatentNoiseList",
"LatentNoised",
"LatentPhaseMagnitude",
"LatentPhaseMagnitudeMultiply",
"LatentPhaseMagnitudeOffset",
"LatentPhaseMagnitudePower",
"Legacy_ClownSampler",
"Legacy_ClownsharKSampler",
"Legacy_ClownsharKSamplerGuides",
"PrepForUnsampling",
"SD35L_TimestepPatcher",
"SD35Loader",
"Sampler10th_World_Order",
"SamplerOptions_GarbageCollection",
"SamplerOptions_TimestepScaling",
"Set Precision",
"Set Precision Advanced",
"Set Precision Universal",
"SharkSampler",
"Sigmas Abs",
"Sigmas Add",
"Sigmas Cleanup",
"Sigmas Concat",
"Sigmas DeleteBelowFloor",
"Sigmas DeleteDuplicates",
"Sigmas From Text",
"Sigmas Iteration Karras",
"Sigmas Iteration Polyexp",
"Sigmas Math1",
"Sigmas Math3",
"Sigmas Modulus",
"Sigmas Mult",
"Sigmas Noise Inversion",
"Sigmas Pad",
"Sigmas Power",
"Sigmas Quotient",
"Sigmas Recast",
"Sigmas Rescale",
"Sigmas SetFloor",
"Sigmas Split",
"Sigmas Start",
"Sigmas Truncate",
"Sigmas Unpad",
"Sigmas Variance Floor",
"Sigmas2 Add",
"Sigmas2 Mult",
"SigmasPreview",
"StableCascade_StageB_Conditioning64",
"StableCascade_StageC_VAEEncode_Exact",
"StyleModelApplyAdvanced",
"Tan Scheduler",
"Tan Scheduler 2",
"Tan Scheduler 2 Simple",
"TextBox1",
"TextBox3",
"UNetSave",
"UltraSharkSampler",
"UltraSharkSampler Tiled",
"VGG19StyleTransfer"
],
{
"title_aux": "RES4LYF"
}
],
"https://github.com/Clybius/ComfyUI-Extra-Samplers": [
[
"GeometricCFGGuider",
@ -3664,6 +3781,7 @@
"https://github.com/Isulion/ComfyUI_Isulion": [
[
"IsuCollage_Node",
"Isulion Video Prompt Generator \ud83c\udfa5",
"IsulionActionGenerator",
"IsulionAlienWorldGenerator",
"IsulionAnimalBehaviorGenerator",
@ -3690,7 +3808,9 @@
"IsulionTechGenerator",
"IsulionTimeOfDayGenerator",
"IsulionWeatherGenerator",
"MegaPromptV3"
"MegaPromptV3",
"ResourceMonitor",
"\u23fb IsulionShutdown"
],
{
"title_aux": "ComfyUI_Isulion Random Prompt Generator"
@ -3729,6 +3849,25 @@
"title_aux": "ComfyUI_Qwen2-VL-Instruct"
}
],
"https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes": [
[
"DictBus",
"DictBusEdit",
"DictBusUnpack",
"DictMultilineSelect",
"DictTemplate",
"DictUpdate1",
"DictUpdate10",
"DictUpdate5",
"LoraPresetListLoader",
"LoraPresetLoader",
"LoraPresetSaver",
"LoraPresetSelector"
],
{
"title_aux": "ComfyUI_Eugene_Nodes"
}
],
"https://github.com/JPS-GER/ComfyUI_JPS-Nodes": [
[
"CLIPTextEncode SDXL Plus (JPS)",
@ -4171,14 +4310,20 @@
[
"ACN_AdvancedControlNetApply",
"ACN_AdvancedControlNetApplySingle",
"ACN_AdvancedControlNetApplySingle_v2",
"ACN_AdvancedControlNetApply_v2",
"ACN_ControlNet++InputNode",
"ACN_ControlNet++LoaderAdvanced",
"ACN_ControlNet++LoaderSingle",
"ACN_ControlNetLoaderAdvanced",
"ACN_ControlNetLoaderWithLoraAdvanced",
"ACN_CtrLoRALoader",
"ACN_CustomControlNetWeightsFlux",
"ACN_CustomControlNetWeightsSD15",
"ACN_CustomT2IAdapterWeights",
"ACN_DefaultUniversalWeights",
"ACN_DiffControlNetLoaderAdvanced",
"ACN_ExtrasMiddleMult",
"ACN_ReferenceControlNet",
"ACN_ReferenceControlNetFinetune",
"ACN_ReferencePreprocessor",
@ -4303,6 +4448,7 @@
"ADE_MultivalDynamicFloatInput",
"ADE_MultivalDynamicFloats",
"ADE_MultivalScaledMask",
"ADE_NoiseCalibration",
"ADE_NoiseLayerAdd",
"ADE_NoiseLayerAddWeighted",
"ADE_NoiseLayerReplace",
@ -5742,10 +5888,12 @@
],
"https://github.com/PnthrLeo/comfyUI-image-search": [
[
"AreasGenerator",
"BatchImageGetter",
"CloseImagesSearcher"
],
{
"title_aux": "comfyUI-image-search"
"title_aux": "comfyUI-PL-data-tools"
}
],
"https://github.com/Pos13/comfyui-cyclist": [
@ -6871,6 +7019,26 @@
"title_aux": "stability-ComfyUI-nodes"
}
],
"https://github.com/StableDiffusionVN/SDVN_Comfy_node": [
[
"SDVN API chatbot",
"SDVN Checkpoint Download",
"SDVN DALL-E Generate Image",
"SDVN Easy IPAdapter weight",
"SDVN Load Checkpoint",
"SDVN Load Image",
"SDVN Load Image Url",
"SDVN Load Lora",
"SDVN Lora Download",
"SDVN Merge Flux",
"SDVN Merge SD1",
"SDVN Merge SDXL",
"SDVN Run Python Code"
],
{
"title_aux": "SDVN Comfy node"
}
],
"https://github.com/StarMagicAI/comfyui_tagger": [
[
"DownloadAndLoadFlorence2Lora_jsonL",
@ -6982,11 +7150,13 @@
[
"Combine Tiles",
"Divide Image",
"Divide Image and Select Tile",
"Divide and Conquer Algorithm",
"Divide and Conquer Algorithm (No Upscale)",
"Make Size"
],
{
"title_aux": "ComfyUI_Steudio"
"title_aux": "ComfyUI Steudio"
}
],
"https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": [
@ -7877,6 +8047,7 @@
"VrchBooleanKeyControlNode",
"VrchChannelOSCControlNode",
"VrchChannelX4OSCControlNode",
"VrchDelayOSCControlNode",
"VrchFloatKeyControlNode",
"VrchFloatOSCControlNode",
"VrchImageFlipBookWebViewerNode",
@ -9494,6 +9665,8 @@
"FilterSchedule",
"LoRAScheduler",
"PCApplySettings",
"PCEncodeSchedule",
"PCLoraHooksFromSchedule",
"PCPromptFromSchedule",
"PCScheduleAddMasks",
"PCScheduleSettings",
@ -11471,12 +11644,17 @@
],
"https://github.com/clhui/ComfyUi-clh-Tool": [
[
"EchartGraph_clh",
"EchartOptionByPath_clh",
"EchartOption_clh",
"INTConstant_clh",
"JoinStringMulti_clh",
"MathExpression_clh",
"ShowText|clh",
"SomethingToString_clh",
"String2FatLabels_clh",
"String2Image_clh"
"String2Image_clh",
"StringConstant_clh"
],
{
"author": "Dr.Lt.Data",
@ -12888,6 +13066,14 @@
"title_aux": "ObjectFusion_ComfyUI_nodes"
}
],
"https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py": [
[
"EmbeddingMerger"
],
{
"title_aux": "Embedding Merge for ComfyUI"
}
],
"https://github.com/dymokomi/comfyui_dygen": [
[
"AdaptiveColorCircles",
@ -14544,6 +14730,7 @@
"LLM_local",
"LLM_local_loader",
"LLavaLoader",
"LorapathLoader",
"Lorebook",
"RSS_loader",
"RSS_tool",
@ -14595,6 +14782,8 @@
"file_combine_plus",
"file_path_iterator",
"files_read_tool",
"fish_tts",
"fish_whisper",
"flux_persona",
"genai_api_loader",
"get_string",
@ -16862,7 +17051,7 @@
"ZoomOutComposer",
"concat",
"filter",
"nodevalue2string",
"nodevalue2stringmulti",
"string_contact_multi"
],
{
@ -17331,6 +17520,7 @@
],
"https://github.com/liuqianhonga/ComfyUI-Image-Compressor": [
[
"BatchImageCompressor",
"ImageCompressor"
],
{
@ -17514,6 +17704,7 @@
"MaskToBase64",
"MaskToBase64Image",
"MaskToRle",
"ReadTextFromLocalFile",
"RleToMask",
"SDBaseVerNumber",
"SamAutoMaskSEGS",
@ -17521,6 +17712,7 @@
"SaveImagesWithoutOutput",
"SaveSingleImageWithoutOutput",
"SaveTextToFileByImagePath",
"SaveTextToLocalFile",
"SelectBbox",
"SelectBboxes",
"ShowBoolean",
@ -17655,7 +17847,9 @@
"AddLatentGuide",
"LTXAttentioOverride",
"LTXAttentionBank",
"LTXAttnOverride",
"LTXForwardModelSamplingPred",
"LTXPerturbedAttention",
"LTXPrepareAttnInjections",
"LTXRFForwardODESampler",
"LTXRFReverseODESampler",
@ -17913,6 +18107,7 @@
"https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils": [
[
"AddMaskForICLora",
"AutoPatch",
"ConcatContextWindow",
"CreateContextWindow"
],
@ -18363,7 +18558,9 @@
"https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper": [
[
"CatvtonFluxSampler",
"LoadCatvtonFlux"
"LoadCatvtonFlux",
"LoadCatvtonFluxLoRA",
"ModelPrinter"
],
{
"title_aux": "ComfyUI-CatvtonFluxWrapper"
@ -23339,6 +23536,15 @@
"title_aux": "ComfyUI Neural Nodes"
}
],
"https://github.com/xs315431/Comfyui_Get_promptId": [
[
"GetPromptId",
"SuccessCallback"
],
{
"title_aux": "Comfyui_Get_promptId"
}
],
"https://github.com/xuhongming251/ComfyUI-GPEN": [
[
"FaceEnhancement"
@ -23818,6 +24024,7 @@
"https://github.com/yorkane/ComfyUI-KYNode": [
[
"AdvancedLyingSigmaSampler",
"KY_OpenAICaptionImage",
"KY_SaveImageToPath"
],
{

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,7 @@ sys.path.append(glob_path)
import cm_global
from manager_util import *
version = [2, 54]
version = [2, 55, 3]
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')
@ -52,9 +52,21 @@ def get_custom_nodes_paths():
return [custom_nodes_path]
def get_comfyui_tag():
repo = git.Repo(comfy_path)
try:
return repo.git.describe('--tags')
except:
return None
comfy_path = os.environ.get('COMFYUI_PATH')
if comfy_path is None:
comfy_path = os.path.abspath(os.path.join(custom_nodes_path, '..'))
try:
import folder_paths
comfy_path = os.path.join(os.path.dirname(folder_paths.__file__))
except:
comfy_path = os.path.abspath(os.path.join(custom_nodes_path, '..'))
channel_list_path = os.path.join(comfyui_manager_path, 'channels.list')
config_path = os.path.join(comfyui_manager_path, "config.ini")

View File

@ -181,7 +181,7 @@ def print_comfyui_version():
try:
if core.comfy_ui_commit_datetime.date() < core.comfy_ui_required_commit_datetime.date():
print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.comfy_ui_revision})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n")
print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.get_comfyui_tag()})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n")
except:
pass
@ -200,7 +200,11 @@ def print_comfyui_version():
# <--
if current_branch == "master":
print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
version_tag = core.get_comfyui_tag()
if version_tag is None:
print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
else:
print(f"### ComfyUI Version: {core.get_comfyui_tag()} | Released on '{core.comfy_ui_commit_datetime.date()}'")
else:
print(f"### ComfyUI Revision: {core.comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'")
except:
@ -255,7 +259,7 @@ def get_model_dir(data):
def resolve_custom_node(save_path):
save_path = save_path[13:] # remove 'custom_nodes/'
repo_name = os.path.dirname(save_path) # get custom node repo name
repo_name = save_path.replace('\\','/').split('/')[0] # get custom node repo name
repo_path = core.lookup_installed_custom_nodes(repo_name)
if repo_path is not None and repo_path[0]:
# Returns the retargeted path based on the actually installed repository
@ -1203,14 +1207,21 @@ async def get_notice(request):
if match:
markdown_content = match.group(1)
markdown_content += f"<HR>ComfyUI: {core.comfy_ui_revision}[{comfy_ui_hash[:6]}]({core.comfy_ui_commit_datetime.date()})"
version_tag = core.get_comfyui_tag()
if version_tag is None:
markdown_content += f"<HR>ComfyUI: {core.comfy_ui_revision}[{comfy_ui_hash[:6]}]({core.comfy_ui_commit_datetime.date()})"
else:
markdown_content += (f"<HR>ComfyUI: {version_tag}<BR>"
f"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;({core.comfy_ui_commit_datetime.date()})")
# markdown_content += f"<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;()"
markdown_content += f"<BR>Manager: {core.version_str}"
markdown_content = add_target_blank(markdown_content)
try:
if core.comfy_ui_required_commit_datetime.date() > core.comfy_ui_commit_datetime.date():
if core.comfy_ui_commit_datetime == datetime(1900, 1, 1, 0, 0, 0):
markdown_content = f'<P style="text-align: center; color:red; background-color:white; font-weight:bold">Your ComfyUI isn\'t git repo.</P>' + markdown_content
elif core.comfy_ui_required_commit_datetime.date() > core.comfy_ui_commit_datetime.date():
markdown_content = f'<P style="text-align: center; color:red; background-color:white; font-weight:bold">Your ComfyUI is too OUTDATED!!!</P>' + markdown_content
except:
pass

View File

@ -29,12 +29,31 @@ Detailed information: https://old.reddit.com/r/comfyui/comments/1dbls5n/psa_if_y
2. Remove files: lolMiner*, 4G_Ethash_Linux_Readme.txt, mine* in ComfyUI dir.
(Reinstall ComfyUI is recommended.)
""",
"ultralytics==8.3.41": f"""
Execute following commands:
{sys.executable} -m pip uninstall ultralytics
{sys.executable} -m pip install ultralytics==8.3.40
The version 8.3.41 to 8.3.42 of the Ultralytics package you installed is compromised. Please uninstall that version and reinstall the latest version.
https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/843
""",
"ultralytics==8.3.42": f"""
Execute following commands:
{sys.executable} -m pip uninstall ultralytics
{sys.executable} -m pip install ultralytics==8.3.40
The version 8.3.41 to 8.3.42 of the Ultralytics package you installed is compromised. Please uninstall that version and reinstall the latest version.
https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/843
"""
}
node_blacklist = {"ComfyUI_LLMVISION": "ComfyUI_LLMVISION"}
pip_blacklist = {"AppleBotzz": "ComfyUI_LLMVISION"}
pip_blacklist = {
"AppleBotzz": "ComfyUI_LLMVISION",
"ultralytics==8.3.41": "ultralytics==8.3.41"
}
file_blacklist = {
"ComfyUI_LLMVISION": ["%LocalAppData%\\rundll64.exe"],

View File

@ -4499,7 +4499,7 @@
{
"name": "pulid_flux_v0.9.1.safetensors",
"type": "PuLID",
"base": "FLUX",
"base": "FLUX.1",
"save_path": "pulid",
"description": "This is required for PuLID (FLUX)",
"reference": "https://huggingface.co/guozinan/PuLID",

View File

@ -15,6 +15,66 @@
{
"author": "kijai",
"title": "ComfyUI-HunyuanVideoWrapper [WIP]",
"reference": "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper",
"files": [
"https://github.com/kijai/ComfyUI-HunyuanVideoWrapper"
],
"install_type": "git-clone",
"description": "ComfyUI wrapper nodes for [a/HunyuanVideo](https://github.com/Tencent/HunyuanVideo)"
},
{
"author": "grimli333",
"title": "ComfyUI_Grim",
"reference": "https://github.com/grimli333/ComfyUI_Grim",
"files": [
"https://github.com/grimli333/ComfyUI_Grim"
],
"install_type": "git-clone",
"description": "NODES: Generate a unique filename and folder name, Format Strings with Two Inputs"
},
{
"author": "risunobushi",
"title": "ComfyUI_FocusMask",
"reference": "https://github.com/risunobushi/ComfyUI_FocusMask",
"files": [
"https://github.com/risunobushi/ComfyUI_FocusMask"
],
"install_type": "git-clone",
"description": "NODES: Extract Focus Mask"
},
{
"author": "ACE-innovate",
"title": "seg-node [WIP]",
"reference": "https://github.com/ACE-innovate/seg-node",
"files": [
"https://github.com/ACE-innovate/seg-node"
],
"install_type": "git-clone",
"description": "hf cloth seg custom node for comfyui\nNOTE: The files in the repo are not organized."
},
{
"author": "RicherdLee",
"title": "comfyui-oss-image-save [WIP]",
"reference": "https://github.com/RicherdLee/comfyui-oss-image-save",
"files": [
"https://github.com/RicherdLee/comfyui-oss-image-save"
],
"install_type": "git-clone",
"description": "NODES: SaveImageOSS."
},
{
"author": "Matrix-King-Studio",
"title": "ComfyUI-MoviePy",
"reference": "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy",
"files": [
"https://github.com/Matrix-King-Studio/ComfyUI-MoviePy"
],
"install_type": "git-clone",
"description": "NODES: Image Clip Node, Audio Duration Node, Save Video Node,..."
},
{
"author": "sh570655308",
"title": "ComfyUI-GigapixelAI [WIP]",
@ -56,16 +116,6 @@
"install_type": "git-clone",
"description": "Nodes to use SmolVLM for image tagging and captioning.\nNOTE: The files in the repo are not organized."
},
{
"author": "StableDiffusionVN",
"title": "SDVN_Comfy_node",
"reference": "https://github.com/StableDiffusionVN/SDVN_Comfy_node",
"files": [
"https://github.com/StableDiffusionVN/SDVN_Comfy_node"
],
"install_type": "git-clone",
"description": "NODES:SDVN Load Image"
},
{
"author": "anze",
"title": "ComfyUI-OIDN [WIP]",

View File

@ -175,6 +175,14 @@
"title_aux": "ComfyUI_AC_FUNV8Beta1"
}
],
"https://github.com/ACE-innovate/seg-node": [
[
"HumanParseNode"
],
{
"title_aux": "seg-node [WIP]"
}
],
"https://github.com/AICodeFactory/ComfyUI-Viva": [
[
"HttpTrigger_Common",
@ -671,6 +679,7 @@
"AppIO_ImageInputFromID",
"AppIO_ImageOutput",
"AppIO_IntegerInput",
"AppIO_ResizeInstanceAndPaste",
"AppIO_ResizeInstanceImageMask",
"AppIO_StringInput",
"AppIO_StringOutput"
@ -971,6 +980,16 @@
"title_aux": "ComfyUI Nodes for Inference.Core"
}
],
"https://github.com/Matrix-King-Studio/ComfyUI-MoviePy": [
[
"AudioDurationNode",
"ImageClipNode",
"SaveVideo"
],
{
"title_aux": "ComfyUI-MoviePy"
}
],
"https://github.com/MrAdamBlack/CheckProgress": [
[
"CHECK_PROGRESS"
@ -998,6 +1017,8 @@
],
"https://github.com/PnthrLeo/comfyUI-image-search": [
[
"AreasGenerator",
"BatchImageGetter",
"CloseImagesSearcher"
],
{
@ -1065,6 +1086,14 @@
"title_aux": "ComfyUI-QuasimondoNodes [WIP]"
}
],
"https://github.com/RicherdLee/comfyui-oss-image-save": [
[
"SaveImageOSS"
],
{
"title_aux": "comfyui-oss-image-save [WIP]"
}
],
"https://github.com/RobeSantoro/ComfyUI-RobeNodes": [
[
"List Image Path \ud83d\udc24",
@ -1194,22 +1223,6 @@
"title_aux": "ComfyUI_Remaker_FaceSwap"
}
],
"https://github.com/StableDiffusionVN/SDVN_Comfy_node": [
[
"SDVN Checkpoint Download",
"SDVN Load Checkpoint",
"SDVN Load Image",
"SDVN Load Image Url",
"SDVN Load Lora",
"SDVN Lora Download",
"SDVN Merge Flux",
"SDVN Merge SD1",
"SDVN Merge SDXL"
],
{
"title_aux": "SDVN_Comfy_node"
}
],
"https://github.com/StartHua/Comfyui_CSDMT_CXH": [
[
"CSD"
@ -2315,6 +2328,15 @@
"title_aux": "ComfyUI-Tools-Video-Combine [WIP]"
}
],
"https://github.com/grimli333/ComfyUI_Grim": [
[
"GenerateFileName",
"TwoStringsFormat"
],
{
"title_aux": "ComfyUI_Grim"
}
],
"https://github.com/haodman/ComfyUI_Rain": [
[
"Rain_ImageSize",
@ -2797,6 +2819,19 @@
"title_aux": "ComfyUI-FollowYourEmojiWrapper [WIP]"
}
],
"https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": [
[
"DownloadAndLoadHyVideoTextEncoder",
"HyVideoDecode",
"HyVideoModelLoader",
"HyVideoSampler",
"HyVideoTextEncode",
"HyVideoVAELoader"
],
{
"title_aux": "ComfyUI-HunyuanVideoWrapper [WIP]"
}
],
"https://github.com/kijai/ComfyUI-MochiWrapper": [
[
"DownloadAndLoadMochiModel",
@ -2848,9 +2883,19 @@
"https://github.com/kostenickj/comfyui-jk-easy-nodes": [
[
"EasyHRFix",
"EasyHRFix_Context",
"JKAnythingToString",
"JKBigContext",
"JKDynamicThresholdingMultiModel",
"JKEasyCheckpointLoader",
"JKEasyDetailer",
"JKInspireSchedulerAdapter"
"JKEasyDetailer_Context",
"JKInspireSchedulerAdapter",
"JKLilContext",
"JKStringEmpty",
"JKStringEquals",
"JKStringNotEmpty",
"JKStringNotEquals"
],
{
"title_aux": "comfyui-jk-easy-nodes"
@ -3488,6 +3533,15 @@
"title_aux": "ComfyUI-ODE"
}
],
"https://github.com/risunobushi/ComfyUI_FocusMask": [
[
"FocusMaskExtractor",
"FocusOutlineExtractor"
],
{
"title_aux": "ComfyUI_FocusMask"
}
],
"https://github.com/rouxianmantou/comfyui-rxmt-nodes": [
[
"CheckValueTypeNode"
@ -3868,13 +3922,16 @@
],
"https://github.com/wilzamguerrero/Comfyui-zZzZz": [
[
"CaptureZNode",
"CompressFolderNode",
"CreateZNode",
"DeleteZNode",
"DownloadFileNode",
"InfiniteZNode",
"MoveZNode",
"RenameZNode"
"RenameZNode",
"VideoZNode",
"ZFShareScreen"
],
{
"title_aux": "Comfyui-zZzZz [UNSAFE]"
@ -3942,6 +3999,7 @@
"UL_SanaModelLoader",
"UL_SanaSampler",
"UL_SanaTextEncode",
"UL_SanaVAELoader",
"UL_SanaVAEProcess"
],
{

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,16 @@
},
{
"author": "animEEEmpire",
"title": "ComfyUI-Animemory-Loader [REMOVED]",
"reference": "https://github.com/animEEEmpire/ComfyUI-Animemory-Loader",
"files": [
"https://github.com/animEEEmpire/ComfyUI-Animemory-Loader"
],
"install_type": "git-clone",
"description": "AniMemory-alpha Custom Node for ComfyUI"
},
{
"author": "zefu-lu",
"title": "ComfyUI_InstantX_SD35_Large_IPAdapter [REMOVED]",

View File

@ -9,7 +9,79 @@
},
{
"author": "ClownsharkBatwing",
"title": "RES4LYF",
"id": "res4lyf",
"reference": "https://github.com/ClownsharkBatwing/RES4LYF",
"files": [
"https://github.com/ClownsharkBatwing/RES4LYF"
],
"install_type": "git-clone",
"description": "Advanced samplers with new noise scaling math to enable SDE sampling with all publicly available rectified flow models; new unsampling/noise inversion methods and other advanced techniques for inpainting and/or guiding the sampling process with latent images. 40 sampler types, 20 noise types, 7 noise scaling modes, in a single node. Also includes a wide variety of QoF and other utility nodes for manipulating sigmas, latents, images, and more."
},
{
"author": "duskfallcrew",
"title": "Embedding Merge for ComfyUI",
"reference": "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node",
"files": [
"https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py"
],
"install_type": "copy",
"description": "Extremely inspired and forked from: [a/https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge](https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge)"
},
{
"author": "5x00",
"title": "ComfyUI-VLM_Captions",
"reference": "https://github.com/5x00/ComfyUI-VLM_Captions",
"files": [
"https://github.com/5x00/ComfyUI-VLM_Captions"
],
"install_type": "git-clone",
"description": "A simple ComfyUI node that let's you use Claude or ChatGPT 4o's VLM capabilities to generate captions/tags for images."
},
{
"author": "xs315431",
"title": "Comfyui_Get_promptId",
"reference": "https://github.com/xs315431/Comfyui_Get_promptId",
"files": [
"https://github.com/xs315431/Comfyui_Get_promptId"
],
"install_type": "git-clone",
"description": "NODES: Get Prompt_Id, Success Callback\nget comfyui task id and Callback for successful image generation, in conjunction with the back-end"
},
{
"author": "Rvage0815",
"title": "RvTComfyUI-RvTools_v2",
"reference": "https://github.com/Rvage0815/ComfyUI-RvTools_v2",
"files": [
"https://github.com/Rvage0815/ComfyUI-RvTools_v2"
],
"install_type": "git-clone",
"description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows."
},
{
"author": "Eugene (JEONG-JIWOO)",
"title": "ComfyUI_Eugene_Nodes",
"reference": "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes",
"files": [
"https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes"
],
"install_type": "git-clone",
"description": "A collection of utility nodes using Dictionary designed to optimize and manage workflows in ComfyUI."
},
{
"author": "Stable Diffusion VN",
"title": "SDVN Comfy node",
"id": "SDVN",
"reference": "https://github.com/StableDiffusionVN/SDVN_Comfy_node",
"files": [
"https://github.com/StableDiffusionVN/SDVN_Comfy_node"
],
"install_type": "git-clone",
"description": "Collection of nodes supports using comfyUi more quickly and conveniently (Auto download model, image, easy merger ...)"
},
{
"author": "lujiazho",
"title": "ComfyUI-CatvtonFluxWrapper",
@ -621,66 +693,6 @@
],
"install_type": "git-clone",
"description": "Face Anonymization make simple and easy."
},
{
"author": "liuqianhonga",
"title": "ComfyUI-Image-Compressor",
"reference": "https://github.com/liuqianhonga/ComfyUI-Image-Compressor",
"files": [
"https://github.com/liuqianhonga/ComfyUI-Image-Compressor"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for image compression that supports multiple compression formats and parameter adjustments."
},
{
"author": "duhaifeng",
"title": "ComfyUI-BiRefNet-lite",
"reference": "https://github.com/rubi-du/ComfyUI-BiRefNet-lite",
"files": [
"https://github.com/rubi-du/ComfyUI-BiRefNet-lite"
],
"install_type": "git-clone",
"description": "This repository packages the latest BiRefNet model as a ComfyUI node for use, supporting chunked loading on both CPU and GPU, as well as model caching features."
},
{
"author": "tanglup",
"title": "Comfyui-Ycnode",
"reference": "https://github.com/tanglup/Comfyui-Ycnode",
"files": [
"https://github.com/tanglup/Comfyui-Ycnode"
],
"install_type": "git-clone",
"description": "NODES:Canvas View"
},
{
"author": "vkff5833",
"title": "ComfyUI-PromptConverter",
"reference": "https://github.com/vkff5833/ComfyUI-PromptConverter",
"files": [
"https://github.com/vkff5833/ComfyUI-PromptConverter"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node that converts prompts between different AI image generation models."
},
{
"author": "c0ffymachyne",
"title": "ComfyUI Signal Processing",
"reference": "https://github.com/c0ffymachyne/ComfyUI_SingalProcessing",
"files": [
"https://github.com/c0ffymachyne/ComfyUI_SingalProcessing"
],
"install_type": "git-clone",
"description": "NODES:SignalProcessingPaulStretch, SignalProcessingPadSynth, SignalProcessingFilter, SignalProcessingLoadAudio.\nThis repo contains 4 nodes for ComfyUI that allows for audio filtering"
},
{
"author": "BIMer-99",
"title": "Comfyui_Hunyuan3D_EX",
"reference": "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX",
"files": [
"https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX"
],
"install_type": "git-clone",
"description": "This is a custom node designed to simplify the use of Hunyuan3D in ComfyUI"
}
]
}

View File

@ -252,21 +252,36 @@
"title_aux": "ComfyUI-DareMerge"
}
],
"https://github.com/5x00/ComfyUI-VLM_Captions": [
[
"Image To Caption"
],
{
"title_aux": "ComfyUI-VLM_Captions"
}
],
"https://github.com/6174/comflowy-nodes": [
[
"Comflowy_Clarity_Upscale",
"Comflowy_Extract_JSON",
"Comflowy_Flux",
"Comflowy_Flux_Dev_Lora",
"Comflowy_Flux_Pro_Ultra",
"Comflowy_Hailuo",
"Comflowy_Http_Request",
"Comflowy_Ideogram",
"Comflowy_Kling",
"Comflowy_LLM",
"Comflowy_Load_JSON",
"Comflowy_Luma",
"Comflowy_Omost_LLM",
"Comflowy_Omost_Load_Canvas_Conditioning",
"Comflowy_Omost_Load_Canvas_Python_Code",
"Comflowy_Omost_Preview",
"Comflowy_Omost_To_Conditioning",
"Comflowy_Preview_JSON",
"Comflowy_Preview_Video",
"Comflowy_Recraft",
"Comflowy_Set_API_Key"
],
{
@ -1918,7 +1933,8 @@
],
"https://github.com/Bria-AI/ComfyUI-BRIA-API": [
[
"BriaEraser"
"BriaEraser",
"BriaGenFill"
],
{
"title_aux": "BRIA AI API nodes"
@ -2066,6 +2082,107 @@
"title_aux": "ComfyUI-Line-counter"
}
],
"https://github.com/ClownsharkBatwing/RES4LYF": [
[
"AdvancedNoise",
"Base64ToConditioning",
"CLIPTextEncodeFluxUnguided",
"ClownSampler",
"ClownsharKSampler",
"ClownsharKSamplerAutomation",
"ClownsharKSamplerGuides",
"ClownsharKSamplerOptions",
"ClownsharKSamplerOptions_SDE_Noise",
"Conditioning Recast FP64",
"ConditioningAverageScheduler",
"ConditioningMultiply",
"ConditioningToBase64",
"ConditioningTruncate",
"ConditioningZeroAndTruncate",
"EmptyLatentImage64",
"EmptyLatentImageCustom",
"Film Grain",
"FluxLoader",
"Frequency Separation Hard Light",
"Frequency Separation Hard Light LAB",
"Image Channels LAB",
"Image Crop Location Exact",
"Image Median Blur",
"Image Pair Split",
"Latent Batcher",
"Latent Match Channelwise",
"Latent Normalize Channels",
"Latent to Cuda",
"LatentBatch_channels",
"LatentBatch_channels_16",
"LatentNoiseBatch_fractal",
"LatentNoiseBatch_gaussian",
"LatentNoiseBatch_gaussian_channels",
"LatentNoiseBatch_perlin",
"LatentNoiseList",
"LatentNoised",
"LatentPhaseMagnitude",
"LatentPhaseMagnitudeMultiply",
"LatentPhaseMagnitudeOffset",
"LatentPhaseMagnitudePower",
"Legacy_ClownSampler",
"Legacy_ClownsharKSampler",
"Legacy_ClownsharKSamplerGuides",
"PrepForUnsampling",
"SD35L_TimestepPatcher",
"SD35Loader",
"Sampler10th_World_Order",
"SamplerOptions_GarbageCollection",
"SamplerOptions_TimestepScaling",
"Set Precision",
"Set Precision Advanced",
"Set Precision Universal",
"SharkSampler",
"Sigmas Abs",
"Sigmas Add",
"Sigmas Cleanup",
"Sigmas Concat",
"Sigmas DeleteBelowFloor",
"Sigmas DeleteDuplicates",
"Sigmas From Text",
"Sigmas Iteration Karras",
"Sigmas Iteration Polyexp",
"Sigmas Math1",
"Sigmas Math3",
"Sigmas Modulus",
"Sigmas Mult",
"Sigmas Noise Inversion",
"Sigmas Pad",
"Sigmas Power",
"Sigmas Quotient",
"Sigmas Recast",
"Sigmas Rescale",
"Sigmas SetFloor",
"Sigmas Split",
"Sigmas Start",
"Sigmas Truncate",
"Sigmas Unpad",
"Sigmas Variance Floor",
"Sigmas2 Add",
"Sigmas2 Mult",
"SigmasPreview",
"StableCascade_StageB_Conditioning64",
"StableCascade_StageC_VAEEncode_Exact",
"StyleModelApplyAdvanced",
"Tan Scheduler",
"Tan Scheduler 2",
"Tan Scheduler 2 Simple",
"TextBox1",
"TextBox3",
"UNetSave",
"UltraSharkSampler",
"UltraSharkSampler Tiled",
"VGG19StyleTransfer"
],
{
"title_aux": "RES4LYF"
}
],
"https://github.com/Clybius/ComfyUI-Extra-Samplers": [
[
"GeometricCFGGuider",
@ -3664,6 +3781,7 @@
"https://github.com/Isulion/ComfyUI_Isulion": [
[
"IsuCollage_Node",
"Isulion Video Prompt Generator \ud83c\udfa5",
"IsulionActionGenerator",
"IsulionAlienWorldGenerator",
"IsulionAnimalBehaviorGenerator",
@ -3690,7 +3808,9 @@
"IsulionTechGenerator",
"IsulionTimeOfDayGenerator",
"IsulionWeatherGenerator",
"MegaPromptV3"
"MegaPromptV3",
"ResourceMonitor",
"\u23fb IsulionShutdown"
],
{
"title_aux": "ComfyUI_Isulion Random Prompt Generator"
@ -3729,6 +3849,25 @@
"title_aux": "ComfyUI_Qwen2-VL-Instruct"
}
],
"https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes": [
[
"DictBus",
"DictBusEdit",
"DictBusUnpack",
"DictMultilineSelect",
"DictTemplate",
"DictUpdate1",
"DictUpdate10",
"DictUpdate5",
"LoraPresetListLoader",
"LoraPresetLoader",
"LoraPresetSaver",
"LoraPresetSelector"
],
{
"title_aux": "ComfyUI_Eugene_Nodes"
}
],
"https://github.com/JPS-GER/ComfyUI_JPS-Nodes": [
[
"CLIPTextEncode SDXL Plus (JPS)",
@ -4171,14 +4310,20 @@
[
"ACN_AdvancedControlNetApply",
"ACN_AdvancedControlNetApplySingle",
"ACN_AdvancedControlNetApplySingle_v2",
"ACN_AdvancedControlNetApply_v2",
"ACN_ControlNet++InputNode",
"ACN_ControlNet++LoaderAdvanced",
"ACN_ControlNet++LoaderSingle",
"ACN_ControlNetLoaderAdvanced",
"ACN_ControlNetLoaderWithLoraAdvanced",
"ACN_CtrLoRALoader",
"ACN_CustomControlNetWeightsFlux",
"ACN_CustomControlNetWeightsSD15",
"ACN_CustomT2IAdapterWeights",
"ACN_DefaultUniversalWeights",
"ACN_DiffControlNetLoaderAdvanced",
"ACN_ExtrasMiddleMult",
"ACN_ReferenceControlNet",
"ACN_ReferenceControlNetFinetune",
"ACN_ReferencePreprocessor",
@ -4303,6 +4448,7 @@
"ADE_MultivalDynamicFloatInput",
"ADE_MultivalDynamicFloats",
"ADE_MultivalScaledMask",
"ADE_NoiseCalibration",
"ADE_NoiseLayerAdd",
"ADE_NoiseLayerAddWeighted",
"ADE_NoiseLayerReplace",
@ -5742,10 +5888,12 @@
],
"https://github.com/PnthrLeo/comfyUI-image-search": [
[
"AreasGenerator",
"BatchImageGetter",
"CloseImagesSearcher"
],
{
"title_aux": "comfyUI-image-search"
"title_aux": "comfyUI-PL-data-tools"
}
],
"https://github.com/Pos13/comfyui-cyclist": [
@ -6871,6 +7019,26 @@
"title_aux": "stability-ComfyUI-nodes"
}
],
"https://github.com/StableDiffusionVN/SDVN_Comfy_node": [
[
"SDVN API chatbot",
"SDVN Checkpoint Download",
"SDVN DALL-E Generate Image",
"SDVN Easy IPAdapter weight",
"SDVN Load Checkpoint",
"SDVN Load Image",
"SDVN Load Image Url",
"SDVN Load Lora",
"SDVN Lora Download",
"SDVN Merge Flux",
"SDVN Merge SD1",
"SDVN Merge SDXL",
"SDVN Run Python Code"
],
{
"title_aux": "SDVN Comfy node"
}
],
"https://github.com/StarMagicAI/comfyui_tagger": [
[
"DownloadAndLoadFlorence2Lora_jsonL",
@ -6982,11 +7150,13 @@
[
"Combine Tiles",
"Divide Image",
"Divide Image and Select Tile",
"Divide and Conquer Algorithm",
"Divide and Conquer Algorithm (No Upscale)",
"Make Size"
],
{
"title_aux": "ComfyUI_Steudio"
"title_aux": "ComfyUI Steudio"
}
],
"https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": [
@ -7877,6 +8047,7 @@
"VrchBooleanKeyControlNode",
"VrchChannelOSCControlNode",
"VrchChannelX4OSCControlNode",
"VrchDelayOSCControlNode",
"VrchFloatKeyControlNode",
"VrchFloatOSCControlNode",
"VrchImageFlipBookWebViewerNode",
@ -9494,6 +9665,8 @@
"FilterSchedule",
"LoRAScheduler",
"PCApplySettings",
"PCEncodeSchedule",
"PCLoraHooksFromSchedule",
"PCPromptFromSchedule",
"PCScheduleAddMasks",
"PCScheduleSettings",
@ -11471,12 +11644,17 @@
],
"https://github.com/clhui/ComfyUi-clh-Tool": [
[
"EchartGraph_clh",
"EchartOptionByPath_clh",
"EchartOption_clh",
"INTConstant_clh",
"JoinStringMulti_clh",
"MathExpression_clh",
"ShowText|clh",
"SomethingToString_clh",
"String2FatLabels_clh",
"String2Image_clh"
"String2Image_clh",
"StringConstant_clh"
],
{
"author": "Dr.Lt.Data",
@ -12888,6 +13066,14 @@
"title_aux": "ObjectFusion_ComfyUI_nodes"
}
],
"https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py": [
[
"EmbeddingMerger"
],
{
"title_aux": "Embedding Merge for ComfyUI"
}
],
"https://github.com/dymokomi/comfyui_dygen": [
[
"AdaptiveColorCircles",
@ -14544,6 +14730,7 @@
"LLM_local",
"LLM_local_loader",
"LLavaLoader",
"LorapathLoader",
"Lorebook",
"RSS_loader",
"RSS_tool",
@ -14595,6 +14782,8 @@
"file_combine_plus",
"file_path_iterator",
"files_read_tool",
"fish_tts",
"fish_whisper",
"flux_persona",
"genai_api_loader",
"get_string",
@ -16862,7 +17051,7 @@
"ZoomOutComposer",
"concat",
"filter",
"nodevalue2string",
"nodevalue2stringmulti",
"string_contact_multi"
],
{
@ -17331,6 +17520,7 @@
],
"https://github.com/liuqianhonga/ComfyUI-Image-Compressor": [
[
"BatchImageCompressor",
"ImageCompressor"
],
{
@ -17514,6 +17704,7 @@
"MaskToBase64",
"MaskToBase64Image",
"MaskToRle",
"ReadTextFromLocalFile",
"RleToMask",
"SDBaseVerNumber",
"SamAutoMaskSEGS",
@ -17521,6 +17712,7 @@
"SaveImagesWithoutOutput",
"SaveSingleImageWithoutOutput",
"SaveTextToFileByImagePath",
"SaveTextToLocalFile",
"SelectBbox",
"SelectBboxes",
"ShowBoolean",
@ -17655,7 +17847,9 @@
"AddLatentGuide",
"LTXAttentioOverride",
"LTXAttentionBank",
"LTXAttnOverride",
"LTXForwardModelSamplingPred",
"LTXPerturbedAttention",
"LTXPrepareAttnInjections",
"LTXRFForwardODESampler",
"LTXRFReverseODESampler",
@ -17913,6 +18107,7 @@
"https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils": [
[
"AddMaskForICLora",
"AutoPatch",
"ConcatContextWindow",
"CreateContextWindow"
],
@ -18363,7 +18558,9 @@
"https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper": [
[
"CatvtonFluxSampler",
"LoadCatvtonFlux"
"LoadCatvtonFlux",
"LoadCatvtonFluxLoRA",
"ModelPrinter"
],
{
"title_aux": "ComfyUI-CatvtonFluxWrapper"
@ -23339,6 +23536,15 @@
"title_aux": "ComfyUI Neural Nodes"
}
],
"https://github.com/xs315431/Comfyui_Get_promptId": [
[
"GetPromptId",
"SuccessCallback"
],
{
"title_aux": "Comfyui_Get_promptId"
}
],
"https://github.com/xuhongming251/ComfyUI-GPEN": [
[
"FaceEnhancement"
@ -23818,6 +24024,7 @@
"https://github.com/yorkane/ComfyUI-KYNode": [
[
"AdvancedLyingSigmaSampler",
"KY_OpenAICaptionImage",
"KY_SaveImageToPath"
],
{

View File

@ -1,372 +1,373 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "aaaaaaaaaa"
},
"source": [
"Git clone the repo and install the requirements. (ignore the pip errors about protobuf)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "bbbbbbbbbb"
},
"outputs": [],
"source": [
"# #@title Environment Setup\n",
"\n",
"from pathlib import Path\n",
"\n",
"OPTIONS = {}\n",
"\n",
"USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n",
"UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n",
"USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n",
"INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n",
"OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n",
"OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n",
"OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n",
"OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n",
"\n",
"current_dir = !pwd\n",
"WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n",
"\n",
"if OPTIONS['USE_GOOGLE_DRIVE']:\n",
" !echo \"Mounting Google Drive...\"\n",
" %cd /\n",
"\n",
" from google.colab import drive\n",
" drive.mount('/content/drive')\n",
"\n",
" WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n",
" %cd /content/drive/MyDrive\n",
"\n",
"![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n",
"%cd $WORKSPACE\n",
"\n",
"if OPTIONS['UPDATE_COMFY_UI']:\n",
" !echo -= Updating ComfyUI =-\n",
"\n",
" # Correction of the issue of permissions being deleted on Google Drive.\n",
" ![ -f \".ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/nightly/windows_base_files/run_nvidia_gpu.bat\" ] && chmod 755 .ci/nightly/windows_base_files/run_nvidia_gpu.bat\n",
" ![ -f \".ci/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/update_windows/update.py\" ] && chmod 755 .ci/update_windows/update.py\n",
" ![ -f \".ci/update_windows/update_comfyui.bat\" ] && chmod 755 .ci/update_windows/update_comfyui.bat\n",
" ![ -f \".ci/update_windows/README_VERY_IMPORTANT.txt\" ] && chmod 755 .ci/update_windows/README_VERY_IMPORTANT.txt\n",
" ![ -f \".ci/update_windows/run_cpu.bat\" ] && chmod 755 .ci/update_windows/run_cpu.bat\n",
" ![ -f \".ci/update_windows/run_nvidia_gpu.bat\" ] && chmod 755 .ci/update_windows/run_nvidia_gpu.bat\n",
"\n",
" !git pull\n",
"\n",
"!echo -= Install dependencies =-\n",
"!pip3 install accelerate\n",
"!pip3 install einops transformers>=4.28.1 safetensors>=0.4.2 aiohttp pyyaml Pillow scipy tqdm psutil tokenizers>=0.13.3\n",
"!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n",
"!pip3 install torchsde\n",
"!pip3 install kornia>=0.7.1 spandrel soundfile sentencepiece\n",
"\n",
"if OPTIONS['USE_COMFYUI_MANAGER']:\n",
" %cd custom_nodes\n",
"\n",
" # Correction of the issue of permissions being deleted on Google Drive.\n",
" ![ -f \"ComfyUI-Manager/check.sh\" ] && chmod 755 ComfyUI-Manager/check.sh\n",
" ![ -f \"ComfyUI-Manager/scan.sh\" ] && chmod 755 ComfyUI-Manager/scan.sh\n",
" ![ -f \"ComfyUI-Manager/node_db/dev/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/dev/scan.sh\n",
" ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\n",
" ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\n",
"\n",
" ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n",
" %cd ComfyUI-Manager\n",
" !git pull\n",
"\n",
"%cd $WORKSPACE\n",
"\n",
"if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n",
" !echo -= Install custom nodes dependencies =-\n",
" !pip install GitPython\n",
" !python custom_nodes/ComfyUI-Manager/cm-cli.py restore-dependencies\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cccccccccc"
},
"source": [
"Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "dddddddddd"
},
"outputs": [],
"source": [
"# Checkpoints\n",
"\n",
"### SDXL\n",
"### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n",
"\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n",
"\n",
"# SDXL ReVision\n",
"#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n",
"\n",
"# SD1.5\n",
"!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n",
"\n",
"# SD2\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n",
"\n",
"# Some SD1.5 anime style\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n",
"\n",
"# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n",
"#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n",
"\n",
"\n",
"# unCLIP models\n",
"#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
"\n",
"\n",
"# VAE\n",
"!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n",
"#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n",
"\n",
"\n",
"# Loras\n",
"#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n",
"#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n",
"\n",
"\n",
"# T2I-Adapter\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n",
"\n",
"# T2I Styles Model\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n",
"\n",
"# CLIPVision model (needed for styles model)\n",
"#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n",
"\n",
"\n",
"# ControlNet\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n",
"\n",
"# ControlNet SDXL\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n",
"\n",
"# Controlnet Preprocessor nodes by Fannovel16\n",
"#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n",
"\n",
"\n",
"# GLIGEN\n",
"#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n",
"\n",
"\n",
"# ESRGAN upscale model\n",
"#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n",
"#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n",
"#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kkkkkkkkkkkkkkk"
},
"source": [
"### Run ComfyUI with cloudflared (Recommended Way)\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jjjjjjjjjjjjjj"
},
"outputs": [],
"source": [
"!wget -P ~ https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n",
"!dpkg -i ~/cloudflared-linux-amd64.deb\n",
"\n",
"import subprocess\n",
"import threading\n",
"import time\n",
"import socket\n",
"import urllib.request\n",
"\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n",
"\n",
" p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
" for line in p.stderr:\n",
" l = line.decode()\n",
" if \"trycloudflare.com \" in l:\n",
" print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n",
" #print(l, end='')\n",
"\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kkkkkkkkkkkkkk"
},
"source": [
"### Run ComfyUI with localtunnel\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jjjjjjjjjjjjj"
},
"outputs": [],
"source": [
"!npm install -g localtunnel\n",
"\n",
"import subprocess\n",
"import threading\n",
"import time\n",
"import socket\n",
"import urllib.request\n",
"\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n",
"\n",
" print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n",
" p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n",
" for line in p.stdout:\n",
" print(line.decode(), end='')\n",
"\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "gggggggggg"
},
"source": [
"### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n",
"\n",
"You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n",
"\n",
"If you want to open it in another window use the link.\n",
"\n",
"Note that some UI features like live image previews won't work because the colab iframe blocks websockets."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hhhhhhhhhh"
},
"outputs": [],
"source": [
"import threading\n",
"import time\n",
"import socket\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" from google.colab import output\n",
" output.serve_kernel_port_as_iframe(port, height=1024)\n",
" print(\"to open it in a window you can open this link here:\")\n",
" output.serve_kernel_port_as_window(port)\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"provenance": []
},
"gpuClass": "standard",
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "aaaaaaaaaa"
},
"source": [
"Git clone the repo and install the requirements. (ignore the pip errors about protobuf)"
]
},
"nbformat": 4,
"nbformat_minor": 0
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "bbbbbbbbbb"
},
"outputs": [],
"source": [
"# #@title Environment Setup\n",
"\n",
"from pathlib import Path\n",
"\n",
"OPTIONS = {}\n",
"\n",
"USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n",
"UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n",
"USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n",
"INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n",
"OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n",
"OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n",
"OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n",
"OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n",
"\n",
"current_dir = !pwd\n",
"WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n",
"\n",
"if OPTIONS['USE_GOOGLE_DRIVE']:\n",
" !echo \"Mounting Google Drive...\"\n",
" %cd /\n",
"\n",
" from google.colab import drive\n",
" drive.mount('/content/drive')\n",
"\n",
" WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n",
" %cd /content/drive/MyDrive\n",
"\n",
"![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n",
"%cd $WORKSPACE\n",
"\n",
"if OPTIONS['UPDATE_COMFY_UI']:\n",
" !echo -= Updating ComfyUI =-\n",
"\n",
" # Correction of the issue of permissions being deleted on Google Drive.\n",
" ![ -f \".ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/nightly/windows_base_files/run_nvidia_gpu.bat\" ] && chmod 755 .ci/nightly/windows_base_files/run_nvidia_gpu.bat\n",
" ![ -f \".ci/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\n",
" ![ -f \".ci/update_windows/update.py\" ] && chmod 755 .ci/update_windows/update.py\n",
" ![ -f \".ci/update_windows/update_comfyui.bat\" ] && chmod 755 .ci/update_windows/update_comfyui.bat\n",
" ![ -f \".ci/update_windows/README_VERY_IMPORTANT.txt\" ] && chmod 755 .ci/update_windows/README_VERY_IMPORTANT.txt\n",
" ![ -f \".ci/update_windows/run_cpu.bat\" ] && chmod 755 .ci/update_windows/run_cpu.bat\n",
" ![ -f \".ci/update_windows/run_nvidia_gpu.bat\" ] && chmod 755 .ci/update_windows/run_nvidia_gpu.bat\n",
"\n",
" !git pull\n",
"\n",
"!echo -= Install dependencies =-\n",
"!pip3 install accelerate\n",
"!pip3 install einops transformers>=4.28.1 safetensors>=0.4.2 aiohttp pyyaml Pillow scipy tqdm psutil tokenizers>=0.13.3\n",
"!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n",
"!pip3 install torchsde\n",
"!pip3 install kornia>=0.7.1 spandrel soundfile sentencepiece\n",
"\n",
"if OPTIONS['USE_COMFYUI_MANAGER']:\n",
" %cd custom_nodes\n",
"\n",
" # Correction of the issue of permissions being deleted on Google Drive.\n",
" ![ -f \"ComfyUI-Manager/check.sh\" ] && chmod 755 ComfyUI-Manager/check.sh\n",
" ![ -f \"ComfyUI-Manager/scan.sh\" ] && chmod 755 ComfyUI-Manager/scan.sh\n",
" ![ -f \"ComfyUI-Manager/node_db/dev/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/dev/scan.sh\n",
" ![ -f \"ComfyUI-Manager/node_db/tutorial/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/tutorial/scan.sh\n",
" ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\n",
" ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\n",
"\n",
" ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n",
" %cd ComfyUI-Manager\n",
" !git pull\n",
"\n",
"%cd $WORKSPACE\n",
"\n",
"if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n",
" !echo -= Install custom nodes dependencies =-\n",
" !pip install GitPython\n",
" !python custom_nodes/ComfyUI-Manager/cm-cli.py restore-dependencies\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cccccccccc"
},
"source": [
"Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "dddddddddd"
},
"outputs": [],
"source": [
"# Checkpoints\n",
"\n",
"### SDXL\n",
"### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n",
"\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n",
"\n",
"# SDXL ReVision\n",
"#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n",
"\n",
"# SD1.5\n",
"!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n",
"\n",
"# SD2\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n",
"\n",
"# Some SD1.5 anime style\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n",
"\n",
"# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n",
"#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n",
"\n",
"\n",
"# unCLIP models\n",
"#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
"#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n",
"\n",
"\n",
"# VAE\n",
"!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n",
"#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n",
"#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n",
"\n",
"\n",
"# Loras\n",
"#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n",
"#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n",
"#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n",
"\n",
"\n",
"# T2I-Adapter\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n",
"\n",
"# T2I Styles Model\n",
"#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n",
"\n",
"# CLIPVision model (needed for styles model)\n",
"#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n",
"\n",
"\n",
"# ControlNet\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n",
"\n",
"# ControlNet SDXL\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n",
"#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n",
"\n",
"# Controlnet Preprocessor nodes by Fannovel16\n",
"#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n",
"\n",
"\n",
"# GLIGEN\n",
"#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n",
"\n",
"\n",
"# ESRGAN upscale model\n",
"#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n",
"#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n",
"#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kkkkkkkkkkkkkkk"
},
"source": [
"### Run ComfyUI with cloudflared (Recommended Way)\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jjjjjjjjjjjjjj"
},
"outputs": [],
"source": [
"!wget -P ~ https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n",
"!dpkg -i ~/cloudflared-linux-amd64.deb\n",
"\n",
"import subprocess\n",
"import threading\n",
"import time\n",
"import socket\n",
"import urllib.request\n",
"\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n",
"\n",
" p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n",
" for line in p.stderr:\n",
" l = line.decode()\n",
" if \"trycloudflare.com \" in l:\n",
" print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n",
" #print(l, end='')\n",
"\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "kkkkkkkkkkkkkk"
},
"source": [
"### Run ComfyUI with localtunnel\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "jjjjjjjjjjjjj"
},
"outputs": [],
"source": [
"!npm install -g localtunnel\n",
"\n",
"import subprocess\n",
"import threading\n",
"import time\n",
"import socket\n",
"import urllib.request\n",
"\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n",
"\n",
" print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n",
" p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n",
" for line in p.stdout:\n",
" print(line.decode(), end='')\n",
"\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "gggggggggg"
},
"source": [
"### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n",
"\n",
"You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n",
"\n",
"If you want to open it in another window use the link.\n",
"\n",
"Note that some UI features like live image previews won't work because the colab iframe blocks websockets."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hhhhhhhhhh"
},
"outputs": [],
"source": [
"import threading\n",
"import time\n",
"import socket\n",
"def iframe_thread(port):\n",
" while True:\n",
" time.sleep(0.5)\n",
" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n",
" result = sock.connect_ex(('127.0.0.1', port))\n",
" if result == 0:\n",
" break\n",
" sock.close()\n",
" from google.colab import output\n",
" output.serve_kernel_port_as_iframe(port, height=1024)\n",
" print(\"to open it in a window you can open this link here:\")\n",
" output.serve_kernel_port_as_window(port)\n",
"\n",
"threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n",
"\n",
"!python main.py --dont-print-server"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"provenance": []
},
"gpuClass": "standard",
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View File

@ -84,6 +84,7 @@ if os.path.exists(pip_overrides_path):
with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file)
cm_global.pip_overrides['numpy'] = 'numpy<2'
cm_global.pip_overrides['ultralytics'] = 'ultralytics==8.3.40' # for security
def remap_pip_package(pkg):

View File

@ -1,7 +1,7 @@
[project]
name = "comfyui-manager"
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "2.54"
version = "2.55.3"
license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]