platform.ciyuanfun.cn


服务概览

🔐 认证鉴权

用户注册/登录、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 授权码流程
POST

Token 端点

/oauth/token
获取/刷新 OAuth Token
GET

JWKS

/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
删除音色
POST

TTS 合成

/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 解析(图片 / 音视频 / 扫描件)

POST

AI 解析提取

/api/v1/org/import/extract
图片 OCR(qwen-vl-ocr)、视频/音频转写(paraformer-v2,ffmpeg 抽 16k 单声道)、扫描件 PDF 逐页识别。限额:图片 10MB / 视频 50MB / 音频 20MB / 视频 600s / 每日 30 次 / 单用户 1 并发

本地解析(前端完成,不占额度)

📄 TXT / RTF

按编码直读,无网络请求

📝 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
积分收入明细,按「充值 / 平台转入 / 其他转入」分类
GET

PX 余额

/api/v1/wallet/px/balance
PX 积分余额(账本口径,与 PX 平台一致)
POST

PX 双向兑换

/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 调用记录
GET

服务健康

/health
服务健康检查
GET

OIDC 发现

/.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
超管强制停用任意自定义模型,即时生效