如何把一句话想法变成可出图的提示词:MOSS-Image-SFT 提示词增强完整上手指南
【免费下载链接】MOSS-Image-SFT项目地址: https://ai.gitcode.com/OpenMOSS/MOSS-Image-SFT
MOSS-Image-SFT 是 OpenMOSS 团队用 SFT(监督微调)训练的文生图模型,配套一套Prompt Enhancer(提示词增强)Skill:给 Agent 一句话画面想法,它就能扩写成详细描述或带坐标的 Layout 提示词,让文字落在哪、物体排在哪都可控。本文带你从环境确认走到第一张成图,再到 Layout 坐标精控,读完能独立产出文字清晰、排版整齐的中文出图。
机制速览:一句话想法如何走到画布上
整个增强是纯文本转换——Skill 只负责决定"提示词写什么",全程不碰图像生成服务,可以放心反复试写。MOSS-Image-SFT 接受三种提示词输入:自然语言、标签序列和 JSON Layout,Skill 的作用就是把你的口语化一句话整理成后两种:
| 对比项 | 详细描述(Caption) | 空间布局(Layout) |
|---|---|---|
| 拿到的是什么 | 覆盖场景、主体、光线、文字内容的长文本 | 带文字与坐标框的紧凑 JSON |
| 怎么生成 | Agent 直接扩写 | Agent 先用像素坐标草稿定位,内置脚本编译为整数居中坐标 |
| 怎么用 | 原样粘进正向提示词 | json.dumps(layout, ensure_ascii=False)序列化后整个字符串就是提示词 |
| 什么时候选 | 想要画面丰富、文字更清楚 | 要精确控制文字与物体位置 |
Layout 本质是一份"哪里写什么字、哪里放什么物体"的 JSON 描述,固定字段为bbox_format: "yxyx"(坐标数字按 y、x 顺序)与bbox_coord_space: "abs_centralized"(整数居中坐标)。
版本选择一句话:SFT 是从MOSS-Image-Base微调而来,架构与推理管线相同,但文字分组与版面组织明显更整齐;凡涉及手写文字、便签、白板内容的任务,直接选 SFT(也就是本仓库的权重)。
环境确认与安装落位
先确认环境:需要Python 3.10+和支持 CUDA 的 NVIDIA GPU,PyTorch 2.9 及以上的对应 CUDA 版本构建。
- 确认环境:
python --version看到 3.10 及以上,nvidia-smi能看到 CUDA 版本。 - 安装依赖:
pip install "diffusers>=0.38" "transformers>=5.3" "accelerate>=1.10" "safetensors>=0.6" "Pillow>=10"- 获取模型权重:
git clone https://gitcode.com/OpenMOSS/MOSS-Image-SFT目录里应能看到 model_index.json、transformer/、vae/、text_encoder/等完整结构,根目录的 pipeline_moss_image.py 是模型依赖的自定义推理管线。 4.落位 Skill:把 MOSS-Image 主仓库skills/下的moss-image-prompt-enhancer文件夹整个放进你 Agent 的 skills 目录;其中SKILL.md定义扩写规则,内置脚本负责编译坐标草稿。 5.验证可用:python -c "import diffusers, transformers"无报错即可;再在 Agent 里调用$moss-image-prompt-enhancer发一句测试想法,能返回扩写描述就说明链路通了。
该 Skill 面向具备本地文件与 Python 工具的 GPT-6 系列 Agent,其他 Agent 可按SKILL.md里的规则手动扩写。
最短路径:出第一张图 🎨
目标是一次跑通。你可以先用 Skill 扩写自己的一句话,也可以直接用官方示例提示词(冰箱便签):
A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese: "记得买牛奶和鸡蛋!牛奶两盒,鸡蛋一打。顺便带一袋面包。"
默认参数运行:
import torch from diffusers import DiffusionPipeline pipe = DiffusionPipeline.from_pretrained( "OpenMOSS-Team/MOSS-Image-SFT", # 也可传本地 clone 的目录 custom_pipeline="pipeline_moss_image", trust_remote_code=True, torch_dtype={"default": torch.bfloat16, "vae": torch.float32}, ) pipe.scheduler = type(pipe.scheduler).from_config(pipe.scheduler.config) pipe.to("cuda") image = pipe( prompt, height=1024, width=1024, num_inference_steps=50, guidance_scale=3.0, uncond_skip_layers=[22], generator=torch.Generator("cpu").manual_seed(42), ).images[0] image.save("refrigerator_note.png")成功的标准:refrigerator_note.png生成,便签上有完整的中文手写文字、字符清晰可读 ✅
精细控制:Layout 坐标与受控编辑
想要"放哪由我定",就切到 Layout 模式。
Layout JSON 骨架
summary.caption装场景描述,items装元素列表,每个元素带文字与 bbox:
{ "summary": {"caption": "…场景描述…"}, "bbox_format": "yxyx", "bbox_coord_space": "abs_centralized", "items": [ {"text": "…元素文字…", "bbox": [y1, x1, y2, x2]} ] }items内各子字段的具体规范以SKILL.md为准。
硬性约束:尺寸必须一致
生成尺寸必须与 Layout 画布一致:画布 1024×1024 就按 1024×1024 出图,不一致坐标会整体错位 ⚠️ 另外粘进提示词的是json.dumps(layout, ensure_ascii=False)序列化后的紧凑 JSON,不是像素坐标草稿。
改一个字就改一处
这是 Layout 相对长提示词的天然优势:想改一个字,只改items里对应条目的文字;想挪位置,改 bbox 即可,不用重写整段提示词。
参数速查与高频排错 🔧
以下默认值都来自模型自带配置,不懂就保持默认:
| 参数 | 默认值 | 说明 |
|---|---|---|
| 采样器 | Flow-matching Euler | shift 为 5.0,定义在 scheduler/scheduler_config.json |
num_inference_steps | 50 | — |
guidance_scale | 3.0 | 每步两次前向,含跳层预测 |
uncond_skip_layers | [22] | 负向分支跳过第 22 层(从 0 计),传[]关闭 |
negative_prompt | 空 | 可自行设置负向提示词 |
height/width | 1024 | 必须为 16 的正倍数 |
| dtype | bfloat16(transformer/text encoder)、float32(VAE) | 经torch_dtype传入 |
高频问题,三句话给答案:
- 报错 "height and width must be positive multiples of 16."传入的尺寸不是 16 的正倍数。改成 1024×1024 等 16 的倍数即可。
- 出图尺寸与画布一致,但文字位置不对说明粘的是像素坐标草稿而非编译结果。用
json.dumps(layout, ensure_ascii=False)序列化后的紧凑 JSON。 - 文字分组乱、版面散是拿 Base 版做文字渲染任务。换 MOSS-Image-SFT 权重,分组与版面明显更整齐。
- Agent 里调用 Skill 没反应Skill 依赖 GPT-6 系列 Agent 的本地文件与 Python 工具。换受支持的 Agent,或按 SKILL.md 手动扩写。
- 设置了负向提示词却像没生效默认
uncond_skip_layers=(22,)用跳层预测替代了负向分支预测。先传uncond_skip_layers=[],再设置negative_prompt。
收尾:记住三件事
- Skill 的产物全是文本,直接贴进正向提示词;Layout 唯一硬约束是出图尺寸与画布一致。
- 保持默认参数(50 步、
guidance_scale=3.0、跳层[22])就是官方效果,先跑通再调。 - 模型权重与配套推理代码遵循 Apache License 2.0,详见 LICENSE。
【免费下载链接】MOSS-Image-SFT项目地址: https://ai.gitcode.com/OpenMOSS/MOSS-Image-SFT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考