Sign inSign up

nuvic/generative-models

By nuvic

•Updated over 2 years ago

generative-models projects from stability.ai

Image
Machine learning & AI
0

195

nuvic/generative-models repository overview

⁠generative-models

作者:魏文应 时间:2024-04-19


⁠说明

根据 generative-models⁠ 项目说明进行配置。以下是各版本说明:

版本说明备注
base-environment基础环境
SVD图生视频
SV3D图生3D

⁠base-environment

⁠使用说明
条目说明备注
基础镜像nuvic/pytorch:2.2.0-python3.10-cuda11.2.2-ubuntu20.04
系统OSubuntu20.04
NVIDIA DriverNVIDIA-SMI 460.106.00 Driver Version: 460.106.00 CUDA Version: 11.2
CUDA11.8
miniconda24.1.0
pytorch2.2.0
generative-modelsmain(2024-04-16)

使用本镜像创建容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=0,1"' -it --name sgm nuvic/generative-models:base-environment bash

然后在容器中,执行下面命令(测试图生视频任务):

# 这里写你的代理
export HTTP_PROXY=socks5://192.168.10.232:10808
export HTTPS_PROXY=socks5://192.168.10.232:10808
export ALL_PROXY=socks5://192.168.30.107:10808

cd /root/workspace/generative-models/
mkdir -p checkpoints
tsocks huggingface-cli download stabilityai/stable-video-diffusion-img2vid svd.safetensors --local-dir=checkpoints/

# 当抛出如下异常时:
# 	urllib.error.URLError: <urlopen error Remote end closed connection without response>
# 则执行以下命令去除科学上网代理:
# 	unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 然后再重新执行下面命令:
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

然后在浏览器中,打开链接(如 http://192.168.10.144:10234/) ,上传图,并点击sample即可。

⁠创建过程

启动容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=6,7"' -it --name SV3D nuvic/pytorch:2.2.0-python3.10-cuda11.2.2-ubuntu20.04 bash

执行上面命令后,此时已经进入了容器,在容器执行 python,查看pytorch是否可以正常调用GPU:

import torch

print(torch.cuda.is_available())  # 返回True表明正常

添加你的科学上网代理工具:

# 这里写你的代理
export HTTP_PROXY=socks5://192.168.10.232:10808
export HTTPS_PROXY=socks5://192.168.10.232:10808
export ALL_PROXY=socks5://192.168.30.107:10808
cd /root/workspace/
git clone https://github.com/Stability-AI/generative-models.git
cd generative-models/

执行下面命令,安装Python环境:

# TypeError: TiffWriter.write() got an unexpected keyword argument 'fps'
pip install scikit-image==0.20.0 imageio==2.19.3 imageio-ffmpeg==0.4.7 
conda install ffmpeg=4.2.2

# https://github.com/facebookresearch/xformers
# xformers的版本要求比较严格,安装时要注意cuda相关库是否在下载,如果在下载,说明版本和当前Pytorch版本不匹配
conda install xformers -c xformers

conda install torchaudio torchmetrics torchvision
conda install transformers matplotlib scipy pandas pillow
conda install httpx[socks]  # 代理工具需要
conda install streamlit-keyup

pip install torchdata
pip install -e git+https://github.com/openai/CLIP.git@main#egg=clip
pip install pytorch_lightning==2.2.0
pip install opencv-python==4.6.0.66
pip install einops gradio
pip install omegaconf open-clip-torch

pip install webdataset wandb 
pip install tensorboardx pudb rembg 
pip install ninja natsort kornia 
pip install invisible-watermark fsspec 
pip install fire fairscale chardet black

执行下面命令,配置一下gradio:

# 这里配置你的科学上网代理工具
vim /etc/tsocks.conf 

# 配置完成后,下载一个文件
tsocks wget https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_linux_amd64 && \
mv frpc_linux_amd64 frpc_linux_amd64_v0.2 && \
chmod +x frpc_linux_amd64_v0.2 && \
mv frpc_linux_amd64_v0.2 /root/miniconda3/lib/python3.10/site-packages/gradio/

图生视频模型,进行测试,先下载 svd.safetensors⁠ 文件:

mkdir -p checkpoints
tsocks huggingface-cli download stabilityai/stable-video-diffusion-img2vid svd.safetensors --local-dir=checkpoints/

然后执行下面命令:

# 当抛出如下异常时:
# 	urllib.error.URLError: <urlopen error Remote end closed connection without response>
# 则执行以下命令去除科学上网代理:
# 	unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 然后再重新执行下面命令:
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

加载svd模型后,可能会抛出如下异常:

# 不影响,这是因为没有上传图片,就自动运行导致的,上传图片即可
TypeError: randn_like(): argument 'input' (position 1) must be Tensor, not NoneType

接着随便上传一张图片,然后点击 sampling ,生成得到视频。执行无误后,生成的图片在 /root/workspace/output 目录下。执行下面命令,清除缓存:

# 清除生成结果
rm -rf /root/workspace/generative-models/outputs
rm -rf /root/.cache/huggingface/
# 清除代理
unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 清除pip和conda缓存
pip cache purge && conda clean -y --all

exit

在物理机命令行中,执行下面命令,提交镜像:

# docker commit 容器名称 镜像名称
docker commit SV3D nuvic/generative-models:base-environment

# docker login
docker push nuvic/generative-models:base-environment

⁠SVD

⁠使用说明
条目说明备注
基础镜像nuvic/generative-models:base-environment
系统OSubuntu20.04
NVIDIA DriverNVIDIA-SMI 460.106.00 Driver Version: 460.106.00 CUDA Version: 11.2
CUDA11.8
miniconda24.1.0
pytorch2.2.0
generative-modelsmain(2024-04-16)

使用本镜像创建容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=0,1"' -it --name SVD nuvic/generative-models:SVD bash

然后在容器中,执行下面命令(测试图生视频任务):

cd /root/workspace/generative-models/
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

然后在浏览器中,打开链接(如 http://192.168.10.144:10234/) ,上传图,并点击sample即可。

⁠创建过程

启动容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=6,7"' -it --name SV3D nuvic/generative-models:base-environment bash

执行上面命令后,此时已经进入了容器,在容器执行 python,查看pytorch是否可以正常调用GPU:

import torch

print(torch.cuda.is_available())  # 返回True表明正常

添加你的科学上网代理工具:

# 这里写你的代理
export HTTP_PROXY=socks5://192.168.10.232:10808
export HTTPS_PROXY=socks5://192.168.10.232:10808
export ALL_PROXY=socks5://192.168.30.107:10808

图生视频模型,进行测试,先下载 svd.safetensors⁠ 文件:

cd /root/workspace/generative-models/
mkdir -p checkpoints
tsocks huggingface-cli download stabilityai/stable-video-diffusion-img2vid svd.safetensors --local-dir=checkpoints/

然后执行下面命令:

# 当抛出如下异常时:
# 	urllib.error.URLError: <urlopen error Remote end closed connection without response>
# 则执行以下命令去除科学上网代理:
# 	unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 然后再重新执行下面命令:
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

加载svd模型后,可能会抛出如下异常:

# 不影响,这是因为没有上传图片,就自动运行导致的,上传图片即可
TypeError: randn_like(): argument 'input' (position 1) must be Tensor, not NoneType

接着随便上传一张图片,然后点击 sampling ,生成得到视频。执行无误后,生成的图片在 /root/workspace/output 目录下。执行下面命令,清除缓存:

# 清除生成结果
rm -rf /root/workspace/generative-models/outputs
# 清除代理
unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 清除pip和conda缓存
pip cache purge && conda clean -y --all

exit

在物理机命令行中,执行下面命令,提交镜像:

# docker commit 容器名称 镜像名称
docker commit SVD nuvic/generative-models:SVD

# docker login
docker push nuvic/generative-models:SVD

⁠SV3D_u

⁠使用说明
条目说明备注
基础镜像nuvic/generative-models:base-environment
系统OSubuntu20.04
NVIDIA DriverNVIDIA-SMI 460.106.00 Driver Version: 460.106.00 CUDA Version: 11.2
CUDA11.8
miniconda24.1.0
pytorch2.2.0
generative-modelsmain(2024-04-16)
功能单图像输入生成轨道视频,无需相机调节。

使用本镜像创建容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=0,1"' -it --name SVD_u nuvic/generative-models:SVD_u bash

然后在容器中,执行下面命令(测试图生视频任务):

cd /root/workspace/generative-models/
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

然后在浏览器中,打开链接(如 http://192.168.10.144:10234/) ,上传图,并点击sample即可。

⁠创建过程

启动容器:

# docker run --gpus 指定物理GPU  -it --name 自定义容器名称 镜像名称:版本(相应版本要求物理机nvidia driver支持) bash
docker run --network host --gpus '"device=6,7"' -it --name SV3D nuvic/generative-models:base-environment bash

执行上面命令后,此时已经进入了容器,在容器执行 python,查看pytorch是否可以正常调用GPU:

import torch

print(torch.cuda.is_available())  # 返回True表明正常

添加你的科学上网代理工具:

# 这里写你的代理
export HTTP_PROXY=socks5://192.168.10.232:10808
export HTTPS_PROXY=socks5://192.168.10.232:10808
export ALL_PROXY=socks5://192.168.30.107:10808

图生视频模型,进行测试,先下载 sv3d_u.safetensors⁠ 文件:

cd /root/workspace/generative-models/
mkdir -p checkpoints
# 下载前要登录huggingface
tsocks huggingface-cli login
tsocks huggingface-cli download stabilityai/sv3d sv3d_u.safetensors --local-dir=checkpoints/

然后执行下面命令:

# 当抛出如下异常时:
# 	urllib.error.URLError: <urlopen error Remote end closed connection without response>
# 则执行以下命令去除科学上网代理:
# 	unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 然后再重新执行下面命令:
PYTHONPATH=. streamlit run scripts/demo/video_sampling.py --server.port 10234

加载svd模型后,可能会抛出如下异常:

# 不影响,这是因为没有上传图片,就自动运行导致的,上传图片即可
TypeError: randn_like(): argument 'input' (position 1) must be Tensor, not NoneType

接着随便上传一张图片,然后点击 sampling ,生成得到视频。执行无误后,生成的图片在 /root/workspace/output 目录下。执行下面命令,清除缓存:

# 删除huggingface token
rm /root/.cache/huggingface/token
# 清除生成结果
rm -rf /root/workspace/generative-models/outputs
# 清除代理
unset HTTP_PROXY && unset HTTPS_PROXY && unset ALL_PROXY
# 清除pip和conda缓存
pip cache purge && conda clean -y --all

exit

在物理机命令行中,执行下面命令,提交镜像:

# docker commit 容器名称 镜像名称
docker commit SV3D nuvic/generative-models:SV3D_u

# docker login
docker push nuvic/generative-models:SV3D_u

Tag summary

Content type

Image

Digest

sha256:2622b13d2…

Size

22.4 GB

Last updated

over 2 years ago

docker pull nuvic/generative-models:SVD