news 2026/10/21 10:38:18

Qwen-Image-2.1-PE-T2I输出格式全解析:如何正确读取rewritten_prompt与wh_ratio

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qwen-Image-2.1-PE-T2I输出格式全解析:如何正确读取rewritten_prompt与wh_ratio

【免费下载链接】Qwen-Image-2.1-PE-T2I

项目地址:https://ai.gitcode.com/hf_mirrors/Qwen/Qwen-Image-2.1-PE-T2I
点击查看免费下载

Qwen-Image-2.1-PE-T2I 是一个开源的文生图提示词改写模型(Prompt Rewriting Model):输入一句简短的作图请求,它输出一段包含rewritten_prompt与wh_ratio两个字段的 JSON 对象。本文完整拆解它的输出格式,带你用最快速度正确读取这两个字段。

📦 先搞懂:Qwen-Image-2.1-PE-T2I 是什么

它不是一个直接画图的模型,而是 Qwen-Image-2.1 出图流程中的「提示词扩写器」——基于 Qwen3.5-VL 9B 微调,把任意语言的短请求(哪怕只有 3 个词)扩写成一段 400~500 词的详细英文画面描述,并推荐一个合适的画面比例。

典型工作流是两段式:

  1. Qwen-Image-2.1-PE-T2I(本文主角):短提示词 → 详细英文提示词 + 宽高比
  2. Qwen-Image-2.1(出图模型):拿着上一步的rewritten_prompt和wh_ratio生成图片

模型权重约 18.8GB(bfloat16),共 4 个分片。仓库内各文件的作用如下:

文件说明
README.md官方用法示例、输出格式定义
config.json模型架构配置(Qwen3_5ForConditionalGeneration,32 层,bfloat16)
system_prompt.txt系统提示词,定义了改写规则与输出格式契约
chat_template.jinja对话模板,含think推理开关
generation_config.json生成默认参数
model-00001.safetensors 等 4 个分片模型权重,总计约 18.8GB

模型文件也可通过git clone https://gitcode.com/hf_mirrors/Qwen/Qwen-Image-2.1-PE-T2I获取。

🔍 输出的完整结构:先是推理块,再是一行 JSON

模型不会直接吐出 JSON。完整原始输出长这样:

think (这里是模型的推理过程,逐条分析画面元素、位置、光线……) end think {"rewritten_prompt": "The image is a wide cinematic photograph of a corgi playing guitar in the rain, ...", "wh_ratio": "16:9"}

拆解成三层看:

层级内容读取建议
第一层:think推理块模型的思考过程,内容不固定直接丢弃,不要传给下游
第二层:换行 + JSON一行严格合法的 JSON 对象解析目标
第三层:JSON 字段rewritten_prompt、wh_ratio真正要用的数据

system_prompt.txt 中对输出契约的定义是:单行、严格合法的 JSON,前后不能有任何其他内容。这也是解析时敢直接json.loads的底气所在。

📝 字段一:rewritten_prompt 详解

rewritten_prompt是一段"以观察者视角描述成图"的英文段落。它的写法由 system_prompt.txt 中的八步规则约束:

  1. 拆需求:用户明确给出的(文字内容、数量、颜色、比例)逐字保留;没说的由模型补全
  2. 定画幅:决定横竖与比例(比例只写入wh_ratio,不写进描述)
  3. 开场句:约 20 词,交代媒介、风格、主体、背景
  4. 列清单:先盘点画面元素与可读文字
  5. 走画面:按区域或主体顺序描述,约 1/3 句子以位置短语开头
  6. 写文字:图中可读文字保留原语言(中文仍是中文),带引号书写
  7. 单独立光:给光源、方向、阴影单独一句话
  8. 收尾句:以 "The overall composition …" 总结构图与氛围

对使用者来说,这意味着:

  • 它总是英文(图中文字除外),可以直接喂给任何英文出图模型
  • 短请求也会得到完整长描述,不需要你自己补细节
  • 描述里永远不会出现 "masterpiece"、"8K" 之类的画质堆砌词,也永远不会出现比例或分辨率数字
  • 长度稳定在 20 句左右、400~500 词,便于下游做 token 预算

🖼️ 字段二:wh_ratio 详解与比例清单

wh_ratio是字符串形式的宽高比,如"16:9"、"3:2"。它的取值规则(见 system_prompt.txt):

  • 用户指定了比例就照用
  • 没指定时:横向主体默认3:2,纵向主体默认2:3
  • 方形徽章/图标用1:1,电影感宽幅用16:9,手机竖屏/长条 Banner 用9:16或1:2
  • 偶见4:3、2:1、21:9等小众值

拿到比例后,需要映射成实际像素尺寸才能出图。README.md 给出的常用映射表:

wh_ratio宽 × 高(像素)典型场景
1:12048 × 2048头像、专辑封面
3:22528 × 1696横向默认
2:31696 × 2528纵向默认
4:32400 × 1792常规横图
3:41792 × 2400常规竖图
16:92752 × 1536电影感宽幅、演示画面
9:161536 × 2752手机竖屏、短视频封面

⚠️ 注意:模型理论上可能返回映射表之外的值(如"21:9"),健壮的做法是查不到时回退到2048 × 2048。

⚡ 最快解析方法:三步从原始输出到 JSON

完整推理示例见 README.md,核心解析只有三步(见 README.md):

第 1 步:按end think切分,丢弃推理块

thinking, _, answer = gen.partition("end think")

第 2 步:解析 JSON(answer可能带前后空白,先strip)

import json result = json.loads(answer.strip())

第 3 步:取字段使用

prompt = result["rewritten_prompt"] # 传给 Qwen-Image-2.1 出图 width, height = WH_RATIO_TO_SIZE.get(result["wh_ratio"], (2048, 2048))

两个容易忽略的调用细节:

  • 构建输入时apply_chat_template要传enable_thinking=True(见 chat_template.jinja),否则输出里没有推理块结构,切分逻辑会失效
  • 生成参数建议照官方示例:max_new_tokens=16256, do_sample=True, temperature=1.0, top_p=0.95, top_k=20,其中max_new_tokens必须给足,否则长描述中途截断,JSON 直接不闭合

⚠️ 常见坑与排查

现象原因解法
json.loads报错没剥离think块,或输出被截断先partition("end think");调大max_new_tokens
解析出的字段为空或异常未加载系统提示词必须把 system_prompt.txt 内容作为system消息传入
wh_ratio查不到尺寸返回了小众比例(如21:9)映射表查不到时回退(2048, 2048)
显存不足模型约 18.8GB(bfloat16)加载时加device_map="auto",多卡自动分配
想关闭推理块提速设置了enable_thinking=False不建议:官方流程依赖think/end think结构做切分

总结

Qwen-Image-2.1-PE-T2I 的输出格式可以一句话记住:end think之前的推理块全部丢弃,之后是一行 JSON,rewritten_prompt拿去出图、wh_ratio换算尺寸。掌握「切分 → 解析 → 映射」这三步,就能把它稳稳接进你的文生图工作流。

【免费下载链接】Qwen-Image-2.1-PE-T2I

项目地址:https://ai.gitcode.com/hf_mirrors/Qwen/Qwen-Image-2.1-PE-T2I
点击查看免费下载
上一篇:【亲测免费】 推荐使用:SQL格式化工具 - sql-formatter
下一篇:2025 全攻略:用 Rust `scraper` 库实现专业级 HTML 解析与数据提取

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 10:38:02

Unity 转微信小游戏:WASM 分包与首包压缩实战指南

Unity 转微信小游戏:WASM 分包与首包压缩实战指南 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform 想把 Unity 项目搬上微信小游戏&am…

作者头像 李华
网站建设 2026/10/21 10:37:23

为什么选择SheerID-Verification-Tool?10大优势解析

为什么选择SheerID-Verification-Tool?10大优势解析 SheerID-Verification-Tool是一款轻量级工具,专为集成和测试SheerID验证工作流程而设计。它简化了API请求,处理响应,并支持学生等项目的资格检查,为各类验证场景提…

作者头像 李华
网站建设 2026/10/21 10:33:51

i.MX6ULL嵌入式Linux入门:72小时跑通Linux系统与外设控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:33:28

嵌入式软件AI编程:STM32开发中AI协同的实操流程与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:32:59

AI协同开发STM32程序:从流程搭建到避坑实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:31:02

三菱ST工单拼接:CONCAT与REPLACE实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华