开始 ComfyUI 的 AI 绘图之旅-RealESRGAN图生图之图像放大(四)

发布于:2025-09-10 ⋅ 阅读:(17) ⋅ 点赞:(0)

本篇将引导了解 AI 绘图中,放大图片的概念,并在 ComfyUI 中完成放大图片工作流生成

1.什么是图像放大

图像放大(Image Upscaling)是通过算法将低分辨率图像转换为高分辨率图像的过程。与传统插值放大不同,AI 放大模型(如 ESRGAN)能智能重建细节,保持图像质量。
比如默认通过 SD1.5 模型对于大尺寸的图片生成表现不佳,如果需要高分辨率,我们通常会先生成小尺寸的图像,然后使用图像放大来提升图片的分辨率。

当然本文介绍的只是诸多 ComfyUI 中图像放大方法中的一种,在这篇讲解中,我们将带你完成以下内容:

  • 下载并安装放大模型
  • 使用放大模型进行一次简单的放大
  • 结合文生图工作流,完成图像的放大

2.下载并安装放大模型

额外需要下载 ESRGAN 等放大模型(必须):

访问 OpenModelDB 搜索下载需要的放大模型(如 RealESRGAN)
在这里插入图片描述

如图所示:

  1. 你可以在筛选处根据你的图像类型选来过滤对应的模型类型
  2. 对应模型右上角会有标注具体放大的倍数,比如在我们提供的截图里,对应的这个模型是将图像放大2倍的模型

本篇教程中我们将使用 4x-ESRGAN 模型,点击进入详情页,点击 Download 下载模型

将模型文件(.pth)放入 ComfyUI\models\upscale_models 目录

安装aria2快速下载模型,几乎能将我家1000M的宽带跑满,每秒80~90M,接下来的介绍模型都会给出安装命令。

apt install aria2
aria2c https://huggingface.co/Comfy-Org/Real-ESRGAN_repackaged/resolve/main/RealESRGAN_x4plus.safetensors -o SourceCode/ComfyUI/models/upscale_models/RealESRGAN_x4plus.safetensors auto-file-renaming=false --allow-overwrite=false

aria2c https://huggingface.co/Lykon/DreamShaper/resolve/main/DreamShaper_8_pruned.safetensors -o SourceCode/ComfyUI/models/checkpoints/DreamShaper_8_pruned.safetensors auto-file-renaming=false --allow-overwrite=false

小技巧:你要是打不开https://huggingface.co,可以将其换成为https://hf-mirror.com/试一试

3.简单放大工作流

3.1 工作流及素材

请下载下面的图片,并拖入到 ComfyUI 中,加载简单版本放大工作流
在这里插入图片描述

3.2 工作流讲解

在这里插入图片描述

  1. 加载放大模型(Load Upscale Model)节点中选择我们之前下载的放大模型
  2. 加载图片(Load Image)节点中选择我们之前准备的输入图片
  3. 点击 Queue 按钮,或者使用快捷键 Ctrl + Enter(回车) 来执行图片生成

通过以上步骤,我们就可以完成一个图片的放大,你可以看到在这个工作流中,核心主要在于 Load Upscale ModelUpscale Image(Using Model) 的组合,他们通过接收一个图像的输入,然后使用放大模型将图像放大。

3.3 效果展示

在这里插入图片描述

3.4 附json

官方文档没有找到这个,索性自己写了个:

{
    "id": "e96aff7c-4eb9-4d69-a20a-58679c147e69",
    "revision": 0,
    "last_node_id": 4,
    "last_link_id": 3,
    "nodes": [
        {
            "id": 1,
            "type": "UpscaleModelLoader",
            "pos": [
                188.58021545410156,
                81.9892807006836
            ],
            "size": [
                270,
                58
            ],
            "flags": {},
            "order": 0,
            "mode": 0,
            "inputs": [
                {
                    "localized_name": "模型名称",
                    "name": "model_name",
                    "type": "COMBO",
                    "widget": {
                        "name": "model_name"
                    },
                    "link": null
                }
            ],
            "outputs": [
                {
                    "localized_name": "放大模型",
                    "name": "UPSCALE_MODEL",
                    "type": "UPSCALE_MODEL",
                    "links": [
                        1
                    ]
                }
            ],
            "properties": {
                "Node name for S&R": "UpscaleModelLoader"
            },
            "widgets_values": [
                "RealESRGAN_x4plus.safetensors"
            ]
        },
        {
            "id": 3,
            "type": "ImageUpscaleWithModel",
            "pos": [
                750.0147094726562,
                176.0094451904297
            ],
            "size": [
                274.5735168457031,
                64.80400848388672
            ],
            "flags": {},
            "order": 2,
            "mode": 0,
            "inputs": [
                {
                    "localized_name": "放大模型",
                    "name": "upscale_model",
                    "type": "UPSCALE_MODEL",
                    "link": 1
                },
                {
                    "localized_name": "图像",
                    "name": "image",
                    "type": "IMAGE",
                    "link": 2
                }
            ],
            "outputs": [
                {
                    "localized_name": "图像",
                    "name": "IMAGE",
                    "type": "IMAGE",
                    "links": [
                        3
                    ]
                }
            ],
            "properties": {
                "Node name for S&R": "ImageUpscaleWithModel"
            },
            "widgets_values": []
        },
        {
            "id": 4,
            "type": "PreviewImage",
            "pos": [
                1172.6583251953125,
                177.80032348632812
            ],
            "size": [
                580.5516357421875,
                566.5640258789062
            ],
            "flags": {},
            "order": 3,
            "mode": 0,
            "inputs": [
                {
                    "localized_name": "图像",
                    "name": "images",
                    "type": "IMAGE",
                    "link": 3
                }
            ],
            "outputs": [],
            "properties": {
                "Node name for S&R": "PreviewImage"
            },
            "widgets_values": []
        },
        {
            "id": 2,
            "type": "LoadImage",
            "pos": [
                188.5801239013672,
                264.6570129394531
            ],
            "size": [
                270,
                314
            ],
            "flags": {},
            "order": 1,
            "mode": 0,
            "inputs": [
                {
                    "localized_name": "图像",
                    "name": "image",
                    "type": "COMBO",
                    "widget": {
                        "name": "image"
                    },
                    "link": null
                },
                {
                    "localized_name": "选择文件上传",
                    "name": "upload",
                    "type": "IMAGEUPLOAD",
                    "widget": {
                        "name": "upload"
                    },
                    "link": null
                }
            ],
            "outputs": [
                {
                    "localized_name": "图像",
                    "name": "IMAGE",
                    "type": "IMAGE",
                    "links": [
                        2
                    ]
                },
                {
                    "localized_name": "遮罩",
                    "name": "MASK",
                    "type": "MASK",
                    "links": null
                }
            ],
            "properties": {
                "Node name for S&R": "LoadImage"
            },
            "widgets_values": [
                "upsacle.avif",
                "image"
            ]
        }
    ],
    "links": [
        [
            1,
            1,
            0,
            3,
            0,
            "UPSCALE_MODEL"
        ],
        [
            2,
            2,
            0,
            3,
            1,
            "IMAGE"
        ],
        [
            3,
            3,
            0,
            4,
            0,
            "IMAGE"
        ]
    ],
    "groups": [],
    "config": {},
    "extra": {
        "ds": {
            "scale": 1.0152559799477237,
            "offset": [
                300.87038490352455,
                84.74262380624906
            ]
        }
    },
    "version": 0.4
}

4. 结合文生图的放大工作流

在完成了简单的放大工作流后,我们就可以尝试结合文生图的工作流来完成一个完整放大工作的流程,关于文生图的基础部分及相关模型要求,请参考文生图的部分的说明完成。
在这里插入图片描述

请将下面的图片下载并保存后拖入到 ComfyUI 中,加载结合文生图的放大工作流
在这里插入图片描述

你可以看到在这个工作流里,就是在文生图工作流之后把对应的图片输入到放大工作流中完成了对应图片的放大。

其它相关补充

不同放大模型特性:
  • RealESRGAN: 通用型放大,适合大多数场景
  • BSRGAN: 擅长处理文字和锐利边缘
  • SwinIR: 保持自然纹理,适合风景照片
  1. 链式放大:对于需要超高倍率放大的情况,可以串联多个放大节点(如先2x再4x)
  2. 混合放大:在生成工作流后接放大节点,实现"生成+增强"一体化流程
  3. 对比测试:不同模型对特定类型图片效果差异较大,建议同时测试多个模型

网站公告

今日签到

点亮在社区的每一天
去签到