小鱼开发
f32c1c7703
refactor: 删除 video 任务类型
...
产品无云端视频生成功能,Scheduler 也未注册 VideoHandler,
删除遗留的 video 任务类型及相关代码:
- tasks.py: VideoParams、video 分支
- schemas/task.py: VideoTaskParams
- schemas/__init__.py: VideoTaskParams 导出
2026-05-05 16:56:49 +08:00
小鱼开发
431c54c258
refactor: 前端脚本生成改为异步任务轮询,精简LLM模型,删除图片生成代码
...
- 前端:ScriptCreation SSE 流式改为 createTask + pollTask 轮询
- 后端:LLM 仅保留 doubao-seed-2-0-pro,删除降级链及相关模型
- 后端:删除所有图片生成代码(ImageParams/ImageTaskParams/generate_image)
- 更新 platform-config.yaml、model_router、volcengine_provider、tasks 等
2026-05-04 19:58:32 +08:00
小鱼开发
6c0f240369
chore: 删除脚本生成 SSE 流式相关废弃代码
2026-05-04 19:37:30 +08:00
小鱼开发
52ba99e11d
refactor: Scheduler 层统一命名 job → task
2026-05-04 19:18:22 +08:00
小鱼开发
82657c2d65
chore: 删除形象克隆相关代码、配置及注释
2026-05-04 19:06:45 +08:00
小鱼开发
e58159fc42
refactor: 第三方平台架构改造(Adapter Protocol + Gateway)
...
Phase 1: 异常体系统一
- 新增 PlatformError / PlatformErrorType 标准定义
- 改造所有 Provider 异常抛出为 PlatformError
- 注册全局 PlatformError exception handler
Phase 2: Adapter Protocol
- 新增 app/ai/adapters/base.py(PlatformAdapter + SyncCapable + TaskCapable + CallbackCapable)
- 新增 app/ai/adapters/constants.py(Method 常量)
- 新增 PlatformConfigLoader(config/platform-config.yaml)
Phase 3: HTTP Client 统一
- ViduProvider 从 aiohttp 迁移到 httpx(注入方式)
- VolcengineCaptionService 改为注入 http_client
- lifespan 统一管理所有 Client 创建和关闭
Phase 4: Gateway 骨架 + Adapter 实现
- 新增 ViduAdapter / VolcengineArkAdapter / VolcengineCaptionAdapter
- 新增 PlatformGateway(call_sync / submit_task / query_task / handle_webhook)
- 新增 LLMGateway(带 Fallback 降级链)
- lifespan 注册所有 Adapter 和 Gateway
Phase 6: 清理与验证
- 从 Settings 移除 VIDU_BASE_URL / VOLCENGINE_BASE_URL
- Provider 改为从 PlatformConfigLoader 读取 base_url
- 清理 volcengine_caption_service 全局单例
- config_loader 默认路径改为 platform-config.yaml
- Scheduler 注入共享 HTTP client
- vidu.py 回调路由使用 Adapter 验签和解析
- ruff 全量通过,应用启动测试通过
2026-05-04 16:07:16 +08:00
小鱼开发
0c921aca11
chore: 清理废弃代码和文档
...
- 删除 anytocopy 相关文件(service、handler、文档)
- 删除 KlingAI / MiniMax 开发文档
- 删除 database-design、mvp-lip-sync-replacement 等过时文档
- 删除旧的 docker-compose.yml(已拆分为 dev/test/prod)
- 删除 config/ai_models.yaml(已合并到 platform-config.yaml)
- 从 .env.example 移除 anytocopy 配置
- 从 tasks.py、schemas 移除 copy 任务类型
2026-05-04 16:06:25 +08:00
小鱼开发
e262134148
refactor: 移除 KlingAI 和 MiniMax 相关代码
...
删除内容:
- KlingAI Provider、MiniMax Provider
- Kling 视频/图片/TTS/语音克隆/形象克隆 Service 和 Scheduler Handler
- 已废弃的 TTSService、VoiceCloneService
- config 中 KLINGAI_*/MINIMAX_* 配置项
- ai_models.yaml 中 klingai 平台和模型配置
- docker-compose 中相关环境变量
- .env.example 中相关配置示例
- deploy-test.sh 中相关检查
- Makefile 中 klingai 语义检查排除规则
- KlingTaskStatus 枚举
修改内容:
- model_router.py 移除 KlingAI 平台分支
- voice.py 重写,修复批量合成/文件保存中 service 未定义的 Bug
- vidu_service.py 移除 MiniMax 相关注释
- script_handler.py 更新注释
2026-05-02 23:16:14 +08:00
小鱼开发
70a87465b5
chore: unregister unused KlingAI/MiniMax handlers and imports
...
- Remove KlingAI handlers (video, avatar, image, tts) from scheduler registration
- Remove MiniMaxTTSService import from voice.py (deprecated, migrated to Vidu)
- Keep source files for future reference
2026-05-02 22:47:33 +08:00
小鱼开发
ab9962d333
refactor(vidu): reusable session, semaphore, retry, lifespan management
...
- vidu_provider: single ClientSession with TCP connector pool and explicit timeouts
- vidu_service: Semaphore(10) concurrency limit + tenacity retry (3 attempts, exponential backoff)
- voice/vidu routes: use FastAPI Depends injection instead of new Service() per request
- main.py: initialize Vidu Provider & Service in lifespan, close on shutdown
- add tenacity to dependencies
- remove vidu_tts_service.py
2026-05-02 21:55:20 +08:00
小鱼开发
02b5a89eaf
refactor(script): add timeout and error handling for polish/title
...
- Add 15s asyncio.timeout() to polish_content and generate_title
- Add try/except to /polish route for unified error response
- Add asyncio.TimeoutError handling to /generate-title route
2026-05-02 21:23:50 +08:00
小鱼开发
feddeed950
refactor(script): remove sync endpoint, add thread-pool & timeout
...
- Remove unused POST /script/generate sync endpoint and frontend generate()
- Move JSON parsing/validation to asyncio.to_thread() to avoid event-loop blocking
- Add 60s asyncio.timeout() around entire script generation pipeline
- Migrate volcengine_provider to unified AsyncArk client
2026-04-30 23:51:30 +08:00
小鱼开发
08a430ad9d
refactor: type-driven project meta persistence & remove fallback code
...
Frontend:
- Extract ProjectMeta to types/project.ts as single source of truth
- Add utils/projectMeta.ts with buildProjectMeta(), migrateMeta(), BLANK_META_OVERRIDES
- Refactor saveMetaToLocalFile() from 50+ lines to ~10 lines
- Refactor initProjectStore() with BLANK_META_OVERRIDES to prevent field leakage
- Fix createNewProject() reset logic using BLANK_META_OVERRIDES
- Remove all actualDuration/audioStartTime/audioEndTime fallback in VideoGeneration.tsx
- Add strict assertions in computeAssignedIntervals() (missing data throws)
- Remove 4 lines of dead code (commented imports, redundant disabled, dangling JSDoc)
- Pre-fill actualDuration in adaptScriptShots() and ScriptCreation handleFieldChange()
- Fix fs:allow-exists permission scope for external file paths
Backend:
- Fix extract_project_id_from_filename() rsplit bug (always returned None)
- Fix utils.rs path casing ("Projects" -> "projects")
- Add Vidu callback HMAC-SHA256 signature verification with nonce replay protection
- Update docs/vidu-tts-api.md with callback verification chapter
2026-04-30 18:34:22 +08:00
小鱼开发
8cb9e2da12
feat: reload_config 返回错误详情 + 远程配置增加 schema 校验
...
6. reload_config() 吞掉异常详情:
- 返回类型从 bool 改为 tuple[bool, str],包含具体错误信息
- API 层将错误详情返回给前端,便于排查
- 异常统一记录到日志
8. 远程配置无 schema 校验:
- 后端新增 MaterialsConfig Pydantic Model 校验 materials.json 结构
- load_config() 远程/本地配置均先校验再应用,格式错误时抛出明确异常
- 前端 CoverDesign 新增 isValidBgConfig() 运行时校验 bg-config.json
- 校验失败时优雅降级到本地配置,避免页面白屏
2026-04-30 16:20:32 +08:00
小鱼开发
bdd582bd76
feat: 标题生成提示词区分视频画面与封面场景
...
后端:
- GenerateTitleRequest 新增 usage 字段(video/cover)
- 根据 usage 渲染不同的场景描述、风格要求、创作注意
- title_system.txt / title.txt 增加 等变量
前端:
- scriptApi.generateTitle 新增 usage 参数
- SubtitleBurning 传 usage: 'video'(视频画面标题)
- CoverDesign 传 usage: 'cover'(封面标题)
2026-04-30 15:55:25 +08:00
小鱼开发
588c2236e6
feat: 封面制作优化 + 素材配置远程化
...
- 背景图配置改为从七牛云 CDN 远程拉取,支持不发版新增图片
- 删除本地 public/bg/ 图片副本,减小包体积
- 封面制作:'换一组'按钮移至标签右侧、优化按钮样式、删除冗余提示
- 封面制作/视频合成右侧预览区分别添加'封面预览'/'视频预览'标题
- 素材匹配服务支持远程 fetch materials.json + reload API
2026-04-30 15:32:10 +08:00
小鱼开发
475758beed
feat: 大小标题支持智能生成
...
后端:
- 新增 POST /script/generate-title API
- 新增提示词模板 title_system.txt / title.txt(文件管理)
- 根据脚本内容调用 LLM 生成大标题(≤8字)/小标题(≤30字)
前端:
- 大标题/小标题输入框右侧新增【智能生成】按钮
- 点击后根据 utterances 拼接脚本内容调用 API
- 添加 title-input-row / title-generate-btn CSS 样式
2026-04-30 12:09:56 +08:00
小鱼开发
a2255b2d0d
fix: Vidu回调body用id而非task_id作为任务标识
2026-04-28 23:11:56 +08:00
小鱼开发
0698f6833b
fix: Vidu对口型任务成功状态从succeeded改为success
2026-04-28 22:50:08 +08:00
小鱼开发
51ceb58581
fix: 测试环境认证短路返回测试用户;视频预览区分线上/本地并修复blob revoke
2026-04-28 21:31:18 +08:00
小鱼开发
29829d90df
fix: DEBUG模式自动创建测试用户;空镜上传素材按实际分配时长校验
2026-04-28 17:36:33 +08:00
小鱼开发
d419d6732e
feat: Vidu 对口型回调机制完整版(B方案)
...
后端:
- config.py: 新增 APP_BASE_URL 配置,支持 ENV 自动推断公网地址
- vidu.py: POST /lip-sync 自动拼接 callback_url 提交给 Vidu
- vidu.py: 新增 POST /callback 接收 Vidu 异步回调,写入 Redis
- vidu.py: GET /tasks/{id}/status 优先查 Redis,fallback 到 Vidu API
前端:
- types.ts / localStorage.ts: ScriptShot/ProjectSegment 新增 lipSyncVideoPath/VideoUrl/StartTime
- VideoGeneration.tsx: Step 1 提交对口型时保存 lipSyncStartTime(只算一次)
- VideoGeneration.tsx: 新增 Step 2 轮询后端状态(5s×120次),下载对口型视频
- VideoGeneration.tsx: Step 3 拼接时 segment 优先使用对口型视频,startTime=0
部署:
- docker-compose.test.yml / prod.yml: 添加 APP_BASE_URL 环境变量
- .env.example: 添加 APP_BASE_URL 说明
修复:
- 修复 React 闭包陷阱(updateSegment 后 shots 未同步)
- 修复 startTime 不一致(Step1/Step2 各自 random)
2026-04-28 15:23:46 +08:00
小鱼开发
773065536c
refactor: 统一项目命名为 meijiaka-zy / 美家卡智影
...
- 中文产品名统一为 美家卡智影
- 代码目录/容器名/数据卷: meijiaka-zy
- 本地存储路径: Meijiaka-zy
- 数据库名: meijiaka_zy
- 七牛云资源前缀: meijiaka-zy
- 部署脚本指向新仓库 meijiaka-zy.git
2026-04-26 23:02:05 +08:00
小鱼开发
69c2fe1c1c
chore: 清理仓库废弃代码和临时文件
...
删除文件:
- 根目录: package.json, package-lock.json, .DS_Store
- 后端未使用模块: token_manager_example.py, kling_dto.py, crud/avatar.py
- 未注册路由: ai_models.py, klingai.py, qiniu.py, video.py
- 废弃配置: docker-compose.dev.yml
- 前端未使用页面: AudioMixing.tsx/css, VideoEditing.tsx/css
- 所有 .DS_Store 临时文件
新增: .gitignore(忽略 .DS_Store, node_modules, __pycache__ 等)
清理后减少 ~2700+ 行无效代码
2026-04-26 22:32:12 +08:00
小鱼开发
bc724810a6
feat: 视频创作流程全链路优化
...
- 后端: Vidu Provider、System API、Upload API、素材服务更新
- 前端: 字幕压制、视频生成、配音、本地存储、类型定义优化
- Rust: FFmpeg 命令、视频合成、语音命令、库注册更新
- Store: 项目状态、语音状态管理优化
- 新增: 对口型替换文档、健康检查器、字幕 API 模块、音频对齐工具
- 删除: 废弃的 polish 提示词模板
2026-04-26 21:24:42 +08:00
小鱼开发
e924193ead
refactor: 简化脚本生成 SSE 事件流,移除 analyzing 阶段
...
- script_service: 删除一闪而过的 analyzing 事件,4阶段→3阶段
- start 和 generating 文案统一为"正在创作脚本..."
- 同步更新前后端类型定义和 API 文档
2026-04-26 21:07:54 +08:00
小鱼开发
d0057ecc2c
feat: 脚本生成流式优化 - Ark SDK 迁移至 httpx SSE + reasoning_effort 关闭思考过程
...
- volcengine_provider: Ark SDK 同步迭代器 → AsyncOpenAI → httpx 原始 SSE
- generate_stream_with_progress 使用 httpx 直接请求,消除 80s+ 缓冲
- 新增 generate_stream (AsyncOpenAI) 作为备用方案
- enable_thinking 替换为 reasoning_effort,支持思考程度控制
- ai_models.yaml: 默认 LLM 改为 doubao-seed-2-0-pro,添加 reasoning_effort: minimal
- model_router: 透传 reasoning_effort 参数
- script_service: 4 阶段 SSE 精简 (start→analyzing→generating→complete)
- script.py: SSE 直连端点 /script/generate/stream
- 前端 ScriptCreation: 直连 SSE 端点,弃用调度器轮询模式
2026-04-26 20:17:12 +08:00
小鱼开发
e15bdaf996
fix: 素材匹配、Step流程、UI优化
...
- 修复 duration 解析 bug (parseInt→parseFloat),解决素材'换一个'候选池过小
- 素材匹配策略:候选池=满足时长+最近5个,严格模式排除已用素材
- Step2 下一步按钮绑定 dubbingAudioUrl 生成状态
- 修复 VoiceDubbing 生成后未同步 projectStore
- 修复 _meta.json JSON 格式错误导致分类列表空白
- Step3/Step4 视频预览区添加标题
- 压制字幕按钮固定在底部
- 选项卡按钮高度微调
2026-04-24 15:46:06 +08:00
小鱼开发
9b8d24b435
feat: 视频生成流程重构 - 本地拼接 + Vidu 对口型 + 空镜去重
...
- 后端: 空镜匹配支持 exclude_urls 去重
- 后端: materials.json 关键词映射扩充
- Rust: compose_video 参数平铺化修复 IPC 调用
- Rust: concat_videos_copy 去除音频
- Rust: 上传接口 API 地址改为 8081
- Rust: clip_video 放宽输入路径校验
- 前端: VideoGeneration 人物素材本地选择 + 保存恢复
- 前端: 空镜自动匹配 + 串行去重
- 前端: 对口型任务提交 + 字段重命名
- 前端: 分镜卡片去除点击/选中/hover 交互
- 前端: 视频预览改为成品视频
- Makefile: Docker 命令适配共享基础设施
2026-04-22 23:08:07 +08:00
小鱼开发
4e06f4abe2
feat: 空镜素材配置后端化,视频生成流程重构
...
- 后端: 空镜素材迁移到 config/materials.json,duration从文件名_{N}s_自动解析
- 后端: 新增 POST /api/v1/materials/match 接口,后端做关键词匹配
- 前端: VideoGeneration 空镜匹配改为调用后端接口
- 前端: 人物出镜素材改为本地文件选择器直接选取,不走素材库
- 前端: 视频生成流程简化,移除Vidu对口型和七牛云上传
- Rust: 视频合成支持从随机起始时间截取人物素材片段
- Rust: 修复ffprobe参数错误(添加-show_entries format=duration)
2026-04-22 18:49:20 +08:00
小鱼开发
87a4aca213
fix: Async Engine ScriptParams 改为 category + subcategory
2026-04-22 11:22:27 +08:00
小鱼开发
13c5c18dcc
feat: 脚本生成提示词改为大类-小类-随机加载体系
2026-04-22 11:01:45 +08:00
小鱼开发
3c08cccdd8
fix: Vidu 克隆 voice_id 长度校验,自动规范化用户输入名称
2026-04-22 07:32:56 +08:00
小鱼开发
4795acc367
feat: Vidu 语音能力全面接入,音频归属修正至项目级
...
- 后端 Voice API 全面切换至 Vidu(TTS/克隆/对口型)
- 前端配音页面 UI 优化:重新生成+播放音频双按钮
- 素材库克隆适配:Vidu 同步克隆,前端预校验格式/大小/时长
- 音频数据归属修正:生成配音保存到 meta.json(dubbingAudioUrl/Path/VoiceId)
- 不再写入 audios.json 和 segments.json,统一项目级一份配音
- Rust save_audio 支持 skip_list 参数跳过 audios.json 写入
2026-04-22 00:17:04 +08:00
小鱼开发
67e73b5a51
feat: 素材库重构、七牛上传修复、配音页面优化、MiniMax后端接入
...
- 素材库: VoiceMaterialLibrary 支持音频/视频分类、Modal弹窗、进度弹窗
- 列表布局: 紧凑单行、灰色图标按钮、重命名功能、删除ConfirmModal
- 生成配音: toast替换为ProgressModal
- 私有音色显示: 描述改为createdAt日期
- 七牛上传: 修复upload_stream参数、修正put_stream参数名
- MiniMax后端: 新增Provider+Service,TTS/克隆/音色列表切到MiniMax
- 前端默认音色: tianxin_xiaoling
- Rust: 新增voice命令、本地音频存储、配音生成功能
- 新增shot统计组件、脚本编辑器优化
2026-04-21 23:27:08 +08:00
小鱼开发
189fdf5ed6
feat: 接入 Vidu TTS/复刻/对口型,替换 MiniMax 语音能力
...
- 新增 ViduProvider: TTS同步、声音复刻、对口型、任务查询
- 新增 ViduTTSService: 业务封装,6个精选中文预设音色
- Voice API 路由全面切换至 Vidu
- 新增 /voice/lip-sync 对口型异步接口
- 前端适配: 16个音色→6个、slider范围更新、音量默认0
- 添加 vidu-tts-api.md 开发文档
- docker-compose 新增 VIDU_API_KEY 环境变量映射
2026-04-21 23:26:24 +08:00
小鱼开发
bb08d0f586
refactor: 从智影 Fork 重构为智剪,独立 Docker 基础设施,开发模式认证兜底
...
主要变更:
- 修复 /tasks/script 路由 404(去掉重复 prefix)
- 开发模式自动认证兜底(无需登录即可测试流程)
- Docker 基础设施独立化(共用 db/redis)
- 前端 API 端口改为 8081
- 新增 TTS/语音克隆、视频粗剪、音频混音等智剪功能
- 删除智影专属模块(avatar、model_usage、qiniu 上传等)
2026-04-21 12:35:50 +08:00
小鱼开发
74983ce5ec
feat: init meijiaka-zj project from ai-meijiaka template
2026-04-20 16:39:57 +08:00