ComfyUI添加IP白名单功能

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, _ = peernameif 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白名单只是其中的一部分。在实际应用中,我们还需要考虑更多的安全措施来保护我们的应用和用户。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostgreSQL按日期列创建分区表

在PostgreSQL中,实现自动创建分区表主要依赖于表的分区功能,这一功能从PostgreSQL 10开始引入。分区表可以帮助管理大量数据,通过分布数据到不同的分区来提高查询效率和数据维护的便捷性。以下是在PostgreSQL中自动创建分区表的一般步骤&…

【Git】Gitbash使用ssh 上传本地项目到github

SSH Git上传项目到GitHub(图文)_git ssh上传github-CSDN博客 前提 ssh-keygen -t rsa -C “自己的github电子邮箱” 生成密钥,公钥保存到自己的github的ssh里 1.先创建一个仓库,复制ssh地址 git init git add . git commit -m …

GEE必须会教程—跳舞的线(字符串类型)

字符串,GEE上跳舞的线! GEE学习之路漫长,跟着小编一起走进今天的数据类型的学习。字符串是各大编程语言的常用数据类型,我们今天需要了解GEE平台上字符串的定义、以及常用的方法。 1.定义字符串 //字符串构造 var base_str &q…

C#面:.NET中所有类型的基类是什么

System.Object 是C# .NET中所有类型的基类,它提供了一些通用的方法和属性,以及对象的类型信息和引用比较等功能。 例如:System.ObjectToString(),Equals(),GetHashCode() 等。 由于所有类型都继承自 System.Object&a…

「Java同步原理与底层实现解析」

原理概要: java虚拟机中的同步基于进入与结束Monitor对象实现,无论是显式同步(同步代码块进入在jvm是根据monitorenter标志、结束是monitorexit标志,那最后一个是monitorexit是异常结束时被执行的释放指令)、隐式同步…

图像预处理技术与算法

图像预处理是计算机视觉和图像处理中非常关键的第一步,其目的是为了提高后续算法对原始图像的识别、分析和理解能力。以下是一些主要的图像预处理技术: 1.图像增强: 对比度调整:通过直方图均衡化(Histogram Equalization)等方法改善图像整体或局部的对比度。 伽玛校正:…

MT4技术分析工具介绍:让你更好地把握市场趋势

在外汇交易市场中,技术分析是一种常用的分析手段,而MT4作为外汇交易中广泛使用的交易平台,拥有丰富的技术分析工具,能够帮助交易者更好地把握市场趋势。本文将介绍几款常用的MT4技术分析工具,帮助读者更好地理解和运用…

STM32 输入捕获模式测频率

单片机学习! 目录 文章目录 前言 一、输入捕获测频率配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 GPIO初始化 2.3 配置时基单元 2.4 配置输入捕获单元 2.5 选择从模式的触发源 2.6 配置从模式为Reset 2.7 开启定时器 总结 前言 博文介绍如何配置输入捕获电…

OpenAI 全新发布文生视频模型 Sora,支持 60s 超长长度,有哪些突破?将带来哪些影响?

Sora大模型简介 OpenAI 的官方解释了在视频数据基础上进行大规模训练生成模型的方法。 我们下面会摘取其中的关键部分罗列让大家快速get重点。 喜欢钻研的伙伴可以到官网查看技术报告: https://openai.com/research/video-generation-models-as-world-simulator…

AI破局俱乐部,你要了解的都在这里

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

使用VBA将多个txt批量转换成excel表并保存

VBA将多个txt批量转换成excel表并保存 Sub ykcbf() Set fso CreateObject("scripting.filesystemobject")Application.ScreenUpdating FalseApplication.DisplayAlerts Falsep ThisWorkbook.Path & ""On Error Resume NextFor Each f In fso.GetF…

Linux文件监控方法

Linux系统开发程序,有时候需要监控配置文件的变化,做出相应操作,下面将介绍常用的文件、目录监控方法: 函数介绍: 1.Inotify系列函数: Inotify_init(void) 系统返回一个文件描述…

mac下mysql 常用命令

mysql启动命令 在Mac OS X启动和停止MySQL服务的命令, 启动MySQL服务 sudo /usr/local/mysql/support-files/mysql.server start 停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop 重启MySQL服务 sudo /usr/local/mysql/support-files/mys…

大模型量化技术原理-LLM.int8()、GPTQ

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,从而导致模型变得越来越大,因此,我们需要一些大模型压缩技术来降低模型部署的成本,并提升模型的推理性能。 模型压缩主要分…

不知如何获取1688工厂档案信息,你还在为此烦恼吗?

阿里巴巴集团旗下的B2B电子商务网站,提供海量优质商品,为采购商和供应商提供交流、合作、采购等服务,是很多没有货源优势的电商卖家首选的货源途径,也是国内最大、货源种类最齐全的货源网站。 不少做跨境电商无货源的朋友都想要1…

MySQL学习记录——십삼 视图及用户、权限管理

文章目录 1、视图2、用户管理3、权限管理 1、视图 视图把查询出来的结果以表结构的形式存储起来,视图和基表有关系,两者的数据变化都会互相影响。 在查询时,假如要经常查询一条记录,select …,那么为了方便&#xff…

用html编写的招聘简历

用html编写的招聘简历 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…

C语言:指针与内存

C语言&#xff1a;指针与内存 内存与地址指针变量取地址指针变量解引用指针的大小 指针运算指针 - 整数指针 - 指针指针关系运算 const修饰指针字符指针野指针assert断言传址调用 内存与地址 计算机上CPU&#xff08;中央处理器&#xff09;在处理数据的时候&#xff0c;需要…

rk3568 WDG

rk3568 WDG 在嵌入式系统中,看门狗(Watchdog)是一种用于监控系统运行状态并在系统出现故障或死锁时自动重启系统的机制。 监控系统运行状态:看门狗定时器会周期性地计数,在规定的时间内如果系统未能对看门狗进行喂狗操作(即重置看门狗计数器),就会认为系统出现故障或死…