Open-Sora 如何用 CSV 提示词文件批量生成多条视频?
Open-Sora 如何用 CSV 提示词文件批量生成多条视频【免费下载链接】Open-SoraOpen-Sora: Democratizing Efficient Video Production for All项目地址: https://gitcode.com/GitHub_Trending/op/Open-Sora当手里有几十条提示词时逐条用--prompt跑 scripts/diffusion/inference.py 并不高效。Open-Sora 的推理脚本支持通过--dataset.data-path传入一个 CSV 文件文件中每行的text作为一条提示词逐行生成一条视频结果写入--save-dir指定的目录。本文说明如何基于 Open-Sora 2.011B权重在已安装好依赖的 CUDA GPU 环境里完成这条“CSV 批量出片”的操作路径以及如何核对生成结果。环境与模型权重准备按照 README.md Quickstart 一节安装环境Python 3.10以 conda 为例要求 torch 2.4.0conda create -n opensora python3.10 conda activate opensora git clone https://gitcode.com/GitHub_Trending/op/Open-Sora cd Open-Sora pip install -v . pip install xformers0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121 # install xformers according to your cuda version pip install flash-attn --no-build-isolationREADME 另提供一个可选项安装 flash attention 3 可以获得更快的速度不属于必需步骤。下载 11B 模型权重支持 256px 与 768px 分辨率T2V 与 I2V 同一模型pip install huggingface_hub[cli] huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts也可以从 ModelScope 下载pip install modelscope modelscope download hpcai-tech/Open-Sora-v2 --local_dir ./ckpts推理配置中引用的权重路径都指向./ckpts/下configs/diffusion/inference/256px.py 引用Open_Sora_v2.safetensors、hunyuan_vae.safetensors、google/t5-v1_1-xxl、openai/clip-vit-large-patch14t2i2v 配置 configs/diffusion/inference/plugins/t2i2v.py 还引用flux1-dev.safetensors与flux1-dev-ae.safetensors用于先文生图再图生视频的流程。按上面命令把整个模型仓库下载到./ckpts即可满足这些路径。编写 CSV 提示词文件推理脚本通过 pandas 的read_csv读取 CSV见 opensora/datasets/utils.py 中read_file所以就是普通的 CSV 文件。仓库自带两种格式文生视频的 assets/texts/example.csv只有一列text共 8 条示例提示词每行一条内容用双引号包裹text Imagine a cyberpunk close-up shot capturing the upper body of a character ... A sleek red sports car speeds through a winding mountain road, ...以上为仓库示例文件内容的节选图生视频的 assets/texts/i2v.csv两列text,refref填参考图片路径text,ref A plump pig wallows in a muddy pond on a rustic farm, ...,assets/texts/i2v.png提示词里含逗号时保持双引号包裹与仓库示例文件一致避免被解析成列分隔符。CSV 的生效逻辑在 scripts/diffusion/inference.py命令行未传--prompt时脚本用dataset.data_path构建TextDatasetopensora/datasets/datasets.py 中注册名为text的数据集类来批量读取 CSV而如果传了--prompt脚本会在保存目录下生成一个单行的临时prompt.csv并使用它此时你传入的 CSV 不会生效。所以批量模式只传 CSV、不要同时带--prompt。用 CSV 批量执行文生视频README 给出的 256px 文生视频走 t2i2v 流程flux 先生成条件图再生成视频。把单条 prompt 换成 CSV 就是批量命令torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --dataset.data-path assets/texts/example.csv--save-dir samples输出根目录不存在时脚本会自动创建。--dataset.data-pathCSV 文件路径。命令行参数优先覆盖配置文件中的同名字段合并逻辑见 opensora/utils/config.py因此无需修改配置文件。显存紧张时加--offload TrueREADME 中给出的省显存选项。图生视频的 CSV 批量用法同理CSV 中ref列指向参考图两条 README 示例命令分别为# 256px单卡 torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --dataset.data-path assets/texts/i2v.csv # 768px8 卡序列并行 torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --cond_type i2v_head --dataset.data-path assets/texts/i2v.csvconfigs/diffusion/inference/768px.py 继承 256px.py 并加入序列并行插件plugins/sp.py仅把分辨率改为 768px需要多卡运行。确认生成成功运行日志与输出目录里有三个可核对的点构建数据集后打印Dataset contains 8 samples.——样例数等于 CSV 数据行数对 8 行的 example.csv 即为 8说明 CSV 被完整读取。每保存一条视频都会打印文档示例路径随实际--save-dir变化Saved to samples/video_256px/example_0000.mp4全部完成后打印Inference finished.。按 opensora/utils/inference.py 的保存逻辑输出目录结构为samples/ └── video_256px/ ├── example_0000.mp4 # 对应 CSV 第 1 行 ├── example_0000.txt # 对应的提示词 ├── example_0001.mp4 ├── ... └── generated_condition/ # t2i2v 流程的 flux 条件图 └── example_0000.png视频文件名取“CSV 文件主名 4 位零填充行号”example.csv → example_0000.mp4 至 example_0007.mp4旁边同名.txt记录该行的提示词。视频以 h264 编码crf 23保存帧率取配置里的fps_save256px.py 中为 24。简单的完整性检查samples/video_256px/下.mp4文件数量应与 CSV 数据行数一致且日志以Inference finished.结束。参数调整与限制--num-sample k为每条提示词生成 k 个样本README 说明脚本按 epoch 循环、每轮使用不同种子。复现同一结果README 示例为--sampling_option.seed 42 --seed 42固定随机种子。--aspect_ratio候选值为16:9、9:16、1:1、2.39:1--num_frames取值须为4k1且小于 129README 说明。只想跑 CSV 的部分行时可用start_index/end_index截取范围该参数 README 未单独说明用法见 scripts/diffusion/inference.py 第 82–87 行例如加--start-index 0 --end-index 3只生成前 4 行。CSV 通过 pandas 整体读入内存memory_efficient模式对 CSV 不支持opensora/datasets/utils.py 中有断言提示词行极多时留意内存。脚本按行顺序逐条生成批量总耗时约等于单条耗时 × 行数。单条耗时可参考 README 在 H100/H800 上、50 步的测试256×256 单卡约 60s、峰值显存 52.5GB768×768 单卡约 1656s8 卡序列并行约 276s。【免费下载链接】Open-SoraOpen-Sora: Democratizing Efficient Video Production for All项目地址: https://gitcode.com/GitHub_Trending/op/Open-Sora创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考