开发者平台
提供语音合成、图片/视频生成、故事制作、素材管理等一站式 AI 能力
所有 API 均通过 HTTPS + Bearer Token 鉴权
v0.9.0 · Go 后端 · 58080 · PX 兑换枢纽 · BYOK
服务概览
🔐 认证鉴权
用户注册/登录、OAuth 2.0、OIDC、SSO 单点登录
7 个端点
🎤 声音克隆 & TTS
阿里云百炼声音复刻、语音合成、音色库管理
9 个端点
🖼️ AI 图片生成
Seedream 文生图、素材库管理与分类、模型定价
6 个端点
🎬 视频生成
火山方舟 Seedance 文生视频、异步轮询、失败自动退款
3 个端点
📥 导入解析
图片 OCR(qwen-vl-ocr)、音视频转写(paraformer-v2)、扫描件 PDF 逐页识别
1 个端点
📖 故事 & 分镜
故事管理、分镜编辑、素材库调用/本地上传插视频、自动视频生成 + 配音合成
15 个端点
👤 角色 & 素材
角色、场景、道具的增删改查
8 个端点
🔐 统一认证 & 渠道商
admin.ciyuanfun.cn 管理端、渠道商体系、用户管理、邀请二维码本地渲染
15 个端点
💳 套餐 & 支付
套餐选购、微信支付下单、订单查询
4 个端点
💰 钱包 & 积分
用户钱包充值(微信支付扫码)、余额查询、积分收入明细、PX 双向兑换
7 个端点
🔁 PX 积分兑换
通用积分兑换枢纽:三模式路由(api/gateway/none)+ 积分包购买 + 汇率校准 + 消费进度
5 个端点
🔌 模型通道管理
通道化配置(provider/接入点/密钥/协议模板)、厂商预置清单、厂价自动算公布价、连通测试
9 个端点
🧩 自定义模型(BYOK)
用户/渠道商带自己的上游 Key 接入私有通道、单价快照、群内可见、只收 5% 服务费
11 个端点
🗂️ 项目组
按系列 / 客户把「我的作品」归入项目组:组 CRUD、归档、作品移入移出、按组筛选、后台完整管理(含成员)
19 个端点
🎯 素材归属
六类素材 + 作品统一四级归属:私有(默认)/ 全局 / 项目组(组内成员可见)/ 作品;归属筛选、单条与批量设置、超管下架
11 个端点
🧩 项目组协作
首提者任组长、全站成员自由加入;组内互见素材与作品,创建时编辑框选归属(默认私有、全站项目组可选并自动加入、+ 就地建组),后台成员可查可编辑
8 个端点
🔐 认证鉴权
POST注册
/api/v1/auth/register
创建新用户账号
POST登录
/api/v1/auth/login
用户密码登录,返回 Token Pair
POST刷新 Token
/api/v1/auth/refresh
用 Refresh Token 刷新 Access Token
GET用户信息
/api/v1/users/profile
获取当前登录用户信息(需 Bearer Token)
POST登出
/api/v1/users/logout
登出并撤销当前 Token
GET授权
/oauth/authorize
OAuth 2.0 授权码流程
POSTToken 端点
/oauth/token
获取/刷新 OAuth Token
GETJWKS
/api/v1/.well-known/jwks.json
JWT 公钥集
🎤 声音克隆 & TTS
POST声音复刻
/api/v1/org/voices/clone
上传音频克隆声音(阿里云百炼 qwen-voice-enrollment)
POST上传音频
/api/v1/org/voices/upload
上传 WAV/MP3 音频素材,≤10MB
GET音色列表
/api/v1/org/voices
列出我的音色库
POST创建音色
/api/v1/org/voices
创建音色记录
PUT更新音色
/api/v1/org/voices/:id
更新音色信息
DEL删除音色
/api/v1/org/voices/:id
删除音色
POSTTTS 合成
/api/v1/org/tts/synthesize
文本转语音(阿里云百炼 qwen3-tts-vc)
GET可用音色
/api/v1/org/tts/voices
所有已克隆可用于合成的音色
GET音频文件
/api/v1/org/voices/file/:filename
获取上传的音频文件(支持 Range)
🖼️ AI 图片生成
POST文生图
/api/v1/org/generate/image
Seedream 直连文生图(4.0/4.5/5.0-lite),同步返回,扣积分+失败自动退款
GET素材列表
/api/v1/org/assets
素材库分页列表(page/size/type/cat,cat 走独立 category 列)
GET素材文件
/api/v1/org/assets/file/:id
素材文件服务(图片/音频/视频,支持 Range 拖动播放)
POST上传素材
/api/v1/org/assets
上传图片/音频/视频(multipart,≤50MB;category 分类;类型以实际文件为准,标错会被纠正)
PATCH修改素材
/api/v1/org/assets/:id
改名 / 改描述 / 改分类(仅本人,越权 403)
GET模型定价
/api/v1/org/pricing/image-models
图片模型档位与积分定价
🎬 视频生成
POST创建视频任务
/api/v1/org/videos
文生视频(Seedance 2.0/2.0-fast/2.0-mini,时长 2-12 秒,选几秒出几秒,失败自动退款)
GET视频列表
/api/v1/org/videos
列出我的视频生成任务(queued/running/succeeded/failed)
DEL删除视频
/api/v1/org/videos/:id
删除视频记录
📥 导入解析
AI 解析(图片 / 音视频 / 扫描件)
POSTAI 解析提取
/api/v1/org/import/extract
图片 OCR(qwen-vl-ocr)、视频/音频转写(paraformer-v2,ffmpeg 抽 16k 单声道)、扫描件 PDF 逐页识别。限额:图片 10MB / 视频 50MB / 音频 20MB / 视频 600s / 每日 30 次 / 单用户 1 并发
本地解析(前端完成,不占额度)
📝 DOCX
前端解包 word/document.xml
📕 PDF(文本层)
pdf.js 抽取文字,文字量 ≥20 字即判定为文本 PDF
🖼️ PDF(扫描件)
文字层为空时自动转 canvas 逐页 OCR,每批 10 页
📖 故事 & 分镜
POST创建故事
/api/v1/org/stories
创建故事,自动解析剧本为分镜
GET故事列表
/api/v1/org/stories
用户故事列表
GET故事详情
/api/v1/org/stories/:id
故事完整详情(含分镜)
PUT更新分镜
/api/v1/org/stories/:id/panels/:pid
更新单分镜内容
POST新增分镜
/api/v1/org/stories/:id/panels
新增空白分镜,支持 ?after=N 插入
POST插入分镜视频
/api/v1/org/stories/:id/panels/insert-video
素材库选片(JSON video_url)或本地上传(multipart),插在 after 之后
DEL删除分镜
/api/v1/org/stories/:id/panels/:pid
删除分镜并重排编号
PUT重排分镜
/api/v1/org/stories/:id/panels/reorder
按 panel_ids 数组重排顺序
GET生成视频
/api/v1/org/stories/:id/video
异步提交分镜到 Seedance 生成视频
GET视频状态
/api/v1/org/stories/:id/video/status
查询视频生成状态(分镜级进度)
GET拼接视频
/api/v1/org/stories/:id/video/concat
🎬 分镜拼接(本地合并,不耗 Seedance token)
GET故事配音
/api/v1/org/stories/:id/tts
生成整故事配音音频
GET配音状态
/api/v1/org/stories/:id/audio
查询故事配音音频
POST混音
/api/v1/org/stories/:id/audio/mix
配音混入故事视频
POST上传分镜视频
/api/v1/org/stories/:id/panels/:no/upload
上传自定义分镜视频
👤 角色 & 素材
GET角色列表
/api/v1/org/characters
我的角色库
POST创建角色
/api/v1/org/characters
创建角色(支持 gen_mode/gen_ratio)
PUT更新角色
/api/v1/org/characters/:id
动态更新角色字段
DEL删除角色
/api/v1/org/characters/:id
删除角色记录
GET场景列表
/api/v1/org/stories/:id/scenes
故事下的场景列表
POST创建场景
/api/v1/org/stories/:id/scenes
创建场景(默认 text2img)
GET道具列表
/api/v1/org/stories/:id/props
故事下的道具列表
POST创建道具
/api/v1/org/stories/:id/props
创建道具
🔐 统一认证 & 渠道商
管理端入口
🔐 管理端入口
admin.ciyuanfun.cn
统一认证生态管理入口:302 → login.html(超管/渠道商双 tab)→ 超管 index.html / 渠道商 reseller-panel.html
POST管理端登录
/admin/login
超管/渠道商 bcrypt+JWT 登录,返回 role/token
GET当前管理账号
/admin/me
当前管理员信息(Bearer JWT / X-Mam-Admin-Key)
GET渠道商统计
/admin/reseller/me/stats
渠道商自助统计(用户数/消耗)
POST补贴积分
/admin/reseller/me/credits
渠道商给名下用户补贴积分(校验归属+余额)
POST邀请码
/admin/reseller/me/invite
渠道商生成/重置邀请码(/invite/regenerate)
GET邀请二维码
/api/v1/qr?data=&size=150
服务端本地渲染二维码 PNG(go-qrcode),不再依赖境外 api.qrserver.com;data ≤512 字符、size 80~512,返回 image/png
💳 套餐 & 支付
GET套餐列表
/api/v1/org/packages/plans
免费版 / 入门版 / 标准版 / 专业版
GET已购套餐
/api/v1/org/packages
查询已购买的套餐
POST购买套餐
/api/v1/org/packages/buy
免费直接激活 / 付费生成微信支付订单
GET订单查询
/api/v1/org/packages/order
查询订单支付状态
💰 钱包 & 积分
GET充值套餐 & 汇率
/api/v1/wallet/recharge/plans
获取充值套餐列表与人民币:积分汇率(默认 1 元 = 1 积分)
POST微信充值下单
/api/v1/wallet/recharge
创建微信支付 Native 订单,返回二维码 URL、订单号与到账积分
GET充值订单状态
/api/v1/wallet/recharge/status
轮询支付状态(paid / SUCCESS / CLOSED / PAYERROR 等)
GET钱包余额
/api/v1/wallet/balance
查询当前用户积分余额
GET账户明细
/api/v1/wallet/account/income
积分收入明细,按「充值 / 平台转入 / 其他转入」分类
GETPX 余额
/api/v1/wallet/px/balance
PX 积分余额(账本口径,与 PX 平台一致)
POSTPX 双向兑换
/api/v1/wallet/px/exchange
Mam ↔ PX 兑换(px_to_mam=消费无手续费 / mam_to_px=退款 1% 手续费进资金池)
🔁 PX 积分兑换枢纽
GET兑换对象列表
/api/exchange/partners
18 个可兑换积分种类(MaM 已启用 rate 1:1;6 大模型伙伴支持 gateway 积分包)
POST兑换执行
/api/exchange/redeem
三模式路由:api=伙伴直连入账 / gateway=购买积分包(scenarioId) / none=暂未接入;consume 兑换无费、refund 退款 99% 到账;支持 targetUsername 跨用户互换
GET账本余额查询
/api/users/ledger-balance
按链上地址查 users_backend.json 账本余额(运营真相源,公开)
GET消费进度
/api/gateway/credits/{username}
综合 MaM 兑换 + gateway 托管积分(已获得/可用/已消费),移动端进度条数据源
GET交易记录
/api/transactions?username=
用户交易记录(exchange 记录带 direction/toName/partnerName 语义)
⚙️ 开发者控制台
GET应用列表
/api/v1/org/apps
我的开发者应用
POST创建应用
/api/v1/org/apps
注册新应用获取 AppKey
GET调用日志
/api/v1/org/logs
API 调用记录
GETOIDC 发现
/.well-known/openid-configuration
OpenID Connect 发现文档
🔌 模型通道管理
P192–P193 落地:模型配置从代码搬进数据库。一条通道=某模型的一条实际出路(厂商 + 接入点 + 密钥 + 协议模板),
可随时启停,停用即拒单(不回落硬编码)。密钥 AES-256-GCM 加密入库;新增模型时勾「自动算价」,
按 公布价(积分) = ceil(厂价(元) × 1.2 × 10) 直接生成每一档定价,无需先跑一趟定价页。
GET通道列表
/api/v1/admin/model-channels
按 kind(image/video)列出通道:model_key / provider / 接入点 / 协议 / 启停 / 优先级
POST新增 / 更新通道
/api/v1/admin/model-channels
一条龙建价:带 factory_cost + auto_price=true 时同时写入定价,返回 auto_credits
DEL删除通道
/api/v1/admin/model-channels/:id
删除通道;已有资产引用时返回 conflict 并提示改用停用
POST测试连通
/api/v1/admin/model-channels/:id/test
真发一次最小请求;quality 可传(lite/4.5 必须 2k,4.0 只吃 standard)
GET协议模板
/api/v1/admin/channel-protocols
可用协议模板(内置 volc_image 等):提交 URL / body / 响应字段映射
GET厂商 & 模型清单
/api/v1/admin/model-catalog
新增模型弹窗第 1 段的数据源:厂商分组 + 预置模型(接入点/厂价/公布价/尺寸档/KeyEnv)
GET密钥列表
/api/v1/admin/model-credentials
已入库密钥(仅返回掩码,不回明文)
POST新增密钥
/api/v1/admin/model-credentials
AES-256-GCM 加密入库,返回 id 供通道引用
DEL删除密钥
/api/v1/admin/model-credentials/:id
删除密钥;被通道引用时拒绝
🧩 自定义模型(BYOK)
P200–P203 落地:用户和渠道商都可以带自己的上游 Key 接入私有通道,与公共通道物理隔离
(cy_user_model_channels + cy_user_model_credentials,与公共表零交集)。
计价走单价快照:模型主人自用只收公布价的 5% 服务费(积分→元→四舍五入到分→折回积分,公布价 3 分 ⇒ 0.2 积分/张);
群内其他用户用别人建的模型,按全域公布价扣使用者本人的积分。Key 一律 AES-256-GCM 入库,接口只回掩码。
创作者入口:MaM 生图面板下拉「自定义模型」;渠道商入口:admin.ciyuanfun.cn → 🔌 自定义模型。
用户端(Bearer Token)
POST新建自定义模型
/api/v1/org/models/custom
填上游 Key + BaseURL + 参照模型族,后端算单价快照落库(visibility=0 仅自己 / 1 同群)
GET我的自定义模型
/api/v1/org/models/custom
列出本人名下私有通道(Key 只回 sk-ws-****LgSa 掩码)
PATCH修改自定义模型
/api/v1/org/models/custom/:id
改名 / 换 Key / 改可见性 / 改尺寸档;越权 403
DEL删除自定义模型
/api/v1/org/models/custom/:id
删除通道;已产出的历史资产不受影响
POST测试连通
/api/v1/org/models/custom/:id/test
真发一次最小请求,验证 Key 与接入点;失败不扣积分
渠道商 / 超管(admin JWT)
GET渠道商模型列表
/api/v1/admin/reseller/me/models
渠道商自己建的模型;落 owner_reseller_id,owner_user_id=0(渠道商在 MaM 无用户账号)
POST渠道商新建模型
/api/v1/admin/reseller/me/models
建完即在本群用户生图下拉里可见可用,上游费用走渠道商自己的 Key
PATCH渠道商启停模型
/api/v1/admin/reseller/me/models/:id
停用后用户端下拉立即消失,按名字调用也不会命中
GET参照模型族
/api/v1/admin/reseller/me/ref-models
建模型时可选的定价参照(决定公布价快照与尺寸档)
GET全量自定义模型
/api/v1/admin/user-model-channels
超管视角:所有用户与渠道商建的模型(adminModelScope 判定)
PATCH超管启停
/api/v1/admin/user-model-channels/:id
超管强制停用任意自定义模型,即时生效