白嫖云端资源使用 ComfyUI生成图片和视频
最近很多 SD 的内容比如 LCM Animatediff 等项目,首先都是在 ComfyUI 支持的,但是 ComfyUI 又比较复杂,不只是使用复杂,环境配置和安装也很复杂。
云端部署的话找了很久也没有比较好的镜像,很多在线使用的产品也是上来就收费的,不太适合入门,这几天发现Kaggle 居然每个月可以白嫖 30 小时的 GPU 时间。
所以就找了一个ComfyUI 的笔记来教一下大家免费部署 ComfyUI,同时这节课也会教一些 ComfyUI 的基本操作,带大家生成一张图片和一段 Animatediff 视频。
ComfyUI 部署
下面主要是通过白嫖在 Kaggle 部署的,如果你不排斥付费的话也可以使用https://comfyworkflows.com/cloud[1]、https://app.flowt.ai/app/community/home[2]或者https://app.rundiffusion.com/launch/[3]来部署。
首先来看部署的部分,首先我们访问https://www.kaggle.com/[4]注册一个账号,注册之后需要去设置里面进行一下电话的认证,这里我试了一下国内的电话也可以。
之后在网站左上角点击这个 Create 里面的 New Notebook 。
进入到创建笔记的页面后,我们点击 Flie 按钮选择 Improt Notebook 来导入笔记。笔记可以从这里下载:https://pan.quark.cn/s/57005d867688[5]
接下来我们需要去注册一个 https://ngrok.com/[6] 账号,注册完成之后在,网站左侧导航的 Your Authtoken 选项里面复制你的 Token 。
然后在导入的笔记里面找到下图中 ngrok_token 这个字段将“YOUR_NGROK”替换为你的 Token 。
然后我们来调整一下我们的环境配置,在页面右侧的 Notebook options 中选择 GPUT4X2 、 Python 、 No persistence 、Always use latest environment 和 Internet on。
然后就可以启动我们的笔记了,点击笔记前的三角图标就行。(这里注意不使用的时候需要关掉项目。每个人每个月就 30 小时免费 GPU 时间。)
然后就是等待运行,直到出现下图中的链接就是完成了,点击链接就可以了。
基础操作-图片生成
点击点链接之后经过一个中转页面我们就可以看到熟悉的 ComfyUI 界面了,默认页面会有一个已经准备好的工作流,我们可以点击右边的 Queue Prompt 运行一下试试。
运行的时候就会发现,ComfyUI 在运行到对应节点的时候那个节点会有个绿色的描边,同时ComfyUI还有一个特性就是再重新运行的时候他只会运行发生更改的节点,如果节点内容没有变化就不会重新运行,这样会节省很多时间。
现在我们Ctrl + A全选这些节点都删掉,重新自己搭建一个图片生成流程顺便熟悉一下ComfyUI的操作和一些概念。
ComfyUI 和 WebUI 根本不同就是节点,Stable Diffusion 的每个部分都变成了对应的节点这意味着你可以自由组合你的工作流,只选择你需要的节点。
首先我们需要一个加载 Checkpoint 模型的节点,鼠标右键选择 Add Node 然后选择 loaders 分类里面的 Load Checkpoint 。
然后我们看一下节点的结构,一般一个节点主要有三部分构成左边的输入触点,Load Checkpoint 这个节点没有输入触点,右边的输出触点,这个节点上就是右边的 Model Clip 和 VAE 三个。
还有就是节点中间的选项部分,Load Checkpoint这里就是用来选择 CKPT 模型的。
接下来的节点我们可以用刚才直接鼠标右键的方式添加也可以,鼠标选中输出点的 MODEL 拖出一条线去松手就能看到这个点可以链接的节点了。我们在里面选择 KSampler 也就是采样器节点。
如果你对 WebUI 熟悉的话可以发现采样器节点的很多选项都很熟悉比如 Steps、 CFG 、采样器名称等。
然后我们继续从Load Checkpoint节点中链接 CLIP 的节点,选择CLIP Text Encode (Prompt)这个节点就可以了,这里的提示词节点是不分正反的,我们只需要从 CLIP 链接两个就行。
提示词的正反取决于CLIP Text Encode这个节点输出链接的是Load Checkpoint节点的positive还是negative,链接positive的就是正向提示词,连接negative的就是反向提示词。
接下来我们发现KSampler输入的触点还剩一个latent image没有被连接,那这里我们需要连接一个Empty Latent Image节点来控制生成图片的大小和数量。
之后来看一下KSampler的输出触点,这里我们需要一个 VAE 解码的节点。也就是VAE Decode,然后我们发现VAE Decode还需要连接一下 VAE 的模型,这里我们可以直接连接 Load Checkpoint 这个节点的 VAE 触点就行。他回使用 CKPT 模型自带的 VAE 。
之后我们给VAE Decode节点输出的 IMAGE一个图像预览节点(Preview Image)。
到这里普通的图像生成流程就结束了,你可以点击 Queue Prompt 来试试自己生成的图片。
最后我们教一下怎么使用别人的工作流,你在获得别人的工作流之后一般是一个 Json 文件或者一张保存着工作流的图片,直接把文件拖到界面上就可以打开了。或者你也可以点击右边的这个Load 来选择对应的文件加载,右边的 Save 按钮可以保存你现在的工作流。
比如你可以在这里下载我上面的这个简单的工作流:https://pan.quark.cn/s/57005d867688[7]
视频生成
然后我们来看一下视频生成的部分其实视频生成我们只需要在 KSampler和 Load Checkpoint 之间增加一个Animatediff的动画节点就行,你可以右键在Animatediff的分类里面找到这个节点,也可以鼠标双击搜索节点名称来找到对应的节点。
之后我们还需要从Animatediff Loader节点的输入拉一个上下文节点(Context_options)出来,这是因为Animatediff的视频模型一次只能生成16帧的视频,如果我们想要生成更长的视频就需要把上一次生成的16帧变成输入的帧继续生成。
连接好上下文和Animatediff模型加载节点后就是这样子的。
我们还有最后一步就OK了,之前输出图片的时候我们用的图片预览节点不太适合视频了,所以我们需要一个视频预览和输出节点,可以这鼠标右键在Video Helper里面找到Video Combine节点跟VAE Decode节点链接。
之后还有一个需要注意我们Latent Image节点的batch_size的数量需要调整为你需要生成的视频帧数这里我推荐在试验的时候每次16帧,然后稳定之后再生成长的。
最后就是怎么保存我们生成的视频,你可以在视频预览那里右键选择Open Preview或者Save Preview都可以。这个视频的工作流也在我分享的网盘链接里面。https://pan.quark.cn/s/57005d867688[8]
教程创作不易,如果对你有帮助可以点个赞或者转发给你需要的朋友