帮你快速理解、总结文档立即下载

Hy 生图调用指南

最近更新时间:2026-09-24 21:20:30
本文档已由 AI 辅助审校
我的收藏

概述

混元生图是腾讯混元推出的图像生成模型系列。本文介绍如何通过 TokenHub 调用混元图片生成模型 Hy-Image-3.0(hy-image-v3)与 Hy-Image-3.5-preview(hy-image-v3.5-preview):
Hy-Image-3.0:凭文本提示词同步生成图片,支持参考生图、自定义尺寸、生成种子、prompt 自动改写与图片水印脚注。
Hy-Image-3.5-preview:以 OpenAI Chat 风格的 messages 协议提交单轮或多轮生图/编辑请求,同步返回图片结果,支持多模态输入(文本 + 参考图)、多轮编辑、思维链改写、外部搜索增强、自定义尺寸/面积/种子、图片水印脚注等能力,最高支持 4096×4096(4K)输出。
说明:
两个模型均为同步调用:一次请求直接返回生成结果,无需提交任务与轮询。Hy-Image-3.5-preview 的服务端会在内部完成 SSE 流式推理并等到终态,最后把原厂最终图像帧原样返回给调用方。

前提条件

已 注册腾讯云 账号并开通 TokenHub 服务。
已在 TokenHub 控制台 获取 API Key。
在 控制台-在线推理-视觉模型 处开启对应模型的后付费。
说明:
下文所有示例中的 YOUR_API_KEY 均需替换为您自己的 API Key,鉴权方式为请求头 Authorization: Bearer YOUR_API_KEY。

模型列表

模型名称
model 参数值
支持能力
输入上限
尺寸约束
简要说明
Hy-Image-3.5-preview
hy-image-v3.5-preview
文生图 / 参考生图 / 多轮编辑(同步)
100k tokens
宽高 ∈ [256, 8192],面积 ≤ 16777216(4K,4096×4096)
Chat/Messages 协议,支持多模态输入、多轮编辑上下文、外部搜索增强、按面积档位自动决定尺寸,最高支持 4K 输出。
Hy-Image-3.0
hy-image-v3
文生图 / 参考生图(同步)
8192 字符
宽高 ∈ [512, 2048],面积 ≤ 1024×1024
支持 prompt 自动改写、37 组预设尺寸、自定义水印脚注。

Hy-Image-3.5-preview 图片生成(文生图 / 图生图 / 多轮编辑)

1. 接口描述

以 Chat/Messages 协议输入一轮或多轮上下文(文本 + 可选参考图),同步生成图片。未传 size 时,模型会结合 prompt 语义与 generate_max_pixels 面积档位自主决定最终宽高;传入 size 时强制按指定尺寸出图,最高支持 4096×4096(4K)。
接口: POST https://tokenhub.tencentmaas.com/v1/wand/hunyuan-image/v35-generation

2. 输入参数

2.1 顶层参数

参数名
必选
类型
描述
model
是
string
模型 ID。取值:hy-image-v3.5-preview
messages
是
array[object]
多轮会话内容,时间从旧到新排列。
服务端会取数组中最后一个 role=user 的消息作为本轮生图指令,其余对象作为历史上下文一并透传(用于多轮编辑)。元素结构见 2.2 messages 元素结构。
size
否
string
生成尺寸,格式 ${宽}x${高}。
约束:
1. 宽、高均为正整数,取值范围 [256, 8192]。
2. 宽 × 高(面积)不超过 16777216,即最高支持 4096×4096(4K)。
不传或传空串时由模型基于 prompt 语义与 generate_max_pixels 自主决定尺寸;传入具体值时强制按指定尺寸出图。需要 4K 输出时,直接传 "size": "4096x4096" 即可。
seed
否
integer
生成种子,int64 类型,范围 [0, 2^63-1];为 0 或不传时服务端随机分配。负值将被拒绝。
generate_max_pixels
否
integer
指定生成图片的目标面积(像素数),仅在未传 size 时生效。
支持 3 个枚举档位:1048576(1K,1024×1024)、2359296(1.5K,默认)、4194304(2K);传入非枚举中间值时按最近面积归档。
注:该参数最高档位为 2K,需要更高分辨率请改用 size 指定。
resize_max_pixels
否
integer
输入参考图面积上限(像素数)。原图面积 ≤ 阈值时原样透传;> 阈值时按比例等比缩放到 ≈ 阈值后再送入模型,用于控制大图(4K/6K)带来的上下文 token 消耗。
不传默认 1048576(1024×1024)。
session
否
string
会话 ID,用于推理服务一致性哈希调度(同 session 的多轮请求会落到同一推理实例,提升 KV-cache 命中率)。多轮对话建议整条会话保持同一 session 值。
footnote
否
string
业务自定义水印内容,最长 16 字符(按 utf8.RuneCount 计算,不区分中英文),生成在图片右下角。
use_search_tool
否
object
外部搜索增强开关,结构固定为 {"value": true} 或 {"value": false}。当前默认关闭。

2.2 messages 元素结构

messages[n] 每个元素结构如下:
参数名
必选
类型
描述
role
是
string
角色,支持 user / assistant / tool。
tool 角色仅在「把上一轮生图结果回灌作为下一轮上下文」时出现。
content
否
array[object]
该轮的具体内容,元素结构见 2.3 content 元素结构。
assistant 仅触发工具调用、不发文本时可省略。
reasoning
否
string
仅 role=assistant 多轮回灌时使用,透传上一轮响应中的思维链原文。
tool_calls
否
array
仅 role=assistant 多轮回灌时使用;元素结构为标准 OpenAI tool_call:{id, type:"function", function:{name, arguments}},其中 arguments 为 JSON 字符串。
tool_call_id
否
string
仅 role=tool 多轮回灌时使用;须与上一条 assistant.tool_calls[i].id 字符级一致。

2.3 content 元素结构

messages[n].content[m] 每个元素结构如下:
参数名
必选
类型
描述
type
是
string
内容类型,text 或 image_url。
text
否
string
当 type=text 时使用,表示具体文本。
image_url
否
object
当 type=image_url 时使用,结构为 {"url": "..."}。
支持 http(s) 公网 URL 或 data:image/...;base64,... 形态;单图大小 ≤ 20MB,图片总数量 ≤ 20 张(超过时服务端按轮次由远到近自动截断)。
is_generate
否
bool
仅 role=tool 回灌生图 content 时填 true,标记「这是上一轮 generate 工具产出的图」。其它场景不传。

3. 请求示例

单轮文生图(4K 输出)
# 文生图
curl -X POST 'https://tokenhub.tencentmaas.com/v1/wand/hunyuan-image/v35-generation' \\
-H 'Authorization: Bearer YOUR_API_KEY' \\
-H 'Content-Type: application/json' \\
-d '{
"model": "hy-image-v3.5-preview",
"size": "4096x4096",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "画一只在沙滩上奔跑的金毛犬,傍晚的暖色光" }
]
}
]
}'
单轮参考生图(文本 + 参考图)
# 参考生图
curl -X POST 'https://tokenhub.tencentmaas.com/v1/wand/hunyuan-image/v35-generation' \\
-H 'Authorization: Bearer YOUR_API_KEY' \\
-H 'Content-Type: application/json' \\
-d '{
"model": "hy-image-v3.5-preview",
"session": "demo-session-001",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "参考这张图的风格,画一只猫" },
{ "type": "image_url", "image_url": { "url": "https://your-domain/dog.png" } }
]
}
]
}'
多轮编辑(把上一轮响应中的 assembled_history 三条消息原样拼入)
{
"model": "hy-image-v3.5-preview",
"session": "demo-session-001",
"messages": [
{ "role": "user", "content": [
{ "type": "text", "text": "参考这张图的风格,画一只猫" },
{ "type": "image_url", "image_url": { "url": "https://your-domain/dog.png" } }
]},
{
"role": "assistant",
"content": [{ "type": "text", "text": "为了按要求创建图片,我将使用生成工具。" }],
"reasoning": "用户希望参考狗的风格画一只猫...",
"tool_calls": [{
"id": "generate@call_0",
"type": "function",
"function": { "name": "generate", "arguments": "{\\"recaption\\":\\"a cat in similar style...\\"}" }
}]
},
{
"role": "tool",
"tool_call_id": "generate@call_0",
"content": [
{ "type": "image_url", "image_url": { "url": "http://hunyuan-image-result-tob-1258344703.cos.ap-guangzhou.myqcloud.com/xxx/cat.png" } }
]
},
{
"role": "assistant",
"content": [{ "type": "text", "text": "你请求的图片已完成。" }]
},
{ "role": "user", "content": [
{ "type": "text", "text": "把猫换成布偶猫品种,背景换成壁炉旁" }
]}
]
}

4. 输出参数

参数名
类型
描述
id
string
此次请求的 traceID,整流唯一。
object
string
固定 image.chat.completion.chunk。
created
integer
Unix 秒级时间戳。
model
string
原厂实际服务返回的内部版本标识(形如 HY-Image-3.5-preview-4090-Tob-vX.Y),会随上游发布变化,不等同于请求体中传入的 hy-image-v3.5-preview,仅供参考,不建议客户端取此字段做业务分支判断。
round
integer
本帧所属 LLM 轮次,从 0 起算。
choices
list
固定长度 1。
choices[0].delta
object
主图载体,结构为 {"type":"image", "image":{"url":"...", "width":..., "height":..., "source":"generate", "tool_call_id":"generate@call_0"}}。
choices[0].delta.image.url 即为本次生图的最终交付 URL,客户端应优先读取此字段。
choices[0].finish_reason
string | null
成功终态帧下往往为 null(原厂将图片作为最后一帧 delta 下发后直接关流,不额外发送完结帧);仅在内容安全拦截 / 业务错误时会为 error 等非空值。
业务侧判断是否成功建议依据 choices[0].delta.image.url 是否存在,而非 finish_reason。
usage.total_tokens
integer
本次任务消耗的 token 总量(原厂依据,v3.5 目前不拆分 prompt / completion)。
tokenhub_usage.total_tokens
integer
TokenHub 网关侧计费/对账使用的 token 消耗,一般与 usage.total_tokens 保持一致。
request_id
string
唯一请求标识,用于排查问题。
assembled_history
list
服务端拼好的「下一轮回灌消息序列」,结构与请求体 messages 元素完全一致,典型为 3 条对象:
① role=assistant(含 reasoning + tool_calls,描述本轮思考与工具调用)
② role=tool(含工具产出图的中间 URL,tool_call_id 与 ① 一致)
③ role=assistant(只含收尾文本,例如「你请求的图片已完成。」)
多轮编辑时直接把该数组原样追加到下一轮 messages 即可。
error
object
仅失败终态帧才带,OpenAI 风格 {type, code, message, request_id}。
说明:
两个图片 URL 的区别:
choices[0].delta.image.url:最终交付图 URL(位于 aigc-output-image-file-*.cos.ap-guangzhou.myqcloud.com),已含水印/后处理,推荐业务优先读取此字段作为最终图片。
assembled_history[].content[].image_url.url(role=tool):中间产物 URL(位于 hunyuan-image-result-tob-*.cos.ap-guangzhou.myqcloud.com),其作用是为下一轮多轮编辑提供可回灌的历史上下文。多轮编辑时必须拼入。
两者均为临时签名 URL,默认有效期 12 小时,请及时下载转存。

5. 响应示例

成功响应:
{
"id": "1374200352-WandImage-085edfe2367d4a688f68e813af3665a5",
"object": "image.chat.completion.chunk",
"created": 1789720599,
"model": "HY-Image-3.5-preview-4090-Tob-v1.2",
"round": 0,
"choices": [
{
"index": 0,
"delta": {
"type": "image",
"image": {
"url": "https://aigc-output-image-file-1326893053.cos.ap-guangzhou.myqcloud.com/xxx/main.png?...",
"width": 4096,
"height": 4096,
"source": "generate",
"tool_call_id": "generate@call_0"
}
},
"finish_reason": null
}
],
"usage": { "total_tokens": 20000 },
"tokenhub_usage": { "total_tokens": 20000 },
"request_id": "a1c00d07-041b-4daa-bae0-b7eabf2bc33a",
"assembled_history": [
{
"role": "assistant",
"content": [{ "type": "text", "text": "为了按要求创建图片,我将使用生成工具。" }],
"reasoning": "用户指令是\\"跳舞\\",需要将其具象化为具体的视觉表现...",
"tool_calls": [
{
"id": "generate@call_0",
"type": "function",
"function": {
"name": "generate",
"arguments": "{\\"recaption\\":\\"...\\",\\"image_width\\":\\"855\\",\\"image_height\\":\\"1226\\",\\"source_image_indices_list\\":\\"[\\\\\\"rdnd\\\\\\"]\\"}"
}
}
]
},
{
"role": "tool",
"tool_call_id": "generate@call_0",
"content": [
{
"type": "image_url",
"image_url": {
"url": "http://hunyuan-image-result-tob-1258344703.cos.ap-guangzhou.myqcloud.com/text2image2/strategy/upload/xxx.png?..."
}
}
]
},
{
"role": "assistant",
"content": [{ "type": "text", "text": "你请求的图片已完成。" }]
}
]
}
失败响应(例如内容审核拦截):
{
"id": "abc123",
"object": "image.chat.completion.chunk",
"created": 1785125530,
"model": "HY-Image-3.5-preview-4090-Tob-v1.2",
"round": 0,
"choices": [
{ "index": 0, "delta": {}, "finish_reason": "error" }
],
"error": {
"type": "invalid_request_error",
"code": "content_filter",
"message": "input moderation rejected",
"request_id": "xxxxxxxx"
}
}
返回的 url 为临时地址,有效期 12 小时。由于该地址带有鉴权校验,直接通过浏览器地址栏访问可能被拒绝。建议通过以下方式下载:
curl -o generated_image.png 'https://aigc-output-image-file-1326893053.cos.ap-guangzhou.myqcloud.com/xxx/main.png?...'
或在代码中使用 HTTP 客户端下载保存到本地存储。

6. 错误码

HTTP 状态码
说明
处理建议
400
请求格式有误
检查请求体字段类型/取值(如 size 约束、messages 结构、模型名)。
401
鉴权不通过
检查 API_KEY 是否有效、Authorization 是否为 Bearer 格式。
422
输入、输出审核不通过(内容安全拦截)
输入或输出触发内容安全审核,需调整 prompt 或业务策略。
429
请求并发数超过限额
触发并发上限,建议退避重试并控制调用并发。
500
内部错误
服务端异常,可重试;持续失败请联系技术支持并附 request_id。

Hy-Image-3.0 图片生成

1. 接口描述

输入文本提示词,同步生成图片。未传 size 时,若 prompt 中指定了尺寸或比例,模型从 37 个预设组合中选择最接近的一个;若未指定则自动预测,详情请参见 附录:Hy-Image-3.0 预设尺寸列表。
接口: POST https://tokenhub.tencentmaas.com/v1/wand/hunyuan-image/v3-generation

2. 输入参数

参数名
必选
类型
描述
model
是
string
模型 ID。取值:hy-image-v3
prompt
是
string
生成图片使用的文本,长度 ≤ 8192 字符。
images
否
array[string]
参考图片,0~3 张。支持图片 URL 或 Base64。
格式 png / jpeg / jpg,单图大小 ≤ 10MB。
size
否
string
生成尺寸,格式 ${宽}x${高}。
约束:
1. 宽、高均在 [512, 2048] 像素范围内;
2. 宽高乘积(图像面积)不超过 1024×1024 像素。
不传时模型从 37 个预设组合中选择/预测,详情请参见 附录:Hy-Image-3.0 预设尺寸列表。
seed
否
integer
生成种子,范围 [1, 4294967295],仅当生成图片数为 1 时生效;不传或为 0 时默认随机。
footnote
否
string
业务自定义水印内容,限制 16 个字符长度(不区分中英文),生成在图片右下角。
revise
否
boolean
是否对 prompt 改写。

3. 请求示例

# 文生图
curl -X POST 'https://tokenhub.tencentmaas.com/v1/wand/hunyuan-image/v3-generation' \\
-H 'Authorization: Bearer YOUR_API_KEY' \\
-H 'Content-Type: application/json' \\
-d '{
"model": "hy-image-v3",
"prompt": "一只橙色小猫在窗台上看向镜头",
"size": "1024x1024"
}'

4. 输出参数

参数名
类型
描述
id
string
此次请求的 id。
created
integer
Unix 时间戳。
data
list
返回的图片生成内容数组。
data[n].url
string
生成的图片地址,为临时地址,有效期 12 小时,请及时下载转存。
data[n].revised_prompt
string
改写后的 prompt(开启 revise 时返回)。
request_id
string
唯一请求标识,用于排查问题。
tokenhub_usage
object
用量消耗。
tokenhub_usage.total_tokens
integer
本次任务消耗的 token 数,用于计费/对账。

5. 响应示例

{
"id": "4-WandImage-a786becfdc80433b8cff4aa344c8fd3d",
"created": 1785125529,
"data": [
{
"url": "https://aigc-image.cos.myqcloud.com/xxx/result.png",
"revised_prompt": "一只橙色小猫坐在洒满阳光的窗台上,转身看向镜头,毛发细节清晰,背景虚化"
}
],
"request_id": "3aec3299-06ad-4654-8b45-c57b823a15d2",
"tokenhub_usage": {
"total_tokens": 1024
}
}
返回的 url 为临时地址,有效期 12 小时。由于该地址带有鉴权校验,直接通过浏览器地址栏访问可能被拒绝。建议通过以下方式下载:
curl -o generated_image.png 'https://aigc-image.cos.myqcloud.com/xxx/result.png'
或在代码中使用 HTTP 客户端下载保存到本地存储。

6. 错误码

HTTP 状态码
说明
处理建议
400
请求格式有误
检查请求体字段类型/取值(如 size 约束、prompt 长度、模型名)。
401
鉴权不通过
检查 API_KEY 是否有效、Authorization 是否为 Bearer 格式。
422
输入、输出审核不通过(内容安全拦截)
输入或输出触发内容安全审核,需调整 prompt 或业务策略。
429
请求并发数超过限额
触发并发上限,建议退避重试并控制调用并发。
500
内部错误
服务端异常,可重试;持续失败请联系技术支持并附 request_id。

附录

Hy-Image-3.0 预设尺寸列表

size 不传时模型从以下 37 个组合中选择/预测;传入 size 时需满足约束(宽高 ∈ [512, 2048],乘积 ≤ 1024×1024)。格式均为「宽 x 高」:
2048 x 512
1984 x 512
1920 x 512
1856 x 512
1792 x 512
1728 x 512
1664 x 512
1600 x 512
1536 x 512
1472 x 576
1408 x 640
1344 x 704
1280 x 768
1216 x 832
1152 x 896
1088 x 960
1024 x 1024
960 x 1088
896 x 1152
832 x 1216
768 x 1280
704 x 1344
640 x 1408
576 x 1472
512 x 1536
512 x 1600
512 x 1664
512 x 1728
512 x 1792
512 x 1856
512 x 1920
512 x 1984
512 x 2048
768 x 1024
720 x 1280
1024 x 768
1280 x 720
-
-
-

参考图输入约束

模型
支持格式
单图大小
数量
Hy-Image-3.0
png / jpeg / jpg,支持图片 URL 或 Base64
≤ 10MB
0~3 张
Hy-Image-3.5-preview
png / jpeg / jpg,支持图片 URL 或 Base64
≤ 20MB
≤ 20 张
建议使用 CDN 直链且不带鉴权,若为内网/带鉴权域名,需联系 TokenHub 侧加入白名单。

常见问题

1. 两个模型怎么选?

Hy-Image-3.0 为经典文生图接口,请求体简单(prompt + size),适合单轮批量出图、对接成本敏感的场景;Hy-Image-3.5-preview 采用 Chat/Messages 协议,支持多图输入、多轮编辑上下文与思维链改写,文字渲染、真实感与编辑一致性更强,最高支持 4K 输出,适合海报、UI 设计、商品图编辑等专业视觉生产场景。

2. 怎么生成 4K 图片?

仅 Hy-Image-3.5-preview 支持。直接传 "size": "4096x4096" 即可,宽高取值范围 [256, 8192]、面积上限 16777216,其它 4K 级比例(如 "5461x3072")只要满足面积约束同样支持。注意 generate_max_pixels 最高档位为 2K(4194304),要出 4K 必须走 size 参数。

3. size / generate_max_pixels 怎么组合使用?(Hy-Image-3.5-preview)

只传 size:强制按精确宽高出图,覆盖模型自主决定,4K 场景用这种方式。
size + generate_max_pixels:最终宽高由内部逻辑综合计算,尽量贴近 size 的宽高比例与 generate_max_pixels 的面积档位,取模型效果最佳的宽高值。
只传 generate_max_pixels:默认 1:1 比例,面积按档位归档到 1K / 1.5K / 2K 之一。
都不传:由模型基于 prompt 语义自主决定(默认走 1.5K 档)。

4. Hy-Image-3.0 的 size 参数怎么传?

格式为 ${宽}x${高}(例如 1024x1024),宽高均需在 [512, 2048] 范围内且面积不超过 1024×1024。建议直接使用 附录:Hy-Image-3.0 预设尺寸列表 中的组合;不传时可在 prompt 中描述比例(例如「横版 16:9」),模型会自动选择最接近的预设尺寸。

5. seed 什么时候生效?如何复现?

Hy-Image-3.0:范围 [1, 4294967295],仅在生成图片数为 1 时生效,不传或传 0 时使用随机种子。
Hy-Image-3.5-preview:范围 [0, 2^63-1],为 0 或不传时服务端随机分配,负值将被拒绝。需要复现同一结果时,请固定 seed + prompt + size。

6. revise(prompt 改写)要关闭吗?(Hy-Image-3.0)

开启改写时,模型会自动改写优化 prompt 以提升生图效果,改写约耗时 11 秒。仅当您已自行实现 prompt 改写逻辑时才建议关闭,否则对生图效果影响较大。

7. 多轮编辑要怎么拼上下文?(Hy-Image-3.5-preview)

第 N+1 轮请求的 messages = 第 N 轮的 messages(含首条 user) + 第 N 轮响应中的 assembled_history(典型为 assistant + tool + assistant 三条) + 本轮新的 user 消息。无需自己聚合 SSE 增量、无需组装多层嵌套 JSON,服务端已经在 assembled_history 里拼好了直接可用的对象。可参考前文「多轮编辑」请求示例中 assistant / tool / assistant 三条消息的拼接形态。

8. 生成结果图片链接会过期吗?

会过期。两个模型的生成结果均为临时地址,有效期 12 小时,请在生成成功后及时下载转存:Hy-Image-3.0 取 data[n].url;Hy-Image-3.5-preview 取 choices[0].delta.image.url(最终交付图,业务侧使用),如需保留历史上下文用于下一轮编辑,可同时保存 assembled_history[].content[].image_url.url(中间产物)。所有 URL 均为临时签名,切勿长期依赖。