wx-server-sdk 调用
在微信小程序云函数中通过内置的 wx-server-sdk 调用混元生图模型。wx-server-sdk 已预装在微信云函数环境中,无需额外安装。
说明
图片生成功能仅支持在云函数中调用,小程序端不支持直接调用。
前置条件
- 已开通微信云 开发环境
- wx-server-sdk 4.0.2 或更高版本
- 生图资源:小程序成长计划赠送的生图资源
版本说明
使用 HY-Image-3.0-Plus-4090-Tob-v1.0 模型需要 wx-server-sdk 4.0.2 或更高版本(其子依赖 @cloudbase/ai >= 2.30.0)。可在云函数的 package.json 中指定版本:
{
"dependencies": {
"wx-server-sdk": "4.0.2"
}
}
创建生图云函数
新建云函数,在 index.js 中填入以下代码:
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
timeout: 150000, // 单次 HTTP 请求超时 150s,覆盖默认的 ~15s
})
const ALLOWED_SIZES = ['1024x1024', '1280x720', '720x1280', '1280x1280']
exports.main = async (event, context) => {
const prompt = (event.prompt || '').trim()
if (!prompt) {
return { error: '请输入提示词' }
}
if (prompt.length > 500) {
return { error: '提示词最多 500 字' }
}
const size = ALLOWED_SIZES.includes(event.size) ? event.size : '1024x1024'
const imageModel = cloud.ai().createImageModel('hunyuan-image')
const res = await imageModel.generateImage({
model: 'HY-Image-3.0-Plus-4090-Tob-v1.0',
prompt,
size,
revise: { value: true },
})
return {
url: res.data[0].url, // 图片 URL,24 小时有效
revisedPrompt: res.data[0].revised_prompt, // 优化后的提示词
}
}
超时时间
图片生成耗时较长(开启 revise 改写约增加 10 秒,开启 thinking 模式最长增加 60 秒),建议将云函数超时时间设置为 900 秒。
在小程序中调用
云函数部署后,在小程序代码中调用:
const res = await wx.cloud.callFunction({
name: 'generateImage',
data: {
prompt: '一只胖胖的橘猫坐在窗台上打盹,水彩风格,温暖色调',
size: '1024x1024',
},
})
console.log(res.result.url) // 图片 URL
console.log(res.result.revisedPrompt) // 改写后的 prompt