MobiMaliang Deploy on Ubuntu20.04
[摩尔线程] 魔笔马良 U盘 Ubuntu系统部署
pdf文档和自动安装脚本链接, 蓝奏云: https://😀wwft.lanz😀oul.com/b052😀nz4rc 密码:95s7
脚本需要更改 txt 后缀 为 sh. 并且添加执行权限. sudo chmod +x ./UbuntuDeploy.sh
0. 预置
0. 请先向摩尔马良官方申请开发者账户和密码
[必要]
后续会使用该账号下载必要资源
请向 developers@mthreads.com
发送邮件,提供姓名、手机号、行业等基本信息,以申请开发者账号,用于拉取运行 torch_musa
所需的镜像
申请成功后,请编辑 install.sh
第18行,并替换账号
和密码
1. 推荐使用英文
系统: 可以避免很多不必要的麻烦!!!
等魔笔马良可以成功运行
之后再去系统把语言改回中文
, 可以减少前期很多不必要的错误.**
2. Linux(Ubuntu) to go U盘系统不会对当前已有的系统造成影响
仅是需要Linux(Ubuntu) 时, 插上 U盘, 然后在开机时选择 U盘 启动即可.
- 检查当前语言:
打开 Ubuntu 的 Setting, 然后到倒数第 5 个地区和语言(Region&&Language)
里去检查当前语言是否为 English, 如果不是则更换为 英语(美国), 然后重启 Ubuntu 即可.
1.安装 Ubuntu 20.04 可以参考这两个视频:
- 【【详细教程】用ventoy打造超级8合一系统启动U盘同时塞入WinTOGO,PE,LinuxTOGO#1】 【精准空降到 09:02】
- 【【详细教程】用ventoy制作linuxTOGO多合一便携U盘安装完整ubuntu(免持久化)-8合1U盘#2】
以上两个视频, 第一个可以不用管前半部分的 Win to go 部分, 直接从09:02
开始看起即可.
上面转载链接已得到原作者同意.
2.插上制作好的 Linux(Ubuntu) to go — U盘到电脑上.
部分电脑的引导启动选项菜单选取键:
组装机 | 笔记本 | 品牌台式机 | |||
---|---|---|---|---|---|
主板品牌 | 启动按键 | 笔记本品牌 | 启动按键 | 台式机品牌 | 启动按键 |
华硕主板 | F8 | 联想笔记本 | F12 | 联想台式机 | F12 |
技嘉主板 | F12 | 宏碁笔记本 | F12 | 惠普台式机 | F12 |
微星主板 | F11 | 华硕笔记本 | ESC | 宏碁台式机 | F12 |
映泰主板 | F9 | 惠普笔记本 | F9 | 戴尔台式机 | ESC |
梅捷主板 | ESC或F12 | 联想Thinkpad | F12 | 神舟台式机 | F12 |
七彩虹主板 | ESC或F11 | 戴尔笔记本 | F12 | 华硕台式机 | F8 |
华擎主板 | F11 | 神舟笔记本 | F12 | 方正台式机 | F12 |
斯巴达卡主板 | ESC | 东芝笔记本 | F12 | 清华同方台式机 | F12 |
昂达主板 | F11 | 三星笔记本 | F12 | 海尔台式机 | F12 |
双敏主板 | ESC | IBM笔记本 | F12 | 明基台式机 | F8 |
翔升主板 | F10 | 富士通笔记本 | F12 | | |
精英主板 | ESC或F11 | 海尔笔记本 | F12 | | |
冠盟主板 | F11或F12 | 方正笔记本 | F12 | | |
富士康主板 | ESC或F12 | 清华同方笔记本 | F12 | | |
顶星主板 | F11或F12 | 微星笔记本 | F11 | | |
铭瑄主板 | ESC或F11 | 明基笔记本 | F9 | | |
盈通主板 | F8 | 技嘉笔记本 | F12 | | |
捷波主板 | ESC | Gateway笔记本 | F12 | | |
Intel主板 | F12 | eMachines笔记本 | F12 | | |
杰微主板 | ESC或F8 | 索尼笔记本 | ESC | | |
致铭主板 | F12 | 苹果笔记本 | 长按“option”键 | | |
磐英主板 | ESC | | | | |
磐正主板 | ESC | | | | |
冠铭主板 | F9 | | | | |
注意:上述未提到的电脑机型请尝试或参考相同的品牌常用启动热键 | |||||
内容参考 Next I tell you |
3.宿主机 Ubuntu 安装魔笔马良驱动
成功进入 Ubuntu 系统之后
- 解释:
宿主机
指的就是你现在使用的这个Ubuntu
裸机. - 需要知道的必要知识:
终端(Terminal)
打开方式有两种:
1. 在桌面或者文件夹里鼠标右键,然后选择 Open in Terminal 既可以打开 Terminal
2. 按下鼠标Ctrl+Alt+T
, 这里的 T 是 Terminal 的缩写.
1.自动安装脚本
在任意地方, 任意方式打开终端 Terminal 后, 输入以下内容.
sudo apt install git # 安装 git
git --version # 检测 git 是否安装成功
# 下载并运行 UbuntuDeploy.sh 脚本
sudo wget https://gitee.com/Credhat/MobiMaliangSDK/raw/main/UbuntuDeploy.sh -O - | sudo bash
2.手动一步步安装:
1.安装 Git.
在任意地方, 任意方式打开终端Terminal 后, 依次输入以下内容,如果叫输入密码
则输入你的账户密码
即可.
sudo apt install git #安装 git
git --version #检测 git 是否安装成功
中间没有报错, 并且第二行 git --version
输出类似上述内容, 则说明成功安装了.
2.创建 mtai_workspace 文件夹
mkdir -pv $HOME/Desktop/mtai_workspace # 创建mtai_workspace文件夹
cd $HOME/Desktop/mtai_workspace # 进入 mtai_workspace 文件夹
出现上面绿线的两行就说明成功了.
需要等一会儿
3.在 mtai_workspace 文件夹中下载魔笔马良项目文件
继续在终端Terminal里一行一行输入以下内容:
git clone https://github.com/MooreThreads/MobiMaliangSDK #下载项目
cd MobiMaliangSDK # 进入下载好的魔笔马良项目文件夹
4.安装 GPU 驱动,如果遇到报错了,则[多次尝试]
sudo bash install_driver.sh
如果出现 Configuring lightdm 的UI,请将 Default display manager 选成 lightdm
, 只有当安装流程中出现了 lightdm
这个选择流程的时候, 才算把摩尔线程的 GPU 驱动完整安装.
如果没出现,则[多次尝试]. 直到出现,并且最后输入以下内容才算成功.
并且输出以下内容:
出现之后, 重启 Ubuntu.
reboot
重启完毕之后, 验证驱动 (GPU Driver ) 是否安装成功
打开终端 Terminal 输入以下内容:
mthreads-gmi
输入内容类似则成功.
5.安装 Docker
打开终端 Terminal, 输入以下内容:
sudo apt install docker.io # 安装Docker
sudo docker ps # 检查Docker是否安装成功
6.拉取魔笔马良官方镜像
重要: 我们最开始向官方申请的开发者账号现在就得用上了
请编辑 install.sh
第18行,并替换账号
和密码
打开终端 Terminal, 输入以下内容:
cd $HOME/Desktop/mtai_workspace/MobiMaliangSDK
sudo bash install.sh
7.运行镜像
在终端执行以下指令
sudo docker run -id --name mtai_workspace --privileged -e MTHREADS_VISIBLE_DEVICES=all -p 1001:1001 -p 1002:1002 -p 1003:1003 -p 1004:1004 -p 1005:1005 -v ~/Desktop/mtai_workspace:/mtai_workspace:rw --shm-size 64G registry.mthreads.com/mcconline/musa-pytorch-release-public:v1.0.0
sudo docker exec -it mtai_workspace /bin/bash
然后继续输入
cd /mtai_workspace/MobiMaliangSDK/
bash install_inside_docker.sh
我们继续输入这些以下内容, 出现错误❌的话, 忽视就好了
apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
pip install -r requirements.txt --no-deps
mkdir -p ~/.cache/huggingface/hub/;rm -rf ~/.cache/huggingface/hub/models--openai--clip-vit-large-patch14/;cp -r models/tools/models--openai--clip-vit-large-patch14/ ~/.cache/huggingface/hub/
8.打开魔笔马良 WEB UI
在终端继续执行:
cd /mtai_workspace/MobiMaliangSDK/
streamlit run frontend/main.py --server.port 1001
出现了图中的网页连接. 用Ctrl+鼠标点击即可打开. 或者浏览器地址中输入,localhost:1001
即可访问 WebUI
如果要停止 WebUI 服务,回到终端 Terminal 按 Ctrl + C
即可;
停止服务后,如果要退出容器 container,输入 exit
即可
9.愉快画图
点开了 WEB UI 之后, 因为官方没有自带模型 model. 所以会报错.
我们需要自己去下载模型, 并且放到这个目录下
$HOME/Desktop/mtai_workspace/MobiMaliangSDK/models/Stable-diffusion/
把模型放到上面的文件夹之后,推荐重启容器
回到终端 Terminal, 按下 Ctrl+C, 然后输入以下内容,重新启动 WEB UI.
streamlit run frontend/main.py --server.port 1001
等待 running 结束之后点击随机描述,点击创作就可以使用了。
Issues
0. 模型在哪里下载?
----------模型下载----------
1. Stable Diffusion: 生图底模,ckpt和safetensors皆可,可从tusiart.com、civitai.com等网站下载,例如GhostMix2.0,下载后放至models/Stable-diffusion/
2. Controlnet:
canny:实现ControlNet边缘控制生成,下载后放至models/controlnet/canny_v11/
openpose:实现ControlNet骨骼控制生成,下载后放至models/controlnet/openpose_v11/
tile:实现ControlNet Tile精绘功能,下载后放至models/controlnet/tile_v11/
mlsd:实现ControlNet边线控制生成,下载后放至models/controlnet/mlsd_v11/
骨骼检测模型:body_pose_model.pth、facenet.pth、hand_pose_model.pth,分别实现全身、面部、手部的检测,下载后放至models/controlnet/annotators/
边线检测模型:mlsd_large_512_fp32.pth,下载后放至models/controlnet/annotators/
3. LoRA: safetensors格式,可从tusiart.com、civitai.com等网站下载,下载后放至models/lora/
4. Textural Inversion:pt格式,可从tusiart.com、civitai.com等网站下载,下载后放至models/embeddings/
5. 超分: RealESRGAN_x4plus,更多下载链接:https://huggingface.co/schwgHao/RealESRGAN_x4plus/blob/main/RealESRGAN_x4plus.pth,下载后放至models/tools/
6. 图生文本:DeepDanbooru,更多下载链接:https://huggingface.co/Renqf/model-resnet_custom_v3.pt/blob/main/model-resnet_custom_v3.pt,下载后放至models/tools/
7. 翻译: 支持中文prompt和negative prompt,请下载https://huggingface.co/Helsinki-NLP/opus-mt-zh-en/blob/main/pytorch_model.bin,下载后放至models/tools/zh2en/
请您在使用推荐的模型前,仔细阅读并理解以下事宜:
- 推荐的模型为第三方软件或代码库,客户在下载使用推荐的模型时,需要了解并遵守该模型的用户协议或开源协议要求
- 如果您计划使用推荐的模型,请确保您的使用符合相应的用户协议或开源协议要求。某些开源协议可能对商业化使用有特定的限制或要求您公开源代码等。您需要自行承担了解和遵守这些规定的责任
- 公司不对推荐的模型作任何明示或暗示的保证或承诺。在使用这些模型时,您应自行承担风险和责任。公司不承担因使用这些模型而导致的任何直接或间接损失或损害
1. 为什么安装好驱动, 重启之后开不了机了?
- 比如出现现在的界面:
- 尝试在卡住的界面按下 Ctrl+Alt+F2,输入Ubuntu账户密码,登陆到终端Terminal, 然后将文件恢复回未修改
输入以下命令
1. `sudo mv /boot/initrd.img-5.4.0-166-generic /boot/initrd.img-5.4.0-166-generic.bkp.new`
2. `sudo mv /boot/initrd.img-5.4.0-166-generic.old-dkms /boot/initrd.img-5.4.0-166-generic`
3. `reboot`
![fixboot](https://img-blog.csdnimg.cn/301e17f33697409b81fb42c85e1b4a75.png#pic_center)
2. 为什么我没有出现选择 Lightdm 的过程?
- 推荐多次运行[多次尝试](###### 4. 安装 GPU 驱动,如果遇到报错了, 就重新输入此命令 等待其安装完成), 一般三至四次就会出现 lightdm 选择的流程.
- 然后此次摩尔线程GPU的驱动才算成功安装.
3. 为什么我的 Ubuntu to go 存储很快就没了?
1. 这个问题可能是系统log文件太大导致的, 用命令 df -h 查看一下,
2. 如果发现 /var/log/syslog 和 /var/log/kern.log 存储占用很大. 可以继续查看是什么造成的.
3. tail -f /var/log/syslog # 查看 syslog 的错误原因
4. tail -f /var/log/kern.log # 查看 kern.log 的错误原因
5. 如果是 PCIe Bus Error 可以参考一下这个帖子# 解决Ubuntu下的PCIE Bus Error问题
4. 为什么魔笔马良偶尔还会报错 ml
is not defined
1. 检查模型是否包含中文, 请确保模型名字不含中文或者空格等.
2. 然后重新启动 WEB UI 服务, 参考[第九步](##### 9.愉快画图).
5. 报错 MUSA out of memory.
1. 这个错误是因为显存占用过多, 没有办法再分配显存用于画图了
2. 解决办法: 调整图片分辨率到最小, 比如 512 * 512 调整至 384 * 384. 然后随便跑一张图. 通过这个方式主动刷新 GPU 显存使用情况. 从而将显存占用降低.
Finally:
UbuntuDeploy.sh 文件内容
#!/bin/bash
echo "--------- 开始尝试安装魔笔马良环境 ------------"
mbmlpath=$HOME/Desktop/mtai_workspace/MobiMaliangSDK
# 创建mtai_workspace文件夹
mkdir -pv $mbmlpath # 创建mtai_workspace文件夹
echo "------------- 下载项目文件 -------------------"
echo "------------- 下载项目文件 -------------------"
echo "------------- 下载项目文件 -------------------"
max_attempts=3
attempts=0
while [ $attempts -lt $max_attempts ]; do
# 删除现有目录
rm -rf "$mbmlpath"
# 尝试第一个 git clone
git clone https://github.com/MooreThreads/MobiMaliangSDK "$mbmlpath"
# 检查第一个 git clone 是否成功
if [ $? -eq 0 ]; then
echo "第一个 git clone 成功。"
break
else
echo "第一个 git clone 失败,尝试第二个 git clone..."
# 尝试第二个 git clone
git clone https://gitee.com/Credhat/MobiMaliangSDK.git "$mbmlpath" # 下载项目,更换gitee,更适合中国
# 检查第二个 git clone 是否成功
if [ $? -eq 0 ]; then
echo "第二个 git clone 成功。"
break
else
echo "第二个 git clone 也失败。"
((attempts++))
sleep 5 # 等待一段时间再重试,可以根据需要调整等待时间
fi
fi
done
if [ $attempts -eq $max_attempts ]; then
echo "已达到最大尝试次数,仍未成功。请检查网络或手动下载项目。"
exit 1
fi
cd $mbmlpath # 进入下载好的魔笔马良项目文件夹
echo "------------- 安装 GPU 驱动-------------------"
echo "------------- 安装 GPU 驱动-------------------"
echo "------------- 安装 GPU 驱动-------------------"
max_attempts=3
attempts=0
while [ $attempts -lt $max_attempts ]; do
# 安装 GPU 驱动
sudo bash install_driver.sh -y
# 运行 mthreads-gmi
mthreads-gmi
if [ $? -eq 0 ]; then
echo "GPU 驱动安装并检查成功。"
break
else
echo "尚未发现 GPU 设备,重新执行安装..."
((attempts++))
sleep 5 # 等待一段时间再重试,可以根据需要调整等待时间
fi
done
if [ $attempts -eq $max_attempts ]; then
echo "已达到最大尝试次数,仍未成功。请手动检查和处理。"
fi
# 安装 Docker
sudo apt install docker.io # 安装Docker
sudo docker ps # 检查Docker是否安装成功
max_attempts=3
attempts=0
while [ $attempts -lt $max_attempts ]; do
wget "https://gitee.com/Credhat/MobiMaliangSDK/raw/main/UbuntuDeploy2.sh" -O UbuntuDeploy2.sh
# 检查 wget 命令返回的状态
if [ $? -eq 0 ]; then
echo "下载成功,已写入 UbuntuDeploy2.sh。"
break
else
echo "下载失败,尝试重新下载..."
((attempts++))
sleep 5 # 等待一段时间再重试,可以根据需要调整等待时间
fi
done
if [ $attempts -eq $max_attempts ]; then
echo "已达到最大尝试次数,下载仍未成功。请检查网络连接。"
fi
sudo chmod +x ./UbuntuDeploy2.sh
echo "-------------------------------------------"
echo "-------------------------------------------"
echo 第一阶段自动安装结束.
echo 第一阶段自动安装结束.
echo "-------------------------------------------"
echo 需要您手动将 install.sh 文件里的账户和密码替换为你的开发者账户密码
echo 需要您手动将 install.sh 文件里的账户和密码替换为你的开发者账户密码
echo "-------------------------------------------"
echo 然后再次在终端中执行 ./UbuntuDeploy2.sh
echo 然后再次在终端中执行 ./UbuntuDeploy2.sh
UbuntuDeploy2.sh 文件内容
#!/bin/bash
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"
echo "-------- 开始尝试安装魔笔马良环境 2 -----------"
mbmlpath=$HOME/Desktop/mtai_workspace/MobiMaliangSDK
workpath=$HOME/Desktop/mtai_workspace
# 拉取魔笔马良官方镜像
cd $mbmlpath
sudo bash install.sh
# 检查返回状态
if [ $? -eq 0 ]; then
echo "魔笔马良官方镜像拉取成功。"
else
echo "拉取镜像时出现错误,请检查安装脚本和网络连接。"
echo "请检查是否将 install.sh 文件里的账户和密码替换为你的开发者账户密码"
echo "比如: docker login -u 'Abc' -p 'password' registry.mthreads.com"
break
fi
# 启动魔笔马良镜像
sudo docker run -id --name mtai_workspace --privileged -e MTHREADS_VISIBLE_DEVICES=all -p 1001:1001 -p 1002:1002 -p 1003:1003 -p 1004:1004 -p 1005:1005 -v $workpath:/mtai_workspace:rw --shm-size 64G registry.mthreads.com/mcconline/musa-pytorch-release-public:v1.0.0
# 进入魔笔马良镜像
# 在容器中执行多个命令
docker exec -it mtai_workspace /bin/bash -c "\
cd /mtai_workspace/MobiMaliangSDK/ && \
bash install_inside_docker.sh
"
docker exec -it mtai_workspace /bin/bash -c "\
apt-get update && apt-get install ffmpeg libsm6 libxext6 -y && \
pip install -r requirements.txt --no-deps && \
mkdir -p ~/.cache/huggingface/hub/ && \
rm -rf ~/.cache/huggingface/hub/models--openai--clip-vit-large-patch14/ && \
cp -r models/tools/models--openai--clip-vit-large-patch14/ ~/.cache/huggingface/hub/
"
docker exec -it mtai_workspace /bin/bash -c "
cd /mtai_workspace/MobiMaliangSDK/ && \
streamlit run frontend/main.py --server.port 1001
"
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"
echo "---------- 如果不行的,推荐从本教程的手动安装地6步开始手动安装 ----------"