dsh-fal-imagegen:在 DSH 里直连 fal.ai 队列生图

前言

在 DeepSeek Harness(DSH)里让 Agent 出图,常见做法是再套一层 OpenAI 兼容网关,把 fal.ai 的队列协议翻译成通用 Chat Completions 或 Images API。多一层转发,调试时要同时核对网关配置、fal 端点 slug 和 DSH 工具参数,出错点也分散。

dsh-fal-imagegen(维护者 Enchanted0911,GitHub:Enchanted0911/dsh-fal-imagegen)走另一条路:Agent 工具直接 POST https://queue.fal.run/<slug>,用 fal 文档里的 Authorization: Key <key_id>:<key_secret> 提交任务、轮询队列票据,并消费 { images: [{ url, width, height }] }。设置页提供 FAL_KEY 卡片,与 ~/.dsh/settings.yaml 中 dsh-fal-imagegen: 段一致。npm 包版本为 0.2.1,许可证 MIT。

这是什么

一句话:面向 DSH 的 fal.ai 原生文生图 / 图生图插件——设置卡片 + 四个 Agent 工具,不经过 OpenAI 兼容中间层。

分类上属于「模型推理」:推理请求发往 fal 队列,结果以附件和本地文件两种形式回到对话。

核心功能

原生 fal 协议

工具链按 fal 队列语义工作:提交 → 拿到 status_url / response_url → 轮询 → 解析 images[]。密钥格式为 fal.ai → Keys 页复制的完整字符串 key_id:key_secret。

设置卡片

入口在 Settings → Plugins,名称随 DSH 语言显示为「fal 生图」或「fal imagegen」(与 Settings → General → Language 一致,未匹配时英文)。卡片与内置插件同款交互:折叠、脏状态、字段级重置、保存/丢弃。

主要配置项(默认值见下表):

字段 默认 含义
enabled true 总开关(工具 + 系统提示公告)
falKey 空 FAL_KEY;留空表示不改动已保存密钥
defaultTextToImageModel openai/gpt-image-2.5/flare/text-to-image 文生图端点
defaultImageToImageModel openai/gpt-image-2.5/flare/edit 图生图端点
defaultImageSize 1:1 比例、WxH 或 auto
quality high auto / low / medium / high / xhigh / max
outputFormat png png / jpeg / webp
timeoutSeconds 300 单次请求总超时(提交 + 队列 + 拉取)
saveDir 空 落盘目录;空则 <DSH_HOME>/fal-imagegen
announceToAgent true 是否在 Agent 系统提示中公告本插件

Agent 工具

工具 作用
fal_generate_image 文生图;默认异步,参数含 prompt / model / size / quality / count / wait
fal_get_image_task 按 task_id 或 fal request_id 查进度;无 id 时列出近期任务
fal_edit_image 图生图,同步;需 prompt 与附件引用或磁盘 image_path
fal_list_image_models 列出内置别名、当前默认项与输出目录

生成图会挂到对话附件(工具调用旁渲染),并写入输出目录;返回的 path 可直接传给 fal_edit_image 的 image_path。

异步文生图

默认不再占用整轮 Agent 等待 fal 队列:

  1. fal_generate_image 提交后立即返回 { status: "queued", task_id, request_id, ... }。
  2. 后台 collector 轮询队列、下载图片、写附件并复制到输出目录。
  3. fal_get_image_task 报告 queued / running / completed / failed;wait_seconds 为 0–120 时可阻塞等待,完成后返回带 attachment_id 与本地 path 的 images[]。
  4. 需要旧式阻塞行为时,对 fal_generate_image 传 wait=true。

任务记录保存在当前 dsh 进程内(约保留 6 小时、最新 64 条);后台等待超时后,下次查询会自动重试。fal_edit_image 仍为同步,便于链式编辑。

模型别名

内置别名已对照 fal 端点 schema;含 / 的未知 slug 原样透传;文生图 slug 误用于编辑会被拒绝。节选:

别名 文生图 图生图
gpt-image-2.5-flare(默认,亦接受 gpt-image-2.5 / gpt-image-2.5-flash) openai/gpt-image-2.5/flare/text-to-image openai/gpt-image-2.5/flare/edit
flux-2-flash fal-ai/flux-2/flash fal-ai/flux-2/flash/edit
nano-banana-2 fal-ai/nano-banana-2 fal-ai/nano-banana-2/edit

完整表见仓库 README 的 Model aliases 一节。

安装与启用

推荐通过 npm 包安装(CLI 管理的 profile):

dsh plugin --profile web add dsh-fal-imagegen

安装后需重启对应 profile 的 DSH 进程。

desktop profile 由 DSH Desktop 应用管理(dsh plugin --profile desktop 会被拒绝):应在 Settings → Plugins → market 安装,或按 README 在 ~/.dsh/profiles/des… 下手动注册(截断处请以 GitHub 原文为准)。

启用后先在设置卡片或 settings.yaml 填入 falKey,并确认 enabled 为 true。

典型用法

下面步骤可在 Agent 对话中复现(具体措辞由模型决定,工具名固定)。

文生图(异步,推荐)

  1. 调用 fal_generate_image,例如 prompt 描述画面,可选 model 别名、size、quality。
  2. 记下返回的 task_id。
  3. 调用 fal_get_image_task,传入 task_id;需要时可设 wait_seconds 等待完成。
  4. 在 completed 结果里使用 images[].path 或附件 id 做后续步骤。

图生图(同步)

  1. 准备源图:对话附件引用,或上一步落盘的 image_path。
  2. 调用 fal_edit_image,传入 prompt 与源图参数。
  3. 在同一轮内使用返回的图片路径继续编辑。

查看默认与别名

调用 fal_list_image_models 可核对当前默认端点、别名列表与输出目录。

适用场景与注意

适合已在 fal.ai 开通 API、希望在 DSH Agent 里原生使用队列生图/编辑的开发者。异步默认更适合长队列,避免 Agent 回合被单次生图拖住;短链路图生图仍用同步的 fal_edit_image。

安装前建议自行阅读 GitHub 仓库 源码与 MIT 许可证。插件以当前 dsh 进程的用户与网络权限运行:密钥写入本地配置、图片写入 saveDir 或默认目录,并会向 queue.fal.run 发起外网请求。社区插件目录 SkillHub 条目 与 DeepSeek / 幻方无官方从属关系,仅作发现与索引。

DSH 生态强调「一切皆插件」;本插件属于社区「模型推理」类扩展,星标与热度以仓库页面实时数据为准。

链接

  • 目录页:https://www.skillhub.cn/plugins/Enchanted0911/dsh-fal-imagegen
  • GitHub:https://github.com/Enchanted0911/dsh-fal-imagegen
  • npm:dsh-fal-imagegen@0.2.1
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye