news 2026/9/11 17:33:37

Duix.Avatar 去水印完整指南:5 步解锁无水印口播视频输出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Duix.Avatar 去水印完整指南:5 步解锁无水印口播视频输出

Duix.Avatar 去水印完整指南:5 步解锁无水印口播视频输出

【免费下载链接】Duix-Avatar🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar

一、你卡住的,是视频角落的那块水印

数字人口播视频最常卡住人的地方有两个:导出的成片角落多了一块水印,"能看"变"不能直接用";或者你用本地接口搭了自建内容系统,同一个模型出的视频有的带水印、有的不带,谁也说不出差在哪一环。两类问题的根源是同一个参数:watermark_switch,它是视频合成服务决定是否往成片里烧录水印的总开关。

  • 看懂 Duix.Avatar 无水印功能在项目中如何生效
  • 逐字段读懂合成请求里的watermark_switch等参数
  • 用 5 步验证你的视频是无水印输出
  • 掌握 3 个高频故障的「现象→排查→解决」处理法

二、无水印功能定位与原理速览

Duix.Avatar 的视频合成分两层:桌面客户端负责收集文案、音频和模特,本地 Docker 服务(face2face 引擎)负责真正渲染,而水印就是在渲染层加上去的。客户端每提交一次合成任务,都会通过watermark_switch告诉引擎"加不加水印"。

核心代码在 src/main/service/video.js,这段代码负责组装一次视频合成的请求参数:

async function makeVideoByF2F(audioPath, videoPath) { const uuid = crypto.randomUUID() const param = { audio_url: audioPath, // 音频路径:本次口播的语音文件 video_url: videoPath, // 视频路径:模特(形象)的视频 code: uuid, // 唯一任务编号,供后续查询进度 chaofen: 0, // 口型重叠参数,常规保持 0 watermark_switch: 0, // 水印开关:0 = 无水印,1 = 加水印 pn: 1 // 合成任务优先级,常规保持 1 } const result = await makeVideoApi(param) return { param, result } }

参数随后被发到本地服务接口(见 src/main/api/f2f.js),这段代码只做了最薄的一层转发:

export function makeVideo(param) { return request.post(`${serviceUrl.face2face}/submit`, param) }

在官方客户端里watermark_switch固定为 0,也就是你正常生成的视频本来就是无水印的——这正是开源本地部署的优势:不存在免费版/专业版之分,去水印无需升级任何订阅。三种常见使用方式的能力差异如下:

使用方式水印状态控制方式适用场景
官方桌面客户端无水印(固定 0)无需操作,客户端自动组装日常口播视频生成
自建系统调用本地 API由你决定请求体中watermark_switch传 0 或 1自建内容系统、批量任务
第三方封装 / 旧版服务容器视版本可能带水印取决于该版本的请求参数使用前先验证传参

三、最小可行路径:5 步验证无水印输出

这一节的目标是走通"打开客户端到确认成片无水印"的最短链路,全程约 5 分钟(不含合成耗时):

  1. 启动本地服务:在 deploy/ 目录执行docker-compose up -d,等 3 个容器全部 Running。
  2. 打开 Duix.Avatar 客户端,选择一个已训练好的模特(形象)。
  3. 输入口播文案(或直接上传音频),点击"生成视频"。此时客户端已向合成引擎发出watermark_switch: 0的任务。
  4. 等待合成完成,在"我的作品"页查看视频预览。
  5. 导出视频文件,用外部播放器检查画面四角与中央,确认没有任何水印。

整条链路可以概括为:

客户端首页长这样,"Create Video" 横幅就是口播视频生成入口:

四、三类使用方式的无水印分场景方案

根据你使用 Duix.Avatar 的方式不同,"去水印"要做的事不一样,下面三个小节对应三类用户。

4.1 官方桌面客户端用户:无需配置,只需验证

官方客户端已把watermark_switch写死为 0,设置面板里既没有"添加水印"的开关,也不存在误开启的可能,你只需跑通一次生成流程并检查导出文件。若成片仍发现水印,先别改客户端参数,按第六节的排错流程确认水印是否来自服务端容器。

4.2 自建系统用户:调用 API 时自行配置参数

如果你绕过客户端,直接调用本地合成接口http://127.0.0.1:8383/easy/submit(服务地址定义在 src/main/config/config.js),就需要自己组装请求参数:把请求体中的watermark_switch字段置为0即可无水印输出;将来想给某些素材加品牌水印,把它改成1即可,同一套接口无需切换服务。

风险提醒:只改动你自己系统里的请求参数。服务容器内运行的是第三方开源代码,不要修改容器镜像里的源码文件——这类改动可能违反服务条款,也大概率在服务升级时被覆盖还原。

4.3 离线 / 内网环境用户:重点防传参错位

全离线环境下客户端与服务在同一台机器,接口地址就是本地127.0.0.1,不存在"连不上"的问题,真正的风险是"参数传给了错误版本":如果服务容器升级了而客户端还是旧版本,请求参数结构可能不匹配。建议每次升级服务后都做一次验证——生成一条视频,并在客户端日志里确认提交请求中的watermark_switch仍是 0。

五、进阶与定制:读懂合成请求的全部参数

如果你要调用 API 自建系统,就需要把请求体每个字段的确切含义弄明白,视频合成用到的字段全部在下表中:

参数含义推荐值备注
audio_url本次口播的语音文件路径你的实际 .wav 路径需可被服务容器读到
video_url模特的形象视频路径你的实际 .mp4 路径需可被服务容器读到
code唯一任务编号crypto.randomUUID()生成查询进度接口复用同一值
chaofen口型重叠参数0常规场景保持 0
watermark_switch水印开关00 = 无水印,1 = 加水印
pn任务优先级1常规场景保持 1

任务提交后用http://127.0.0.1:8383/easy/query?code={任务编号}轮询进度,status变为 2 表示合成完成,返回的result是结果视频的文件名。一条正常流程从"提交任务"经过"进度 0→100"再到"拿到结果文件",耗时取决于视频长度与显卡性能,通常几十秒到几分钟。最终文件落在本地数据目录:Windows 为D:\duix_avatar_data\face2face\temp,Linux 为~/duix_avatar_data/face2face/temp(路径逻辑同样定义在 src/main/config/config.js)。

六、无水印输出排错与验证高频问题

以下三个问题按「现象 → 排查 → 解决」展开,覆盖绝大多数"以为无水印却不是"的场景。

6.1 现象:导出的视频上仍有水印

排查:打开客户端右上角 Setting 菜单,选择 "Open Log" 查看提交记录,确认请求中watermark_switch的实际取值,入口如下图:

解决:日志里是 0 但成片仍有水印,说明水印来自服务端容器侧(合成引擎不同版本的水印行为),此时对照 deploy/ 目录下的 docker-compose 文件确认镜像版本,升级服务容器到最新版本后重新生成验证。

6.2 现象:提交任务直接失败,视频没生成

排查:合成接口默认指向127.0.0.1:8383,容器没起来时会立刻出现连接被拒或超时。在 Docker 里确认 3 个服务是否 Running,并用nvidia-smi确认显卡驱动正常。

解决:回到 deploy/ 目录重新执行docker-compose up -d重建服务,等容器全部 Running 后再点生成。

6.3 现象:合成成功但找不到视频文件

排查:客户端把成片写入本地数据目录,而不是"下载"之类的系统位置,去常规位置找会扑空。

解决:直接到D:\duix_avatar_data\face2face\temp(Windows)或~/duix_avatar_data/face2face/temp(Linux)按最新时间戳找 mp4 文件;或者用客户端"我的作品"页的导出入口另存到指定位置,更稳妥。

七、小结

Duix.Avatar 的无水印能力本质就是合成请求里的watermark_switch: 0:官方客户端已替你写死,自建系统调用 API 时传 0 即可,任何"疑似带水印"的情况都可以从客户端日志的提交参数查起。现在就可以去生成一条视频、逐角检查画面——没有水印,验证就完成了。下一篇我们继续以这套本地服务为入口,讲chaofen等影响口播视频质量的合成参数怎么调。

【免费下载链接】Duix-Avatar🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 17:32:13

Python自动化贴吧签到脚本开发指南

1. 项目背景与需求分析贴吧账号的日常维护中,签到是最基础也最容易遗忘的操作。手动签到不仅耗时耗力,还经常因为疏忽导致连续签到中断。这个Python脚本就是为了解决这个痛点而设计的——用自动化技术替代重复劳动。对于需要批量管理多个贴吧账号的用户&…

作者头像 李华
网站建设 2026/9/11 17:30:31

前端转全栈必看:从 SQL 基础到跨表 JOIN 实战,彻底搞懂数据库核心

一、 数据库的诞生与核心定位1. 数据库为什么诞生?纸质文件时代:信息容量极小,无法进行任何自动计算和关联 。Excel 表格时代:解决了大批量数据的存储,但无法处理多表关联 。例如,一个单据表记载订单&#…

作者头像 李华
网站建设 2026/9/11 17:29:18

在线PPT工具横评:Canva、Google Slides、腾讯文档与Prezi对比

1. 为什么我们需要在线PPT工具? 作为一个经常需要制作演示文稿的职场人,我深刻理解传统PPT软件带来的困扰。记得刚入职时,我花了大半个月工资购买正版办公软件,结果发现90%的功能都用不上。更糟的是,每次换电脑都要重新…

作者头像 李华
网站建设 2026/9/11 17:24:50

FPGA驱动LED恒流芯片:BRAM读取与Verilog串行时序实现

简介:这是一份基于FPGA的LED驱动设计资源,源于ICND2019/ICND2018课程实践,核心围绕PWM调光、RGB LED控制和BRAM存储配置展开,已适配Xilinx平台;若迁移至Intel平台,需要修改Block RAM接口。压缩包共16个文件…

作者头像 李华
网站建设 2026/9/11 17:24:49

Ice 菜单栏管理完整指南:3 步搞定 macOS 图标乱局

Ice 菜单栏管理完整指南:3 步搞定 macOS 图标乱局 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 是不是每次想找 Wi-Fi,都得在屏幕右上角那一片图标群里扒拉半天&#xff1f…

作者头像 李华
网站建设 2026/9/11 17:23:46

2026年7月深圳市福田区二手房价格深度分析报告

一、报告概述本报告基于2026年7月深圳市福田区实际成交案例,从成交价格、户型结构、区域板块、购房成本及市场趋势等维度进行深度分析,为购房者、投资者及行业研究者提供数据参考与决策依据。二、样本说明与数据来源本报告统计样本来源于2026年7月福田区…

作者头像 李华