6. 配置 key(图片 / 视频 / 音频)
三个方向各用一套凭证,互不通用,别混。
6.1 图片(生图,走 DSH 插件)
在哪填:DSH → 设置 → 插件 → dsh-image-gen → Provider 选 OpenAI / Compatible,填:
| 字段 | 值 |
|---|---|
| Base URL | https://api.openlux.ai/v1(必须带 /v1,少了会报 invalid JSON) |
| 模型 | gpt-image-2.5-sunburst-c(快慢可选:gpt-image-2-c ≈35 秒、gpt-image-2.5-flare-c ≈23 秒) |
| API Key | 你自己的 key,粘贴后点「测试连接 / 拉取模型」 |
key 会存进 E:\llmood\dsh\.credentials.yaml,ref 名是 DSH_IMAGE_GEN_OPENAI_COMPAT_KEY_CHANNEL_MVUOJBII_JT4S2(不要把这个文件发给别人)。
如果保存后仍报 requires a base URL,说明只写了渠道、没写扁平字段——照https://llmood.cn/tutorials/tutorial-mvx6mi0k 第 4 节的 cordis.patch.yml 把 openaiCompatBaseURL / openaiCompatModel / openaiCompatActiveChannel 补上。
验证:插件设置页点「测试连接 / 拉取模型」最省事。想跳过界面直接测,可以读凭据文件里的 key 打一次接口:
$key = (Select-String -Path "E:\llmood\dsh\.credentials.yaml" -Pattern 'MVUOJBII_JT4S2:\s*(\S+)').Matches[0].Groups[1].Value$body = '{"model":"gpt-image-2.5-flare-c","prompt":"a white rice ball on a table","size":"1024x1024"}'[IO.File]::WriteAllText("$env:TEMP\img-test.json", $body, (New-Object System.Text.UTF8Encoding($false)))curl.exe -s -X POST "https://api.openlux.ai/v1/images/generations" -H "Authorization: Bearer $key" -H "Content-Type: application/json" --data-binary "@$env:TEMP\img-test.json" | Select-Object -First 1
返回里带 b64_json 或 url 就是通的;返回 401 是 key 错,404 是 Base URL 少了 /v1。
6.2 视频(出片,走 GPU 云工作流)
两个令牌,分别放:
| 文件 | 是什么 | 从哪拿 | 用途 |
|---|---|---|---|
_setup\video\studio.key | studio 工作流 API 的 Bearer 令牌 | studio.aigate.cc/dashboard/token 新建 | 出视频主通道(studio-workflow.mjs / batch-shots.mjs) |
_setup\video\aigate.key | waas 算力 / ComfyUI 应用 API 令牌 | waas.aigate.cc/user/setting → 开发选项 → 令牌管理 | 查实例、ComfyUI 应用、监控任务 |
填法:第一行只放令牌本身,不要 Bearer 、不要引号、不要中文。脚本会校验,空文件或含空格会直接报错。
验证:
# 1) 令牌是否被接受(返回「数据不存在」= 通过;返回「用户凭证已过期」= 令牌不对)node E:\llmood\dsh\_setup\video\studio-workflow.mjs --task 0
# 2) 列出 ComfyUI 应用和可传参数node E:\llmood\dsh\_setup\video\comfy-video.mjs --list-apps
正式出片用一个最小的镜头试:
node E:\llmood\dsh\_setup\video\batch-shots.mjs E:\llmood\dsh\_setup\video\_plan-shot01.json
计划文件里 image / audio 可以直接写本地路径(如 素材\参考图\角色-大肥鱼-高清.png、素材\音频\大肥鱼-音色.mp3),脚本会自动上传—— studio 的上传文件约 3 天过期,用本地路径就永远不用管。
6.3 音频(配音,豆包音频生成)
| 文件 | 内容 | 从哪拿 |
|---|---|---|
_setup\video\speech.apikey | 豆包语音 API Key(X-Api-Key) | 豆包语音控制台 → API Key 管理 |
_setup\video\speech.appid | 豆包语音 AppID(X-Api-App-Id,纯数字) | 同上,应用管理 → 应用详情 |
注意:控制台里「接入能力」必须是 豆包音频生成模型 1.0。 如果是「语音合成」能力,走 tts.mjs 的 TTS 通道,接口不同(/api/v3/tts/unidirectional)。
验证(4 秒音频,几毛钱):
node E:\llmood\dsh\_setup\video\seed-audio.mjs --prompt "深夜房间,女孩轻声说:测试一下。" --out "$env:TEMP\tts-test.mp3"
6.4 备用(火山方舟)
_setup\video\ark.key 放方舟的 API Key(Bearer),ark.model 放接入点 ID(ep-xxxx)。 注意:豆包语音的两个 key 不能拿去调方舟,会报 The API key doesn't exist。
6.5 一张表看全部
| 方向 | 文件 | 服务 | 优先级 |
|---|---|---|---|
| 图片 | .credentials.yaml(插件页填) | openlux OpenAI 兼容 | 必需 |
| 视频 | studio.key | studio 工作流(GPU 云) | 必需 |
| 视频(备) | aigate.key | waas / ComfyUI | 可选 |
| 音频 | speech.apikey + speech.appid | 豆包音频生成 | 必需(配音) |
| 备用 | ark.key + ark.model | 火山方舟 | 可选 |