基础模型: THUDM/CogVideoX-5b
数据集: finetrainers/crush-smol
库名称: diffusers
许可证: other
许可证链接: https://huggingface.co/THUDM/CogVideoX-5b/blob/main/LICENSE
实例提示: DIFF_crush 一支红色蜡烛放置在金属平台上,一个大型金属圆柱体从上方降下,将蜡烛压扁,仿佛处于液压机之下。蜡烛被压成扁平的圆形,周围留下一堆碎屑。
小部件:
- 文本: DIFF_crush 一支红色蜡烛放置在金属平台上,一个大型金属圆柱体从上方降下,将蜡烛压扁,仿佛处于液压机之下。蜡烛被压成扁平的圆形,周围留下一堆碎屑。
输出:
url: "./assets/output_0.mp4"
- 文本: DIFF_crush 一个灯泡放置在木质平台上,一个大型金属圆柱体从上方降下,将灯泡压碎,仿佛处于液压机之下。灯泡被压成扁平的圆形,周围留下一堆碎屑。
输出:
url: "./assets/output_1.mp4"
- 文本: DIFF_crush 一个厚汉堡放置在餐桌上,一个大型金属圆柱体从上方降下,将汉堡压碎,仿佛处于液压机之下。灯泡被压碎,周围留下一堆碎屑。
输出:
url: "./assets/output_2.mp4"
标签:
- text-to-video
- diffusers-training
- diffusers
- cogvideox
- cogvideox-diffusers
- template:sd-lora
这是对 THUDM/CogVideoX-5b 模型在 finetrainers/crush-smol 数据集上的微调版本。我们还提供了参数的 LoRA 变体。请查看 这里。
代码: https://github.com/a-r-r-o-w/finetrainers
[!重要]
这是一个实验性检查点,其泛化能力较差是众所周知的。
推理代码:
from diffusers import CogVideoXTransformer3DModel, DiffusionPipeline
from diffusers.utils import export_to_video
import torch
transformer = CogVideoXTransformer3DModel.from_pretrained(
"finetrainers/crush-smol-v0", torch_dtype=torch.bfloat16
)
pipeline = DiffusionPipeline.from_pretrained(
"THUDM/CogVideoX-5b", transformer=transformer, torch_dtype=torch.bfloat16
).to("cuda")
prompt = """
DIFF_crush 一个厚汉堡放置在餐桌上,一个大型金属圆柱体从上方降下,将汉堡压碎,仿佛处于液压机之下。灯泡被压碎,周围留下一堆碎屑。
"""
negative_prompt = "不一致的运动, 模糊的运动, 质量较差, 退化的输出, 变形的输出"
video = pipeline(
prompt=prompt,
negative_prompt=negative_prompt,
num_frames=81,
height=512,
width=768,
num_inference_steps=50
).frames[0]
export_to_video(video, "output.mp4", fps=25)
训练日志可在 WandB 这里 查看。
LoRA
我们从微调后的检查点中提取了一个 64 秩的 LoRA(脚本 这里)。这个 LoRA 可用于模拟相同的效果:
代码
from diffusers import DiffusionPipeline
from diffusers.utils import export_to_video
import torch
pipeline = DiffusionPipeline.from_pretrained("THUDM/CogVideoX-5b", torch_dtype=torch.bfloat16).to("cuda")
pipeline.load_lora_weights("finetrainers/cakeify-v0", weight_name="extracted_crush_smol_lora_64.safetensors")
prompt = """
DIFF_crush 一个厚汉堡放置在餐桌上,一个大型金属圆柱体从上方降下,将汉堡压碎,仿佛处于液压机之下。灯泡被压碎,周围留下一堆碎屑。
"""
negative_prompt = "不一致的运动, 模糊的运动, 质量较差, 退化的输出, 变形的输出"
video = pipeline(
prompt=prompt,
negative_prompt=negative_prompt,
num_frames=81,
height=512,
width=768,
num_inference_steps=50
).frames[0]
export_to_video(video, "output_lora.mp4", fps=25)