StableDiffusion-3.5 文生图模型本地部署尝鲜

文章目录

  • 官方仓库
  • ComfyUI 配置
  • 模型文件
  • 生成图片,观察日志
  • 生成样例

买了新的 4070TiS 显卡之后,终于有了个人的 16GB 显存,再也不用在关键时刻和实验室的其他人抢那两张 3080Ti 12G 了,所以想试试看干净的 Linux 环境下,显卡用于 AI 创作工作的效率,正好最近听说 StableDiffusion 3.5 模型发布了,有更快的速度和更好的提示词跟随性,我以前也没有试过本地部署这些文生图模型,都是玩在线的一些体验网站。

官方仓库

官方的 sd3.5 仓库 从 README 来看是只支持命令行操作的,有点不方便,所以需要额外使用支持这些大模型或者文生图模型的 UI 界面程序辅助。印象中之前比较火的是 StableDiffusionWebUI 这款,可以在 Windows 上直接运行,但是我现在是 Linux Ubuntu 24.04 ,所以随便谷歌了一下看看有什么推荐,大部分博客都是推荐一个叫 ComfyUI 的可视化界面程序。

在这里插入图片描述

ComfyUI 配置

StableDiffusion 3.5 的发布文章好像就是有 ComfyUI 的推荐链接的,关于 ComfyUI 和 StableDiffusionWebUI 谁好大家可以自己谷歌看看博客,一般是说 ComfyUI 的话占用计算资源更少,出图更快,灵活性更高,使用节点自定义配置界面,但是也更难上手和学习(我觉得还好,节点的输入输出已经节点的功能都直接显示在节点上了一眼就能看明白)。

在这里插入图片描述

根据教程的指示,先把该下载的模型文件下载好,需要 Hugging Face 的账号,随便用邮箱注册一个即可,然后下载模型文件之前需要填写表单表明模型的使用意图之类的,也很简单,没有真实性校验,全凭个人君子本性[doge]

然后克隆 comfyui 的代码仓库到本地,comfyui 也是通过 python 启动一个后台进程,提供一个前段页面供用户操作。参考 comfyui 的官方文档安装 comfyui 的 conda 环境:

# for amd gpupip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
# or
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.1# for nvidia gpupip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
# or
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu124

这里要求 pytorch 的版本使用对应的 cuda12.4 ,其实 cuda 12 之上都可以,我装的是 12.1 就行(第一次装的 cuda 11.3 运行文生图会发生报错,有一些 torch 的 api 是版本不支持,要到 2.0 之后才支持)。这一步骤主要是先安装 GPU 依赖。另外,安装 pytorch 的时候无需本地安装 cuda 和 cudnn,pytorch 的包是自带 cuda 二进制可执行文件和动态库以及 cudnn 的动态库了,不要再自己额外本地 /usr/local 的什么位置安装全局的 cuda ,否则可能导致环境错乱。一般来说 python 写炼丹机器学习代码,你不是开发 cuda 库或者 python 库需要使用 cuda 的 C/C++ API 头文件自行编译什么库给其他人用的话,是不需要在本地安装 cuda 和 cudnn 套件的,作为使用者,我们只需要二进制可知性文件,因此直接按照 pytorch 官网的安装指令安装 pytorch 就行(之前初学的时候一直以为要本地安装 cuda 和 cudnn 先,实验室服务器环境一团乱麻,各种版本的 cuda,坑死了)。最后,numpy 1.x 适用于 torch 1.x ,numpy 2.x 适用于 torch 2.x ,如果两者的版本不匹配的话,torch 很可能运行不了(不确定是不是一定这样,但是我其他实验要跑起来必须这么匹配版本)。

然后在克隆下来的 comfyui 项目根目录下根据 requirements.txt 安装其他依赖:

pip install -r requirements.txt

模型文件

  • Update ComfyUI to the latest version.
  • Download Stable Diffusion 3.5 Medium and save it to your models/checkpoint folder.
  • Ensure clip_g.safetensors, clip_l.safetensors, and t5xxl_fp16.safetensors are in your models/clip folder.
  • Download the workflow here and start creating!

根据发布文章中的图片表格选择自己合适的模型!我是 4070TiS 16GB ,所以选择 large-turbo 可能是比较合适的,兼顾了出图速度和质量。

![[Pasted image 20241104164735.png]]

回到 comfyui 接入 sd3.5 的教程博客中。根据教程的指示,把对应的文生图模型和语言模型移动到指定的目录下:

(sd3.5) ┌[fredom@4070TiS 16:23:38] ~/workspace/ComfyUI (master)
└> ls models/checkpoints/
total 16G
-rw-rw-r-- 1 fredom fredom   0 Nov  3 19:28 put_checkpoints_here
-rw-rw-r-- 1 fredom fredom 16G Nov  4 10:58 sd3.5_large_turbo.safetensors
(sd3.5) ┌[fredom@4070TiS 16:35:19] ~/workspace/ComfyUI (master)
└> ls models/clip
total 11G
-rw-rw-r-- 1 fredom fredom 1.3G Nov  4 11:39 clip_g.safetensors
-rw-rw-r-- 1 fredom fredom 235M Nov  4 11:57 clip_l.safetensors
-rw-rw-r-- 1 fredom fredom    0 Nov  3 19:28 put_clip_or_text_encoder_models_here
-rw-rw-r-- 1 fredom fredom 9.2G Nov  4 13:41 t5xxl_fp16.safetensors

然后 python main.py 即可运行后台进程在 8081 端口提供 web service 前段可视化服务。

在这里插入图片描述

本地打开提供的链接之后,可以得到工作流节点的可视化界面,我的界面因为之前改过所以不是默认的了,这里我把提示词的节点换成了 TripleCLIPLoader

在这里插入图片描述

原始的 CLIPLoader 运行的话会报错,提示无法找到提示词语言模型不知道咋回事,后来在这个 issue 下有人回答了如果使用了 3.5 教程中的三个 clip 模型放到 models/clip 目录下的话,那么 clip 节点需要相应的换成 TripleCLIPLoader ,然后点击节点中对应的模型进行加载。

在这里插入图片描述

生成图片,观察日志

在正面提示词(posity)和负面提示词(negative)完成填写之后,可以点击右下角面板的 Queue Prompt ,将当前提示词加入生成队列,此时可以观察后台终端的输出,或者浏览器标签页的标题,会显示生成进度,同时节点界面也会使用绿色边框高亮目前进行到哪个节点步骤。

在这里插入图片描述

在这里插入图片描述

据我大概观察,一般是 10 秒出一张预览图,至于保存图片什么的节点就没去尝试了,因为证明了显卡能够正常工作以及出图的速度测试就行,之前显卡也已经经过了一个晚上通宵的炼丹测试,证明显卡装机之后稳定性没问题,系统稳定性没问题。

然后在生成的过程中也观察了一下显存和计算利用率,好家伙真的是极限,Large-turbo 80 亿参数(8.1B),生成 512x512 的图像基本吃满显卡。

在这里插入图片描述

基本上吃满显存了,平时不动的显卡风扇也有了 30% 的转速,功耗来到了 200w ,所以如果小伙伴的显卡也是 16 GB 的话,可能无法使用原生的 Large 模型了,估计要 4090 24GB 级别的才能愉快玩耍。

生成样例

最后是一些生成的样本,感觉效果不如 GPT 给出来的好,不过毕竟是开源的,而且我用的模型是 Large-turbo 也不是 Large 估计效果还是会损失一些的。不过这些图片拿来做唱片的专辑倒是很合适。

luxury sedan drving in the downtown in a rainy night

在这里插入图片描述

Lenna image

在这里插入图片描述

anime girl fennec ears blue eyes black medium hair red highlights wearing a long black pants blue pattern standing in the middle of cyberpunk neon city at night smog china

在这里插入图片描述

这个样本和别人的 medium 模型的差距有点大,是我的使用姿势不对?

还有一些奇怪的提示词也是可以的哈,但是不推荐大家拿来做坏事……

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

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

相关文章

规范:项目、目录、文件、样式、事件、变量、方法、url参数、注释、git提交 命名规范及考证

一、规范命名的重要性 易懂、通用、规范、标准、专业性、是经验积累的体现 1.1、常见命名方法 序号命名方法解释1全小写2全大写3驼峰:小驼峰命名法4驼峰:大驼峰命名法5烤串命名法 / 脊柱命名法6下划线分隔法 二、项目名 采用小写字母和中划线&#…

Navicat 连接远程腾讯云服务器的MySQL数据库

首先需要开放开放腾讯云安全端口,可以参考这个链接腾讯云服务器入站规则端口开放使用指南(CentOS系统)。 但是注意需要开放的是IPv6,这个可以通过netstat命令查看确认。 然后查看当前用户信息 select user, host from mysql.user一般看到的都是 localh…

第三十四篇:URL和URI的区别,HTTP系列一

前面我们讲到通过TCP协议通信双方建立可靠连接,那么此时双方进行通信,需要用人能理解的形式进行信息组织,也就是为各种特定需求服务,满足日常生活中的各种场景。 比如:网页浏览、电子邮件、远程登录、文件传输、网络管…

什么情况下,不推荐建立索引?

一般有以下几种情况不推荐建立索引: 1)对于数据量很小的表 当表的数据量很小(如几百条记录)时,建立索引并不会显著提高查询性能,反而可能增加管理的复杂性; 2)频繁更新的表 对于…

GitHub上传自己的项目

目录 一、安装Git插件 1)下载 2)安装 二、创建Gothub的创库 三、通过Git上传本地文件到Github 四、其他 1、部分指令 2、如果已经运行过git init并设置了[user],下次可以直接用 一、安装Git插件 1)下载 下载地址&#x…

你需要了解的Android主题相关知识

在 Android 开发中,主题(Theme)是用于定义应用的视觉风格的一组样式集合。主题决定了应用的配色、字体样式、控件外观等,是整个应用的一致性视觉体验的重要组成部分。以下是对 Android 主题的全面介绍,包括主题的基础概…

寻找符合要求的最长子串

题目描述 给定一个字符串 s s s ,找出这样一个子串: 1)该子串中的任意一个字符最多出现2次; 2)该子串不包含指定某个字符; 请你找出满足该条件的最长子串的长度。 输入描述: 第一行为要求…

【Linux 从基础到进阶】 灾难恢复自动化工具与脚本

灾难恢复自动化工具与脚本 在现代企业中,自动化工具和脚本在灾难恢复(Disaster Recovery, DR)中扮演着至关重要的角色。它们不仅提高了恢复过程的效率和准确性,还减少了人为错误的风险。本文将介绍一些常用的灾难恢复自动化工具及…

「Mac畅玩鸿蒙与硬件26」UI互动应用篇3 - 倒计时和提醒功能实现

本篇将带领你实现一个倒计时和提醒功能的应用,用户可以设置倒计时时间并开始计时。当倒计时结束时,应用会显示提醒。该项目涉及时间控制、状态管理和用户交互,是学习鸿蒙应用开发的绝佳实践项目。 关键词 UI互动应用倒计时器状态管理用户交互…

重装系统后,把Anaconda从硬盘恢复方法(亲测可用)

1.首先保证安装目录文件完整 2.添加系统环境变量 E:\anaconda E:\anaconda\Scripts E:\anaconda\Library\bin E:\anaconda\Library\mingw-w643然后进入安装目录打开cmd命令窗口,输入一下如下命令 python .\Lib\_nsis.py mkmenus4.如果需要cuda恢复,只…

Linux动态库和静态库

1,手动制作静态库 1,如何形成静态库文件 做库时,头文件(.h)必须暴露,源文件(.c)必须隐藏。 操作:将需要形成库的文件编译成.o文件: 然后用指令:ar -rc libmy_stdio.a my_stdio.o my_string.o…

java基础之 String\StringBuffer\ StringBuilder

文章目录 String字符串的创建为什么说String是不可变的?创建后的字符串存储在哪里?字符串的拼接String类的常用方法 StringBuilder & StringBuffer使用方法验证StringBuffer和StringBuilder的线程安全问题 总结三者区别什么情况下用运算符进行字符串…

【计网不挂科】计算机网络期末考试中常见【选择题&填空题&判断题&简述题】题库(3)

前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 欢迎订阅 YY滴其他专栏!…

告别繁琐统计,一键掌握微信数据

微信数据管理的挑战在数字时代,微信已成为我们日常沟通和商业活动的重要工具。然而,随着微信号数量的增加,手动统计每个账号的数据变得越来越繁琐。从好友数量到会话记录,再到转账和红包,每一项都需要耗费大量的时间和…

Oracle分区技术特性

Oracle 的分区是一种“分而治之”的技术,通过将大表、索引分成可以独立管理的、小的 Segment,从而避免了对每个对象作为一个大的、单独的 Segment 进行管理,为海量数据访问提供了可伸缩的性能。自从 Oracle 引入分区技术以来,Orac…

ArkTS常用数据处理:掌握核心技能与实践

在HarmonyOS应用开发中,ArkTS作为主要的开发语言,其数据处理能力是构建高效应用的关键。本文将详细介绍ArkTS中的常用数据处理方法,包括基本数据类型、数组、枚举、对象和XML解析与生成等,以及它们在实际开发中的应用和最佳实践。…

bert-base-chinese模型使用教程

向量编码和向量相似度展示 import torch from transformers import BertTokenizer, BertModel import numpy as npmodel_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese"sentences [春眠不觉晓, 大梦谁先觉, 浓睡…

HTML+CSS科技感时钟(附源码!!!)

预览效果 源码(直接复制使用) <!DOCTYPE html> <html lang"zh-Hans"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>科技感时钟</…

Docker配置国内源加速

Docker配置国内源加速 添加配置文件/etc/docker/daemon.json, 内容如下&#xff1a; {"registry-mirrors": ["https://6kx4zyno.mirror.aliyuncs.com"] }本人使用的是阿里云服务器&#xff0c;所以配了个阿里云的 使配置生效 systemctl daemon-reload …

论文精读系列

​ ViT (Vision Transformer) 『论文精读』Vision Transformer(VIT)论文解读 ​