用途:TanStack AI 的媒体生成技能,统一处理图片、音频(音乐/音效)、语音合成(TTS)、视频与转写。依赖 ai-core,须先阅读其规则。
架构:所有媒体活动都遵循同一服务端/客户端模式——服务端调用 generate*() 函数,用 toServerSentEventsResponse() 转为 SSE,客户端用框架 Hook 消费。在 TanStack Start 中用 createServerFn 返回 toServerSentEventsResponse(),客户端以 fetcher 或 fetchServerSentEvents 连接。
主要能力: 图片生成:generateImage(),适配器 openaiImage、geminiImage、byteplusImage 等。结果 ImageGenerationResult 的 images 条目含 b64Json、url、revisedPrompt;OpenAI 图片 URL 1 小时后过期,需及时下载或展示。 多模态提示:prompt 可为字符串或 TextPart/ImagePart/VideoPart/AudioPart 有序数组,支持图生图、多参考图、遮罩修补(metadata.role: 'mask')等;也用于图生视频。 音频生成:generateAudio() 产出非语音内容,适配器 geminiAudio、falAudio。 语音合成:generateSpeech(),适配器 openaiSpeech、byteplusSpeech、elevenlabsSpeech;支持多说话人 turns 与 timestamps 时间对齐。 使用方式:在服务端路由或 Server Function 中导入 @tanstack/ai 及各适配器包,调用 generate*;客户端从 @tanstack/ai-react 导入 useGenerateImage、useGenerateAudio、useGenerateSpeech 等 Hook,通过 connection 或 fetcher 触发并读取 result。
限制:各提供商对输入部分有支持差异与数量上限,部分端点不接受文件句柄或 HTTP(S) URL 图像输入(需 data: URI 或 allowUrlFetch: true)。BytePlus Seed Speech 使用 BYTEPLUS_VOICE_API_KEY,输出上限 120 秒;Seedream 水印默认开启,尺寸不可混用。具体定价与配额暂未提供。