图像缩放器:您想要一个放大器还是一个调整大小工具?
调整大小工具插值像素,而放大器重建它们。您需要哪一个,带有测量的 2x 和 4x 结果以及真实的浏览器限制。
"图像缩放器" 涉及两种对文件执行相反操作的工具。调整大小工具重新采样您已有的像素,因此 4000 像素的宽度变为 1080 像素的宽度,细节被平均到更少的样本中。放大器通过训练模型处理图像,重建原始未存储的边缘和纹理。两者都会改变尺寸框中的数字。只有一个可以添加细节,并且它只提供 2x 或 4x。
我们的两个工具都在浏览器标签内运行。 放大器 将其模型下载到您的机器上一次,然后之后的每个图块都在您自己的 GPU 上计算。没有任何内容被发布到任何地方,因为没有 API 路径可以发布,也没有服务器操作在代码库中(这就是整个架构,在我们的 隐私页面 中进行了描述)。该类别中的其他缩放器会上传您的文件,然后承诺在一两个小时后删除它。
调整大小和放大有什么区别?
调整大小是插值。我们的 调整大小工具 将工作交给浏览器,通过 createImageBitmap 使用 `resizeQuality: "high"` 或通过画布 `drawImage` 使用 imageSmoothingQuality 设置为高。无论哪种方式,输出像素都是周围输入像素的加权平均。平均无法产生源数据中不存在的边缘,因此通过插值放大会给您一个更大、更柔和的相同信息的副本。
放大是重建。我们的工具运行 Real-ESRGAN realesr-general-x4v3,这是一个经过训练的生成模型,能够在 4x 下幻觉出合理的细节,详细信息见 2021 年论文。它以 256 像素的图块处理图像,每个边缘有 16 像素的重叠,因此一个图块总是可以看到其邻居的上下文,然后核心区域被写出。模型进行猜测。这些猜测通常在面孔、织物和文本上是正确的,但在细微的重复图案上可能会严重错误。
我实际上想要哪个?
如果目标大小小于源文件,您需要调整大小工具,这没有什么好讨论的。如果目标更大,问题是您是否能承受以下限制。以下是我们构建中两个工具实际执行的操作,取自代码而非市场宣传文案。
| 调整大小工具 | 放大器 | |
|---|---|---|
| 方向 | 任何目标大小,向上或向下 | 仅 2x 或 4x |
| 方法 | 浏览器画布插值 | Real-ESRGAN realesr-general-x4v3 |
| 输出格式 | 保持源格式(GIF 和 AVIF 输出为 PNG) | 始终为 PNG |
| 质量控制 | PNG 无损,其他所有格式以质量 90 重新编码 | 无,PNG 没有质量调节 |
| 批处理限制 | 10 个文件,总计 50 MB | 1 个文件 |
| 输入上限 | 仅限批处理上限 | 使用 WebGPU 时约 32 MP,无 WebGPU 时约 1.1 MP |
| 预设 | 15 个社交尺寸加上 25/50/75 百分比 | 无,仅有 2x 和 4x 按钮 |
有一行需要警告。调整大小工具默认选中 "不放大",这会将任何输入的目标限制为原始尺寸。命名的社交预设故意覆盖该限制,因为限制的 1080x1920 故事框根本不符合任何平台规范。
当我放大时,文件会增长多少?
很多,PNG 是原因。我们将 small.png(400x269,177.1 KB)通过这两种设置处理。在 2x 时,它变为 800x538 和 782.8 KB。在 4x 时,它变为 1600x1076 和 2.7 MB。这大约是输入字节的 15 倍,像素数量是 16 倍,这就是无损输出的样子,当模型刚刚用新的微纹理填充每个平坦区域时。放大器在每种情况下都写入 PNG,因此没有质量滑块可供调整。

在您在任何地方使用结果之前,将其发送到 压缩工具。我们的 PNG "无压缩" 模式是 oxipng 级别 3,真正无损,并且将 942.4 KB 的 alpha.png 压缩到 383.9 KB。调色板模式(imagequant)将同一文件压缩到 98.3 KB,这对于平面图形来说很好,但对于摄影放大则不合适。
为什么 2x 选项看起来比 4x 更柔和?
因为 2x 不是一个单独的模型。realesr-general-x4v3 只有一个输出比例,即 4x。当您选择 2x 时,我们运行相同的推理,然后使用画布插值器以高平滑质量将每个图块缩小到一半大小。因此,两个按钮的 GPU 工作是相同的,而 2x 是重建后再重新采样。缩小是在每个图块上进行的,这意味着在 2x 作业期间,完整的 4x 图像在内存中从未存在。如果您想要模型的原始输出,请选择 4x,然后在调整大小工具中自己缩小。 每个倍增器需要达到 3840 像素的源宽度 是单独计算的。
为什么放大器不接受我的 24 MP 照片?
这完全取决于您的浏览器是否启动了 WebGPU。在 WebGPU 运行的情况下,4x 作业接受约 32 兆像素的输入。如果没有, onnxruntime-web 会回退到单线程 WASM,输入上限降至约 1.1 兆像素,比几乎任何手机照片都小。这不是一个任意限制。该模型的 CPU 推理每兆像素需要几分钟,而 24 MP 作业会使标签卡在下午的其余时间内挂起。一次一个文件,始终如此。
除了像素数量,调整大小工具还改变了什么?
比人们预期的要多。PNG 源保持为 PNG 并保持无损。其他所有格式都以质量 90 重新编码,因此调整大小 JPEG 也是一种重新压缩,无论您是否想要。GIF 源输出为 PNG,如果该 GIF 是动画的,您将失去除了第一帧之外的每一帧。AVIF 源也输出为 PNG。当源和目标的宽高比不一致时,三种适配模式很重要:覆盖中心裁剪,拉伸失真和包含将画布缩小到适合区域,而不是用条形填充。如果您需要特定区域而不是特定大小,裁剪工具 是正确的工具,尽管它一次处理一个文件,并以硬编码的质量 92 重新编码有损格式。
那么我现在应该对我的文件做什么?
首先检查长边。在大约 1600 像素以下且您需要更大的情况下,打开 放大器,运行 2x,然后将 PNG 通过 压缩工具 以无损模式处理。如果超过该值,或者已经达到您需要的分辨率,请使用 调整大小工具 并选择社交预设,以便您不必查找尺寸。如果目标是一个动态信息流,Instagram 接受的四种形状及其背后的 1080 像素上限 是您要参考的列表。