• 【AIGC】如何在使用stable-diffusion-webui生成图片时看到完整请求参数


    背景

    通过代码调用Stable Diffusion的txt2img、img2img接口时,很多时候都不知道应该怎么传参,比如如何指定模型、如何开启并使用Controlnet、如何开启面部修复等等,在sd-webui上F12看到的请求也不是正式调用SD的请求,所以当引入新插件或需要使用新功能时,怎么传参成了一个大问题,网上关于接口传参的资料也很少,接下来就介绍一下,如何在每次通过sd-webui点击生成图片时,获取到完整的请求参数。

    开搞

    需要使用到开源的项目:https://github.com/huchenlei/sd-webui-api-payload-display

    里面只有几个文件,直接打包下载:

    接下来需要做的工作很简单:

    1. 拷贝.js文件至sd-webui所在目录的javascript目录;

    2. 拷贝.py文件至sd-webui所在目录的script目录;

    1. 拷贝style.css中的内容,粘贴至sd-webui根目录下的style.css文件的末尾;(千万不能覆盖哦,是追加)

    1. 重启sd-webui

    使用

    打开sd-webui页面,可以看到多了一个按钮

    展开就能看到所有的请求参数了

    当然,如果要复制所有json的话,可以点击API payload旁边的Copy按钮,会自动复制所有内容。

    遇到的问题

    点击Copy按钮时,复制失败,显示:Failed to copy

    原因可以认为是js中的代码被浏览器的安全机制拦截了,打开浏览器控制台可以看到:

    Cannot read properties of undefined (reading ‘writeText’)

    可以参考这篇文章解决:Enable the “Insecure origins treated as secure” setting

    我用的是HTTP,所以看这一段就行

    主要就是4步解决:


    还有一点很重要,抓到的参数,可能比实际SD接口需要的多,最好是通过web-ui对比下哪些参数是必要的,传必要的参数即可,比如在使用面部修复插件时,遇到下面的问题:
    在这里插入图片描述
    杜比web-ui,将参数缩减后不报错了。
    在这里插入图片描述
    在这里插入图片描述

    从日志中可以看到面部修复插件生效了:在这里插入图片描述

  • 相关阅读:
    8章:scrapy框架
    selenium自动化测试神器
    Johnson 全源最短路
    RIP与OSPF发布默认路由(华为)
    Linux基础工具|代码调试工具gdb的使用
    虚拟机本地磁盘在线扩容
    【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码
    https代理如何设置?https代理有什么好处和坏处?
    64.C++运算符重载
    1.5、Python基础-模块和包
  • 原文地址:https://blog.csdn.net/sinat_14840559/article/details/133703454