Kira 的模型选择系统覆盖四个层面:LLM 对话模型、图片生成模型、视频生成 Provider 和音乐生成 Provider。每个层面有独立的选择逻辑,但都与用户的订阅方案绑定。
一、LLM 对话模型
Kira 模式
用户在前端选择 Kira 模式,决定对话使用的 LLM:
| 模式 | LLM | Provider | System Prompt | 所需方案 |
|---|
| Lite | pa/grok-4-1-fast-reasoning | Novita | 标准 Kira 人设 | 免费 |
| Nova | pa/grok-4-1-fast-reasoning | Novita | 标准 Kira 人设 | Pro / Max |
| Crazy | pa/grok-4-1-fast-reasoning | Novita | 疯狂/毒舌人设 | Pro / Max |
| Ultra | pa/grok-4-1-fast-reasoning | Novita | 标准 Kira 人设 | Max |
模式选择流程
Plan 降级规则
// 后端 Plan 校验逻辑
const isMaxPlan = profile.plan?.startsWith("max");
const isPremium = profile.plan?.startsWith("pro") || isMaxPlan;
if (model === "ultra") {
effectiveModel = isMaxPlan ? "ultra" : "lite";
} else {
effectiveModel = isPremium ? model : "lite";
}
| 用户 Plan | 可用模式 |
|---|
| free | Lite |
| basic / basic_year | Lite |
| pro / pro_year | Lite, Nova, Crazy |
| max / max_year | Lite, Nova, Crazy, Ultra |
Crazy 模式
Crazy 模式使用与 Lite 相同的 LLM(pa/grok-4-1-fast-reasoning),但替换了 System Prompt:
- 标准 Prompt:专业、友好的 AI 艺术助手人设
- Crazy Prompt:毒舌、讽刺、黑色幽默的人设,但仍遵守工具调用规范
前端实现
模式选择状态存储在 Zustand Store 中,持久化到 localStorage:
// store/poisson.ts
type KiraModel = "lite" | "nova" | "crazy" | "ultra";
interface PoissonState {
model: KiraModel;
setModel: (model: KiraModel) => void;
}
前端在 chat-input 组件中展示模式选择器,点击需要付费模式时会弹出 billing dialog。
二、图片生成模型
当前模型
图片生成目前固定使用 Seedream (BytePlus):
// workflow/generate/filter.ts
const chooseModel = "seedream"; // 当前为静态选择
可用模型列表
系统已集成以下模型,可通过修改 filter 逻辑切换:
| 模型 | Provider | 说明 |
|---|
seedream | BytePlus | 当前默认,2K 分辨率 |
seedream-edit | BytePlus | 图片编辑模式 |
gpt-image-1 | OpenAI | GPT-4 Vision 图片生成 |
kontext | FAL | Flux Pro Kontext |
FLUX.1-dev | FAL | Flux.1 Dev |
illustrious | Illustrious | 独立服务 |
imagen | Google | Google Imagen |
wave | Wave | Wave 图片生成 |
google-gemini-flash-image | Google | Gemini Flash 图片理解 |
google-gemini-flash-image-gen | Google | Gemini Flash 图片生成 |
图片生成计费
每次图片生成固定消耗 5 Credits,与模型无关。
图片编辑计费
imageEdit Credits 因模型而异:
| 模型 | Credits |
|---|
| 标准(Seedream / Flux) | 5 |
| Nano Banana Pro | 20 |
图片编辑
图片编辑工具(inpaint、expand、remove-bg 等)使用多 Provider 路由:
- NSFW 内容 → Seedream
- 非 NSFW 风格调整 → Seedream
- Ultra 模式非风格编辑 → Nano Banana Pro (gemini-3-pro-image-edit)(检查
model === "ultra",非用户 Plan)
- 其他情况 → FAL Flux 2 Pro Edit
- Fallback → Seedream
// tools/imageEdit.ts - 简化示意
if (isNsfw || isStyleAdjustment) {
model = "seedream";
} else if (isUltraModel && !isStyleAdjustment) { // model === "ultra", not user plan
model = "nano-banana-pro"; // gemini-3-pro-image-edit via Novita
} else {
model = "fal-flux-2-pro-edit"; // fallback: seedream
}
尺寸映射
Seedream 的比例到像素映射:
| 比例 | 像素尺寸 |
|---|
| 1:1 | 2048 × 2048 |
| 16:9 | 2560 × 1440 |
| 9:16 | 1440 × 2560 |
| 4:3 | 2304 × 1728 |
| 3:4 | 1728 × 2304 |
三、视频生成 Provider
Provider 选择
视频 Provider 选择基于 NSFW 内容检测:
// tools/generateVideo.ts
const isNsfw = await detectNsfw({
text: input.prompt,
imageId: input.sourceImageId,
});
let provider: "seedance" | "grok" | "veo";
if (isNsfw) {
provider = "seedance"; // NSFW 内容始终用 Seedance
} else {
provider = "grok"; // 安全内容默认用 Grok
}
Provider 详情
| Provider | API | 模型 ID | 特点 |
|---|
| Seedance | BytePlus | seedance-1-5-pro | NSFW 兜底,稳定 |
| Grok | xAI | grok-imagine-video | 默认选择,质量好 |
| Veo | Google | veo-3.1-fast-generate-preview | 最高质量,当前禁用 |
kira-be 中使用 seedance-1-5-pro 作为模型名。ep-20260106141447-dxlcl 是 BytePlus 端点 ID,在 kira-video-worker 中使用。
Plan 校验
视频生成需要 Pro 及以上方案:
const PRO_PLANS = ["pro", "pro_year", "max", "max_year"];
// 免费用户无法生成视频
if (!PRO_PLANS.includes(profile.plan ?? "")) {
return { status: "insufficient_plan" };
}
Credits 成本
视频按秒计费,不同 Provider 单价不同:
| Provider | 每秒价格 | 5 秒 | 10 秒 |
|---|
| Grok / Seedance | $0.05/秒 | 50 credits | 100 credits |
| Veo (禁用中) | $0.15/秒 | 150 credits | 300 credits |
四、音乐生成 Provider
Provider 选择
音乐生成使用固定 Provider,按工具类型区分:
| 工具 | Provider | 说明 |
|---|
generateMusic | suno_unofficial | 完整歌曲生成(含歌词) |
generateInstrumental | suno_instrumental | 纯器乐生成 |
addVocals | suno_add_vocals | 为器乐添加人声 |
Plan 校验
音乐生成需要 Pro 及以上方案:
const PRO_PLANS = ["pro", "pro_year", "max", "max_year"];
Credits 成本
| 工具 | Credits |
|---|
| generateMusic | 25 |
| generateInstrumental | 25 |
| addVocals | 25 |
五、完整路由总览
六、关键源码文件
| 文件 | 说明 |
|---|
kira-be/src/ai/agents/index.ts | LLM 模型选择和 Agent 创建 |
kira-be/src/hono/agent/index.ts | Plan 校验和模式降级 |
kira-be/src/ai/workflow/generate/filter.ts | 图片模型选择(当前静态) |
kira-be/src/ai/workflow/generate/workflow.ts | 图片生成工作流 |
kira-be/src/ai/tools/generateVideo.ts | 视频 Provider 选择 + NSFW 路由 |
kira-be/src/ai/tools/generateMusic.ts | 歌曲生成工具 |
kira-be/src/ai/tools/generateInstrumental.ts | 器乐生成工具 |
kira-be/src/ai/tools/addVocals.ts | 添加人声工具 |
kira-video-worker/src/providers/ | 视频 Provider 实现 |
kira-web/store/poisson.ts | 前端模式状态管理 |
kira-web/components/feature/common/chat/chat-input.tsx | 模式选择 UI |