关于comfyui的token顺序打乱(三)

继续记录,上次写完后端,前端就很简单了

下载免费网页模板

随便网上找一个模板,我找了个登录界面,反正我只需要三个数据,登录刚好有表单可以提交

开始改造前端文件

1.文件目录问题

上一篇讲过了,flask文件一定要放好,有static(资源)和templates(网页)

static里面放图片啊,js,css样式之类,templates里面放网页html,后端放外面(app.py

至于那几个index11.html,test.py只是我测试写的东西,不用管,直接删了就行

2.修改html的表单

html 复制代码
 <div class="workinghny-form-grid">
     <div class="main-hotair">
         <div class="content-wthree">
               <h1>标签打乱</h1>
               <form action="/run" method="post" onsubmit="return checkSeparator()">
                   <input type="text" class="text" name="root_folder" placeholder="文件夹路径" required="" autofocus>
                   <input type="number" class="text" name="keep_first_n" placeholder="前N个标签不打乱" required="" autofocus>
                    <input type="text" id="separatorInput" class="password" name="tag_separator" placeholder="标签分隔符" required="" autofocus>
                    <button class="btn" type="submit">打乱</button>
                </form>
          </div>

就是中间那个登录的输入,主要改几个地方

修改改表单的行为提交方式触发函数

action="/run" method="post" οnsubmit="return checkSeparator()"

这个要与后端对应,是不是看着很熟,我对应一下后端代码

至于onsubmit后面讲,是用来校验正则的

修改三个输入框的name,用来获取相应的值

对应后端的代码,所以名字一定得一摸一样

2.修改所有js,css的链接方式

一般html是直接用相对路径过去的,但是flask框架的规定不能这样,只能用这种写法

{{ url_for('static', filename='css/style.css') }}

按照格式修改就行

3.正则校验函数

html 复制代码
function checkSeparator() {
            // 1. 获取并去除首尾空格
            const separator = document.getElementById("separatorInput").value.trim();

            // 2. 核心正则:仅允许常见符号(,!@#$%^&*()_+-=[]{}|;:'",.<>/?`~)
            const symbolReg = /^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?`~]+$/;

            // 3. 正则不匹配 → 拦截提交
            if (!symbolReg.test(separator)) {
                alert("仅允许输入符号(如, | ; : . 等)!禁止输入字母、数字、空值");
                return false;
            }

            // 校验通过 → 允许提交
            return true;
        }

跟后端的差不多,不详细讲了,就是通过返回true,表单就可以提交,不然就提交不了

讲点区别,html的正则表达式使用//包裹的,所以里面'和"不用转义

html的正则匹配函数是test()

这个东西我就直接放网页的<script>标签了,懒得放js文件了

4.显示后端的消息message

html 复制代码
 <!-- 显示后端返回的结果(成功/失败提示) -->
                {% with messages = get_flashed_messages() %}
                {% if messages %}
                {% for msg in messages %}
                <div class="msg_show">{{ msg }}</div>
                {% endfor %}
                {% endif %}
                {% endwith %}

使用的是jinja2语法,虽然我也不太懂,只知道大概原理

**{%%} :**用这个包裹住,就可以直接写逻辑标签,不会被识别成html

with :定义变量

for msg in messages:使用for循环,防止后端传回了多个消息

endif、endfor :这个是jinja2的结束语法,例如if到endif就代表结束了if

修改完成,启动后端

按照这样写之后,就可以直接启动后端文件,然后体验效果,前端我嫌弃那个背景的视频,于是自己生成了一张图片做背景图

打包成exe

想着方便别人使用,或者自己在别的电脑没有安装python之类的时候可以直接用

1.安装pyinstaller第三方库

pip install pyinstaller

2.确定项目文件目录

你的项目文件夹/

├── app.py (你的修正后主程序文件,若文件名不是app.py请替换为实际名称)

├── static/ (静态资源:css、js、images/mp4)

└── templates/ (HTML模板文件,如index.html)

3.生成.spec配置文件

在项目根目录下打开cmd,输入命令

复制代码
# 替换app.py为你的主程序名
pyi-makespec -w -F app.py

这里参数的话,看下表

参数 作用
-w 隐藏运行时的命令行黑窗口(Flask 服务后台运行,如需看日志可去掉该参数)
-F 打包成单个独立的 EXE 文件(方便传输,启动稍慢,也可去掉用文件夹形式)

执行了命令之后,就会在根目录下生成spec文件

4.给配置文件的datas = 【】里面添加目录

html 复制代码
datas=[
        ("static", "static"),  # 本地静态资源目录 → 打包后对应目录
        ("templates", "templates")  # 本地模板目录 → 打包后对应目录
    ],

5.打包

在根目录的cmd执行,记得打包之前一定得把后端代码的开发者模式关掉,改成debug=false

不关掉容易暴露代码那些,什么不安全啊,这个不重要,重要的是据说会报错,所以还是关掉好了

html 复制代码
# 替换app.spec为你的.spec文件名(与主程序同名)
pyinstaller app.spec

之后就会生成exe在dist文件夹里,搞定

我顺便发到了git上面,有需要的自取....

https://github.com/yywd66/yy_comfyui_tokenShuffle

相关推荐
阿部多瑞 ABU4 分钟前
`chenmo` —— 可编程元叙事引擎 V2.3+
linux·人工智能·python·ai写作
acanab8 分钟前
VScode python插件
ide·vscode·python
知乎的哥廷根数学学派1 小时前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)
开发语言·人工智能·pytorch·python·深度学习·机器学习
WangYaolove13141 小时前
Python基于大数据的电影市场预测分析(源码+文档)
python·django·毕业设计·源码
知乎的哥廷根数学学派2 小时前
基于自适应多尺度小波核编码与注意力增强的脉冲神经网络机械故障诊断(Pytorch)
人工智能·pytorch·python·深度学习·神经网络·机器学习
cnxy1883 小时前
Python爬虫进阶:反爬虫策略与Selenium自动化完整指南
爬虫·python·selenium
用户8356290780513 小时前
Python 实现 Excel 条件格式自动化
后端·python
深蓝电商API4 小时前
Scrapy管道Pipeline深度解析:多方式数据持久化
爬虫·python·scrapy
噎住佩奇4 小时前
(Win11系统)搭建Python爬虫环境
爬虫·python
basketball6164 小时前
python 的对象序列化
开发语言·python