本地部署Stable Diffusion生成爆火的AI图片

直接上代码
 

  @Mapping("/send")
    @Post
    public Object send(@Body String promptBody) {
        JSONObject postSend = new JSONObject();

        System.out.println(promptBody);
        JSONObject  body = JSONObject.parseObject(promptBody);
        List<String> list = new ArrayList<>();
        postSend.put("prompt","simple drawing,"+body.get("body")+",Simplified, <lora:线稿lora模型_V3.0:1>");
        postSend.put("steps",20);
        postSend.put("width",512);
        postSend.put("height",512);
        postSend.put("sampler_name","Euler a");
        postSend.put("batch_size",2);
        postSend.put("seed",-1);
        postSend.put("negative_prompt","");
        postSend.put("override_settings",new JSONObject().put("sd_model_checkpoint","lu简笔画风卡通模型_v2"));
        postSend.put("force_task_id",System.currentTimeMillis()+"");
        postSend.put("styles",list);
        System.out.println(postSend);
        HTTP http = HTTP.builder()
                .addMsgConvertor(new FastjsonMsgConvertor())
                .config((OkHttpClient.Builder builder) -> {
                    // 连接超时时间(默认10秒)
                    builder.connectTimeout(2000, TimeUnit.SECONDS);
                    // 写入超时时间(默认10秒)
                    builder.writeTimeout(2000, TimeUnit.SECONDS);
                    // 读取超时时间(默认10秒)
                    builder.readTimeout(2000, TimeUnit.SECONDS);
                })
                .build();
        HttpResult.Body resBody = http.sync("http://172.16.100.50:7860/sdapi/v1/txt2img")

                .bodyType(OkHttps.JSON)
                .addBodyPara(postSend)
                .post()

                .getBody();
        JSONObject jsonObject = JSONObject.parseObject(resBody.toString());
        return jsonObject.get("images");
    }

steps:步数 越大图片质量越高
width height 宽高

sampler_name Euler a 采样器

batch_size生成几个图

seed 种子数 -1是随机
negative_prompt 负面词

override_settings 这个是每次要用的模型 如果每次带着个参数 那么可以切换模型
force_task_id 这个是id 后续可以根据这个参数查询任务的 状态

查询状态可以使用这个接口

http://172.16.100.50:7860/sdapi/v1/progress
body:

{

  "id_task": "这里是id",

  "id_live_preview": -1,

  "live_preview": true

}

如果需要模型可以去liblibai 找 

我这里使用的是简笔画模型 


简笔画模型还不错 效果也可以

这是使用人物模型生成的

比如 两个小孩子在奔跑 

ai提示词可以写成


( running ) 2people,

(这里面的关键词是主体 也就是说这是增加了权重 ) 2、2people 两个人 
  用的大模型有问题 其实sd语言比较麻烦 

我给这个大模型的提示词是这个 

你是一个智能翻译工具,你擅长于提炼用户向你提供的文本信息,做到内容精炼准确、无误、精简地翻译为纯英文后,用stable diffusion中的标签语法表达出来,并且不输出任何额外内容
要求 全部的回答使用英语回复
另外,根据用户描述,你可以自定义各个标签的权重,并修改对应顺序及表达方式。
如:男孩和女孩在夕阳下牵手。主体是一男一女,行为是牵手,背景环境在夕阳下;为了保证动作输出准确,用圆括号给holding hands增加权重到1.1倍。所以你这句话的对应的输出内容应该为:2person, (holding hands), 1boy, 1girl,。

你还可以使用英文小括号()可以用来增强提示词的权重,一个小括号可以增加1.1倍权重,例如((holding hands))最多三个括号
(holding hands:1.5) 这样的格式可以提高权重1.5倍(可自定义:倍数,建议最大不超过1.5)
[holding hands]--降低权重9%
(holding hands:0.5)--降低权重50%
还可以使用[A:B:N] 通过参数可控制A的权重,剩下用户控制B
比如[dog:cat:0.5] 这表示各权重0.5
A BREAK B 在提示词间加上关键词 BREAK (必须大写),可以打断前后提示词的联系,在一定程度上减少提示词污染的情况
融合提示词 语法解析-语法格式:A AND B
在提示词间加上关键词 AND (必须大写),可以关联前后的元素特征,最终形成具备融合图像的效果。
交替绘制 语法解析-语法格式:[A|B|...]
使用中竖线|分隔多个提示词,在外侧加上方括号,运算时模型会在A和B内容间交替切换。

一个女孩子走在马路上 他的外观是 蓝色的围巾白色的头发 黑色的靴子 分红的帽子

这里面涉及到很多大模型sd的语法问题  很多大模型无法做到这种语言 

估计是需要详细的训练才行 

我这里使用的是硅基流动的模型

硅基流动统一登录硅基流动统一登录 硅基流动用户系统,统一登录 SSOhttps://cloud.siliconflow.cn/i/EJZ0AhEl

如果把这个给ai让ai写提示词 然后自动生成简笔画 

然后把这个简笔画弄成动态视频 

动态视频合集一下拼接 然后配上文字和音效 应该也能产生一种简笔画视频

类似于

这个抖音的博主 

但是很多需要修改的地方 但是解决的图片素材的问题 剩下的就是合集 

能节省不少人力

安装包可以使用这个 stable-diffusion-webui 必须要有gpu 

也可以使用绘世这个软件 

如果想要可以联系下我 这个成本比较小 

下一篇详细安装教程和模型

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

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

相关文章

python爬虫WASM

WASM 一.WASM简介 1.1 WASM定义 ​ WebAssembly(简称wasm)是一个虚拟指令集体系架构(virtual ISA),整体架构包括核心的ISA定义、二进制编码、程序语义的定义与执行,以及面向不同的嵌入环境(如Web)的应用编程接口(WebAssembly API)。是一种运行在现代网络浏览器中的…

Docker镜像迁移方案

Docker镜像迁移方案 文章目录 Docker镜像迁移方案一&#xff1a;背景二&#xff1a;操作方式三&#xff1a;异常原因参考&#xff1a; 一&#xff1a;背景 比如机器上已经有先有的容器&#xff0c;但是docker pull的时候是失败的二&#xff1a;操作方式 1、停止正在运行的容器…

关于跨域问题(本地前端访问服务器端接口跨域出错)

问题来源&#xff1a; 当服务器封装了接口但是本地电脑端前端访问出现跨域问题。 解决方案&#xff1b; 1、使用ipconfig 查看本地电脑的ip地址 ipconfig 2、在后端接口处配置如下代码 allow_origins["http://本地ip地址:3001", # 局域网内其他设备访问的本地…

边缘计算 vs. 云计算,谁才是工业物联网的未来?

前言 在物联网&#xff08;IoT&#xff09;飞速发展的今天&#xff0c;边缘计算正在彻底改变数据的处理、存储和分析方式。传统的IoT设备数据通常需要发送到云端进行处理&#xff0c;但随着设备数量的激增&#xff0c;这种模式在延迟、带宽和安全性方面暴露出诸多局限。边缘计…

dell 台式机 电脑 纽扣电池 如何取下?

dell 台式机 电脑 纽扣电池 如何取下&#xff1f; 戴尔-optiplex-3060-塔式机-服务手册

NFC 智能门锁全栈解决方案:移动端、服务器、Web 管理平台

目录 一、系统整体架构 二、移动端 APP 开发 2.1 开发环境与基础准备 2.2 主要功能模块 2.3 示例代码&#xff08;Android/Kotlin 简化示例&#xff09; 三、后台服务开发 3.1 环境准备 3.2 主要功能 3.3 示例代码&#xff08;Node.js Express 简化示例&#xff09; …

DDR4、DDR5、固态硬盘(SSD)和机械硬盘(HDD)在连续读/写、随机读/写性能的对比分析

以下是关于DDR4、DDR5、固态硬盘&#xff08;SSD&#xff09;和机械硬盘&#xff08;HDD&#xff09;在连续读/写、随机读/写性能的对比分析&#xff0c;结合技术特性与应用场景的总结&#xff1a; 一、性能对比表格 存储类型连续读&#xff08;MB/s&#xff09;连续写&#x…

【AI】MAC版本本地Stable Diffusion web ui安装

文章目录 前言环境依赖homebrewpython3下载stable-diffusion-webui webui模型准备模型网站 中文页面设置提示词转汉语转英文controlnet安装controlnet模型下载 结尾 前言 目前&#xff0c;市面上已经出现了很多用Ai 绘图制作的作品&#xff0c;用于自媒体或者商业等。例如表情…

Linux 云服务器开放端口

首先找到你买服务器的官网&#xff0c;我这里是阿里云 点击这里的控制台 这里先点手动添加&#xff0c;再看自己是UDP还是TCP协议&#xff0c;找到对应的协议&#xff0c;目的就填你想开放的端口&#xff0c;源填所有IP/4 0.0.0.0 添加备注点击保存就开放好了。

[unity 点击事件] 区域响应点击事件,排除子节点区域,Raycast Target 应用

当我打开一个二级弹窗后&#xff0c;希望可以通过点击弹窗以外的区域来关闭该弹窗。一开始我是在弹窗主节点上挂载了一个 button 组件&#xff0c;该 button 注册的点击事件中关闭该弹窗。在子节点&#xff08;一个背景图&#xff09;的image组件上启用 Raycast Target 选项&am…

表的约束及代码练习

一.表的约束 查看表&#xff1a;mysql> select * from t_hero; 1.设置t_hero的主键为t_id alter table t_hero add primary key(t_id); 2.设置t_hero t_id属性非空 alter table t_hero modify t_id int not null;3.设置name属性为非空非重复 alter table t_hero modify…

Linux笔记---动静态库(使用篇)

目录 1. 库的概念 2. 静态库&#xff08;Static Libraries&#xff09; 2.1 静态库的制作 2.2 静态库的使用 2.2.1 显式指定库文件及头文件路径 2.2.2 将库文件安装到系统目录 2.2.3 将头文件安装到系统目录 3. 动态库 3.1 动态库的制作 3.2 动态库的使用 3.2.1 显式…

Java并发编程2(锁-Sychronized)

目录 认识Java对象头 sychronized锁原理 基本概念 工作原理 1.作用在方法上 2.作用在代码块上 工作机制 JVM优化锁 Monitor锁 wait/notify park/unpark 线程状态转换案例 死锁 概念 死锁发生的必要条件 哲学家问题 活锁 饥饿 概念 饥饿的原因 Reentrant…

现阶段高校的人工智能方案培训如何?

人工智能在未来肯定是核心发展力&#xff0c;核心竞争力&#xff0c;也是国家重点扶持的对象&#xff0c;但我还是不看好高校的人工智能方向&#xff0c;只是怕有些同学对市场前景盲目乐观&#xff0c;就轻易上车了。 你要是985以上的高校&#xff0c;可以考虑选择人工智能&…

JavaScript中的继承有哪些方式?各有什么优缺点

在 JavaScript 中&#xff0c;继承主要通过原型链实现&#xff0c;常见的继承方式有以下几种&#xff0c;每种方式都有其优缺点&#xff1a; 1. 原型链继承 1. 实现方式&#xff1a;将子类的原型对象指向父类的实例。 function Parent() {} function Child() {} Child.protot…

深入理解指针(3)(C语言版)

文章目录 前言 一、字符指针变量二、数组指针变量2.1 数组指针变量是什么2.2 数组指针变量怎么初始化2.2.1 静态初始化2.2.2 动态初始化 三、二维数组传参的本质四、函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 typedef关键字4.4拓展 五、函数指针数组六、转…

Linux之 权限提升(Linux Privilege Escalation)

Linux 之权限提升 系统信息 1.获取操作系统信息 2.检查PATH&#xff0c;是否有任何可写的文件夹&#xff1f; 3.检查环境变量&#xff0c;有任何敏感细节吗&#xff1f; 4.使用脚本&#xff08;DirtyCow&#xff1f;&#xff09;搜索内核漏洞 5.检查sudo 版本是否存在漏洞…

【leetcode hot 100 215】数组中的第K个最大元素

解法一&#xff1a;维护最大最小值 -> 堆 -> k个元素的最小值堆 class Solution {public int findKthLargest(int[] nums, int k) {// 维护最大最小值 -> 堆 -> k个元素的最小值堆PriorityQueue<Integer> heap new PriorityQueue<>((n1, n2) -> n…

csp信奥赛C++常用的数学函数详解

csp信奥赛C常用的数学函数详解 在信息学奥林匹克竞赛&#xff08;信奥赛&#xff09;中&#xff0c;C 的 <cmath> 头文件提供了丰富的数学函数&#xff0c;用于高效处理数学运算。以下是常用系统数学函数的详细讲解及汇总表格。 绝对值函数 int abs(int x)&#xff1a;返…

Java IntelliJ IDEA 中配置多个 JDK 版本

目录 一、添加多个 JDK 版本1. 下载并安装多个 JDK 版本2. 配置 JDK 在 IntelliJ IDEA 中 二、在项目中切换 JDK 版本1. 设置项目使用的 JDK 版本2. 设置模块使用的 JDK 版本 三、在运行配置中指定 JDK 版本四、总结 在实际开发中&#xff0c;我们常常需要在同一个项目中使用不…