丹摩智算(damodel)部署stable diffusion实验

名词解释:

西云算力

丹摩智算(damodel):是一款带有RTX4090,Tesla-P40等显卡的公有云服务器。

stable diffusion:是一个大模型,可支持文生图,图生图,文生视频等功能

一.实验目标

注册丹摩智算(damodel) 账户,创建带有显卡(Tesla-P40)的公有云服务器,系统为:ubuntu22.04_tensorflow2.1,通过ssh协议连接到公有云服务器,在该服务器上安装stable diffusion,适配成功后,通过浏览器访问stable diffusion后,实现文生图的功能

二.实验环境准备

1.公有云:丹摩智算(damodel)

2.系统:ubuntu22.04_tensorflow2.1

3.显卡:Tesla-P40 

4.ssh连接工具:finalshell

5.stable diffusion:Stable Diffusion web UI

三.实验步骤

1.丹摩智算(damodel) 账户 注册

2.创建带显卡的公有云服务器。显卡:Tesla-P40  系统:ubuntu22.04_tensorflow2.1

3.ssh连接工具finalshell下载安装

4.通过ssh协议连接后,在ubuntu22.04_tensorflow2.1公有云上部署stable diffusion

5.Stable Diffusion web UI部署成功后,通过浏览器访问

6.在Stable Diffusion web UI页面上,输入关键词,生成图片

四.实验过程

注意事项:

由于需要下载模型,模型50g大小,所以磁盘一定要在创建实例的时候一次性创建够用。例如:200g系统盘,300g数据盘。

1.丹摩智算(damodel) 账户 注册

 浏览器登录地址:https://www.damodel.com/home

注册成功后进入页面 

点击创建实例

  

2.创建带显卡的公有云服务器。显卡:Tesla-P40  系统:ubuntu22.04_tensorflow2.1

 选择显卡型号,操作系统和默认支持框架,并选择使用优惠券和付费方式

创建成功后 

3.ssh连接工具finalshell下载安装

下载地址:FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.5.6,更新日期2024.8.27 - FinalShell官网

弹出来

 

安装成功后, 丹摩DAMODEL|让AI开发更简单!算力租赁上丹摩! 找到实例登录的用户名和密码(访问链接和密码分别复制获取)

输入实例 ip和用户名,密码 

登录成功后

4.Stable Diffusion web UI下载与部署

注意事项:由于github访问慢的原因,所以本文会用离线下载后上传安装Python组件的方式和修改github地址为gitee两种方式来解决。gitee库已放在文章中,过程vim 修改utils文件,请仔细修改,耐心操作

地址:GitCode - 全球开发者的开源社区,开源代码托管平台

  1. 安装依赖项:
# 更新库
sudo apt update
# 基于Debian的:
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0

 

中间输入y 

sudo apt install --no-install-recommends google-perftools

 

  1. 转至期望安装webui的目录,执行以下命令:
mkdir /opt/software
cd /opt/software
git clone https://gitcode.com/gh_mirrors/st/stable-diffusion-webui.git

或者在本地下载之后上传

创建用户,设置密码

root@crm1uavhri0c73fveip0-arhmb:/opt/software# useradd diffusion
root@crm1uavhri0c73fveip0-arhmb:/opt/software# passwd diffusion
输入密码:123456

  1. 运行webui.sh
    bash webui.sh -f 

  2. 这里遇到一个问题,执行到上面下载步骤,有2G大小的文件需要下载,但是网速只有200k,需要两个小时才能下载成功。需要耐心等待。
  3. 查看webui-user.sh以获取选项。

 创建目录:/opt/software/stable-diffusion-webui/

mkdir /opt/software/stable-diffusion-webui/

修改文件,去掉root登录限制

sudo apt install python3-pip

手动下载whl文件后,上传到服务器,然后安装

下载地址:https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86

 pip install torch-2.1.2+cu121-cp310-cp310-linux_x86_64.whl

 

下载clip并安装

下载地址:

https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip

用sheel工具上传

下载后安装:

python3  -m pip install CLIP-d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip --prefer-binary

’ 

安装bc计算工具

 apt-get install bc

/opt/software/stable-diffusion-webui/venv/bin/python -m pip install /opt/package/CLIP-d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip --prefer-binary

下载安装openc_clip

地址:https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip

下载后上传 

安装:

/opt/software/stable-diffusion-webui/venv/bin/python -m pip install /opt/package/open_clip-bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip --prefer-binary

 python  -m pip install open_clip_torchpython3  -m pip install open_clip_torch

安装

修改文件/opt/software/stable-diffusion-webui/modules/launch_utils.py,

vim 找到198行,替换stable-diffusion-webui-assets.git的github地址为gitee 


mkdir -p /opt/software/stable-diffusion-webui/repositories
cd /opt/software/stable-diffusion-webui/repositories/
git clone https://gitee.com/akavir/stable-diffusion-webui-assets.git

xsinbegin/stable-diffusion-stability-ai

修改stable-diffusion-stability-ai 地址为gitee.

修改stablediffusion地址为gitee

vim /opt/software/stable-diffusion-webui/modules/launch_utils.py

https://gitee.com/akavir/stablediffusion.git

修改generative-models: from https://github.com/Stability-AI/generative-models.git 

https://gitee.com/llf/Stability-AI-generative-models.git

更改k-diffusion库

 vim /opt/software/stable-diffusion-webui/modules/launch_utils.py

找到该行

用下面的链接替换 

https://gitee.com/dinglinhe/k-diffusion.git

替换blip

 地址为:

https://gitee.com/dinglinhe/BLIP.git

安装xfromer

pip install xformers

执行 部署脚本

bash /opt/software/stable-diffusion-webui/webui.sh -f

注:本文未安装模型,在安装模型前需要扩展硬盘 

5.Stable Diffusion web UI部署成功后,通过浏览器访问

http://127.0.0.1:7860

注:本文由于模型下载的缘故,暂未成功,后续补充

6.在Stable Diffusion web UI页面上,输入关键词,生成图片

需要等待模型下载成功后,继续实验

五.演示效果:

模型下载成功后演示

六.注意事项

1.丹摩智算(damodel)平台优惠券只有50元,创建成功实例后,由于是按时间进行算费,需要注意使用时效的问题

2.ERROR: This script must not be launched as root, aborting...

错误解决:

方法一. 运行 bash webui.sh如果是root用户,需要注释掉webui.sh中关于root权限的判断。

创建用户

方法二:或者:bash webui.sh -f 

 3.必须先执行sudo apt update 更新库,再安装依赖环境,否则会报错

4.ERROR: Cannot activate python venv, aborting...

5.

Cannot locate TCMalloc. Do you have tcmalloc or google-perftool installed on your system? (improves CPU memory usage)

 

七.附录

官网手册:

🔥 丹摩迎新季|5折GPU,开学季大放价 | 帮助文档 - DAMODEL

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

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

相关文章

SQLServer TOP(Transact-SQL)

1、本文内容 语法参数最佳实践兼容性支持互操作性限制和局限示例 适用于: Microsoft Fabric Microsoft FabricWarehouse 中的 SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure SynapseAnalytics Analytics Platform System (PDW)SQL A…

Java中的数据一致性策略:从最终一致性到强一致性的选择

Java中的数据一致性策略:从最终一致性到强一致性的选择 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论Java后端开发中非常重要的一个概念:数据一致性。数据…

MODELS 2024震撼续章:科技与可持续性的未来交响曲

MODELS 2024国际会议正如火如荼地进行着,每一天都充满了新的发现与启迪,每一场分享都是对技术前沿的一次深刻探索,更是对现实世界可持续性挑战的一次积极回应。现在让我们继续这场科技盛宴,看看小编为您精选几场的学术分享吧~ 会议…

地质工程专业职称申报条件详细解读

一、初级(助理)地质工程工程师评审条件: 1、理工类或者地质工程类专业毕业 2、专科毕业满3年或本科毕业满1年 3、研究生毕业,从事本专业技术工作,当年内考核认定 二、中级地质工程工程师评审条件: 1、理工…

【LeetCode刷题】链表篇

203. 移除链表元素 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*…

每天一道面试题(18):Redis 和 MySQL 如何保证数据一致性

引言 在现代分布式系统中,Redis 常被用作缓存层以提升应用性能,而 MySQL 则作为持久化存储。然而,由于二者的数据存储特性不同,保证 Redis 和 MySQL 之间的数据一致性是一个重要且复杂的问题。在这篇学习笔记中,我们将…

大数据 flink 01 | 从零环境搭建 简单Demo 运行

什么是Flink Flink是一个开源的流处理和批处理框架,它能够处理无界和有界的数据流,具有高吞吐量、低延迟和容错性等特点 Flink 可以应用于多个领域如:实时数据处理、数据分析、机器学习、事件驱动等。 什么是流式处理?什么是批处理 流处理…

xQTLs 共定位分析(XQTLbiolinks包)

XQTL 共定位分析 XQTLbiolinks 是一个端到端的生物信息学工具,由深圳湾实验室李磊研究团队开发,用于高效地分析公共或用户定制的个xQTLs数据。该软件提供了一个通过与 xQTLs 共定位分析进行疾病靶基因发现的流程,以检测易感基因和致病变异。…

vimax通信协议

关于“Vimax通信协议”,实际上可能存在一定的误解或混淆。在通信技术和网络领域,并没有广泛认知的名为“Vimax”的通信协议。然而,您可能是在询问关于“WiMAX”的信息,因为“WiMAX”与“Vimax”在发音上相近,且WiMAX是…

【STM32】RTT-Studio中HAL库开发教程七:IIC通信--EEPROM存储器FM24C04

文章目录 一、简介二、模拟IIC时序三、读写流程四、完整代码五、测试验证 一、简介 FM24C04D,4K串行EEPROM:内部32页,每个16字节,4K需要一个11位的数据字地址进行随机字寻址。FM24C04D提供4096位串行电可擦除和可编程只读存储器&a…

python学习记录3

目录 1、数据类型转换 2、eval函数 3、运算符 1、数据类型转换 变量类型的转换分为隐类转换和显类转换,隐类转换在python代码行中运行时就自动发生。例如 x ture print(x1) 显类转换使用函数完成,主要有以下几种: x 10 #整数默认是i…

2.1 HuggingFists系统架构(一)

系统架构 HuggingFists的前端主体开发语言为HtmlJavascript,后端的主体开发语言为Java。在算子部分有一定份额的Python代码,用于整合Python在数据处理方面强大能力。 功能架构 HuggingFists的功能架构如上,由下向上各层为: 数据存…

leetcode刷题day29|贪心算法Part03( 134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列)

134. 加油站 思路&#xff1a; 暴力解法&#xff1a;for循环适合模拟从头到尾的遍历&#xff0c;while循环适合模拟环形遍历&#xff01;但是会超出leetcode的时间限制。 class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {for(int i0;i<gas.length…

从文本图片到多模态:3D 数字人打开企业全域商业增长新空间

摘要&#xff1a;数字化与AI浪潮推动各行业变革&#xff0c;内容形式也发生巨变&#xff0c;从文本到多媒体的多模态表达&#xff0c;标志着内容创造走向升维。AIGC 3D生成技术的突飞猛进&#xff0c;彻底打破了传统3D内容生产门槛高、周期长、成本高昂的问题。将3D数字人的打造…

若依 Vue3 前端分离 3.8.8 版实现去除首页,登录后跳转至动态路由的第一个路由的页面

一、前言 某些项目可能并不需要首页&#xff0c;但在若依中想要实现不显示首页&#xff0c;并根据不同角色登录后跳转至该角色的第一个动态路由的页面需要自己实现&#xff0c;若依中没有实现该功能的特定代码。 二、代码 1. src\permission.js 在 src\permission.js 中添加…

记录一下oceanbase数据库导出数据到mysql

导出 SQL 文件 使用 mysqldump 工具从 OceanBase 导出 SQL 文件到 output2222.sql。在这一步中&#xff0c;你需要确保你有正确的权限和数据库访问配置。 mysqldump -h 192.168.191.72 -P 2881 -u rootA_a -p密码 rhzfdb > output2222.sql清理 SQL 文件 使用 sed 命令批量…

VSCode编程配置再次总结

VScode 中C++编程再次总结 0.简介 1.配置总结 1.1 launch jsion文件 launch.json文件主要用于运行和调试的配置,具有程序启动调试功能。launch.json文件会启用tasks.json的任务,并能实现调试功能。 左侧任务栏的第四个选项运行和调试,点击创建launch.json {"conf…

探索 ShellGPT:终端中的 AI 助手

文章目录 探索 ShellGPT&#xff1a;终端中的 AI 助手背景介绍ShellGPT 是什么&#xff1f;如何安装 ShellGPT&#xff1f;简单的库函数使用方法场景应用常见问题及解决方案总结 探索 ShellGPT&#xff1a;终端中的 AI 助手 背景介绍 在当今快速发展的技术领域&#xff0c;命…

【TypeScript入坑】什么是TypeScript?

TypeScript入坑 什么是 TypeScriptTypeScript 的优势 什么是 TypeScript TypeScript&#xff1a;是 JavaScript 的超集&#xff0c;拥有类型机制&#xff0c;不会再浏览器直接执行&#xff0c;而是编译成 JavaScript 后才会运行。 超集&#xff08;superset&#xff09;&…

Redis中的setnx的使用场景

Redis中的SETNX命令是一个非常有用的工具&#xff0c;特别是在处理分布式系统和并发控制时。SETNX是“Set if Not Exists”的缩写&#xff0c;用于设置键的值&#xff0c;但仅当键不存在时。以下是SETNX命令的一些主要使用场景&#xff1a; 1. 分布式锁 在分布式环境中&#…