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

devtools/2025/3/31 12:31:01/

直接上代码
 

  @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.ppmy.cn/devtools/171347.html

相关文章

deepseek实战教程-第六篇查找源码之仓库地址与deepseek-R1、deepseek-LLM仓库内容查看

上一篇讲了支持deepseek的模型应用的本地安装和部署以及使用。再上一篇讲解了deepseek提供的开放api,便于开发者基于deepseek提供的接口来编写属于自己的业务应用程序。但是前面几篇我们都是在用模型,我们知道deepseek是开源的,那么deepseek的源码在哪里,具体源码是什么样的…

2.Excel :快速填充和拆分重组

一 案例1&#xff1a;快速填充 电子邮件中包含每个人的人名&#xff0c;现在要提取电子邮件中的姓名到名字列。 方法1&#xff1a;将 Nancy 复制到单元格后&#xff0c;邮件会高亮&#xff0c;然后输入A的时候系统就会知道提取名字了。 补充&#xff1a;如果第三个位置输入错误…

PHP大马的使用

BestShell/best_php_shell.php at master Kevil-hui/BestShell 这里用到的是这位师傅的大马&#xff08;主要是从头开始写一个大马实在太麻烦了&#xff09; 用pikachu靶场进行上传的测试 在这里传马&#xff0c;这个是简单的前端校验&#xff0c;bp抓包改后缀就好了 上传成…

VLM 系列——Qwen2.5 VL——论文解读

官方新特性 1)万物识别 大幅扩大了可识别的图像类别量级:不仅包括植物、动物、著名山川的地标,还包括影视作品中的 IP,以及各种各样的商品。 2)视觉定位 Qwen2.5-VL 可以通过生成 bounding boxes 或者 points 来准确定位图像中的物体,并能够为坐标和属性提供稳定的 J…

Python----计算机视觉处理(Opencv:边缘填充方式)

如上图所示&#xff0c;左图在逆时针旋转45度之后原图的四个顶点在右图中已经看不到了&#xff0c;同时&#xff0c;右图的四个顶点 区域其实是什么都没有的&#xff0c;因此我们需要对空出来的区域进行一个填充。右图就是对空出来的区域进行 了像素值为&#xff08;0&#xff…

冠珠瓷砖×郭培:当东方美学邂逅匠心工艺,高定精神如何重塑品质生活?

导语&#xff1a;在消费升级与国潮复兴的浪潮中&#xff0c;家居行业的竞争早已超越功能属性&#xff0c;转向美学与品质的深层较量。作为中国瓷砖行业的领军品牌&#xff0c;冠珠瓷砖连续多年以315品质服务月为契机&#xff0c;通过跨界创新与品质深耕&#xff0c;打造行业服务…

k8s存储介绍(二)Secret

Kubernetes&#xff08;K8s&#xff09;提供了一种安全的方式来存储和管理敏感信息&#xff0c;如密码、OAuth 令牌和 SSH 密钥&#xff0c;这就是 Secret。使用 Secret 可以避免将敏感数据硬编码到 Pod 规范或容器镜像中&#xff0c;从而提高安全性和可管理性。 1. Secret 的…

《数字图像处理》第三章 3.8 基于模糊技术的图像强度变换与空间滤波学习笔记

请注意:笔记内容片面粗浅&#xff0c;请读者批判着阅读&#xff01; 在传统图像处理中&#xff0c;灰度变换和空间滤波通常采用确定性数学方法&#xff08;如直方图均衡化、均值滤波等&#xff09;。但当面对图像中的不确定性&#xff08;如光照不均、噪声模糊性、边缘过渡区&…