目前有个已知bug暂时无解,就是图片编辑无法实现,因为我没有公网IP,模型调用只支持输入可访问的url,看看有没有大佬有好的办法解决:
详细问题说明如下:
问题7:本地图片上传到图像编辑失败
README文档中的问题7详细说明了图像分析模型和图像理解模型在图片上传方面的区别:
问题核心
图像分析模型(图像编辑)无法上传本地图片的原因:
1. 网络访问限制:
- 图像编辑模型(如 Qwen/Qwen-Image-Edit)需要通过 HTTP URL 访问图片
- ModelScope 服务器在外网,无法访问 Home Assistant 的内网地址
- 当前实现使用 internal_url 构造本地图片 URL(内网 IP 地址)
2. 可用条件限制:
- ✅ 只有当 Home Assistant 配置了公网可访问的 external_url 时才可用
- ✅ 图片来源为 HTTP/HTTPS 公开链接时可用
- ❌ 没有公网 URL 时本地图片编辑不可用
图像理解模型可以上传图片的原因:
图像理解模型(如 Qwen/Qwen3-VL-235B-A22B-Instruct)在对话中使用时,通过以下方式处理图片:
1. 直接文件上传:图片直接作为附件上传给模型处理
2. 不需要外部访问:模型直接处理上传的图片文件,不需要通过 HTTP URL 访问
3. API 协议不同:视觉语言模型的 API 支持直接接收图片数据
技术实现差异
图像编辑流程:
本地图片文件 → Home Assistant 内部 URL 转换 → HTTP URL → ModelScope 通过 HTTP 访问
图像理解流程:
本地图片文件 → 直接上传到模型 → 模型处理图片数据
这就是为什么图像分析/编辑模型需要公网可访问的图片 URL,而图像理解模型可以直接处理本地上传的图片文件。
关键技术差异
1. 图片数据传递方式
图像理解模型:
- 使用 OpenAI 兼容的 Chat Completions API
- 支持 image_url 类型,但这个 URL 只是指向图片的位置
- 模型会下载并处理图片内容
- 可以处理公开 URL 或客户端直接上传的图片数据
图像编辑模型:
- 使用专用的 Images Generations API
- image_url 参数必须是 ModelScope 服务器能够直接访问的外部 URL
- ModelScope 服务器会异步地从该 URL 下载图片进行编辑
- 这是服务器到服务器的请求,不是通过客户端中转
2. 网络访问要求
图像理解模型:
# ✅ 可以工作的场景
image_url: "https://public-site.com/image.jpg" # 公开URL
image_url: "data:image/jpeg;base64,..." # base64编码
# 客户端上传的本地文件 → OpenAI库处理 → 发送给模型
图像编辑模型:
# ✅ 可以工作的场景
image_url: "https://public-site.com/image.jpg" # ModelScope能直接访问
image_url: "https://your-home-assistant.com/image.jpg" # 配置了external_url
# ❌ 不能工作的场景
image_url: "http://192.168.1.100:8123/media/local/image.jpg" # 内网地址
image_url: "http://homeassistant.local:8123/media/local/image.jpg" # 本地域名
3. 数据处理流程
图像理解流程:
本地图片 → OpenAI客户端处理 → 直接发送给模型API
图像编辑流程:
本地图片 → Home Assistant生成URL → ModelScope服务器访问该URL → 下载图片 → 编辑处理
|