参考comfyui workshop https://catalog.us-east-1.prod.workshops.aws/workshops/c8b69f68-660a-432b-9295-2544b455684a 中2.1 ComfyUI installtion章节,在EC2实例上安装部署即可
- Comyfui API具有很好的一致性,在EC2 开发测试环境上调试好的workflow,可以导出api json,从而在SageMaker的推理端点上一致性的调用
- Comyfui EC2上所安装的customer nodes和所需要的模型,在SageMaker的endpoint上部署方法见下章节详细说明
-
新开一个SageMaker notebook instance实例,选择g5.xlarge机型,注意EBS磁盘卷需要100Gb以上,以免空间不足
-
进入notebook jupyterlab,新建子目录,git clone https://github.com/qingyuan18/ComfyUI-on-SageMaker.git
-
配置dockerfile
-
配置模型文件
- 模型checkpoint文件会在部署的时候,根据传入的环境变量值自行同步到sagemaker endpoint推理机器对应comyfui目录下
- 上传所需要的flux/sd模型到s3路径,注意不同的模型最好用不同的目录区分(e.g: controlnet/lora/ipadapter...etc)
- 在部署notebook的环境变量中,根据不同模型类型,传入不同的环境变量,其中key为模型类型,value为s3路径
- 如果有其他第三方模型(e.g sam/groudingdino),可以传入“;”分隔的多个模型类型,其中模型类型和s3路径用"|"隔开(e.g:sams|s3://sagemaker-us-west-2-687912291502/models/sam;grounding-dino|s3://sagemaker-us-west-2-687912291502/models/groundingdino)
-
执行部署
- 在克隆的Comfyui-on-Sagemaker代码目录中,找到comfyui-on-sagemaker-byoc.ipynb notebook
- 逐步执行build及deploy部署脚本的所有cell单元格
- 注意:3. sagemaker standand deploy 和4. alternative deploy api(ssh debug inference)两种方式只需要选一种方式
- 如果用4. alternative deploy api(ssh debug inference)方式部署,需要配置sagemaker ssh helper所需要的SSM权限,并打开EC2高阶 Tier
- 等待部署完成
- Comfyui on SageMaker封装predict报文,其中包含以下主要调用方法,分别如下