基础模型:
- THUDM/CogVideoX-5b
- THUDM/CogVideoX1.5-5B-I2V
数据集:
- BestWishYsh/ConsisID-preview-Data
语言:
- en
库名称: diffusers
许可证: apache-2.0
管道标签: 文本到视频
标签:
- IPT2V
基础模型关系: 微调
🤗 Huggingface Space |
📄 页面 |
🌐 Github |
📜 arxiv |
🐳 数据集
如果您喜欢我们的项目,请在GitHub上给我们一个星标 ⭐ 以获取最新更新。
😍 画廊
身份保持的文本到视频生成。(一些最佳提示在此)
或者您可以点击这里观看视频。
🤗 快速开始
该模型支持使用huggingface diffusers库进行部署。您可以按照以下步骤进行部署。
我们建议您访问我们的GitHub并查看相关的提示优化和转换,以获得更好的体验。
- 安装所需的依赖项
# ConsisID将在下一个版本中合并到diffusers中。因此,目前您应该从源代码安装。
pip install --upgrade consisid_eva_clip pyfacer insightface facexlib transformers accelerate imageio-ffmpeg
pip install git+https://github.com/huggingface/diffusers.git
- 运行代码
import torch
from diffusers import ConsisIDPipeline
from diffusers.pipelines.consisid.consisid_utils import prepare_face_models, process_face_embeddings_infer
from diffusers.utils import export_to_video
from huggingface_hub import snapshot_download
snapshot_download(repo_id="BestWishYsh/ConsisID-preview", local_dir="BestWishYsh/ConsisID-preview")
face_helper_1, face_helper_2, face_clip_model, face_main_model, eva_transform_mean, eva_transform_std = (
prepare_face_models("BestWishYsh/ConsisID-preview", device="cuda", dtype=torch.bfloat16)
)
pipe = ConsisIDPipeline.from_pretrained("BestWishYsh/ConsisID-preview", torch_dtype=torch.bfloat16)
pipe.to("cuda")
prompt = "视频捕捉了一个男孩沿着城市街道行走,用经典的35毫米相机拍摄的黑白画面。他的表情若有所思,眉头微皱,仿佛沉浸在思考中。胶片颗粒为图像增添了质感,唤起了一种怀旧感。在他周围,城市景观充满了复古建筑、鹅卵石人行道和模糊的过往人物轮廓。街灯投下柔和的光芒,阴影在男孩的路径上跳跃,为场景增添了深度。光线突出了男孩微妙的微笑,暗示着一瞬间的好奇心。整体的电影氛围,包括经典电影静止画面的美学和戏剧性的对比,赋予了这个场景一种引人入胜和内省的感觉。"
image = "https://github.com/PKU-YuanGroup/ConsisID/blob/main/asserts/example_images/2.png?raw=true"
id_cond, id_vit_hidden, image, face_kps = process_face_embeddings_infer(
face_helper_1,
face_clip_model,
face_helper_2,
eva_transform_mean,
eva_transform_std,
face_main_model,
"cuda",
torch.bfloat16,
image,
is_align_face=True,
)
video = pipe(
image=image,
prompt=prompt,
num_inference_steps=50,
guidance_scale=6.0,
use_dynamic_cfg=False,
id_vit_hidden=id_vit_hidden,
id_cond=id_cond,
kps_cond=face_kps,
generator=torch.Generator("cuda").manual_seed(42),
)
export_to_video(video.frames[0], "output.mp4", fps=8)
🛠️ 提示优化器
ConsisID对提示质量有较高要求。您可以使用GPT-4o来优化输入文本提示,示例如下(原始提示:“一个男人在弹吉他。”)
一个男人在弹吉他。
将上面的句子改为类似这样(添加一些面部变化,即使是细微的。不要让句子太长):
视频展示了一个男人站在飞机旁边,正在用手机通话。他戴着太阳镜,穿着黑色上衣,表情严肃。飞机侧面有一条绿色条纹,背后有一个巨大的发动机。男人似乎站在飞机的入口附近,可能是准备登机或刚下飞机。场景暗示他可能在机场或私人停机坪。视频的整体氛围专业而专注,男人的着装和飞机的存在表明这是一个商务或旅行场景。
一些示例提示可在此处找到。
💡 GPU内存优化
ConsisID需要约44 GB的GPU内存来解码49帧(6秒视频,8 FPS),输出分辨率为720x480(宽x高),这使得它无法在消费级GPU或免费T4 Colab上运行。可以使用以下内存优化来减少内存占用。复制时可以参考此脚本。
功能(叠加前一项) |
最大分配内存 |
最大保留内存 |
- |
37 GB |
44 GB |
enable_model_cpu_offload |
22 GB |
25 GB |
enable_sequential_cpu_offload |
16 GB |
22 GB |
vae.enable_slicing |
16 GB |
22 GB |
vae.enable_tiling |
5 GB |
7 GB |
pipe.enable_model_cpu_offload()
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
警告:这会增加推理时间,并可能降低质量。
🙌 描述
✏️ 引用
如果您发现我们的论文和代码对研究有帮助,请考虑给予星标和引用。
@article{yuan2024identity,
title={Identity-Preserving Text-to-Video Generation by Frequency Decomposition},
author={Yuan, Shenghai and Huang, Jinfa and He, Xianyi and Ge, Yunyuan and Shi, Yujun and Chen, Liuhan and Luo, Jiebo and Yuan, Li},
journal={arXiv preprint arXiv:2411.17440},
year={2024}
}
🤝 贡献者