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
羽毛球分组比赛记分
小程序二维码

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

小夜