You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Web URL调用OpenAI的createImageVariation接口

能否通过Web URL调用OpenAI的createImageVariation接口?

OpenAI的createImageVariation接口不支持直接传入Web URL,它要求必须提供本地文件的可读流(或二进制文件数据),这也是官方文档只给出本地文件调用示例的原因。

要实现用远程URL的图片生成变体,你需要先把远程图片下载到本地(或内存中),转换成符合要求的可读流后再传入接口。

具体实现示例(Node.js)

可以使用node-fetch库下载远程图片,将其转换为Buffer后再生成可读流:

const openai = require('openai');
const fetch = require('node-fetch');
const { Readable } = require('stream');

// 初始化OpenAI客户端
openai.apiKey = '你的API密钥';

async function createVariationFromRemoteUrl(imageUrl) {
  // 下载远程图片
  const response = await fetch(imageUrl);
  if (!response.ok) throw new Error('下载图片失败');
  
  // 将图片Buffer转换为可读流
  const imageBuffer = await response.buffer();
  const imageStream = Readable.from(imageBuffer);
  // 给流添加filename属性,OpenAI需要识别文件格式
  imageStream.path = 'image.png';

  // 调用createImageVariation接口
  const variationResponse = await openai.createImageVariation(
    imageStream,
    1,
    '1024x1024'
  );
  
  return variationResponse.data.data[0].url;
}

// 调用示例
createVariationFromRemoteUrl('https://res.cloudinary.com/doi0newyy/image/upload/v1675088907/llqivxedybyi0gzuf4x9.png')
  .then(url => console.log('生成的变体图片URL:', url))
  .catch(err => console.error('出错:', err));

注意事项

  • 远程图片必须是PNG格式,尺寸为1024x1024,文件大小不超过4MB,符合OpenAI的接口要求。
  • 确保你使用的OpenAI库版本支持传入Buffer转换的可读流(当前最新版本是兼容的)。

内容的提问来源于stack exchange,提问作者Johnny Kang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:35:14