本地使用 modelscope 大模型 来进行文本生成视频(Text-to-Video)
-
1. ✅ 创建并激活 Conda 环境(Python 3.8)
-
conda create -n modelscope python=3.8 -yconda activate modelscope
-
2.✅ 安装了 PyTorch(CPU 版本)
-
如果你是 CPU-only 用户(没有 NVIDIA 显卡 或不想用 GPU):
conda install pytorch torchvision torchaudio cpuonly -c pytorch
验证安装是否成功
进入 Python shell:python
然后测试一下:import torch print(torch.__version__) print(torch.cuda.is_available()) # True 表示 GPU 可用
-
3.✅ 安装了 TensorFlow
-
✅ 环境名是
modelscope
4.现在你想在本地使用 modelscope 来进行文本生成视频(Text-to-Video)。
遇到的问题:
1.No module named 'sortedcontainers'Exce
pip install sortedcontainers
Traceback (most recent call last):
File "text-to-video.py", line 7, in <module>
pipe = pipeline('text-to-video-synthesis', model='damo/text-to-video-synthesis')
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/pipelines/builder.py", line 151, in pipeline
model = normalize_model_input(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/pipelines/builder.py", line 39, in normalize_model_input
model = snapshot_download(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/snapshot_download.py", line 108, in snapshot_download
return _snapshot_download(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/snapshot_download.py", line 289, in _snapshot_download
_download_file_lists(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/snapshot_download.py", line 540, in _download_file_lists
_download_single_file(filtered_repo_files)
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/utils/thread_utils.py", line 66, in wrapper
results.append(future.result())
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/concurrent/futures/_base.py", line 437, in result
return self.__get_result()
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/snapshot_download.py", line 527, in _download_single_file
download_file(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/file_download.py", line 691, in download_file
file_digest = http_get_model_file(
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/modelscope/hub/file_download.py", line 582, in http_get_model_file
retry = retry.increment('GET', url, error=e)
File "/home/powersys/miniconda3/envs/modelscope/lib/python3.8/site-packages/urllib3/util/retry.py", line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: None: Max retries exceeded with url: https://www.modelscope.cn/api/v1/models/damo/text-to-video-synthesis/repo?Revision=v1.1.0&FilePath=text2video_pytorch_model.pth (Caused by OSError(28, 'No space left on device'))
from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
from modelscope.models import Model
import os# 文生视频 pipeline
pipe = pipeline('text-to-video-synthesis', model='/home/powersys/work/miniconda/damo/text-to-video-synthesis')# 指定输出路径
output = pipe({'text': 'A panda is eating bamboo'}) # 你可以替换成中文,如 "一个小猫在跳舞"print('输出视频路径:', output[OutputKeys.OUTPUT_VIDEO])
在线下载呢?但是在线下载的路径要指定到/home/powersys/work/miniconda/ 这个路径来
要在线下载 ModelScope 模型,并将模型缓存到你指定的目录 /home/powersys/work/miniconda/
,可以通过设置环境变量 MODELSCOPE_CACHE
来实现。
✅ 一步一步操作指南
✅ 第一步:设置缓存路径
执行以下命令,将 ModelScope 的缓存路径指定为 /home/powersys/work/miniconda
:
export MODELSCOPE_CACHE=/home/powersys/work/miniconda
⚠️ 注意:每次重启终端后都要重新设置一次,或者写入
.bashrc
文件中持久保存:
echo 'export MODELSCOPE_CACHE=/home/powersys/work/miniconda' >> ~/.bashrc source ~/.bashrc
from modelscope.pipelines import pipeline
from modelscope.outputs import OutputKeys
from modelscope.models import Model
import os# 文生视频 pipeline
pipe = pipeline('text-to-video-synthesis', model='damo/text-to-video-synthesis')# 指定输出路径
output = pipe({'text': 'A panda is eating bamboo'}) # 你可以替换成中文,如 "一个小猫在跳舞"print('输出视频路径:', output[OutputKeys.OUTPUT_VIDEO])