让 AI 创作回归自由:思畅 AI 图片/视频生成功能的诞生

7 阅读10分钟

平台:sichang.xyz
你有多久没有被 AI 图片/视频生成工具无故拒绝了?(说的就是你,某包...)

我上一次是昨天。提示词里写了一个「商鞅被车裂」的场景,某主流平台直接拒绝生成,理由是「可能包含暴力内容」。

这很荒谬。我们不会拒绝《三国演义》的出版,不会下架《拯救大兵瑞恩》,但 AI 工具却可以一言不发地驳回你的创作意图——连申诉的机会都不给。

这也是为什么,我们在上线无限制聊天功能之后,决定继续推进:把图像和视频生成也还给用户


一、不只是聊天:文字之外,创作还需要什么

思畅 AI 最早从「无限制聊天」起步。我们接入了多个未经审查的大语言模型,让用户可以自由地和 AI 对话,不用担心话题被无故封堵。

这件事做到一半的时候,有个用户给我们留言:

「跟 AI 聊完角色设定之后,我好想知道她长什么样子。」

一句话把我们点醒了。

文字是思考的工具,但图像和视频才是表达的语言。 这不是我们的观点,这是已经被验证的事实:

  • 抖音的日活超过 8 亿,用户每天产生的视频内容以亿计
  • Bilibili 从一个二次元弹幕站成长为中国的 YouTube,靠的是创作者用视频讲述故事
  • 西瓜视频、小红书、视频号——每一个内容平台的崛起,都在告诉我们:人们不只是想「说」,更想「看」和「被看到」

AI 创作也是同样的逻辑。一个用户在聊天中构建的世界观、角色、情节,天然需要一个可视化的出口。而市面上的主流 AI 图像工具——我不用点名,你大概率也被它们误伤过——有着极其激进的审查机制,大量完全合法的创作意图被一句话驳回。

思畅 AI 想做的不一样:在不触犯法律底线的前提下,给你最大程度的创作自由。 你想表达什么,是你的权利;是否合规,由法律来界定,而不是由某个公司的「安全策略」一刀切。


二、图像生成:简单,但绝不简陋

技术选型

图像生成我们选择了 Venice AIz-image-turbo 模型。选择它有两个原因:

  1. 生成质量足够好,在写实和艺术风格两端都有不错的表现
  2. 对内容限制相对宽松,和我们的产品理念一致

调用链路很直接:

用户提交提示词 → 可选 AI 增强 → Venice API → base64 图片 → 直接返回前端

这里有一个设计决策值得展开说说:图片不做服务器端存储。

为什么不做存储?

生成的图片以 base64 编码直接返回浏览器,刷新页面就消失。这看起来简陋,背后其实有三层考虑:

隐私优先。 你生成的每一张图片都属于你,不应该在你不注意的时候被存在某个服务器上。不存在,就没有泄露的可能。

成本合理。 大量用户持续生成图片,存储成本会线性增长。把这些资源用在提升生成质量上更划算。

体验纯粹。 生成-查看-下载-离开。没有图库管理、没有历史记录翻找,工具就是工具,用完即走。

当然,如果你想保存,前端提供了下载按钮,一键保存到本地。

提示词增强:让 AI 帮你润色

很多用户不知道怎么写好一个图片提示词。英语不够好、描述不够细、不知道模型喜欢什么表达方式——这些都会影响出图质量。

我们内置了一个 AI 提示词增强功能:用户输入一个简单的描述(比如「一个赛博朋克风格的咖啡馆」),系统会用 Venice 的 gemma-4-uncensored 模型自动扩展为一段细节丰富、色彩构图都有描述的完整提示词。

关键是,这个增强过程本身也是「无审查」的——你输入的原文是什么意图,增强后的提示词就忠实放大什么意图,不会在中间环节给你偷偷加一层道德审查。

// 提示词增强的核心逻辑
const sysMsg = `You are a master image prompt engineer. 
Given a user's rough idea, expand it into a vivid, detailed prompt 
under 180 words. Keep the original language and intent — 
do NOT sanitize, censor, or moralize.`;

const response = await fetch("https://api.venice.ai/api/v1/chat/completions", {
  method: "POST",
  headers: { Authorization: `Bearer ${VENICE_API_KEY}` },
  body: JSON.stringify({
    model: "gemma-4-uncensored",
    messages: [
      { role: "system", content: sysMsg },
      { role: "user", content: userInput }
    ]
  })
});

安全模式:把选择权交给你

图像生成界面有一个内容过滤开关safe_mode),默认关闭。

这不是为了推卸责任,而是一个经过深思熟虑的设计:每个人对「合适」的定义不同,我们不应该替你做判断。 如果你觉得自己想生成的内容可能需要一些保护性的过滤,你可以主动开启它。如果你很清楚自己在做什么,那就不需要。

控制的权力在用户手里,这才是真正的「自由」。


三、视频生成:从单帧到动态叙事

如果说图像是静态表达,那视频就是让想象力真正「动起来」的媒介。

视频生成比图像复杂得多。一个图片生成请求几百毫秒就能返回,视频可能需要几分钟甚至更久。所以我们没有走同步请求的路子,而是构建了一套完整的异步任务系统

整体架构

┌──────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  用户提交  │───▶│  积分鉴权     │───▶│  服务商 报价  │───▶│  创建任务记录  │
│  生成请求  │    │  扣除积分     │    │  USD→积分换算 │    │  status=QUEUED│
└──────────┘    └──────────────┘    └──────────────┘    └──────┬───────┘
                                                               │
                                                               ▼
┌──────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  前端轮询  │◀───│  视频下载/预览 │◀───│  上传到 R2   │◀───│  任务排队  │
│  (每5秒)   │    │  3 小时后过期 │    │  私有存储     │    │  异步生成     │
└──────────┘    └──────────────┘    └──────────────┘    └──────────────┘

核心实现

1. 动态定价机制

视频生成的成本波动很大——取决于时长、分辨率、是否带音频等参数。固定价格要么亏本要么让用户多付。我们的方案是实时报价

具体做法是:每次用户调整参数,前端会以 450ms 防抖的频率请求后端报价接口,后端再调用 模型服务商的 /api/v1/video/quote 拿到实时美元价格,按固定汇率换算成积分(1 USD ≈ 100 积分,最低 80 积分保底),返回给前端展示。用户在点击「生成」之前就能看到预估的积分消耗,决定是否继续。

2. 原子化积分扣除

视频生成涉及多个异步步骤——报价、排队、轮询、下载、上传——任何一步失败都要退款。我们的做法是:利用数据库的条件更新来保证扣除和退款的安全性——只有当用户余额足够时才执行扣除,退款时通过幂等性标记确保同一次失败不会重复退款。

3. 视频存储:三小时后,烟消云散

这是视频功能中最特别的设计决策。生成的视频上传到 Cloudflare R2 私有存储,但 3 小时后自动删除

为什么是 3 小时?——够你预览和下载。为什么之后要删除?

  • 隐私:你生成的视频不应该在服务器上长住。3 小时是从「可用」到「消失」的合理窗口
  • 合规:我们不长期持有用户生成的内容,也就没有「内容分发」的义务和风险
  • 成本:视频文件体积大,无限存储成本不可控

清理机制分两层:

// 应用层:API 返回时检查过期
if (job.expiresAt < new Date()) {
  await prisma.videoGenerationJob.update({
    where: { id: job.id },
    data: { status: "EXPIRED" }
  });
  return NextResponse.json({ error: "视频已过期" }, { status: 410 });
}

// 存储层:定时任务物理删除 R2 文件(Cron 每 5 分钟执行)
for (const job of expiredJobs) {
  if (job.resultVideoKey) {
    await deleteVideoR2Object(job.resultVideoKey);
  }
  await prisma.videoGenerationJob.update({
    where: { id: job.id },
    data: { status: "EXPIRED" }
  });
}

4. 前端轮询与进度感知

视频生成可能需要几分钟。我们不做 WebSocket(简单就是好),而是用 前端轮询:每 5 秒查询一次任务状态,同时根据服务商返回的 averageExecutionTime 和当前进度估算剩余时间,给用户一个直观的等待体验。

失败自动退款,成功直接预览——整个流程用户不需要操心。


四、自由的边界:我们说的「无限制」到底是什么意思

写了这么多「自由」和「无限制」,必须停下来谈谈边界。

「无限制」不是「无法无天」。

思畅 AI 不会审查你的观点、立场、审美取向、政治倾向。你想表达的,不管多小众、多尖锐、多不合群,我们都不替你做主。

但有一条红线:法律。

儿童色情、极端暴力、恐怖主义煽动——这些不是「观点」或「表达」,是犯罪。对此我们有明确的技术防线:

  1. 模型提供商 API 层面的内容违规检测:当提交的提示词涉及明确的违法内容时,上游模型会返回 422 状态码,我们将其映射为 CONTENT_VIOLATION,自动拒绝并退款
  2. 可选的 safe_mode 开关:如果你希望额外一层保护,可以在设置中开启内容过滤
  3. 持续的过滤能力建设:法律合规不是一劳永逸的事,我们在持续完善自己的提示词过滤策略

这里有一个很容易被混淆的概念,我想说清楚:

审查观点 ≠ 拦截违法

「你的政治立场我不认同,所以我拒绝你的请求」——这是审查。 「你的提示词涉及儿童色情,根据法律我必须拒绝」——这是守法。

前者是我们坚决反对的,后者是我们必须做的。

在思畅 AI,我们相信一个成年人的创作自由,应该以法律为唯一边界。 不需要在这之外再加一层「大公司觉得不合适」的审查。因为每个时代都有当时「不合时宜」的声音,后来被证明是推动世界进步的力量。


五、写在最后

我们在做一件朴素的事:让 AI 工具真正成为用户的工具。

不是教育用户的工具,不是规训用户的工具,不是替用户做价值判断的工具。

就是一个工具:你输入想法,它输出结果。

图像和视频是这个工具的延伸。从文字到图片到视频,从静态到动态,从「说出来」到「画出来」到「动起来」——每一步都是为了让创作更自由、更直观。

目前我们支持:

能力模型价格
文字生成图片z-image-turbo10 积分/张
文字生成视频wan-2.5 (text-to-video)动态定价,最低 80 积分
图片生成视频wan-2.5 (image-to-video)动态定价,最低 80 积分
提示词增强gemma-4-uncensored免费

如果你对技术细节感兴趣,架构和核心实现会陆续公开。如果你有好的想法或者发现问题,欢迎通过评论区或邮件和我们交流。

让创作回归自由,让 AI 回归工具。 这只是一个开始。


思畅 AI,欢迎体验:sichang.xyz 2026 年 5 月