本地部署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

也可以使用绘世这个软件

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

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

相关推荐
极小狐40 分钟前
如何使用极狐GitLab 软件包仓库功能托管 ruby?
开发语言·数据库·人工智能·git·机器学习·gitlab·ruby
大G哥40 分钟前
Kotlin Lambda语法错误修复
android·java·开发语言·kotlin
Pythonliu71 小时前
启智平台调试 qwen3 4b ms-swift
开发语言·swift
行走__Wz1 小时前
计算机学习路线与编程语言选择(信息差)
java·开发语言·javascript·学习·编程语言选择·计算机学习路线
-代号95271 小时前
【JavaScript】二十九、垃圾回收 + 闭包 + 变量提升
开发语言·javascript·ecmascript
谷雪_6581 小时前
鼠标交互初体验:点击屏幕生成彩色气泡(EGE 库基础)
c语言·开发语言·microsoft·交互
studyer_domi2 小时前
Matlab 数控车床进给系统的建模与仿真
开发语言·matlab
Micro麦可乐2 小时前
最新Spring Security实战教程(十四)OAuth2.0精讲 - 四种授权模式与资源服务器搭建
java·服务器·spring boot·spring·spring security·oauth2·oauth2授权
freshman_y2 小时前
Qt实现车载多媒体项目,包含天气、音乐、视频、地图、五子棋功能模块,免费下载源文件!
开发语言·qt
进击的小白菜2 小时前
如何高效实现「LeetCode25. K 个一组翻转链表」?Java 详细解决方案
java·数据结构·leetcode·链表