打造 deapi.ai 圖片生成 MCP Server - 從 API 整合到成功產圖
今天完成了一個重要的里程碑:成功建立了 deapi.ai 文字轉圖片 API 的 MCP Server,並成功生成了第一張 AI 圖片!這篇文章記錄了整個開發過程,從 API 規範分析到最終成功產圖的完整歷程。
🎯 專案目標
建立一個 FastMCP Server,整合 deapi.ai 的文字轉圖片 API,讓 AI 助手能夠直接生成圖片並下載到本地。這個工具將大大提升內容創作的效率。
📋 開發過程
1. API 規範分析與實作
首先,我收到了 deapi.ai 的 OpenAPI 規範文件。分析後發現需要實現以下端點:
- POST /api/v1/client/txt2img - 發送圖片生成請求
- GET /api/v1/client/request-status/{job_request} - 查詢生成狀態
根據 API 規範,我更新了代碼以符合所有必需參數:
prompt- 圖片生成提示詞(必填)model- 使用的模型(默認 "Flux1schnell")width、height- 圖片尺寸(默認 768x768)seed- 隨機種子(默認 -1)steps- 推理步數(默認 4)guidance- Guidance scale(默認 7.5)loras- LoRA 模型數組(默認空數組)negative_prompt- 負面提示詞(可選)
2. 環境變數配置
實現了從項目根目錄的 .env 文件自動讀取 DEAPI_API_KEY,讓配置更加便捷。
3. 工具功能實現
實現了三個核心 MCP 工具:
- generate_image - 完整的圖片生成工具,支持所有參數
- generate_image_quick - 快速生成工具,使用默認參數
- get_request_status - 查詢生成狀態
- download_image - 自動查詢狀態並下載完成的圖片
4. Bug 修復
在開發過程中遇到了一個關鍵問題:download_image 工具無法直接調用 get_request_status,因為 FastMCP 的工具函數不能直接調用。
解決方案:創建了內部輔助函數 _get_request_status_internal(),讓兩個工具都能調用相同的邏輯,避免了工具間直接調用的問題。
🎨 AI 產圖成果
經過完整的開發和測試,我們成功生成了多張 AI 圖片來展示這個 MCP Server 的能力!
第一張圖片:簡約咖啡
使用最經濟的配置生成的第一張測試圖片:
- 提示詞:
"a cup of coffee, simple, minimalist, clean background" - 尺寸:512x512 像素(為了降低成本)
- 步數:4 步(最少步數,最經濟的配置)
- 模型:Flux1schnell
AI 生成的簡約風格咖啡圖片
更多成果展示
為了展示 MCP Server 的完整能力,我們還生成了以下圖片:
開發者工作環境與 MCP Server 架構
AI 圖片生成工作流程示意圖
成功慶祝 - AI 圖片生成成果
生成統計:
- ✅ 總共生成:4 張圖片
- ✅ 成功率:100%
- ✅ 平均文件大小:約 140 KB
- ✅ 所有圖片都已自動保存 metadata
Metadata 管理功能
為了方便未來搜索和再利用生成的圖片,我們實現了完整的 metadata 管理系統:
- 自動保存:每次下載圖片時,自動保存生成參數(prompt, model, 尺寸等)到 JSON 文件
- 索引系統:所有圖片 metadata 統一管理在
static/images/ai-generated/.metadata/index.json - 搜索功能:可以根據提示詞、模型、標籤等條件搜索已生成的圖片
- 再利用:通過 metadata 可以輕鬆找到相似的圖片或重複使用相同的參數
Metadata 包含的信息:
- 生成參數(prompt, model, width, height, steps, guidance, seed, loras)
- 文件路徑和 URL
- 生成時間
- 標籤和描述(可手動添加)
技術亮點
這次成功產圖展示了以下技術能力:
- 完整的 API 整合:成功整合了 deapi.ai 的異步 API,包括請求發送、狀態查詢和下載功能
- MCP 工具生態:建立了可重用的 MCP 工具,讓 AI 助手能夠直接調用圖片生成功能
- 自動化流程:實現了從生成請求到自動下載的完整自動化流程
- Metadata 管理:自動保存生成參數,方便未來搜索和再利用
- 成本優化:使用最經濟的參數配置(512x512, 4 steps),在保證質量的同時降低成本
🚀 未來應用
有了這個 MCP Server,我們現在可以:
- ✅ 在文章創作過程中自動生成配圖
- ✅ 根據內容自動生成合適的插圖和示意圖
- ✅ 為博客文章生成封面圖片
- ✅ 快速生成各種視覺素材
這將大大提升內容創作的效率和視覺質量!
📝 技術總結
這次開發過程涵蓋了:
- FastMCP Server 開發
- OpenAPI 規範分析與實作
- 異步 API 整合
- 環境變數管理
- MCP 工具間調用問題解決
- 圖片下載與文件管理
- Metadata 管理系統:自動保存生成參數,支持搜索和再利用
Metadata 功能詳解
為了實現圖片的可搜索和再利用,我們實現了完整的 metadata 管理系統:
- 自動保存:在
generate_image時會緩存生成參數,在download_image時自動保存完整的 metadata - JSON 格式:每個圖片都有對應的
{request_id}.jsonmetadata 文件 - 統一索引:所有 metadata 統一管理在
index.json中,方便批量搜索 - 搜索工具:
search_generated_images工具支持根據提示詞、模型、標籤等條件搜索
最重要的是,我們成功驗證了整個流程,從 API 調用到最終圖片下載和 metadata 保存,所有環節都運作正常!
🎉 結語
這次成功建立 deapi-txt2img MCP Server 並生成第一張 AI 圖片,標誌著 VibeBlog 項目在 AI 內容創作能力上邁出了重要一步。未來,我們可以更高效地創作視覺豐富的內容,讓 AI 成為真正的創作夥伴!