项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 14168
技术标签
使用教程
⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- Node.js >= 16(浏览器和 Web Workers 也可直接运行)
- 支持 JSX 的构建/运行环境(Satori 接受 JSX 语法)
- 至少一个字体文件,以 Buffer/ArrayBuffer 形式提供
安装与启动步骤
-
1安装 satori
README 示例中从 'satori' 包导入,因此在项目里安装同名 npm 包即可(README 未直接给出安装命令,此为按包名推断)。
npm install satori -
2读取字体数据
用 Node.js 的 fs 或 fetch 把字体读成 Buffer/ArrayBuffer,赋值给 fonts[].data,否则无法渲染文字。
-
3编写渲染代码
用 JSX 描述要渲染的元素,调用 satori 并传入宽高与字体配置,JSX 必须是纯的、无状态的元素。
import satori from 'satori' const svg = await satori( <div style={{ color: 'black' }}>hello, world</div>, { width: 600, height: 400, fonts: [ { name: 'Roboto', data: robotoArrayBuffer, weight: 400, style: 'normal', }, ], }, ) -
4取出 SVG 结果
satori 返回 SVG 字符串,形如 '<svg ...><path d="..." fill="black"></path></svg>',可直接使用或落盘保存。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
width | 是 | 输出 SVG 的宽度(像素) | 600 |
height | 是 | 输出 SVG 的高度(像素) | 400 |
fonts | 是 | 字体配置数组,用于文字排版 | [{ name: 'Roboto', data: robotoArrayBuffer, weight: 400, sty |
fonts[].name | 是 | 字体名称,供样式引用 | Roboto |
fonts[].data | 是 | 字体二进制数据,Buffer 或 ArrayBuffer | robotoArrayBuffer |
fonts[].weight | 是 | 字重 | 400 |
如何确认成功
调用后返回的字符串以 '<svg' 开头并包含 '<path d="..." fill="black">' 等节点,即渲染成功。
常见问题
Q:Satori 能在哪些环境运行?
A:可直接用于浏览器、Node.js(>= 16)和 Web Workers。其底层 WASM 依赖以 base64 字符串打包,在运行时加载。
Q:怎样生成 PNG(如 OG 图、社交卡片)?
A:README 建议参考 Vercel 的 Open Graph Image Generation 文档与 Next.js 的示例;Satori 本身输出的是 SVG 字符串。
Q:Cloudflare Workers 等无法动态加载 WASM 怎么办?
A:README 提到可使用 Standalone Build(独立构建版本)来规避动态加载 WASM 的限制。
注意事项
- Satori 只接受纯的、无状态的 JSX 元素
- Node.js 版本需 >= 16
- 字体必须显式以 Buffer/ArrayBuffer 形式提供,README 未给出安装命令,安装步骤为按包名推断
核心亮点
- 将 HTML/CSS 直接转换为 SVG,无需浏览器或 DOM,渲染性能高
- 基于 JSX 语法编写样式,与 React 生态无缝集成,开发体验好
- 支持 Open Graph 图片生成,被 Vercel 官方用于 OG 图服务,生产环境验证充分
不足之处
- 对复杂 CSS 特性(如 flexbox 部分布局、伪元素)支持有限,高级样式需变通
- 文档/社区待观察
适用场景
- 动态生成社交媒体分享卡片(Open Graph 图片)
- 服务端渲染 SVG 用于图表、海报等静态图形输出
- 在无头环境中批量生成图片,替代 Puppeteer 截图方案
替代项目
sharp、resvg-js、Puppeteer
上一篇:pytorch-CycleGAN-and-pix2pix
下一篇:CycleGAN
同类项目推荐
naver-webtoon-faces
开源
一键将人脸照片变成韩漫风格卡通头像
Generative models on NAVER Webtoon faces
VINO-code
开源
一个模型搞定图像视频的编辑与生成,支持多模态输入。
A Unified Visual Generator with Interleaved OmniModal Context
Flux-3-Dev-API
开源
一行代码调用 FLUX 3 全家桶,快速生成图像和视频。
Python wrapper for Black Forest Labs' FLUX 3 Dev API, available now — fast, low-cos···
PowerPaint
开源
一个模型搞定图像修补:插入、移除、外扩、形状生成全支持
[ECCV 2024] PowerPaint, a versatile image inpainting model that supports text-guided···
lecam-gan
开源
小样本也能训练出高质量 GAN,稳定不崩
Regularizing Generative Adversarial Networks under Limited Data (CVPR 2021)
Awesome-Diffusion-for-Image-Tran···
开源
一页看全扩散模型做图像翻译与风格迁移的论文地图
A collection of papers on Diffusion for Image-to-Image Translation and Style Transfe···
Text-To-Material-Unity
开源
在Unity里输入文字,一键生成材质,告别手动调参。
Generate materials from text prompts in Unity
AODA
开源
让草图在开放域下也能生成逼真照片,突破类别限制
Official implementation of "Adversarial Open Domain Adaptation for Sketch-to-Photo S···
time-diffusion
开源
精准修正扩散模型隐含偏见,无需重训,一句话改变生成假设。
Official code repo for "Editing Implicit Assumptions in Text-to-Image Diffusion Mode···
