| {{ t('chatId') }} | {{ t('role') }} | {{ t('model') }} | {{ t('updatedAt') }} | {{ t('actions') }} |
|---|---|---|---|---|
| {{ s.chat_id }}{{ s._label }} | {{ s.role_name }} | {{ s.model || '-' }} | {{ s.updated_at }} |
{{ t('noData') }}
| {{ t('id') }} | {{ t('chat') }} | {{ t('role') }} | Role | {{ t('content') }} | {{ t('time') }} | {{ t('actions') }} | |
|---|---|---|---|---|---|---|---|
| {{ m.id }} | {{ m.chat_id }} | {{ m.role_name }} | {{ m.role }} | {{ m.content?.substring(0, 120) }} | {{ m.created_at }} |
{{ t('noData') }}
| {{ t('chatId') }} | {{ t('role') }} | {{ t('msgCount') }} | {{ t('summaryPreview') }} | {{ t('updatedAt') }} | {{ t('actions') }} |
|---|---|---|---|---|---|
| {{ s.chat_id }} | {{ s.role_name }} | {{ s.message_count }} | {{ s.summary?.substring(0, 100) }} | {{ s.updated_at }} |
{{ t('noData') }}
{{ typeGroup.label }} {{ typeGroup.count }} models
{{ runtimeGroup.label }} {{ runtimeGroup.count }}
{{ platformGroup.label }} {{ platformGroup.count }}
{{ m.id }}
{{ field.description }}
No Media Models
{{ p.name }}
No LLM Providers
{{ llmModal.isNew ? 'Add Provider' : 'Edit ' + llmModal.data.name }}
{{ t('renameHint') }}
{{ r.rolename }}
Default Role{{ r.persona?.trim().substring(0, 150) }}
No roles
{{ roleEdit.rolename }}
Default Role{{ assetMetaText(a.kind) }}
JailBreaker
Lightweight LLM for softcore/hardcore classification
├─ softcore → Model A
└─ hardcore → Model B
[fallback] any failure → Model C
Aspect Ratio Auto
LLM outputs portrait/landscape → auto-map to image size & video ratio
Video ratio auto-maps: portrait→9:16, landscape→16:9
Scene Plate
{{ t('desc_scene_plate') }}
Lightweight LLM for location routing & env distillation
Scene state distillation LLM (character wardrobe/location continuity). Choose an uncensored provider for NSFW scenes.
LRU eviction — least recently used plates are removed beyond this limit
Diptych plate render model (gpt-image-2 recommended)
Diptych 双联图, 宽x高 (21:9 recommended)
[route] same location → reuse existing plate
└─ new location → generate clean plate (one extra image gen)
[inject] plate as last reference image + anchor prompt
fixed: structure/layout/props/palette/lighting · variable: angle/framing/detail states
{{ t('sp_locations') }}
Scene States
Distilled per-role scene state injected every turn as continuity baseline. Delete to reset a role's baseline — it rebuilds on the next media generation.
定价(美分/次)
📖 使用说明
干什么用:设置四种计价动作的单价,单位美分(100 美分 = $1)。改完点「保存定价」,60 秒内全站生效。
- 对话:用户每发一条消息(含群聊发言)扣一次。参考成本:DeepSeek Flash 约 0.1–1 美分/条。
- 图:每张生成图扣一次。参考成本:Seedream 约 3–5 美分/张。
- 视频:每条生成视频扣一次。参考成本:Venice 480P 约 30 美分/条起(最贵,别定太低)。
- 会员30天:BYOK 用户买"门票"的价格(自带 key 也要买会员才能用平台,P6b 生效)。
计费规则:用户余额 > 0 时按上表逐次扣余额;余额为 0 时自动回退到免费每日配额(试玩档)。管理员和自带 key 命中的用户不扣费。
失败退款:媒体生成预先扣费,若生成失败自动全额退款(流水里能看到 refund 记录),不用担心用户白花钱。
定价建议:按成本 ×1.5 定,留出平台利润与失败重试损耗。
充值码
📖 使用说明
干什么用:生成卡密卖给用户(充值/开会员),用户自己到 playground 兑换。适合线下收钱(微信/闲鱼/私聊)后发码。
和 USDT 自动充值的关系:若你在 .env 配了 USDT_TRC20_ADDRESS,用户可在 Settings 里选档位自动生成"唯一零头金额"(如 20.37 USDT),转账后约 1 分钟自动入余额——无需发码。卡密则用于没有加密币渠道的买家,或送人/促销。
两种类型:
- 点数卡:面额填美分(500 = $5)。用户兑换后余额 +$5,之后生成按定价逐次扣。
- 会员卡:面额填天数(30 = 30 天会员)。用户兑换后直接获得会员资格(自带 key 也要会员才生效)。
三个参数:
- 张数:这个码能被兑换几次。1 = 一次性卡密;填 10 = 同一个码能卖 10 个人(活动码)。
- 有效天:码本身的有效期说明(留空/0 = 永久)。过期后未用的码作废。
- 备注:给自己看,如"给老王 $10"。
完整流程:① 生成 → ② 把码发给买家 → ③ 买家在 playground 点右上角头像 → Settings → 账户 → 粘贴充值码 → 兑换 → ④ 余额/会员到账(页面即时刷新)。
吊销:点「吊销」立即作废该码,未兑换的会失效(已兑换的不回收)。
定价参考:常见面额 $5 / $10 / $20;走 USDT 收款按当日汇率折算成美分填入。
USDT 自动充值(TRC20)
📖 使用说明(含新手如何拿收款地址)
原理:用户在 playground → Settings 选充值档位,系统生成一个带唯一零头的金额(如 5.37 USDT,零头当订单号),用户往你的 TRC20 地址转这笔钱,后台每 60 秒查链,匹配到就自动入余额。
怎么拿到收款地址(二选一):
- 自托管钱包(推荐):手机装 TronLink / TokenPocket / OKX Web3 钱包 → 创建钱包 → 手抄助记词(别截图别存云)→ 选 TRON 网络 → 复制 T 开头地址 → 填 .env。
- 交易所充值地址:币安/OKX 注册 KYC → 充值选 USDT + TRON(TRC20) → 复制地址。缺点是实名 + 小额密集入账有风控风险。
三条红线:① 用户必须选 TRC20/TRON 网络(选 ERC20 钱进不来);② 先小额实测再放量;③ 助记词/私钥永不外泄(本系统只用地址,绝不填私钥)。
没有 USDT 怎么测:完全不用真钱——让测试账号在 Settings 生成一笔意向,然后在这里点该笔的「标记到账」,系统即按意向金额入余额,全链路(意向→入账→余额→扣费)都能验。
「标记到账」也是运营刚需:用户转错金额、先转账后建单、或自动匹配漏单时,人工补单入账。
可选:在 console.trongrid.io 免费申请 TRONGRID_API_KEY 填 .env,提升链上查询速率限额。
邀请码
📖 使用说明
干什么用:注册门槛。本站没有邀请码无法注册——用来控量、挡爬虫、并作为"已满 18 岁"的准入把关。
三个参数:
- 次数:这个码能注册几个人。1 = 单人邀请码;填 20 = 推广码,前 20 个用了它的人都能注册。
- 有效天:码的有效期(留空/0 = 永久)。过期后未用部分作废。
- 备注:给自己看,如"推特活动第 1 批"。
完整流程:① 生成 → ② 把码发给要邀请的人 → ③ 他打开 playground(站点首页)→ 在登录墙点「没有账号?去注册」→ 填邮箱/密码/邀请码 + 勾选 18+/服务条款 → ④ 注册即成,登录后即可聊天。
吊销:点「吊销」立即作废该码,未注册的部分失效(已注册账号不受影响)。
和充值码的区别:邀请码管"能不能进来",充值码管"有没有钱玩"。新用户默认是试玩档(有每日免费配额),想不限量就要充值或买会员。
用户
📖 使用说明
干什么用:查看全部注册用户,调整余额、配额、封禁状态。
每行字段:
- 邮箱:登录名(用户用它登录 playground)。
- 余额 $X:>$0 时用户按定价逐次扣费;=$0 时自动回退到免费每日配额。
- 会员至:BYOK 门票有效期(自带 key 的用户需有会员才能生成,P6b 生效)。
- 今日用量:当天三类动作各自已用次数。只统计免费配额档;付费扣费不计数。
- chat_id:该账号的记忆隔离键(系统自动分配,非同用户不共享)。tg 后面是绑定的 Telegram 号(P4 支持)。
配额(左边三个框):
- 留空 = 用全局默认(当前 对话 {{ defaultQuotas.chat }} / 图 {{ defaultQuotas.image }} / 视频 {{ defaultQuotas.video }} 每日)。
- 0 = 该用户完全不限量(送人情/自己小号)。
- 正数 = 该用户专属每日上限(如给重度用户放宽到 500/50/10)。
- 改完点「存」生效。
调余额(右边):填美分,正数充值、负数扣减。如 500 = 加 $5,-200 = 扣 $2。每笔都会记流水(kind=admin_adjust,可在流水里查)。用于手动补偿、退款、赠送。
封禁/解封:封禁后该用户立即无法访问(token 最长 60 秒内失效),但数据和历史都保留,解封即恢复。管理员账号不可封禁。