【免费下载链接】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 词的详细英文画面描述,并推荐一个合适的画面比例。
典型工作流是两段式:
- Qwen-Image-2.1-PE-T2I(本文主角):短提示词 → 详细英文提示词 + 宽高比
- 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 中的八步规则约束:
- 拆需求:用户明确给出的(文字内容、数量、颜色、比例)逐字保留;没说的由模型补全
- 定画幅:决定横竖与比例(比例只写入
wh_ratio,不写进描述) - 开场句:约 20 词,交代媒介、风格、主体、背景
- 列清单:先盘点画面元素与可读文字
- 走画面:按区域或主体顺序描述,约 1/3 句子以位置短语开头
- 写文字:图中可读文字保留原语言(中文仍是中文),带引号书写
- 单独立光:给光源、方向、阴影单独一句话
- 收尾句:以 "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:1 | 2048 × 2048 | 头像、专辑封面 |
3:2 | 2528 × 1696 | 横向默认 |
2:3 | 1696 × 2528 | 纵向默认 |
4:3 | 2400 × 1792 | 常规横图 |
3:4 | 1792 × 2400 | 常规竖图 |
16:9 | 2752 × 1536 | 电影感宽幅、演示画面 |
9:16 | 1536 × 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
相关推荐
拆解 Qwen-Image-2.1-PE-I2I 三大输出字段:rewritten_prompt、wh_ratio 与 ratio_follow 完全指南
拆解 Qwen Image 2.1 PE I2I 三大输出字段:rewritten_prompt、wh_ratio 与 ratio_follow 完全指南 Qw
Qwen-Image-2.1-PE-I2I 画布尺寸智能推断:wh_ratio 与 ratio_follow 比例规则完整指南
Qwen Image 2.1 PE I2I 画布尺寸智能推断:wh_ratio 与 ratio_follow 比例规则完整指南 Qwen Image 2.1 P
如何正确解析MechVL-4B-RL的答案:think与answer输出格式完全指南
如何正确解析MechVL 4B RL的答案:think与answer输出格式完全指南 使用 MechVL 4B RL 时,你是否遇到过"模型输出了一大段推理,却
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考