卖不甜枣 发表于 2025-4-20 18:29:30

山东大学创新项目实训(2)本地部署StableDiffusion模型与基础工作流搭建

本周工作:我完成了对StableDiffusion模型的本地部署、参数配置和基础文生图、模型反演工作流搭建,以及初步了解了DeepseekAPI。
一、本地部署Stable Diffusion模型

1.下载相关资源

从官网下载源码
官网:Stability-AI/stablediffusion: High-Resolution Image Synthesis with Latent Diffusion Models
git clone https://github.com/Stability-AI/stablediffusion.git 可视化界面:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git  配置依靠:
cd stable-diffusion-webui
pip install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple SD+webUI整合包:https://pan.quark.cn/s/2c832199b09b
解压后直接运行即可
安装comfyUI(工作流模式,类似达芬奇):comfyanonymous/ComfyUI: The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
git clone https://github.com/comfyanonymous/ComfyUI.git
懒得配置可以直接装整合包:https://pan.quark.cn/s/64b808baa960
也是解压后直接运行即可
https://i-blog.csdnimg.cn/direct/ab7970ee123f48f2bef36595ada5fe2c.png
custom_nodes为节点存放目录,可以自定义节点。
input存放要输入的图像
output存放输出的图像
models存放模型
https://i-blog.csdnimg.cn/direct/b336fe50e7e8476e851b02e6ac784f61.png
diffusion_models存放基底模型(也就是Stable Diffusion官方练习模型或微调版本)
embeddingd存放图嵌入模型(练习成本高,不考虑)
hypernetworks存放超网络模型(练习成本高,不考虑)
loras存放LoRA模型,也是我们项目标重点关注部门,LoRA微调成本低,练习快。
https://i-blog.csdnimg.cn/direct/753cd3520b6a429199e18a5491dadda3.png
出现以上字样表示运行乐成。
2.搭建基础文生图工作流

创建一个Checkpoint加载器,加载模型的参数(权重和偏置),这里利用官方Stable Diffusion1.5版本模型参数:
https://i-blog.csdnimg.cn/direct/012760ba5878477fbe20dcdc3789c4f5.png
创建两个CLIP文本编码器,分别用于正向prompt和负向prompt的条件预测:
https://i-blog.csdnimg.cn/direct/3f89c6ea56ab421f8aac06e3e50fe759.png
CLIP将图像和文本映射到同一个embedding空间中,使得匹配的图和文embedding彼此靠近,而不匹配的图和文Embedding彼此相距较远。这里的CLIP中的prompt相称于天生图片的条件,在每次迭代中通过盘算余弦相似度来权衡prompt与图像的匹配程度。
https://i-blog.csdnimg.cn/direct/2e13f15d13734b33b7e6f99c9c339155.png
https://i-blog.csdnimg.cn/direct/f883177293674b15b4dfccd6eae96fef.png
创建k采样器,将模型的参数作为输出传给采样器:
https://i-blog.csdnimg.cn/direct/438762e060f348fb91fc3e75f6c918de.png
通过调节采样步数和降噪强度参数调节图像的细节天生过程。
创建空图像,并将其传给k采样器,由采样器在第一步迭代时天生相应巨细的随机噪声图,将CLIP模型找到的prompt对应的图embedding传给k采样器,作为其迭代收敛的约束条件:
https://i-blog.csdnimg.cn/direct/dcdae0a7c70e4375b9c4795459a57bf1.png
创建VAE解码器,即变分自解码器,SD模型利用了某种矩阵变更(我也不清楚),将真实样本变更成抱负的数据分布以及分布的均值和方差。将练习完后的样本和模型的VAE参数传给VAE解码器进行解码:
https://i-blog.csdnimg.cn/direct/4d538f35b1164d10aeda87ced7a44416.png
完整工作流:
https://i-blog.csdnimg.cn/direct/3446e21060154077bfdc07c69c642a71.png
测试结果:
prompt:dinosaur
https://i-blog.csdnimg.cn/direct/17dba9ee486f4333ad57a0dce6604c38.png
prompt:snowy mountain
https://i-blog.csdnimg.cn/direct/8ba38fc2e7e44ad39351f73d66ae4063.png
3.模型反演

WD14 tagger反推算法:利用卷积神经网络(CNN)多个层级提取图像特性,这些特性会被映射到一个高维空间,并与练习数据会合已有的标签进行匹配。对于每个可能的标签,模型管帐算其置信度分数(范围为 0 到 1),表示该标签实用于该图片的可能性。置信度较高的标签会被整理成一个文本列表,按权重从高到低分列提示词。
模型下载地址:pythongosssss/ComfyUI-WD14-Tagger: A ComfyUI extension allowing for the interrogation of booru tags from images.
Clip询问机:CLIP 询问机的原理基于 CLIP 的图文对齐能力,通过对比学习练习出统一的多模态向量空间,然后在这一空间中盘算图像和文本之间的余弦相似度。

[*]对输入图像用图像编码器天生向量 vimage。
[*]对多个提示词用文本编码器天生向量 vtext。
[*]盘算 vimage 和 vtext 的余弦相似度,选出最高的文本作为图像的“最匹配形貌”。
模型下载地址:pharmapsychotic/clip-interrogator: Image to prompt with BLIP and CLIP
运行结果:
https://i-blog.csdnimg.cn/direct/f5b5fc628a3b4104a45241a17c4c09c1.png
WD14 tagger天生最相关提示词并按权重高低次序分列:
https://i-blog.csdnimg.cn/direct/10c9977a0c38444bb9816269545f5d22.png
Clip询问机天生形貌图像的自然语言文本:
https://i-blog.csdnimg.cn/direct/1aed7d8aceb64db1baa97dd3645a4b14.png
二、了解DeepseekAPI

DeepSeek-R1接口:
1.输入参数:
参数名称必选范例形貌Action是String公共参数,范例,如:ChatCompletions(聊天)Version是String公共参数,版本Region是String公共参数,地点地区: 地区列表Model是String模型名称:deepseek-r1Messages.N是Array of Message聊天上下文信息。
1. 长度最多为 40,按对话时间从旧到新在数组中分列。
2. Message.Role 可选值:system、user、assistant。
此中,system 角色可选,如存在则必须位于列表的最开始。user 和 assistant 需瓜代出现,以 user 提问开始,user 提问结束,Content 不能为空。Role 的次序示例:
 Stream否Boolean是否流式输出
一样寻常设置为trueTemperature否Float 控制天生的随机性,取值范围为。较高的值会产生更多样化的输出。值越接近 0,天生的文本越确定、保守;值越接近 1,天生的文本越随机、富有创造性
一样寻常设置为:0.5~0.7
MaxTokens否Integer最大天生的token数量 2.输出参数:
参数名称范例形貌CreatedIntegerUnix 时间戳,单元为秒UsageChatUsageToken 统计信息,按照总 Token 数量计费IdString本次请求的 RequestIdChoicesArray of Choice复兴内容ModelString模型名称:deepseek-r1RequestIdString唯一请求 ID,由服务端天生,每次请求都会返回(若请求因其他缘故起因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时必要提供该次请求的 RequestId。本接口为流式相应接口,当请求乐成时,RequestId 会被放在 HTTP 相应的 Header "X-TC-RequestId" 中 3.错误码:
错误码形貌FailedOperation操作失败FailedOperation.EngineServerError引擎层内部错误InvalidParameter参数错误RequestLimitExceeded请求的次数凌驾了频率限制ResourceUnavailable.ResourcePackageRunOut账号资源包耗尽 大体思路:
利用 POST 方法来转达参数,向 DeepSeek API 发送请求。调用post方法传入包含请求参数的RequestBody对象,构建 JSON 字符串,然后创建RequestBody对象,将 JSON 传入此中。最后将这个RequestBody对象转达给指定的的post方法,完成请求。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 山东大学创新项目实训(2)本地部署StableDiffusion模型与基础工作流搭建