基于 Stable Diffusion 的 AI 视频生成与背景替换教程
1. 概述
本教程介绍如何利用 Stable Diffusion (SD) 配合 IS-Net 插件实现 AI 视频生成。主要流程包括视频帧提取、背景去除、文生图重绘及视频合成。通过 ControlNet 控制画面风格,结合 Prompt 工程优化生成质量,最终输出带有配音的合成视频。
2. 准备工作
制作此类视频效果,需要满足以下基础条件:
- 环境准备:部署 Stable Diffusion WebUI 环境(推荐云平台或本地 GPU 环境)。
- 素材准备:一段原始视频文件(如人物舞蹈或动作视频)。
- 插件安装:安装
sd-webui-IS-NET-pro插件用于视频处理。
2.1 部署 Stable Diffusion 环境
建议使用 Docker 或云端环境部署 SD,以减少本地配置依赖和驱动冲突问题。确保显卡显存充足(建议 8GB 以上),并安装 PyTorch 及相关 CUDA 库。
2.2 安装 sd-webui-IS-NET-pro 插件
IS-Net 插件主要用于将视频拆分为多帧图片、批量抠图以及多帧图片转视频处理。
安装步骤:
- 进入 SD WebUI 页面,点击
Extension->Install from URL。 - 输入插件仓库地址:
https://github.com/ClockZinc/sd-webui-IS-NET-pro.git - 点击
Install等待安装完成。 - 重启 SD WebUI。
- 下载
isnet-general-use.pth模型文件,放置到以下目录后再次重启:/home/user/data/sd/extensions/sd-webui-IS-NET-pro/saved_models/IS-Net
3. 视频制作流程
整体流程包含六个核心步骤:
- 视频分帧:使用 IS-Net Pro 将视频切分为单张图片序列。
- 背景去除:利用 IS-Net 模型对人物进行精确分割,去除背景。
- 文生图重绘:根据提示词生成新的背景或风格化图像。
- 固定 Seed 批量生成:锁定随机种子,批量生成匹配的视频帧。
- 图片转视频:将处理后的图片序列合并为视频文件。
- 后期剪辑:添加音频、特效等。
3.1 视频分成多帧
在 SD 页面切换到 IS-Net Pro 插件选项卡,选择 video2frame 功能。
- 操作:上传原始视频文件。
- 输出目录:设置图片保存路径,例如
/home/user/data/sd/outputs/frams。 - 执行:点击
Generate Frames开始生成。
等待约 1 分钟(视视频长度而定),生成的图片序列可在指定目录下查看。建议检查图片命名是否连续,以便后续处理。
3.2 去除图片人物背景
切换到 IS-Net Pro 的 image background removal 模块。
- 输入目录:填入上一步生成的图片路径。
- 输出目录:设置新的保存路径,例如
/home/user/data/sd/outputs/Isnet_output。 - 执行:点击
Start Batch Generation。
处理完成后,人物背景将被替换为白色透明层。同时会生成 mask 目录,其中包含黑底蒙版图,可用于后续的遮罩合成。
3.3 文生图配置
为了保持人物主体不变而改变背景,需配置 ControlNet 和提示词。
正向提示词 (Positive Prompt):
The sea, mountains, highways, forests, high quality, detailed background
反向提示词 (Negative Prompt):
NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)),((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbic d:1.21),(mutilated:1.21),(tranny:1.331),mutated hands,(poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions::1.331), extra limbs,(disfigured:1.331),(missing arms:1.331),(extra legs:1.331),(fused fingers:1.61051),(toe omany fingers:1.61051),(unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit, bad ha ands, missing fingers, ((extra arms and legs))
ControlNet 配置:
- 启用 ControlNet 单元。
- 预处理器选择
control_v1p_sd15_qrcode_monster或类似能保持结构稳定的模型。 - 模型加载对应的 ControlNet 权重。
- 参考图使用上一步生成的去背图片。
建议先测试生成几张图片,观察人物轮廓是否稳定,再确定最终的 Seed 值。
3.4 固定 Seed,批量生成图
选定满意的 Seed 值后,将其写入批量生成参数中。
- Seed:填入选定的数值(例如 123456)。
- 输入路径:填入去背图片的输出路径。
- 输出路径:设置为
/home/user/data/sd/outputs/txt2img-images下的日期子目录。 - 执行:启动批量生成任务。
此步骤确保每一帧的人物姿态与背景变化保持一致性,避免闪烁。
3.5 多帧图片合并视频
使用 IS-Net Pro 的 frame2video 功能。
- 图片输入目录:填入批量生成好的图片路径。
- 视频数据目录:设置输出视频路径。
- 帧率设置:通常与原视频帧率一致(如 24fps 或 30fps)。
- 执行:点击生成。
生成完成后,从服务器下载视频文件至本地。此时视频已无声音,且背景已替换。
3.6 制作完整视频
合成的视频通常需要后期处理:
- 音频合成:使用剪辑软件(如 Premiere、剪映)导入视频。
- 配音/配乐:添加背景音乐或语音解说。
- 调色与特效:统一色调,添加转场效果。
- 导出:渲染为最终 MP4 格式。
4. 常见问题与优化
4.1 视频闪烁问题
若生成的视频出现闪烁,可能是由于每帧的 Seed 值不一致或 ControlNet 强度过高。建议固定 Seed,并适当降低 ControlNet 的 Denoising Strength。
4.2 背景融合不自然
如果人物边缘有白边或融合痕迹,请检查 Mask 图的精度。可尝试调整 IS-Net 的阈值参数,或在后期剪辑软件中使用羽化边缘处理。
4.3 显存不足
批量生成高分辨率图片时可能爆显存。建议降低分辨率(如 512x512 或 768x768),或使用 --medvram 启动参数。
5. 总结
本教程详细阐述了利用 Stable Diffusion 进行 AI 视频生成的技术路径。通过 IS-Net 插件实现高效的人像分割与背景替换,结合 ControlNet 保证画面稳定性。该技术适用于短视频创作、虚拟主播内容生产及自动化视频处理场景。随着 AIGC 技术的发展,此类工具链将进一步简化,提升生产效率。


