尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Duix.Avatar 新增模特失败?SQLite3 布尔值报错三步修好

发布时间:2026/9/11 10:08:37

资讯中心
01
ARTICLE

Duix.Avatar 新增模特失败?SQLite3 布尔值报错三步修好

Duix.Avatar 新增模特失败?SQLite3 布尔值报错三步修好
Duix.Avatar 新增模特失败SQLite3 布尔值报错三步修好【免费下载链接】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在 Duix.Avatar 里新增一个定制模特视频传完、点击提交后客户端日志里抛出这个错误模特完全加不进去。原文是Error invoking remote method model/addModel: TypeError: SQLite3 can only bind numbers, strings, bigints, buffers, and null这条报错看着吓人其实只是最后一公里的问题一个布尔值被原样传进了 SQLite。一条 INSERT 到底卡在哪报错发生在往f2f_model表写模特记录这一步实际执行的 SQL 是取自客户端日志INSERT INTO f2f_model (name, video_path, audio_path, voice_id, created_at) VALUES (aaa, 20250405012435008.mp4, origin_audio/20250405012435008.wav, false, 1743787484937)⚠️ 肇事参数就一个第四个字段 voice_id 被绑定了false。better-sqlite3 的参数绑定白名单非常窄一张表说清楚参数类型能否绑定number、string、bigint、buffer能null能布尔值true / false不能直接抛上面这条 TypeErrorundefined、对象、数组不能同样 TypeError为什么 false 不是合法值类型不匹配SQLite 绑定不认布尔现象建表语句里 voice_id 明明是整数列写进去的却是布尔值。 证据日志显示该语句绑定的值为布尔 false而建表脚本src/main/db/sql.js中 voice_id 定义为INTEGER。 结论SQLite 没有原生布尔类型better-sqlite3 只接受 number/string/bigint/buffer/null 五类布尔值直接越界报错。上游断链训练失败被 false 吞掉现象模特视频已经复制、音频也已分离唯独 voice_id 这一环空了。 证据日志里有train ~ res: { code: -1, msg: NoneType object has no attribute send }说明 TTS 服务端的预处理接口调用失败返回了 -1。 结论语音训练入口 的train()在res.code ! 0时return false上层 addModel 不校验直接把 false 当 voiceId 递给了数据库——断链被静默吞到了数据库层才炸。校验缺位参数入库前没人把关现象用户最终只看到一句 SQLite3 can only bind...完全不知道是哪一个环节坏了。 证据DAO 层 的insert()把五个参数原样交给stmt.run(...)执行前没有任何类型检查。 结论voiceId不是数字也不是 null 就插不进去整条 addModel 流程中断而报错信息里甚至提不到 voiceId。先止血再根治第 1 步·立即止血把布尔值转成 null在service/model.js的 insert 调用前改一行即可// 布尔 false 不落库按无语音模型处理 voiceId: typeof voiceId boolean ? null : voiceId改完这步SQLite 绑定报错消失模特能正常入库voice_id 为 null。第 2 步·堵断链训练失败改成直接抛错病根在语音训练入口吞失败TTS 服务预处理返回非 0 码最常见的是 asr 连接被拒时它不抛错而是return false。把这一行换成if (res.code ! 0) throw new Error(Voice training failed: res.msg)改完这步报错会从SQLite 不能绑定变成可读的 Voice training failed: NoneType object has no attribute send一眼看出是服务端 asr 没就绪而不是去读数据库堆栈。第 3 步·加保险数据库层补一道类型检查在 数据库连接层 的 run 包装里补最后防线任一参数为布尔或 undefined 时带出参数名直接抛错。改完这步以后任何业务再误传布尔报错信息会直接指到出问题的字段排查不用翻三个文件。下次怎么少踩坑数据入库前统一过一遍数字/字符串/整数/bigint/null 五类之一不是就带字段名报错上游 API 失败必须抛错不要用 false 当哨兵值它太容易被误读成数据不存在新增模特前先校验视频有音轨且有人在说话无声视频会让语音训练直接失败排查客户端报错时优先看服务端 docker 日志很多数据库错误本质是服务端返回了 -1先改第 1 步那一行恢复模特新增第 2、3 步的抛错改造排进下个版本跟进即可。【免费下载链接】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),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。