在ComfyUI中处理中文提示词时,你很可能踩过这样一个坑:为电商海报批量生成“一行一个标题”的中文提示词,明明在Textbox里按下了回车键,结果出图时所有标题却全都挤成一团。根本原因很简单——CLIP并不识别换行符,无论你按多少次回车键,它都视而不见。
核心思路其实只有一句话:使用结构化分隔符替代回车键,再通过节点逻辑强制实现分行渲染。具体操作来说,要么利用Format Text节点,要么采用Concatenate加Textbox的组合方式,将换行符(\n)强行嵌入提示词中,最后通过Text Overlay节点把文字真正绘制到图像上。

借助Format Text节点实现标题逐行填充
这是最轻量级、零额外依赖的方案,尤其适合Z-Image-Turbo或Qwen-Image-2512这类原生支持中文分行的模型。
第一步:从节点库中拖入“Format Text”节点(ComfyUI 0.22.0及以上版本内置),右键→Rename→将其重命名为“Title Line Builder”。
第二步:双击该节点,在模板框内输入:【{line1}】\n【{line2}】\n【{line3}】\n【{line4}】。请注意\n必须使用小写字母,且前后不要添加空格,大写N或多余空格都会导致换行失效。
第三步:在下方的四个参数栏中依次填写:line1=新品上市;line2=买一送一;line3=限时72小时;line4=扫码立享会员价。这四行文字会严格按照顺序、分行、带方括号的方式输出。
第四步:将“Title Line Builder”节点的output端口连接到CLIP Text Encode节点的text输入口。此时生成的提示词字符串实际为“【新品上市】\n【买一送一】\n【限时72小时】\n【扫码立享会员价】”,Z-Image模型能够识别\n并触发多行排版逻辑。
通过Concatenate+Textbox组合手动拼接换行符
当你的模型不兼容\n解析(例如SDXL基础版),就必须使用ASCII换行符并结合强制编码来固化。
方法一:纯文本拼接(新手推荐)
新建四个Textbox节点,分别命名为“Title1”“Title2”“Title3”“Title4”,内容填入对应的标题文字;再拖入一个“Concatenate”节点,将这四个Textbox的输出按顺序连接到input_1~input_4;然后在Concatenate节点右侧空白处右键→Add Textbox→输入单字符【\n】(注意是反斜杠加字母n,不是回车键),将其output连接到Concatenate的input_5。这样每行标题后面都会被强制添加一个换行符。
方法二:使用Python脚本节点注入(进阶技巧)
拖入“Python Execute”节点,在代码框中粘贴以下内容:
text_lines = [TEXT1, TEXT2, TEXT3, TEXT4]
result = "\n".join(text_lines)
OUTPUT = result
然后将四个Textbox分别连接到TEXT1~TEXT4的输入口。这种方式比手动拼接更简洁,但需要确认你的ComfyUI环境已开启Python执行权限。
让标题真正显示在图像上:绑定Text Overlay节点
仅生成带有\n的提示词还不够——它只影响构图语义,并不代表图像上真的有文字。必须叠加文字渲染节点才能实现。
从节点库搜索并拖入“ComfyUI_Text_overlay”,检查其参数面板是否包含“text”“font_size”“position”“align”等字段。如果没有,说明该插件尚未安装,需要先通过Manager进行安装。
将上一步Format Text或Concatenate输出的完整字符串,连接到Text Overlay节点的text输入口;设置font_size=48,align=“center”,position=“center”;然后将Text Overlay节点的image输出,连接到KSampler的latent_image输入口上游(即在VAE Decode之前接入)。
这一步不可忽略:如果连接在VAE Decode之后,文字会变得模糊如马赛克;连接在之前,Z-Image才能把文字作为结构化先验参与去噪过程,确保每一行独立清晰、边缘锐利、无重影。
