前端API接口的调用

2023-11-14

一.开启API接口

首先我们把模型部署在自己的服务器上之后开启模型的接口(linux环境下)

进入模型文件 输入命令行:bash webui.sh --listen --api

实现api接口的开启,我们获得一个api接口的地址

二.API接口调用并数据返回给前端

@app.route("/index", methods=["GET", "POST"])
def index():
    # 如果是 GET 请求,直接渲染 index.html 页面
    if request.method == "GET":
        # 判断 session 中是否存在 user_name
        if "user_name" not in session:
            # 如果不存在,跳转到登录页面
            return redirect(url_for("login"))
        return render_template("index.html")

    # 如果是 POST 请求,获取表单数据
    if request.method == "POST":
        # 获取表单数据
        form_data = request.json
        prompt = form_data.get("prompt")
        negative_prompt = form_data.get("negative_prompt")
        sampler_index = form_data.get("sampler_index")
        steps = form_data.get("steps")
        width = form_data.get("width")
        height = form_data.get("height")
        cfg_scale = form_data.get("cfg_scale")
        batch_size = form_data.get("batch_size")
        seed = form_data.get("seed")

    # 组合表单数据为 JSON 格式
    data = {
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "sampler_index": sampler_index,
        "steps": steps,
        "width": width,
        "height": height,
        "cfg_scale": cfg_scale,
        "batch_size": batch_size,
        "seed": seed,
    }

    url = "http://150.109.18.212:7860/sdapi/v1/txt2img"


    # 发送 POST 请求
    response = requests.post(url, json=data)

    # 将响应信息转为json格式
    response_data = response.json()

    # 取出images的值,是一个数组
    img_list=response_data['images']


    # 获取当前日期
    today = time.strftime("%Y-%m-%d", time.localtime())

    # 创建目录
    dir_path = "./static/" + today
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)

    # 解码并保存图片
    path_list = []
    for i, img_base64 in enumerate(img_list):
        # 解码图片
        img_data = base64.b64decode(img_base64)
        # 生成文件名
        timestamp = int(time.time() * 1000)
        file_name = f"{timestamp}_{i}.png"
        # 保存图片
        with open(os.path.join(dir_path, file_name), "wb") as f:
            f.write(img_data)
        # 保存图片的相对路径到 path_list 中
        path = os.path.join(dir_path, file_name)
        path_list.append(path)

        # 将 path_list 转换为 JSON 格式并返回给前端
    response_data = {"state": 200,"message":"图片生成成功!", "path_list": path_list}
    return jsonify(response_data)


静态文件需要保存在static文件夹下面(底层文件规定的路径)

我们后端把表单获取的信息 转化为json格式post请求发送给接口,接口返回的数据用json格式进行储存,后端相应的信息发送给前端。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端API接口的调用 的相关文章

  • 如何创建自定义颜色图并将其用于不同范围的数据?

    假设我有这样的数据 import numpy as np import matplotlib pyplot as plt import matplotlib colors for reproducibility purposes np ra
  • 在 GUI 中显示 DHT11 的温度 - 自动刷新?

    Python 新手 开始接触 DHT11 温度 湿度传感器 Raspberry Pi 3 和 Python 3 我正在使用标准Adafruit DHT11 库 https github com adafruit Adafruit Pytho
  • 倒计时:01:05

    如何在 Python 中创建一个看起来像 00 00 分钟和秒 的倒计时时钟 它独立成一行 每次减少一actual秒 则应将旧计时器替换为低一秒的新计时器 01 00变成00 59它实际上击中了00 00 这是我开始使用但想要改造的基本计时
  • Python:并行修改数组的简单方法

    这个问题可能听起来很简单 但作为 Python 并行化的新手 我肯定会遇到困难 我处理了 OpenMP for C 中的并行化问题 这要容易得多 我需要做的是并行修改矩阵的条目 就是这样 问题是 我无法使用简单的 joblib 库来做到这一
  • 如何将返回列表的 Celery 任务链接到一个组中?

    我想从 Celery 任务返回的列表创建一个组 以便对于任务结果集中的每一项 一个任务将添加到该组中 这是一个简单的代码示例来解释用例 这 应该是上一个任务的结果 celery task def get list amount In rea
  • Azure Devops Pipeline YAML 中的 Git 标记名称

    Summary 如何获取 Azure Devops Pipeline YAML 文件中当前 git 标签的名称 我想做什么 我正在 Azure Devops 中设置构建管道 创建新的 git 标签时会触发管道 然后我想构建 docker 镜
  • TensorFlow 运算符重载

    有什么区别 tf add x y and x y 在 TensorFlow 中 当您使用以下命令构建图表时 您的计算图表会有什么不同 代替tf add 更一般地说 有 或者其他张量超载的操作 如果至少有一个x or y is a tf Te
  • 优化 Django Queryset for 循环

    如何优化以下查询集 link goal for link in self child links all 我想摆脱 for 循环并只访问数据库一次 我有以下代码 class Goal models Model name models Cha
  • 如何定期向数组添加新元素,使其出现在每 500 个元素之后?

    如果我有一个包含 500k 个元素 仅限数字 的数组 列 我如何能够在每 500 个元素之后添加一个新元素 新的数字应该是相邻元素的平均值 例如 在元素 499 和 500 之间有一个值为 499 的值 500 的值 2 的新元素 依此类推
  • 替换 Python 列表/字典中的值?

    好的 我正在尝试过滤传递给我的列表 字典并稍微 清理 它 因为其中有某些值我需要删除 所以 如果它看起来像这样 records key1 AAA key2 BBB key3 CCC key4 AAA 我如何快速轻松地运行所有内容并将 AAA
  • 从远程获取上个月在 git 分支上提交的文件列表

    我正在尝试获取上个月在 master 分支的 github 存储库上更改的所有文件的列表 我的本地克隆没有可以追溯到那么远的日志 因此当我运行以下命令时 git diff stat 1 month ago 我收到一条警告消息和一小部分更改
  • django 创建多类型用户的最佳方法

    我想在 django 中创建多个用户 我想知道哪种方法是最好的 class Teachers models Model user models ForeignKey User is teacher models BooleanField d
  • 如何在lxml,Python中将<转换为<?

    有一个xml文件
  • 何时在 Gevent 中使用线程池

    我注意到 Gevent 有线程池对象 有人可以向我解释何时使用线程池以及何时使用常规池吗 gevent threadpool 和 gevent pool 有什么区别 当你有一段需要很长时间运行 几秒钟 并且不会导致 greenlet 切换的
  • 使 .git 目录 web 不可访问

    我有一个网站 我使用 github 闭源 来跟踪更改和更新网站 唯一的问题是 git 目录似乎可以通过网络访问 我怎样才能停止这个并且仍然能够使用 git 我应该使用 htaccess 吗 我应该更改 git 的权限吗 把这个放在一个 ht
  • TypeError: 'module' 对象不可调用错误 driver=webdriver("C:\\Python34\\Lib\\site-packages\\selenium\\webdriver\\chromedriver.exe")

    我在 Pycharm 中遇到类似错误 Traceback most recent call last File C PycharmProjects DemoPyth PythonPack1 Prg1 py line 3 in
  • 在Python中将字符串转换为变量? [复制]

    这个问题在这里已经有答案了 我对 python 和编程都很陌生 并且已经尝试弄清楚如何做到这一点有一段时间了 这是我需要帮助的内容 y 0 x 2 p01 hello p02 bye print p str y str x 输出当然是 p0
  • PDB.run - 重新启动 pdb 会话

    我对 python 和 pdb 比较陌生 但我对 gdb 有很多经验 我的问题是 如果我在代码中设置了多个断点 我会想要更改一些内容并重新运行我的调试会话并保留这些断点 但是 在我的 pdb 会话中输入 run 会导致我的会话终止并显示以下
  • 无法让我的脚本自动生成一些值以在有效负载中使用

    我创建了一个脚本 通过随后发送两个 https 请求来从目标页面获取 html 元素 我的脚本可以完美地完成这件事 但是 我必须从 chrome 开发工具复制四个值来填充其中的四个键payload为了发送最终的http请求到达目标页面 这是
  • 类型错误:“生成器”对象没有属性“__getitem__”

    我编写了一个应该返回字典的生成函数 但是当我尝试打印字段时出现以下错误 print row2 SearchDate TypeError generator object has no attribute getitem 这是我的代码 fro

随机推荐

  • windows 搭建ssh服务

    1 官网下载安装包 mls software com 2 点击安装 一直默认即可 3 配置 opensshServer 4 成功登录
  • android6.0源码分析之Camera API2.0下的初始化流程分析

    在文章android源码分析之Camera API2 0简介中 对Camera API2 0的框架以及代码做了简单介绍 本文将基于android6 0源码 分析Camera API2 0下的Camera2内置应用中 对Camera的初始化的
  • umi3 antDesignPro布局layout配置快速搭建项目

    umi3 快速搭建项目 1 环境准备 2 创建项目 3 修改配置 应用antd layout布局 1 安装antd layout插件 2 修改 umirc 文件配置路由 3 根据配置文件中component新建路由对应的组件 1 环境准备
  • c语言中weak的作用

    转载至 https blog csdn net q2519008 article details 82774774 在u boot源码中看到 weak关键字 在移植过程中遇到了问题 用例 weak在不同的环境中用法不同 在stm32源码中也
  • 合宙Air105

    基础资料 基于Air105开发板 Air105 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 官方SFUD库操作 外置flash demo相关内容的学习及探讨 扩展 合宙Air103 SDIO 扩展 LuatOS SOC
  • 服务器UDIMM, LRDIMM,RDIMM三种内存的区别

    服务器UDIMM LRDIMM RDIMM三种内存的区别 UDIMM RDIMM LRDIMM 区别与应用 随着应用程序的不断增长 内存被迫承担着更大压力 目前不管是服务器租用还是PC领域 DDR4内存技术依旧是主流 由于DDR4采用并行传
  • keil stm32f407工程环境搭建

    一 库函数 1 安装https www keil com dd2 Pack 2Feula container 直接双击Keil STM32F4xx DFP 1 0 8 pack 二 创建工程 为当前工程添加相应的库函数 点击确定 函数添加成
  • 可能影响经济体安全的技术类别

    这份新的技术出口管理新提案内容相对简洁 清晰罗列了可能会影响强大国家安全或者经济体的14类新兴和基础技术 1 生物技术 例如 1 纳米生物学 2 合成生物学 3 基因组和基因工程 4 神经科学 2 人工智能 AI 和机器学习技术 例如 1
  • mac 下 jdgui invalid input fileloader

    在一次反编译中 前面几个步骤都是正确的 将classes dex成功转为classes dex2jar jar文件 在即将把classes dex2jar jar文件在jd gui中打开的时候 出现了jdgui invalid input
  • 判断ListView的第一个/最后一个item是否完全显示

    判断最后一项 亲测可用 当然网上还有很多其他的方法 不同场景的方式可能不一样 Override public void onScroll AbsListView view int firstVisibleItem int visibleIt
  • Android shape渐变色用代码怎么写?

    前言 shape在实际开发中非常常用 一般我们会在xml中使用 但涉及到颜色动态变更时 我们需要在代码中动态创建 xml中的shape 实际上被创建出来后它是一个Drawable 点开Drawable的子类一看 我们很容易就发现一些可疑的实
  • 【Android】DataBinding 最全使用解析

    DataBinding 最全使用解析 一 DataBinding 概述 二 基本用法 2 1 使用入门 2 2 布局和绑定表达式 2 3 事件绑定 2 4 单向绑定 2 5 双向绑定 三 高级用法 BindingAdapter 一 Data
  • Linux节点释放,关于linux:如何释放Inode的使用量?

    我有一个磁盘驱动器 其索引节点使用率为100 使用df i命令 但是 在实质上删除文件后 使用率仍为100 那么正确的方法是什么 磁盘空间使用较少的磁盘驱动器如何可能具有 Inode的使用率比磁盘空间使用率更高的磁盘驱动器高 如果我压缩大量
  • 前端面试大全(jQuery篇——含移动端常见问题)

    目录 面试系列 内容介绍 1 JQuery的源码看过吗 能不能简单概况一下它的实现原理 2 jQuery fn的init方法返回的this指的是什么对象 为什么要返回this 3 jquery中如何将数组转化为json字符串 然后再转化回来
  • harbor的https访问方式及自定义证书

    一 基本安装 docker docker compose 二 https访问harbor需要自定义证书 1 首先创建存放证书的目录 到对应目录证书的位置 root host1 harbor mkdir opt cert cd opt cer
  • matlab fminbnd 寻找区域极值

    fminbnd 进行有约束的一元函数最小值求解 它的求解命令是 X FMINBND FUN x1 x2 FUN 是目标函数 可以为表达式字符串或MATLAB自定义函数的函数柄 要求解在约束 x1 lt X lt x2下的最优解X 还有其他一
  • 干货丨什么是虚拟化技术?虚拟化常见架构

    在计算机中 虚拟化 英语 Virtualization 是一种资源管理技术 是将计算机的各种实体资源 如服务器 网络 内存及存储等 予以抽象 转换后呈现出来 打破实体结构间的不可切割的障碍 使用户可以比原本的组态更好的方式来应用这些资源 这
  • STM32固件库(标准外设库)入门学习 第六章TIM定时器(二)

    STM32固件库 标准外设库 入门学习 第六章TIM定时器 二 文章目录 STM32固件库 标准外设库 入门学习 第六章TIM定时器 二 前言 一 定时中断代码 1接线图 2 程序编写 2 1 第一步开启RCC时钟 2 2 第二步选择时基单
  • 大数据应用期末总评

    本作业来自于 https edu cnblogs com campus gzcc GZCC 16SE1 homework 3363 一 将爬虫大作业产生的csv文件上传到HDFS 将爬虫大作业中爬取到的数据文件csv导入到 usr loca
  • 前端API接口的调用

    一 开启API接口 首先我们把模型部署在自己的服务器上之后开启模型的接口 linux环境下 进入模型文件 输入命令行 bash webui sh listen api 实现api接口的开启 我们获得一个api接口的地址 二 API接口调用并