0%

学习 ComfyUI 制作 AI 视频

学习 ComfyUI 的初衷,是想制作一二布布视频作为副业,之前学习了在剪映用表情包制作短视频,由于表情包素材有限,很难做出丰富内容,再加上 AI 短视频兴起,手剪效果效率都远远落后了

学习的最终目标,是输入一段文本,自动生成一二布布视频

技术调研

制作 AI 视频前,先了解下市面上制作 AI 视频的工具

第一类:视频生成大模型服务,如 Sora, Runway, 可灵AI 等,在视频生成网站输入 prompt 便可生成视频,难度低,但费用较高

第二类:本地生成视频的工具,如 ComfyUI, Automatic111, Forge,需要在本地先安装这类客户端,下载模型文件,在本地生成视频,也可使用云端算力;这种方案难度大,费用较低(租远程显卡的费用),使用本地显卡则无费用

考虑到费用问题,选择第二类方案,对比了第二类的几款工具,ComfyUI 的可控性最强、视频生成效果、性能更好,但学习成本高;比较后决定先从 ComfyUI 学起

准备工作

参考:https://docs.comfy.org/get_started/first_generation

  1. 安装 Comfy UI:https://www.comfy.org/download
  2. 下载模型(本文用 SD1.5):复制链接下载模型文件,保存到 checkpoints 目录中(Help->Open Folder -> 打开模型文件夹)

下面按照官方教程依此学习

文生图

运行示例

  1. 创建文生图工作流

  2. 运行:

图片生成在 output 文件夹中

生成自己的图片

运行成功示例后,在模板上只需要修改提示词和图片尺寸,就可以生成我们希望的图片

提示词分为两类:

Positive Prompt:你想看到的

Negative Prompt:你不想看到的

Positive Prompt:

1
Two little dogs are playing happily on the green lawn, surrounded by blue sky, white clouds, butterflies, and flowers

Negative Prompt:

1
text, watermark

可以看到提示词中的蓝天、白云、鲜花没有生成,可能是模型比较简单

下面介绍上图工作流中各节点的功能

文生图工作流节点

  1. Load Checkpoint Node:用于加载以下组件
    1. 图像生成模型
    2. CLIP:文本编码器,将提示词转换为模型能够理解的向量
    3. VAE:变分自编码器,将 latent space 转换到像素空间(模型不直接在像素空间工作,而是在一个更小更抽象的【潜空间】里工作)
  2. Empty Latent Image Node:定义生成图片的尺寸
  3. CLIP Text Encoder Node:将提示词转换为模型能够理解的向量
  4. KSampler Node:降噪,在 latent space 输出一个图像
  5. VAE Decode Node:将 latent space 图像转为像素图像
  6. Save Image Node:保存图片到 output 文件夹

图生图

将上面的 Empty Latent Image Node 改为【 加载图像 和 VAE 编码的节点】

降噪值(0-1) 越小,生成图像与参考图像之间差异越小

只能说有点抽象,感觉我是来搞笑的

修复(inpaint)

常用场景

  • 移除不需要的对象
  • 修复 AI 生成的错位错误
  • 精调局部元素,如调整面部表情、服饰纹理

运行示例

下载模型 512-inpainting-ema.safetensors 拷贝到 ComfyUI/models/checkpoints 文件夹下

补绘(outpaint)

常用场景

  • 图像构图良好,但画布区域太小,扩展画布
  • 向原始图像中添加更多元素

运行示例

超分(Upscale)

将低像素图像生成高像素图像

这里使用的模型是 4x-ESRGAN.pth

LoRA

待续

Reference

https://docs.comfy.org/tutorials/basic/text-to-image

https://docs.comfy.org/tutorials/basic/image-to-image

https://docs.comfy.org/tutorials/basic/inpaint

https://docs.comfy.org/tutorials/basic/outpaint