ComfyUI添加IP白名单功能

本文介绍了如何在ComfyUI项目中通过定义IP白名单和创建中间件来增强服务的安全性,仅允许指定IP地址访问。通过添加IP白名单中间件,确保了服务只对预设的用户或网络开放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AI生图很火,相信你对ComfyUI不陌生,查看ComfyUI的源码可以发现它是使用aiohttp来作为服务端的。那么我们在使用ComfyUI的时候可能需要做一些安全的限制,接下来我们将探讨如何在 ComfyUI 中添加 IP 白名单功能,以确保只有特定的用户可以访问我们的服务。

什么是IP白名单?

IP白名单是一种安全措施,用于限制只有特定的IP地址可以访问网络服务。这种方法非常适合那些只希望向特定用户或内部网络开放的应用。

实现步骤

为了在 ComfyUI 中添加 IP 白名单功能,我们需要创建一个中间件来检查每个进入的请求。如果请求来自不在白名单中的 IP 地址,我们将阻止该请求并返回一个 403 状态码。

第一步:定义IP白名单

将以下代码粘贴在ComfyUI根目录中的server.py文件当中

# 定义IP白名单
ALLOWED_IPS = ['192.168.1.1', '192.168.1.2']

在这里,我们定义了一个简单的 IP 白名单,只允许来自 192.168.1.1192.168.1.2 的请求。

第二步:创建IP白名单中间件

将以下代码粘贴在ComfyUI根目录中的server.py文件当中

@web.middleware
async def ip_whitelist_middleware(request: web.Request, handler):
    peername = request.transport.get_extra_info('peername')
    if peername is not None:
        host, _ = peername
        if host not in ALLOWED_IPS:
            return web.Response(text="Access denied.", status=403)

    return await handler(request)

这个中间件检查每个请求的来源IP是否在我们定义的白名单中。如果不在,它会立即返回一个 403 状态的响应。

第三步:将中间件添加到应用

PromptServer 类中,我们确保无论其他配置如何,都添加了 IP 白名单中间件。

middlewares字典中追加上ip_whitelist_middleware,代码如下:

class PromptServer():
    def __init__(self, loop):
        # ... 省略其他初始化代码 ...

        middlewares = [cache_control, ip_whitelist_middleware]
        if args.enable_cors_header:
            middlewares.append(create_cors_middleware(args.enable_cors_header))

        max_upload_size = round(args.max_upload_size * 1024 * 1024)
        self.app = web.Application(client_max_size=max_upload_size, middlewares=middlewares)

        # ... 省略其他初始化代码 ...

结论

通过添加 IP 白名单功能,ComfyUI 可以更好地控制谁可以访问其服务,从而增强了整体的安全性。这种方法对于希望限制其服务只对特定用户或网络开放的应用程序尤其有用。当然,安全是一个多层次的话题,IP白名单只是其中的一部分。在实际应用中,我们还需要考虑更多的安全措施来保护我们的应用和用户。

感谢阅读,希望这篇博客对您有所帮助!

### 如何在ComfyUI添加节点 为了在ComfyUI添加新的节点,通常有几种方法可以实现这一目标。一种常见的做法是从已有的工作流管理工具或脚本入手来简化流程。 对于希望扩展功能的用户来说,可以通过安装额外的支持包或者利用社区开发的小工具来完成特定的任务。例如,在某些情况下,可能需要获取由其他开发者预先编译好的`.whl`文件以便更轻松地集成新特性[^4]。 当涉及到具体操作时,如果想要增加自定义节点,则往往涉及到了解项目结构以及遵循一定的编码规范来进行开发。不过,对于大多数普通使用者而言,最简便的方式可能是借助于现有的插件或是第三方提供的辅助程序。比如有一个强大的工具能够把ComfyUI的工作流转换成可执行Python代码,并且这个过程已经被集成为一个界面按钮,极大地方便了用户的使用体验[^3]。 另外值得注意的是,在成功克隆仓库之后,确保按照官方文档指示正确设置环境变量并启动服务端口,这样就可以访问到图形化编辑器页面并通过拖拽方式创建自己的图像生成模型[^1]。 最后,一旦服务器正常运行起来后,打开浏览器输入指定网址就能看到Web UI界面,在这里可以直接进行文本转图片的操作[^2]。此时应该可以看到界面上提供了多种类型的节点供选择和连接,从而构建复杂的AI绘图逻辑链路。 ```python # 这里展示了一个简单的例子用于说明如何加载预训练模型作为节点的一部分 from comfyui import load_pretrained_model, Node model_path = "path/to/pretrained/model" node_instance = Node(load_pretrained_model(model_path)) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大龙虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值