CHANGELOG_MARKDOWN_FIX.md•4.66 kB
# Markdown 图片链接显示修复
## 🐛 问题描述
用户反馈:生成图片后,**Claude Desktop 中没有显示 Markdown 图片链接**,导致无法直接预览图片。
## 🔍 根本原因
`_format_text_to_image_response()` 函数(用于 `response_format="url"` 或 `"b64_json"` 时)没有生成 Markdown 图片预览,只显示了文本形式的链接。
## ✅ 解决方案
### 1. 优化 `_format_text_to_image_response()` 函数
**修改前:**
```python
# 显示图片信息
for i, image in enumerate(images, 1):
if isinstance(image, dict):
response_parts.append(f"图片 {i}:")
# Markdown引用(如果有自动保存)
if "markdown_ref" in image:
response_parts.append(f" Markdown引用: {image['markdown_ref']}")
```
**修改后:**
```python
# 收集七牛云 URL 用于 Markdown 预览
qiniu_urls = []
for image in images:
if isinstance(image, dict) and "markdown_ref" in image:
# 从 markdown_ref 中提取 URL
import re
match = re.search(r'!\[.*?\]\((https://.*?)\)', image["markdown_ref"])
if match:
qiniu_urls.append(match.group(1))
# 如果有七牛云 URL,显示 Markdown 图片预览
if qiniu_urls:
response_parts.append("---")
response_parts.append("")
response_parts.append("**📸 图片预览:**")
response_parts.append("")
for i, url in enumerate(qiniu_urls, 1):
response_parts.append(f"")
response_parts.append("")
response_parts.append("---")
response_parts.append("")
```
### 2. 优化 `create_image_content_response()` 函数
**已经包含 Markdown 图片预览,无需修改。**
## 📊 测试结果
### 测试 1: 默认格式 (response_format 未指定,默认为 "image")
```
✅ 图片生成成功!
提示词: 中文"可口可乐",潮流派对风格艺术字体...
尺寸: 2K
---
**📸 图片预览:**

---
**📋 详细信息:**
**☁️ 七牛云链接:**
- 图片 1: https://newimg.t5t6.com/seedream/...
**💾 本地保存:**
- 图片 1: `/Users/joe/Dropbox/code/Seedream_MCP/seedream_images/...`
```
### 测试 2: image 格式 (response_format="image")
```
✅ 图片生成成功!
提示词: 中文"可口可乐",潮流派对风格艺术字体...
尺寸: 2K
---
**📸 图片预览:**

---
**📋 详细信息:**
**☁️ 七牛云链接:**
- 图片 1: https://newimg.t5t6.com/seedream/...
**💾 本地保存:**
- 图片 1: `/Users/joe/Dropbox/code/Seedream_MCP/seedream_images/...`
```
**✅ 两种格式都正确显示 Markdown 图片链接!**
## 📁 修改的文件
- `seedream_mcp/tools/text_to_image.py` - 优化 `_format_text_to_image_response()` 函数
- `seedream_mcp/tools/image_helpers.py` - 优化返回格式(已在之前的修改中完成)
## 🎯 改进点
1. ✅ **添加 Markdown 图片预览区域** - 使用 `` 格式
2. ✅ **添加分隔线和标题** - 让图片预览区域更显眼
3. ✅ **七牛云链接前置** - 放在详细信息的最前面
4. ✅ **使用列表格式** - 更清晰的层次结构
5. ✅ **统一两种格式的输出** - `create_image_content_response()` 和 `_format_text_to_image_response()` 输出格式一致
## 🚀 使用说明
**重启 MCP 服务后,生成图片时会自动显示 Markdown 图片预览:**
```
"潮流派对,关键词:可口可乐"
```
**返回结果中会包含:**
1. ✅ **📸 图片预览** - Markdown 格式的图片链接,可以直接在支持 Markdown 的客户端中显示
2. ✅ **☁️ 七牛云链接** - 公网可访问的图片链接
3. ✅ **💾 本地保存** - 本地文件路径
## 💡 注意事项
**如果 Claude Desktop 仍然不显示图片:**
这可能是 Claude Desktop 的显示策略导致的,而不是代码问题。Claude Desktop 可能会:
1. 过滤掉某些 Markdown 格式
2. 用自然语言重新描述工具返回的结果
3. 隐藏技术细节
**解决方法:**
1. 查看 "☁️ 七牛云链接" 部分,复制链接到浏览器查看
2. 查看 "💾 本地保存" 部分,直接打开本地文件
3. 使用其他支持 Markdown 的 MCP 客户端
---
**日期:** 2025-11-18
**状态:** ✅ 已修复并测试通过