Flutter调用Vertex AI Imagen服务报错:提示缺少文本内容
解决Vertex AI Imagen图像编辑请求格式错误问题
问题核心在于你的请求Payload结构不符合Vertex AI Imagen的接口要求——当前使用的扁平化键值对结构,和服务期望的parts数组结构不匹配,这才导致了“缺少文本内容”的错误。
正确的请求Payload结构
根据你提供的期望结构,正确的Payload需要将文本提示和图片数据放入parts数组中,同时指定图片的MIME类型:
{ "parts": [ { "text": "make this button red" }, { "inlineData": { "mimeType": "image/jpeg", "data": "你的Base64编码图片内容" } } ] }
修改Flutter请求代码
将原请求体构建代码替换为符合上述结构的版本:
final body = jsonEncode({ 'parts': [ {'text': _promptController.text}, { 'inlineData': { 'mimeType': 'image/jpeg', // 根据图片实际格式调整,如PNG用image/png 'data': base64Image, } } ] }); final response = await http.post(url, headers: headers, body: body);
关键注意事项
- 确保
base64Image是纯Base64字符串,不要包含data:image/jpeg;base64,这类前缀,否则服务无法解析。 - 检查请求头是否设置了
Content-Type: application/json,这是发送JSON格式Payload的必要条件。 - 确认请求URL对应Vertex AI Imagen的图像生成/编辑端点(格式通常为
https://[区域]-aiplatform.googleapis.com/v1/projects/[项目ID]/locations/[区域]/publishers/google/models/imagegeneration:predict)。
内容的提问来源于stack exchange,提问作者Woodman
相关产品推荐
相关产品推荐

