unfake.js
unfake.js 是一个 JavaScript 库,用于弥合 AI 生成图像与干净、可用素材之间的差距。
核验日期
核心信息
以下信息由程序从官方接口读取,不经模型改写。
- 许可证
- MIT
- 语言
- JavaScript
- 维护方
- jenissimo
- 核验日期
它是什么
unfake.js 是一个 JavaScript 库,用于弥合 AI 生成图像与干净、可用素材之间的差距。它提供两种主要运行模式:Pixel Art Processor 和 Image Vectorizer。该库捆绑了一个基于浏览器的工具,用于交互式使用。图像处理核心位于 unfake-core 中,它是一个无头 Rust crate,为浏览器工具编译为 WebAssembly,为命令行工具编译为原生二进制。
主要能力
Pixel Art Processor 模式专门用于清理像素画,尤其是 AI 生成、常带有像素大小不一致、颜色渗色和其他伪影的作品。
在 Pixel Art Processor 中,智能比例检测使用 runs-based 或 edge-aware 算法检测放大像素画的真实像素大小,包括分数网格,也可以接受手动比例系数。
Image Vectorizer 模式把 PNG、JPG 等栅格图像转换为 SVG 文件,并且是 imagetracer.js 的封装,其前后处理能力由 unfake-core WASM 滤镜提供。
在 Image Vectorizer 中,降噪预处理在矢量化前应用 Bilateral 或 Median 模糊来减少噪点,颜色量化在描摹前简化调色板,背景处理为透明图像在处理期间添加临时背景并在最终 SVG 中移除,精细描摹开放 imagetracer.js 选项,调色板提取则从生成的 SVG 中提取最终调色板。
怎么上手
在线演示基于浏览器,无需安装。
ComfyUI 集成使 unfake.js 可以直接用在 ComfyUI 工作流中。
现代浏览器不允许从本地文件进行 ES 模块导入。
在本地运行浏览器工具时,必须通过本地 http(s) 服务器运行它。
该库以 ES 模块的形式编写。
可以导入并使用该库的核心函数。
python -m http.server 8080
# or
python3 -m http.server 8080 npx http-server -p 8080import unfake from './lib/index.js';
const fileInput = document.getElementById('my-file-input');
const file = fileInput.files[0];
const options = {
file: file,
maxColors: 32,
detectMethod: 'auto', // 'auto', 'runs', 'edge'
downscaleMethod: 'dominant',
snapGrid: true,
cleanup: {
morph: true,
jaggy: true
}
};
try {
const { png, imageData, palette, manifest } = await unfake.processImage(options);
// `png` is a Uint8Array of the final PNG file
const blob = new Blob([png], { type: 'image/png' });
const url = URL.createObjectURL(blob);
// Now you can use the URL for an <img> tag or download link
document.getElementById('result-image').src = url;
} catch (error) {
console.error("Pixel processing failed:", error);
}import unfake from './lib/index.js';
const fileInput = document.getElementById('my-file-input');
const file = fileInput.files[0];
const options = {
file: file,
preProcess: {
enabled: true,
filter: 'bilateral',
value: 15
},
quantize: {
enabled: true,
maxColors: 'auto' // or a number like 16
},
// imagetracer.js options
ltres: 1,
qtres: 1,
};
try {
const { svg, palette, manifest } = await unfake.vectorizeImage(options);
// `svg` is a string containing the SVG markup
document.getElementById('result-container').innerHTML = svg;
} catch (error) {
console.error("Vectorization failed:", error);
}适合谁
项目包含一个基于浏览器的工具,并为其提供界面。浏览器工具可以用 Tweakpane 面板实时调整处理参数。浏览器工具可以通过拖到窗口上、选择文件或从剪贴板粘贴来上传图像。
浏览器工具的前后对比视图并排显示原图和处理后的图像。浏览器工具内置放大镜,可检查原图和结果图的像素级细节。浏览器工具的调色板编辑器显示结果的调色板,并可交互式替换颜色。
浏览器工具可以下载最终素材,像素画为 PNG,矢量为 SVG,也可以复制到剪贴板。在网格对齐中,分数网格被就地逐单元采样,当手绘单元围绕比例抖动时,弹性网格会使单元边界贴合所绘边缘。浏览器工具中的 JavaScript 层是一个薄接口,包含文件 I/O、画布、Tweakpane 界面以及对 WASM 核心的调用。
unfake-core 不使用 OpenCV。unfake-core 使用 imagequant 进行量化,使用 png crate 进行编码。ImageTracer.js 是矢量化(栅格到 SVG)过程的引擎。
项目方称,一个带有 Rust 加速量化的 Python 实现相比 JS 版本提速 10-20%。该项目采用 MIT 许可证。
来源
本页内容整理自以下官方来源,点击可核对原文。
- GitHub READMEhttps://github.com/jenissimo/unfake.js抓取于
核验日期 ·
本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。