腾讯混元文生图模型HunyuanDiT部署体验

最近,腾讯混元文生图模型HunyuanDiT 架构升级,并免费开源了。他采用的神经网络架构和Sara一样都是Diffusion Transformer,参数量已经达到15亿。官方测评效果显示超过目前开源的Stable Diffusion。试用下来效果比较令人惊喜。

建议硬件要求(模型推理):
INT4 : RTX30901或 RTX40901,显存24GB,内存32GB,系统盘200GB
如果你没有 GPU 硬件的话,也可以在 CPU 上进行推理,但是推理速度会更慢。
模型微调硬件要求更高。一般不建议个人用户环境使用

本文在Docker环境下部署,如需直接部署请参考官网相关说明。

环境准备

模型准备
  • 第一步:模型下载

git clone https://huggingface.co/Tencent-Hunyuan/HunyuanDiT

下载地址: https://huggingface.co/Tencent-Hunyuan/HunyuanDiT
模型名称: Tencent-Hunyuan/HunyuanDiT
本文统一放在模型存档目录:/u01/workspace/models/HunyuanDiT

  • 第二步:由于在启动时需要通过huggingface加载openai/clip-vit-large-patch14-336视觉模型,正常情况下不通过科学上网这里基本无法自动下载到该模型。也需要请提前下载好该模型

git clone https://huggingface.co/openai/clip-vit-large-patch14-336
保存位置:/u01/workspace/models/clip-vit-large-patch14-336
修改第一步下载模型中的配置文件:/u01/workspace/models/HunyuanDiT/dialoggen/config.json中mm_vision_tower 的值改为刚下载clip-vit-large-patch14-336的绝对路径下。
“mm_vision_tower”: “/u01/workspace/models/clip-vit-large-patch14-336”,, 如下图所示:
image.png

下载源码
git clone https://github.com/Tencent/HunyuanDiT; 
cd HunyuanDiT
Dockerfile样例

注意 COPY HunyuanDiT/ /app/HunyuanDiT/ 这行执行需要根据世纪HunyuanDiT源码下载存放位置。

FROM pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
ARG DEBIAN_FRONTEND=noninteractive


WORKDIR /app

RUN pip install --user nvidia-pyindex

RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com

RUN mkdir -p /u01/workspace/models/

COPY HunyuanDiT/ /app/HunyuanDiT/
WORKDIR /app/HunyuanDiT

RUN python -m pip install --verbose --use-pep517 -r requirements.txt
RUN pip install bitsandbytes huggingface_hub==0.23.0


EXPOSE 8000 8051

CMD [ "python","app/hydit_app.py"]

本文采用基础镜像pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime 自带的 pip 相关版本与源码中的部分版本冲突(torchvision,protobuf,nvidia-pyindex),所以,下载原名后需要修改requirements.txt文件:

#--extra-index-url https://pypi.ngc.nvidia.com
timm==0.9.5
diffusers==0.21.2
peft==0.10.0
#protobuf==3.19.0
#torchvision==0.14.1
transformers==4.37.2
accelerate==0.29.3
loguru==0.7.2
einops==0.7.0
sentencepiece==0.1.99
cuda-python==11.7.1
onnxruntime==1.12.1
onnx
#nvidia-pyindex==1.0.9
onnx-graphsurgeon==0.5.2
polygraphy==0.49.9
pandas==2.0.3
gradio==4.31.0

构建image
docker build -t qingcloudtech/hunyuandit:v1.0 .
运行docker
docker run -it --gpus all \
  -p 8501:8501 \
  -v /u01/workspace/models:/u01/workspace/models \
  qingcloudtech/hunyuandit:v1.0 \
  python app/hydit_app.py --model-root /u01/workspace/models/HunyuanDiT --no-enhance

注意:
–no-enhance :禁用增强模型,低显卡配置情况下请启用,否则会报显存错误

访问并验证

默认地址: http://127.0.0.1:443
image.png在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


【Qinghub Studio 】更适合开发人员的低代码开源开发平台
【QingHub企业级应用统一部署】
【QingHub企业级应用开发管理】
QingHub** 演示】**
https://qingplus.cn

### 腾讯混元文生视频的工作流与实现方式 腾讯混元系列模型涵盖了多种多模态生成能力,其中包括文生文生视频等功能。虽然具体的文生视频工作流尚未完全公开,但基于已有的研究和技术趋势[^1],可以推测其可能的技术架构和实现流程。 #### 1. 多模态预训练基础 腾讯混元文生视频的核心依赖于强大的多模态预训练模型。这些模型通常通过大规模文对数据进行训练,能够理解自然语言描述并将其映射到视觉空间。具体来说,这种预训练过程涉及以下几个方面: - **跨模态对齐**:通过对大量文本和像/视频的数据对进行学习,使模型能够在不同模态之间建立关联。 - **上下文建模**:利用Transformer结构捕捉输入文本中的复杂关系,并预测对应的视觉内容特征。 #### 2. 文本解析与条件编码 在生成过程中,输入的自然语言会被转化为一种中间表示形式,称为条件向量(Condition Vector)。这一阶段的主要任务是对用户的文字指令进行全面分析,提取其中的关键信息,如主题、风格、动作序列等。此部分可能会采用类似于CLIP这样的对比学习方法来增强语义理解和泛化能力。 #### 3. 帧级生成模块 对于视频生成而言,逐帧创建高质量的画面至关重要。这一步骤往往借助扩散模型(Diffusion Model)或者自回归生成器完成。例如,在给定初始噪声的基础上逐步迭代更新像素分布直至收敛至目标画面;又或者是按照时间顺序依次渲染每一帧的内容以形成连贯动态效果。 #### 4. 动态一致性保障机制 为了确保最终输出具备流畅性和逻辑性,还需要特别设计一些辅助组件用于监控相邻帧之间的过渡情况以及整体叙事线索是否合理顺畅。这类技术手段包括但不限于光流估计、姿态追踪以及场景分割等等。 以下是简化版伪代码展示如何构建这样一个系统框架: ```python import torch from transformers import AutoTokenizer, CLIPModel from diffusers import DiffusionPipeline def generate_video(text_prompt: str, num_frames:int=10): tokenizer = AutoTokenizer.from_pretrained("clip-vit-base-patch32") clip_model = CLIPModel.from_pretrained("clip-vit-base-patch32").eval() diffusion_pipeline = DiffusionPipeline.from_pretrained('stable-diffusion').to(torch.device("cuda")) tokenized_text = tokenizer([text_prompt], padding=True, truncation=True, return_tensors="pt")["input_ids"] text_features = clip_model.get_text_features(tokenized_text) video_frames = [] for i in range(num_frames): frame_image = diffusion_pipeline(prompt_embeds=text_features).images[0] video_frames.append(frame_image) return video_frames ``` 上述代码仅作为概念演示用途,并未体现实际工业级别解决方案所需考虑诸多细节问题比如性能调优、资源管理等方面的要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值