实验简介:
自多态模型GPT-4发布后,AIGC(AI Generated Content,AI生成内容)时代正扑面而来,从单一的文字文本,演化到更丰富的图片、视频、音频、3D模型等。本文将基于HRN人脸重建模型,以人脸头像作为输入,利用层次化表征实现快速人脸几何、纹理恢复,指导您如何实现使用文本生成高精度3D模型。
实验室地址:https://developer.aliyun.com/adc/scenario/ff49015e460d49e9b38e92e0c89b3a6b
查看更多最佳实践:https://www.aliyun.com/daily-act/ecs/markets/aliyun/gpu/aigc
实验说明
1. 实验资源方式简介及开始实验
a.云起实验室实验资源方式介绍:
云起实验室支持个人账户资源一种实验资源方式。
- 个人账户资源
- 使用您个人的云资源进行操作,资源归属于个人。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 平台仅提供手册参考,不会对资源做任何操作。
- 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。
b.准备开始实验
在实验开始前,请您选择个人账户资源,单击确认开启实验。
2. 创建ECS实例
本文使用的ai-inference-solution市场镜像中,内置了以下三个模型及运行环境。
- v1-5-pruned-emaonly.safetensors:Stable Diffusion v1.5模型,一种潜在的text-to-image(文本到图像)的扩散模型,能够在给定任何文本输入的情况下生成逼真的图像。
说明:该模型中文提示词效果不好,建议使用英文提示词。
- Taiyi-Stable-Diffusion-1B-Chinese-v0.1:太乙-中文模型,基于0.2亿筛选过的中文图文对训练,可以使用中文进行AI绘画。
- Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1:太乙-动漫风格模型,首个开源的中文Stable Diffusion动漫模型,该模型是基于Taiyi-Stable-Diffusion-1B-Chinese-v0.1进行继续训练,经过100万筛选过的动漫中文图文对训练得到的。太乙-动漫风格模型不仅能够生成精美的动漫图像,还保留了太乙-中文模型对于中文概念强大的理解能力。
a.前往实例创建页。
b.按照界面提示完成参数配置,创建一台ECS实例。
- 需要注意的参数如下,其他参数的配置,请参见自定义购买实例。
- 实例:选择实例规格为ecs.gn7i-c16g1.4xlarge。
- 镜像:本文使用已部署好推理所需环境的云市场镜像,名称为ai-inference-solution。
- 公网IP:选中分配公网IPv4地址,带宽计费模式选择按使用流量,带宽峰值设置为100 Mbps。以加快模型下载速度。
- 管理设置:为当前ECS实例设置登录密码,登录凭证选择自定义密码,登录名选择root,输入登录密码和确认密码。
c.在云服务ECS购买页面,选中服务协议,单击确认下单。
d.在创建成功对话框中,单击管理控制台。创建完成后,在ECS实例页面,获取公网IP地址。
e.在实例页面,等待状态变为运行中后,即可使用该云服务器ECS,并获取云服务器ECS实例的公网IP地址。
说明:公网IP地址用于生成图片测试时访问WebUI服务。
f.为当前ECS实例添加安全组规则,具体操作,请参见添加安全组规则。
- 安全组规则所属的方向:入方向,端口范围:5000/5000,授权对象:访问WebUI服务的本地客户端公网IP地址(非实例公网IP地址)。例如本地客户端公网IP为101.200.XX.XX,则授权对象为101.200.XX.XX/32。
- 获取本地客户端公网IP地址的方式可能因你所处的网络环境或操作不同而不同。以下是不同系统通过命令方式获取本地客户端公网IP的参考方法:
- Linux操作系统:打开终端,输入curl ifconfig.me命令后回车。
- Windows操作系统:打开命令提示符,输入curl ip.me命令后回车。
- macOS操作系统:打开终端,输入curl ifconfig.me命令后回车。
3. 为Nginx添加用户登录验证
本文所使用的镜像中预装了Nginx软件,用于登录鉴权,以防止非授权用户登录。
a.在实验室页面右侧,单击单击 图标,切换至Web Terminal。
输入ECS服务器登录用户名和密码,登录ECS。
b.执行如下命令,创建登录用户和密码。
说明:${UserName}请替换为您自定义的用户名,例如admin;'${Password}'请替换为您自定义的密码,例如ECS@test1234。
htpasswd -bc /etc/nginx/password ${UserName} '${Password}'
c.执行如下命令,重启Nginx。
systemctl restart nginx
d.执行如下命令,查看Nginx状态。
systemctl status nginx
- 当显示如下图所示的回显信息时,说明Nginx处于运行中。
e.执行如下命令,设置Nginx开机自启动。
systemctl enable nginx
4. 文本生成3D模型
- 步骤一:(可选)基于Stable Diffusion生成头像图片
通过文本生成人脸头像,作为人脸重建模型的图片输入。您也可以跳过该步骤,使用镜像中已有的头像生成3D模型。
a.执行如下命令,启动WebUI服务。
说明:建议您等待1分钟,等待WebUI加载完成。
cd ~/stable-diffusion-webui/ nohup ./run_taiyi.sh &
b.在浏览器地址栏输入http://<ECS公网IP地址>:5000,在弹出的登录对话框,输入为Nginx添加用户登录验证小节中创建的用户名和密码,单击登录。
c.WebUI服务页面左上角,切换模型为v1-5-pruned-emaonly.safetensors。
d.在对话框中输入简单的提示语,单击生成/Generate生成头像,然后单击保存/Save。
说明:以下提示语仅为示例,您可以根据需要,自行输入提示语
Elon Musk,mugshot,smiled
Mark Zuckerberg,mugshot,with a serious face
- 步骤二:使用头像图片生成3D模型
a.执行如下命令,切换conda环境到modelscope中。
conda activate modelscope
b.执行如下命令,切换到scripts目录。
cd /root/scripts
c.(条件必选)上传头像图片。
如果您是通过步骤一:(可选)基于Stable Diffusion生成头像图片生成的图片或自定义图片,需将图片上传到root/scripts目录,并获取带格式的头像图片名称(例如image.png)用于生成3D模型。具体操作,请参见上传文件。
说明:ai-inference-solution镜像中自带了头像图片(存放于root/scripts中),您也可以跳过该步骤,直接使用该镜像中的图片,试玩头像图片生成3D模型。
d.执行如下命令,使用头像图片生成3D模型
./faceTo3D.py 头像图片文件名
- 本文以头像图片文件名为image.png为例(请根据实际需求替换),则命令为:
./faceTo3D.py image.png
说明:首次执行脚本时,会通过公网自动下载所需模型库,100 Mbps带宽下载时间大约为2分钟,请耐心等待。
- 生成的3D模型文件存放在/root/scripts/output目录中,其中.obj、.mtl、.jpg可导入Unity、UE等软件中使用;头像旋转视频(rotation video)、可视化图片(visual image)可用于快速浏览生成效果。
5. 清理释放须知
- 如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击,搜索并单击释放设置,根据界面提示释放实例。
- 如果需要继续使用实例,请您随时关注账户扣费情况,避免欠费。实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
=