必须将本地图片转为小写格式的data:image/xxx;base64,字符串才能调用火山引擎多模态API,Python脚本、n8n流程或curl均可实现,需校验格式、解码还原和接口响应。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要把本地图片转成 Base64 编码格式,才能通过火山引擎的多模态模型 API(如图片理解、OCR、图像黑边裁剪等)提交图像数据。直接传文件路径或二进制对象会报错,必须按规范构造 data:image/xxx;base64, 开头的字符串。
用 Python 脚本一键转换本地图片
打开终端,进入图片所在目录,运行以下脚本(需已安装 Python 3.7+):
创建一个 convert.py 文件,内容如下:
import base64
import sys
if len(sys.argv) != 2:
print("用法: python convert.py /path/to/image.jpg")
sys.exit(1)
image_path = sys.argv[1]
with open(image_path, "rb") as f:
encoded = base64.b64encode(f.read()).decode("utf-8")
# 自动推断图片格式(仅支持常见后缀)
ext = image_path.split(".")[-1].lower()
if ext not in ["jpg", "jpeg", "png", "webp", "bmp", "tiff", "gif"]:
print(f"警告:不识别的扩展名 '{ext}',将默认使用 png")
ext = "png"
result = f"data:image/{ext};base64,{encoded}"
print(result)
执行命令:python convert.py ./cat.jpg,终端将直接输出完整 Base64 字符串,可复制粘贴到 API 请求体中。
【注意:ext 必须小写】比如 data:image/JPG;base64,... 是非法格式,模型会拒绝解析。
在 n8n 中自动完成 Base64 封装
适用于批量处理文件夹内图片(如车型打标、OCR 批量识别场景):
方法一:Extract from File → Code 节点拼接
在 n8n 流程中添加 “Extract from File” 节点,读取本地图片文件 → 连接到 “Code” 节点,在 JavaScript 编辑区写:
const buffer = $input.all()[0].binary.data;
const base64 = buffer.toString('base64');
const ext = $input.all()[0].binary.fileName.split('.').pop().toLowerCase();
return [{ json: { image_base64: `data:image/${ext};base64,${base64}` } }];
这一步会为每张图生成标准格式字符串,后续 HTTP Request 节点可直接用 {{$json.image_base64}} 引用。
方法二:跳过手动拼接,用 Files API 上传(推荐大文件)
若图片大于 10MB 或需复用,改用火山引擎 Files API 上传 → 获取返回的 file_id → 在模型请求中以 {"type": "file_id", "file_id": "xxx"} 方式引用。此方式不经过 Base64,规避编码体积膨胀和超长字符串截断风险。
用 curl 命令行快速验证
第一步:生成 Base64 字符串(macOS/Linux)
base64 -i cat.jpg | tr -d '\n' | sed 's/^/data:image\/jpg;base64,/'
第二步:复制输出结果,替换下面 curl 命令中的 【YOUR_BASE64_STRING】:
curl -X POST "https://cn-beijing.volces.com/api/xxx" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": [
{"type": "image_url", "image_url": {"url": "【YOUR_BASE64_STRING】"}}
]
}'
⚠️ 注意:Windows PowerShell 的 base64 命令输出带换行,必须用 -Encoding Byte | [Convert]::ToBase64String 替代原生命令,否则请求失败。
关键校验步骤
① 检查 Base64 字符串是否以 data:image/ 开头,且斜杠后是小写格式名(如 png、jpeg);
② 复制整段字符串到在线 Base64 解码网站(如 base64.guru),确认能还原出原始图片;
③ 在火山引擎 API 调试控制台中,粘贴该字符串到 image_url.url 字段,点击“发送请求”,观察返回状态码是否为 200;
④ 若返回 {"code": 400, "message": "invalid image url format"},说明格式错误,重点检查大小写与冒号后空格;
⑤ 单张图 Base64 编码后体积约为原图 1.37 倍,确保总请求体不超过模型接口限制(通常 ≤ 20MB)。


















