帮助社区的同学快速创建一个ComfyUI环境用来调试AI模型
点击右上角的Notebook快速开发->使用魔搭平台提供的免费实例->选方式二 GPU环境 -> 启动 -> 查看Notebook -> 挨个点击播放按钮,提示安装完成,继续点下一个播放按钮
提示:选方式一 纯cpu环境也能运行,就是慢
安装步骤(如果只用ComfyUI本体,运行此流程的第1步和第8步即可)
1、安装ComfyUI本体(必须)
import os
import subprocess
import sys
# ComfyUI仓库
git_url = "https://github.com/comfyanonymous/ComfyUI.git"
if not os.path.exists('./ComfyUI'):
subprocess.run(["git", "clone", git_url])
subprocess.run(["pip", "install", "-r", "./ComfyUI/requirements.txt"])
else:
print("已经存在ComfyUI")
print('安装完成')
2、安装插件(可选)
这里插件安装很慢,如果长期使用,建议有一个自己的魔搭库,参考第5步的snapshot_download来下载,贼快。
# 长期使用把下面两句打开配置好你的插件模型库,把其余的删除,
# from modelscope import snapshot_download
# model_dir = snapshot_download('你的魔搭名字/你放插件模型库的名字', cache_dir='./ComfyUI/custom_nodes/')
import os
import subprocess
import sys
def install_requirements(directory):
# 检查指定目录下是否有requirements.txt文件
requirements_path = os.path.join(directory, 'requirements.txt')
if os.path.exists(requirements_path):
print(f"Found requirements.txt in {directory}. Installing packages...")
# 使用pip安装requirements.txt中的包
subprocess.run(['pip', 'install', '-r', requirements_path])
else:
print(f"No requirements.txt found in {directory}.")
urls = [
#manager插件
"https://github.com/ltdrdata/ComfyUI-Manager.git",
#ipadapter_plus插件
"https://github.com/cubiq/ComfyUI_IPAdapter_plus.git",
#comfyui_controlnet_aux插件
"https://github.com/Fannovel16/comfyui_controlnet_aux.git",
#comfyui_中文汉化插件
"https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translation.git",
#InstantID 肖像插件
"https://github.com/cubiq/ComfyUI_InstantID.git"
]
for url in urls:
dir = f"./ComfyUI/custom_nodes/{url.split('/')[-1].replace('.', '_')}"
subprocess.run(["git", "clone", "--progress", url, dir])
install_requirements(dir)
print('安装完成')
3、下载模型(必须)
# 写实1.5模型
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/realisticVisionV51_v51VAE/repo?Revision=master&FilePath=realisticVisionV51_v51VAE.safetensors" -O "./ComfyUI/models/checkpoints/realisticVisionV51写实.safetensors"
#下载SD3
#!wget -c "https://www.modelscope.cn/api/v1/models/fireicewolf/stable-diffusion-3-medium/repo?Revision=master&FilePath=sd3_medium_incl_clips_t5xxlfp16.safetensors" -O "./ComfyUI/models/checkpoints/sd3_medium_incl_clips_t5xxlfp16.safetensors"
# 可爱1.5模型
#!wget -c "https://modelscope.cn/api/v1/models/dienstag/anything-v4.0/repo?Revision=master&FilePath=anything-v4.0-pruned-fp16.safetensors" -O "./ComfyUI/models/checkpoints/anything-v4.0-pruned卡通.safetensors"
#blue_pencil-SDXL模型
!wget -c "https://www.modelscope.cn/api/v1/models/cunkai/blue_pencil-XL/repo?Revision=master&FilePath=blue_pencil-XL-v3.1.0.safetensors" -O "./ComfyUI/models/checkpoints/blue_pencil-XL-v3.1.0.safetensors"
# 下面这句是从liblibai下载的范例
# !wget -c "https://liblibai-online.vibrou.com/web/model/7c819b6d13663ed720c2254f4fe18373107dfef2448d337913c8fc545640881e.safetensors" -O "./ComfyUI/models/checkpoints/majicMIX_realistic_麦橘写实_v7.safetensors"
# vae模型
!wget -c "https://modelscope.cn/api/v1/models/YorickHe/majicmixRealistic_v6/repo?Revision=master&FilePath=v7/vae/diffusion_pytorch_model.bin" -O "./ComfyUI/models/vae/vae-ft-mse-840000-ema-pruned.bin"
# lora模型范例
!wget -c "https://modelscope.cn/api/v1/models/YorickHe/Winter_hanfu_lora/repo?Revision=master&FilePath=Winter_Hanfu.safetensors" -O "./ComfyUI/models/loras/Winter_Hanfu.safetensors"
print('模型安装完成')
4、下载ipadapter模型、insightface模型、放大模型(可选)
import os
print('开始下载ipadapter')
#clip_vision
!mkdir -p ./ComfyUI/models/clip_vision/
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fimage_encoder%2Fmodel.safetensors" -O "./ComfyUI/models/clip_vision/CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=sdxl_models%2Fimage_encoder%2Fmodel.safetensors" -O "./ComfyUI/models/clip_vision/CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors"
#ipadapter
!mkdir -p ./ComfyUI/models/ipadapter/
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter_sd15.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter_sd15.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter_sd15_light_v11.bin" -O "./ComfyUI/models/ipadapter/ip-adapter_sd15_light_v11.bin"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter-plus_sd15.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter-plus_sd15.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter-plus-face_sd15.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter-plus-face_sd15.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter-full-face_sd15.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter-full-face_sd15.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=models%2Fip-adapter_sd15_vit-G.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter_sd15_vit-G.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=sdxl_models%2Fip-adapter_sdxl_vit-h.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter_sdxl_vit-h.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=sdxl_models%2Fip-adapter-plus_sdxl_vit-h.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter-plus_sdxl_vit-h.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=sdxl_models%2Fip-adapter-plus-face_sdxl_vit-h.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter-plus-face_sdxl_vit-h.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/AI-ModelScope/IP-Adapter/repo?Revision=master&FilePath=sdxl_models%2Fip-adapter_sdxl.safetensors" -O "./ComfyUI/models/ipadapter/ip-adapter_sdxl.safetensors"
#ipadapter face
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-plusv2_sd15.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid-plusv2_sd15.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-plusv2_sdxl.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid-plusv2_sdxl.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-portrait-v11_sd15.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid-portrait-v11_sd15.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-portrait_sdxl.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid-portrait_sdxl.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-portrait_sdxl_unnorm.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid-portrait_sdxl_unnorm.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid_sd15.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid_sd15.bin"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid_sdxl.bin" -O "./ComfyUI/models/ipadapter/ip-adapter-faceid_sdxl.bin"
#ipadapter lora
!mkdir -p ./ComfyUI/models/loras/
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-plusv2_sd15_lora.safetensors" -O "./ComfyUI/models/loras/ip-adapter-faceid-plusv2_sd15_lora.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid-plusv2_sdxl_lora.safetensors" -O "./ComfyUI/models/loras/ip-adapter-faceid-plusv2_sdxl_lora.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid_sd15_lora.safetensors" -O "./ComfyUI/models/loras/ip-adapter-faceid_sd15_lora.safetensors"
!wget -c "https://modelscope.cn/api/v1/models/guaidao/IP-Adapter-FaceID/repo?Revision=master&FilePath=ip-adapter-faceid_sdxl_lora.safetensors" -O "./ComfyUI/models/loras/ip-adapter-faceid_sdxl_lora.safetensors"
print('开始下载放大模型')
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=upscale/4x-UltraSharp.pth" -O "./ComfyUI/models/upscale_models/4x-UltraSharp.pth"
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=upscale/RealESRGAN_x4.pth" -O "./ComfyUI/models/upscale_models/RealESRGAN_x4.pth"
print('开始下载insightface')
!mkdir -p ./ComfyUI/models/insightface/models/buffalo_l/
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=buffalo_l/1k3d68.onnx" -O "./ComfyUI/models/insightface/models/buffalo_l/1k3d68.onnx"
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=buffalo_l/2d106det.onnx" -O "./ComfyUI/models/insightface/models/buffalo_l/2d106det.onnx"
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=buffalo_l/det_10g.onnx" -O "./ComfyUI/models/insightface/models/buffalo_l/det_10g.onnx"
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=buffalo_l/genderage.onnx" -O "./ComfyUI/models/insightface/models/buffalo_l/genderage.onnx"
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=buffalo_l/w600k_r50.onnx" -O "./ComfyUI/models/insightface/models/buffalo_l/w600k_r50.onnx"
print('安装完成')
5、下载controlnet模型(可选)
from modelscope import snapshot_download
model_dir = snapshot_download('AI-ModelScope/ControlNet-v1-1', cache_dir='./ComfyUI/models/controlnet/')
print('安装完成')
6、下载photomaker模型(使用时大模型选择SDXL)(可选)
import os
dir_path = "./ComfyUI/models/photomaker"
if not os.path.exists(dir_path):
os.makedirs(dir_path)
!wget -c "https://modelscope.cn/api/v1/models/cunkai/ComfyUI_Notebook/repo?Revision=master&FilePath=photomaker/photomaker-v1.bin" -O "./ComfyUI/models/photomaker/photomaker-v1.bin"
print('安装完成')
7、下载InstantID模型(可选)
from modelscope import snapshot_download
from modelscope.hub.file_download import model_file_download
import shutil
import os
instantid_path = "./ComfyUI/models/instantid"
ip_adapter_old_path = "./ComfyUI/models/instantid/InstantX/InstantID/ip-adapter.bin"
antelopev2_path = "./ComfyUI/models/insightface/models/antelopev2"
antelopev2_old_path = "./ComfyUI/models/insightface/models/antelopev2/AI-ModelScope/antelopev2"
model_ip = model_file_download(model_id="InstantX/InstantID", file_path="ip-adapter.bin", cache_dir=instantid_path)
shutil.move(ip_adapter_old_path, instantid_path+'/ip-adapter.bin')
model_v2 = snapshot_download(model_id="AI-ModelScope/antelopev2", cache_dir=antelopev2_path)
src_dir = 'path/to/source/directory'
dst_dir = 'path/to/destination/directory'
for file_name in os.listdir(antelopev2_old_path):
src_file = os.path.join(antelopev2_old_path, file_name)
dst_file = os.path.join(antelopev2_path, file_name)
shutil.move(src_file, dst_file)
print('安装完成')
8、启动ComfyUI http://127.0.0.1:8188 (必须)
你跑的图片在左侧的ComfyUI->output文件夹中可以找到
运行ComfyUI的过程中安装插件,把下面的运行按钮点一下关掉重新打开。
import subprocess
import torch
import os
import signal
def kill_process8188():
cmd = "netstat -anp | grep :8188"
result = os.popen(cmd).read()
print(result)
pids = []
for line in result.splitlines():
pid = int(line.split()[-1].split('/')[0])
pids.append(pid)
for pid in pids:
os.kill(pid, signal.SIGKILL)
# 结束8188进程
kill_process8188()
if not torch.cuda.is_available():
print("没有显卡的环境,CPU方式启动")
subprocess.run(["python", "./ComfyUI/main.py", "--cpu"])
else:
print("显卡启动")
subprocess.run(["python", "./ComfyUI/main.py"])
9 学习ComfyUI ipadapter: https://www.bilibili.com/video/BV1HF4m1N7td/
评论