Zako EmbedText
Zako-EmbedText 嵌字海报节点:ZakoText 文字版块 + ZakoDeco 装饰版块并联汇入 ZakoComposer,统一渲染输出成品海报。支持画布比例自适应、竖排中文、渐变遮罩、14 种装饰样式。
🖼️ Zako-EmbedText
<p align="center"> <strong>ComfyUI 嵌字海报节点 —— 文字 / 装饰图层并联,一步合成海报</strong> </p> <p align="center"> <a href="https://github.com/comfyanonymous/ComfyUI"><img src="https://img.shields.io/badge/ComfyUI-V3%20API-8A2BE2?style=flat&logo=git&logoColor=white" alt="ComfyUI V3" /></a> <a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat&logo=python&logoColor=white" alt="Python" /></a> <a href="#"><img src="https://img.shields.io/badge/Dependencies-Zero-brightgreen?style=flat" alt="Zero Dependencies" /></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=flat" alt="License" /></a> </p> <p align="center"> <img src="preview/P5_3_刀鸣如雨.png" width="100%" alt="刀鸣如雨" /> </p>✨ 项目简介
Zako-EmbedText 是一套 ComfyUI 自定义节点,用于在底图上排版文字与装饰元素,直接输出成品海报。
采用三节点并联架构:文字版块与装饰版块只输出轻量图层数据,全部并联汇入合成节点统一渲染——改文案不动连线,图层顺序即绘制顺序。
🌟 核心特性
- 🧩 三节点并联:
Zako-Text(文字版块)+Zako-Deco(装饰版块)→Zako-Composer(合成输出),图层可挂 3~20 个自动扩展 - 📐 自适应排版:坐标为画布比例(换底图尺寸不用重调),字号支持负值按画布宽度千分比自适应
- 🖋️ 中文排版:竖排多列(
|分列)、半角字符自动旋转、字距 / 行距 / 描边 / 阴影(颜色 + 高斯模糊)+ 旋转全支持 - 🎀 14 种装饰:四角线 / 边框 / 渐变遮罩 / 色块 / 菱形 / 星形等,可多选叠加
- 🔤 字体双来源:
fonts/目录字体优先,缺失时自动探测系统字体(微软雅黑 / 宋体 / 华文系等),无需随包分发字体 - 📦 零额外依赖:仅用 ComfyUI 自带的 torch / numpy / Pillow,放入
custom_nodes即装即用
📦 安装
ComfyUI/custom_nodes/Zako-EmbedText/
├── __init__.py # 节点实现
├── fonts/ # 字体目录(可选,见下方"字体"说明)
├── workflows/ # 17 张成品工作流
├── preview/ # 渲染样张
├── tools/ # 开发脚本
└── tests/ # 单元测试
克隆或下载后放入 custom_nodes/,重启 ComfyUI 即可。
🚀 快速上手
- 从
workflows/目录拖任意一张 PNG 进 ComfyUI 画布,即得排版完成的可编辑工作流; - 替换 LoadImage 节点的底图;
- Run。想自己搭:新建
Zako-Text/Zako-Deco节点定义版块,再连到Zako-Composer的图层输入(连接后自动扩位,最多 20 层)。
🧩 节点参数速览
<details> <summary><b>Zako-Text(文字版块)</b></summary>| 参数 | 说明 |
|---|---|
| 文案内容 | 换行分多行;竖排模式下用 \| 分列 |
| 字体 | fonts/ 目录 + 系统字体预设,启动时扫描 |
| 字号 | 像素;负值 = 画布宽度千分比(-25 即宽的 2.5%),0 为默认自适应 |
| 颜色 / 描边 / 描边颜色 | hex 颜色 |
| 水平 / 垂直位置 | 文字块中心对齐到的画布比例点(0~1) |
| 竖排文字 | 多列用 \| 分隔,半角字符自动顺时针旋转 90° |
| 旋转角度 | 绕定位点 -180 ~ 180° |
| 字间距 / 行列间距 | = 字号 × 值(竖排下字距由行列间距控制) |
| 阴影距离 / 颜色 / 模糊 | 投影偏移、颜色与高斯模糊半径(0 = 硬阴影) |
14 种样式可多选:四角线 / 十字 / 边框 / 圆点 / 引号 / 加号 / 渐变遮罩为全局布局;分隔线 / 圆形 / 菱形 / 三角形 / 星形 / 方框以中心坐标 + 缩放定位;色块用中心坐标 + 宽高(支持 0.003 级细线)。强度控制渐变 / 色块不透明度,装饰层可整体旋转。
</details> <details> <summary><b>Zako-Composer(海报合成)</b></summary>| 参数 | 说明 | |---|---| | 图层列表 | 并联图层输入,默认 3 个,自动扩展至 20 个 | | 画布高宽比 | 0 = 底图原尺寸;大于 0 = 高 = 宽 × 值(2:3=1.5、9:16=1.78…) | | 画布底色 | 扩展画布 / 遮罩外底色 | | 底图遮罩 | 无 / 圆角 / 椭圆 | | 底图带高度 | 画布扩展时底图占画布高度的比例 |
</details>🔤 字体
按以下优先级自动解析(同名时前者优先):
fonts/目录:放入任意.ttf / .ttc / .otf,重启 ComfyUI 生效(仓库不含字体文件)- 系统字体预设:自动探测
C:\Windows\Fonts,内置微软雅黑、宋体、黑体、楷体、仿宋、等线、幼圆、华文系列、方正舒体/姚体、Arial、Georgia、Impact 等
多数中文字体(微软 / 华文 / 方正系)不可再分发,请使用本机已授权的字体。
🛠️ 开发
<details> <summary>测试 / 样张渲染 / 工作流生成</summary># 离线单元测试(可用环境变量 COMFYUI_ROOT 指定 ComfyUI 路径)
<ComfyUI venv python> -m pytest tests -q
# 全量重渲染样张(ComfyUI API 实跑,原子替换 preview/)
python tools/gen_posters.py
# 为样张注入工作流元数据,输出到 workflows/
python tools/gen_posters.py embed
模板用 tools/gen_posters.py 里的 T()/D() DSL 定义,挂入 TEMPLATES 表即生效;UI 工作流排版逻辑在 tools/gen_ui_workflows.py。
📄 开源协议
本项目采用 MIT License 协议。字体文件版权归原作者所有。