53371aabcd
- config/points-config.yaml: 添加 cover_avatar: 10 固定积分 - point_service.py: _CATEGORY_MAP 添加 cover_avatar → 封面形象 - image.py: remove_background 接口前置余额检查 + 后置扣费 - CoverAvatarLibrary.tsx: 上传弹窗显示积分提示,余额不足友好提示
93 lines
4.2 KiB
YAML
93 lines
4.2 KiB
YAML
# 积分计费配置
|
||
# =============
|
||
# 修改此文件即可调整各业务积分价格,无需改动代码。重启服务后生效。
|
||
#
|
||
# 配置结构说明:
|
||
# - fixed_costs: 固定积分业务(与使用量无关)
|
||
# - duration_based_costs: 按秒计费业务(根据产出内容的实际/预估时长计算)
|
||
# - free_services: 不扣积分的业务(黑名单)
|
||
|
||
|
||
# ── 固定积分业务 ──────────────────────────────────────
|
||
# 计费公式:消耗积分 = points(与输入输出量无关)
|
||
fixed_costs:
|
||
# 脚本生成:根据用户输入的装修需求,AI 生成视频脚本文案
|
||
script: 5
|
||
|
||
# 文案润色:对已有脚本进行改写、优化、调整语气风格
|
||
polish: 1
|
||
|
||
# 标题生成:根据脚本内容自动生成多个标题建议
|
||
title: 1
|
||
|
||
# 声音复刻:录制用户声音样本,训练专属 TTS 音色(一次性高成本操作)
|
||
voice_clone: 200
|
||
|
||
# 字幕烧录:将生成的字幕文件烧录到视频中(FFmpeg 合成)
|
||
subtitle_burn: 5
|
||
|
||
# 封面设计:根据视频内容自动生成封面图
|
||
cover_design: 5
|
||
|
||
# 封面形象:上传人物照片 AI 抠图生成透明背景形象
|
||
cover_avatar: 10
|
||
|
||
# 压制成片:将多个素材片段合并为最终视频(FFmpeg 拼接)
|
||
compose: 5
|
||
|
||
|
||
# ── 按秒计费业务 ──────────────────────────────────────
|
||
# 计费公式见各业务下的注释。共性参数:
|
||
# min_points: 最低扣费积分(即使时长极短也至少扣这个数)
|
||
# estimation: 执行业务前的预估参数(用于余额检查,取保守估计)
|
||
duration_based_costs:
|
||
|
||
# ── TTS(文字转语音)──
|
||
# 计费公式:max(min_points, ceil(实际音频秒数 / divisor))
|
||
# 示例:12秒音频 → ceil(12/5) = 3 积分
|
||
tts:
|
||
divisor: 5 # 每 5 秒为 1 个计费单位
|
||
min_points: 1 # 最短音频也至少扣 1 积分
|
||
|
||
# 预估参数(执行业务前检查余额时使用)
|
||
estimation:
|
||
# 每个中文字符预估时长(秒)。
|
||
# 计算依据:中文正常朗读语速约 200~250 字/分钟,取 240 字/分钟:
|
||
# 60秒 ÷ 240字 = 0.25 秒/字
|
||
# 注意:此为经验值,未经过 Vidu TTS 实测校准。实际时长受标点停顿、
|
||
# 数字/英文混合、TTS 角色风格等因素影响,误差约 ±20%。
|
||
# TODO: 收集实测数据后校准此值。
|
||
seconds_per_char: 0.25
|
||
|
||
# ── 视频生成 ──
|
||
# 计费公式:max(min_points, ceil(实际视频秒数) × multiplier)
|
||
# 说明:秒数先向上取整为整数,再乘以 multiplier。不足 1 秒按 1 秒计算。
|
||
# 示例:4.5秒视频 → ceil(4.5) × 1 = 5 积分;0.8秒 → ceil(0.8) × 1 = 1 积分
|
||
video:
|
||
multiplier: 1 # 每秒视频消耗 1 积分
|
||
min_points: 1 # 最短视频也至少扣 1 积分
|
||
|
||
# 预估参数(执行业务前检查余额时使用)
|
||
estimation:
|
||
# 视频生成时长 = 输入音频时长,因此用 input_seconds 预估最准确。
|
||
# 调用方需传入 input_seconds 参数。
|
||
use_input_seconds: true
|
||
|
||
|
||
# ── 充值档位配置 ──────────────────────────────────────
|
||
# 前端充值弹窗展示的选项,由后端统一控制。
|
||
# 支持积分赠送:points 为实际到账积分数,amount_rmb 为支付金额(分)。
|
||
# label 为空时不显示标签角标。
|
||
recharge_options:
|
||
- { price: 10000, points: 2000, label: "", validity_days: 90 }
|
||
- { price: 50000, points: 11000, label: "热销", validity_days: 180 }
|
||
- { price: 100000, points: 22500, label: "推荐", validity_days: 180 }
|
||
- { price: 500000, points: 120000, label: "超值", validity_days: 365 }
|
||
|
||
|
||
# ── 免费业务(不扣积分)───────────────────────────────
|
||
# 以下业务仅提取/处理数据,不产生 AI 生成内容,故不扣积分。
|
||
free_services:
|
||
# 字幕生成:从视频中提取字幕文本(火山引擎字幕识别)
|
||
- caption
|