이 저장소에는 Hunyuan-DiT를 탐색하는 논문에 대한 PyTorch 모델 정의, 사전 훈련된 가중치 및 추론/샘플링 코드가 포함되어 있습니다. 프로젝트 페이지에서 더 많은 시각화를 확인할 수 있습니다.
Hunyuan-DiT: 세밀한 중국어 이해를 갖춘 강력한 다중 해상도 확산 변환기
DialogGen: 다중 회전 텍스트-이미지 생성을 위한 다중 모드 대화형 대화 시스템
2024년 7월 15일: HunYuanDiT와 Shakker.Ai는 HunYuanDiT 1.2 모델을 기반으로 하는 미세 조정 이벤트를 공동으로 시작했습니다. HunYuanDiT를 기반으로 lora 또는 미세 조정된 모델을 게시하면 Shakker.Ai에서 최대 $230의 보너스를 받을 수 있습니다. 자세한 내용은 Shakker.Ai를 참조하세요.
2024년 7월 15일: ? ComfyUI를 업데이트하여 표준화된 워크플로를 지원하고 t2i 모듈 및 버전 1.1/1.2용 Lora 교육의 가중치와 Kohya 또는 공식 스크립트에서 교육한 가중치와의 호환성을 지원합니다. 자세한 내용은 ComfyUI를 참조하세요.
2024년 7월 15일: ⚡ 우리는 CUDA 11/12용 Docker 환경을 제공하여 복잡한 설치를 우회하고 클릭 한 번으로 플레이할 수 있습니다! 자세한 내용은 도커를 참조하세요.
2024년 7월 8일: ? HYDiT-v1.2 버전이 출시되었습니다. 자세한 내용은 HunyuanDiT-v1.2 및 Distillation-v1.2를 확인하세요.
2024년 7월 3일: ? 이제 v1.1 및 v1.2 모델에서 추론용 GUI를 갖춘 Kohya-hydit 버전을 사용할 수 있습니다. 공식 Kohya 버전은 검토 중입니다. 자세한 내용은 코야를 참조하세요.
2024년 6월 27일: ? 학습 데이터에 세밀한 캡션을 제공하는 Hunyuan-Captioner가 출시되었습니다. 자세한 내용은 mllm을 참조하세요.
2024년 6월 27일: ? 디퓨저에서 LoRa 및 ControlNet을 지원합니다. 자세한 내용은 디퓨저를 참조하세요.
2024년 6월 27일: ? 6GB GPU VRAM 추론 스크립트가 출시되었습니다. 자세한 내용은 라이트를 참조하세요.
2024년 6월 19일: ? 캐니, 포즈, 깊이 제어를 지원하는 ControlNet이 출시되었습니다. 자세한 내용은 훈련/추론 코드를 참조하세요.
2024년 6월 13일: ⚡ 이미지 과포화 문제와 워터마크 문제를 완화하는 HYDiT-v1.1 버전이 출시되었습니다. 자세한 내용은 HunyuanDiT-v1.1 및 Distillation-v1.1을 확인하세요.
2024년 6월 13일: ? 전체 매개변수 훈련과 LoRA 훈련을 제공하는 훈련 코드가 출시되었습니다.
2024년 6월 6일: ? 이제 Hunyuan-DiT를 ComfyUI에서 사용할 수 있습니다. 자세한 내용은 ComfyUI를 확인하세요.
2024년 6월 6일: NVIDIA GPU에서 50% 가속을 달성하는 Hunyuan-DiT 가속용 Distillation 버전을 소개합니다. 자세한 내용은 증류를 확인하세요.
2024년 6월 5일: ? Hunyuan-DiT는 이제 ? 디퓨저! 아래 예시를 확인해주세요.
2024년 6월 4일: Tencent Cloud 링크를 지원하여 사전 훈련된 모델을 다운로드하세요! 아래 링크를 확인해주세요.
2024년 5월 22일: NVIDIA GPU에서 47% 가속을 달성하는 Hunyuan-DiT 가속용 TensorRT 버전을 소개합니다. 지침은 TensorRT-libs를 확인하세요.
2024년 5월 22일: 이제 다중 회전 text2image 생성을 실행하는 데모를 지원합니다. 아래 스크립트를 확인해주세요.
당사의 혁신적인 제품을 탐색할 수 있는 웹 기반 Tencent Hunyuan Bot 에 오신 것을 환영합니다! Hunyuan 텍스트-이미지 생성 기능을 활성화하려면 아래 제안된 프롬프트나 그림 관련 키워드가 포함된 기타 상상적인 프롬프트를 입력하세요. 창의력을 발휘하여 원하는 사진을 모두 무료로 만들어보세요!
자연어 텍스트와 유사한 간단한 프롬프트를 사용할 수 있습니다.
画一只穿着西装的猪
양복을 입은 돼지를 그리다
生成一幅画,赛博朋克风,跑车
그림, 사이버펑크 스타일, 스포츠카 생성
또는 그림을 만들기 위한 여러 차례의 언어 상호 작용.
画一个木제적鸟
나무 새를 그려라
变成玻璃的
유리로 변하다
Hunyuan-DiT(텍스트-이미지 모델)
추론
체크포인트
증류 버전
TensorRT 버전
훈련
로라
컨트롤넷(포즈, 캐니, 깊이)
6GB GPU VRAM 추론
IP 어댑터
Hunyuan-DiT-S 체크포인트(0.7B 모델)
음
추론
추론
Hunyuan-Captioner(원본 이미지-텍스트 쌍 다시 캡션)
Hunyuan-DialogGen(신속한 향상 모델)
웹 데모(Gradio)
다중 회전 T2I 데모(Gradio)
Cli 데모
ComfyUI
디퓨저
코야
웹UI
Hunyuan-DiT: 세밀한 중국어 이해를 갖춘 강력한 다중 해상도 확산 변환기
예
지침
추론
그라디오
컨트롤넷
6GB GPU VRAM 추론
그라디오 사용하기
? 디퓨저
명령줄 사용
더 많은 구성
ComfyUI 사용
코야 이용하기
이전 버전 사용
데이터 준비
전체 매개변수 교육
로라
Linux용 설치 안내서
중국어-영어 이중 언어 DiT 아키텍처
다중 회전 Text2Image 생성
소식!!
웹에서 사용해 보세요
오픈소스 계획
내용물
추상적인
Hunyuan-DiT 주요 특징
비교
심상
요구사항
종속성 및 설치
사전 훈련된 모델 다운로드 - 1. HF-Mirror 사용 - 2. 다운로드 재개
훈련
추론
어댑터
훈위안 캡셔너
가속(Linux용)
BibTeX
시작 기록
영어와 중국어를 모두 세밀하게 이해하는 텍스트-이미지 확산 변환기인 Hunyuan-DiT를 소개합니다. Hunyuan-DiT를 구성하기 위해 변환기 구조, 텍스트 인코더 및 위치 인코딩을 신중하게 설계했습니다. 또한 반복적인 모델 최적화를 위해 데이터를 업데이트하고 평가하기 위해 전체 데이터 파이프라인을 처음부터 구축합니다. 세밀한 언어 이해를 위해 다중 모드 대형 언어 모델을 훈련하여 이미지 캡션을 개선합니다. 마지막으로 Hunyuan-DiT는 사용자와 다단계 다중 모드 대화를 수행하여 상황에 따라 이미지를 생성하고 다듬을 수 있습니다. Hunyuan-DiT는 50명 이상의 전문 인간 평가자가 포함된 신중하게 설계된 전체적인 인간 평가 프로토콜을 통해 다른 오픈 소스 모델과 비교하여 중국어-이미지 생성 분야에서 새로운 최첨단 기술을 설정합니다.
Hunyuan-DiT는 아래 그림과 같이 잠재 공간의 확산 모델입니다. 잠재 확산 모델에 이어 사전 훈련된 VAE(Variational Autoencoder)를 사용하여 이미지를 저차원 잠재 공간으로 압축하고 확산 모델을 훈련하여 확산 모델로 데이터 분포를 학습합니다. 우리의 확산 모델은 변환기를 사용하여 매개변수화됩니다. 텍스트 프롬프트를 인코딩하기 위해 사전 훈련된 이중 언어(영어 및 중국어) CLIP과 다국어 T5 인코더의 조합을 활용합니다.
자연어 지침을 이해하고 사용자와 여러 차례 상호 작용을 수행하는 것은 텍스트-이미지 시스템에 중요합니다. 이는 사용자의 아이디어를 단계별로 현실화하는 역동적이고 반복적인 생성 프로세스를 구축하는 데 도움이 될 수 있습니다. 이 섹션에서는 Hunyuan-DiT에 다단계 대화 및 이미지 생성 기능을 제공하는 방법을 자세히 설명합니다. 우리는 다중 라운드 사용자 대화를 이해하고 이미지 생성을 위한 새로운 텍스트 프롬프트를 출력하도록 MLLM을 교육합니다.
HunyuanDiT와 다른 모델의 생성 기능을 종합적으로 비교하기 위해 텍스트-이미지 일관성, AI 인공물 제외, 주제 명확성, 미학을 포함한 4차원 테스트 세트를 구축했습니다. 50명 이상의 전문 평가자가 평가를 수행합니다.
모델 | 오픈 소스 | 텍스트-이미지 일관성(%) | AI 아티팩트 제외(%) | 주제 명확성(%) | 미학(%) | 전반적인 (%) | ||||
---|---|---|---|---|---|---|---|---|---|---|
SDXL | ✔ | 64.3 | 60.6 | 91.1 | 76.3 | 42.7 | ||||
PixArt-α | ✔ | 68.3 | 60.9 | 93.2 | 77.5 | 45.5 | ||||
플레이그라운드 2.5 | ✔ | 71.9 | 70.8 | 94.9 | 83.3 | 54.3 | ||||
SD 3 | ✘ | 77.1 | 69.3 | 94.6 | 82.5 | 56.7 | ||||
미드저니 v6 | ✘ | 73.5 | 80.2 | 93.5 | 87.2 | 63.3 | ||||
DALL-E 3 | ✘ | 83.9 | 80.3 | 96.5 | 89.4 | 71.0 | ||||
훈위안-DiT | ✔ | 74.2 | 74.3 | 95.4 | 86.6 | 59.0 |
중국 요소
긴 텍스트 입력
다중 회전 Text2Image 생성
이 저장소는 DialogGen(즉시 향상 모델)과 Hunyuan-DiT(텍스트-이미지 모델)로 구성됩니다.
다음 표는 모델 실행을 위한 요구 사항을 보여줍니다(배치 크기 = 1).
모델 | --load-4bit(DialogGen) | GPU 최대 메모리 | GPU |
---|---|---|---|
DialogGen + Hunyuan-DiT | ✘ | 32G | A100 |
DialogGen + Hunyuan-DiT | ✔ | 22G | A100 |
훈위안-DiT | - | 11G | A100 |
훈위안-DiT | - | 14G | RTX3090/RTX4090 |
CUDA를 지원하는 NVIDIA GPU가 필요합니다.
우리는 V100 및 A100 GPU를 테스트했습니다.
최소 : 필요한 최소 GPU 메모리는 11GB입니다.
권장 : 더 나은 생성 품질을 위해 32GB 메모리를 갖춘 GPU를 사용하는 것이 좋습니다.
테스트된 운영 체제: Linux
저장소를 복제하여 시작합니다.
자식 클론 https://github.com/tencent/HunyuanDiTcd HunyuanDiT
Conda 환경 설정을 위한 environment.yml
파일을 제공합니다. Conda의 설치 지침은 여기에서 확인할 수 있습니다.
CUDA 버전 11.7 및 12.0+를 권장합니다.
# 1. conda 환경 준비conda env create -f Environment.yml# 2. 환경 활성화conda activate HunyuanDiT# 3. pip 종속성 설치python -m pip install -r 요구사항.txt# 4. 가속을 위해 Flash Attention v2 설치(CUDA 11.6 이상 필요) 위)python -m pip install git+https://github.com/Dao-AILab/[email protected]
또한 docker를 사용하여 환경을 설정할 수도 있습니다.
# 1. 다음 링크를 사용하여 docker 이미지 tar 파일을 다운로드합니다.# CUDA 12wget의 경우 https://dit.hunyuan.tencent.com/download/HunyuanDiT/hunyuan_dit_cu12.tar# CUDA 11wget의 경우 https://dit.hunyuan. tencent.com/download/HunyuanDiT/hunyuan_dit_cu11.tar# 2. docker tar 파일을 가져오고 이미지 메타 정보를 표시합니다.# CUDA 12docker load -i hunyuan_dit_cu12.tar# CUDA 11docker load -i hunyuan_dit_cu11.tar docker image ls# 3. imagedocker run -dit --gpus all --init --net=host --uts=host --ipc=host --name hunyuandit --security-opt=seccomp=를 기반으로 컨테이너를 실행합니다. 제한되지 않음 --ulimit=stack=67108864 --ulimit=memlock=-1 --권한이 있는 docker_image_tag
모델을 다운로드하려면 먼저 Huggingface-cli를 설치하세요. (자세한 지침은 여기에서 확인할 수 있습니다.)
python -m pip install "huggingface_hub[cli]"
그런 다음 다음 명령을 사용하여 모델을 다운로드합니다.
# 모델이 저장될 'ckpts'라는 디렉터리를 생성하고, 데모 실행을 위한 전제조건을 충족합니다.mkdir ckpts# Huggingface-cli 도구를 사용하여 모델을 다운로드합니다.# 다운로드 시간은 상황에 따라 10분에서 1시간까지 달라질 수 있습니다. 네트워크 조건에서.huggingface-cli 다운로드 Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
중국에서 다운로드 속도가 느린 경우 미러를 사용하여 다운로드 속도를 높일 수 있습니다. 예를 들어,
HF_ENDPOINT=https://hf-mirror.comhuggingface-cli 다운로드 Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts
huggingface-cli
다운로드 재개를 지원합니다. 다운로드가 중단된 경우 다운로드 명령을 다시 실행하여 다운로드 프로세스를 재개할 수 있습니다.
참고: 다운로드 프로세스 중에 No such file or directory: 'ckpts/.huggingface/.gitignore.lock'
같은 오류가 발생하는 경우 오류를 무시하고 다운로드 명령을 다시 실행할 수 있습니다.
모든 모델이 자동으로 다운로드됩니다. 모델에 대한 자세한 내용을 보려면 여기에서 Hugging Face 저장소를 방문하세요.
모델 | #Params | 허깅페이스 다운로드 URL | Tencent Cloud 다운로드 URL |
---|---|---|---|
mT5 | 1.6B | mT5 | mT5 |
클립 | 3억 5천만 | 클립 | 클립 |
토크나이저 | - | 토크나이저 | 토크나이저 |
DialogGen | 7.0B | DialogGen | DialogGen |
sdxl-vae-fp16-fix | 83M | sdxl-vae-fp16-fix | sdxl-vae-fp16-fix |
훈위안-DiT-v1.0 | 1.5B | 훈위안-DiT | 훈위안-DiT-v1.0 |
Hunyuan-DiT-v1.1 | 1.5B | Hunyuan-DiT-v1.1 | Hunyuan-DiT-v1.1 |
Hunyuan-DiT-v1.2 | 1.5B | Hunyuan-DiT-v1.2 | Hunyuan-DiT-v1.2 |
데이터 데모 | - | - | 데이터 데모 |
학습 데이터를 준비하려면 아래 명령을 참조하세요.
종속성 설치
우리는 훈련 중에 수억 개의 데이터를 읽는 관리를 지원하는 IndexKits라는 효율적인 데이터 관리 라이브러리를 제공합니다. 자세한 내용은 문서를 참조하세요.
# 1 종속성 설치cd HunyuanDiT pip install -e ./IndexKits
데이터 다운로드
데이터 데모를 자유롭게 다운로드하세요.
# 2 데이터 다운로드wget -O ./dataset/data_demo.zip https://dit.hunyuan.tencent.com/download/HunyuanDiT/data_demo.zip 압축 풀기 ./dataset/data_demo.zip -d ./dataset mkdir ./dataset/porcelain/arrows ./dataset/porcelain/jsons
데이터 변환
아래 표에 나열된 필드를 사용하여 학습 데이터용 CSV 파일을 만듭니다.
전지 | 필수의 | 설명 | 예 |
---|---|---|---|
image_path | 필수의 | 이미지 경로 | ./dataset/porcelain/images/0.png |
text_zh | 필수의 | 텍스트 | 青꽃瓷风格,一只蓝색상鸟儿站에서 蓝색색상꽃瓶上,周围点缀着白colorflower朵,背景是白color |
md5 | 선택 과목 | image md5(메시지 다이제스트 알고리즘 5) | d41d8cd98f00b204e9800998ecf8427e |
width | 선택 과목 | 이미지 너비 | 1024 |
height | 선택 과목 | 이미지 높이 | 1024 |
️ MD5, 너비, 높이 등의 선택 필드는 생략할 수 있습니다. 생략하면 아래 스크립트가 자동으로 계산합니다. 대규모 교육 데이터를 처리할 때 이 프로세스는 시간이 많이 걸릴 수 있습니다.
우리는 훈련 데이터 형식에 Arrow를 활용하여 표준적이고 효율적인 인메모리 데이터 표현을 제공합니다. CSV 파일을 Arrow 형식으로 변환하기 위한 변환 스크립트가 제공됩니다.
# 3 데이터 변환 python ./hydit/data_loader/csv2arrow.py ./dataset/porcelain/csvfile/image_text.csv ./dataset/porcelain/arrows 1
데이터 선택 및 구성 파일 생성
YAML 파일을 통해 교육 데이터를 구성합니다. 이러한 파일에서는 교육 데이터와 관련된 필터링, 복사, 중복 제거 등을 위한 표준 데이터 처리 전략을 설정할 수 있습니다. 자세한 내용은 ./IndexKits를 참조하세요.
샘플파일은 파일을 참고해주세요. 전체 매개변수 구성 파일은 파일을 참조하세요.
YAML 파일을 사용하여 학습 데이터 인덱스 파일을 만듭니다.
# 단일 해상도 데이터 준비 idk base -c 데이터 세트/yamls/porcelain.yaml -t 데이터 세트/porcelain/jsons/porcelain.json # 다중 해상도 데이터 준비 idk multireso -c 데이터 세트/yamls/porcelain_mt.yaml -t 데이터 세트/porcelain/jsons/porcelain_mt.json
porcelain
데이터세트의 디렉터리 구조는 다음과 같습니다.
CD ./데이터세트 도자기 ├──images/ (이미지 파일) │ ├──0.png │ ├──1.png │ ├──...... ├──csvfile/ (텍스트-이미지 쌍을 포함하는 csv 파일) │ ├──image_text.csv ├──arrows/ (필요한 모든 훈련 데이터가 포함된 화살표 파일) │ ├──00000.arrow │ ├──00001.arrow │ ├──...... ├──jsons/ (훈련 중에 화살표 파일에서 데이터를 읽는 최종 훈련 데이터 인덱스 파일) │ ├──porcelain.json │ ├──porcelain_mt.json
요구 사항:
최소 요구 사항은 최소 20GB 메모리를 갖춘 단일 GPU이지만, 호스트 메모리 오프로드를 방지하려면 약 30GB 메모리를 갖춘 GPU를 사용하는 것이 좋습니다.
또한 사용자가 다양한 노드에서 여러 GPU를 활용하여 대규모 데이터 세트에 대한 교육 속도를 높이는 것이 좋습니다.
알아채다:
개인 사용자는 경량 Kohya를 사용하여 약 16GB 메모리로 모델을 미세 조정할 수도 있습니다. 현재 우리는 개인 사용자를 위한 산업 수준 프레임워크의 메모리 사용량을 더욱 줄이기 위해 노력하고 있습니다.
GPU 메모리가 충분하다면 --cpu-offloading
또는 --gradient-checkpointing
제거하여 시간 비용을 줄여보세요.
특히 분산 교육의 경우 --hostfile
및 --master_addr
과 같은 매개변수를 조정하여 단일 노드 / 다중 노드 교육을 유연하게 제어할 수 있습니다. 자세한 내용은 링크를 참조하세요.
# 단일 해상도 훈련PYTHONPATH=./ sh hydit/train.sh --index-file 데이터 세트/porcelain/jsons/porcelain.json# 다중 해상도 훈련PYTHONPATH=./ sh hydit/train.sh --index-file 데이터 세트/porcelain/jsons /porcelain_mt.json --multireso --reso-step 64# 이전 버전의 HunyuanDiT로 훈련(<= v1.1)PYTHONPATH=./ sh hydit/train_v1.1.sh --index-file 데이터 세트/porcelain/jsons/ 도자기.json
체크포인트를 저장한 후 다음 명령을 사용하여 모델을 평가할 수 있습니다.
# 추론 # 'log_EXP/xxx/checkpoints/final.pt'를 실제 path.python Sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只可爱的哈士奇" --no-enhance -로 바꿔야 합니다. -dit-weight log_EXP/xxx/checkpoints/final.pt --load-key 모듈# HunyuanDiT의 이전 버전(<= v1.1)# 'log_EXP/xxx/checkpoints/final.pt'를 실제 모듈로 바꿔야 합니다. path.python Sample_t2i.py --infer-mode fa --prompt "青flower瓷风格, 一只可爱的哈士奇" --model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0.03 --no-enhance --dit-weight log_EXP/xxx/checkpoints/final.pt --load-key 모듈
우리는 ./lora에 자세히 설명된 LoRA용 교육 및 추론 스크립트를 제공합니다.
# 도자기 LoRA에 대한 훈련.PYTHONPATH=./ sh lora/train_lora.sh --index-file 데이터 세트/porcelain/jsons/porcelain.json# 훈련된 LORA 가중치를 사용한 추론.python Sample_t2i.py --infer-mode fa --prompt "青花瓷风格,一只小狗" --no-enhance --lora-ckpt log_EXP/001-lora_porcelain_ema_rank64/checkpoints/0001000.pt
우리는 porcelain
와 jade
에 대해 두 가지 유형의 훈련된 LoRA 가중치를 제공합니다. 자세한 내용은 링크를 참조하세요.
cd HunyuanDiT# Huggingface-cli 도구를 사용하여 모델을 다운로드합니다.huggingface-cli download Tencent-Hunyuan/HYDiT-LoRA --local-dir ./ckpts/t2i/lora# 빠른 시작python Sample_t2i.py --infer-mode fa - -prompt "青꽃瓷风格, 一只猫追蝴蝶" --no-enhance --load-key ema --lora-ckpt ./ckpts/t2i/lora/porcelain
훈련 데이터의 예 | |||
青花瓷风格,一只蓝color的鸟儿站在蓝color的flower瓶上,周围点缀着白colorflower朵,背景是白color (도자기 스타일의 파랑새는 흰색 배경에 흰색 꽃으로 둘러싸인 파란색 꽃병 위에 서 있습니다. ) | 짐 흰색 배경의 숲속을 산책하는 새끼들.) | 青花瓷风格,在黑color背景上,一只蓝color的狼站在蓝白是树木和月亮 (도자기 스타일, 검정색 바탕에 파란색과 흰색 접시 위에 푸른 늑대가 서 있고, 그 주변에는 나무와 달.) | 青꽃瓷风格,在蓝color背景上,一只蓝color蝴蝶和白colorflower朵被放置재중央 (자기양식, 파란색 바탕에 파란색 나비와 흰색 꽃이 중앙에 배치되어 있습니다.) |
추론 결과의 예 | |||
青花瓷风格,苏州园lin (도자기 스타일, 쑤저우 정원.) | 青꽃瓷风格,一朵荷꽃(도자기풍, 연꽃) | 青花瓷风格,一只羊(도자기풍, 양) | 青꽃瓷风格,一个女孩재雨中跳舞(도자기 스타일, 빗속에서 춤추는 소녀.) |
이제 디퓨저를 기반으로 6GB 미만의 GPU VRAM에서 HunyuanDiT를 실행할 수 있습니다. 여기서는 빠른 시작을 위한 지침과 데모를 제공합니다.
6GB 버전은 RTX 3070/3080/4080/4090, A100 등과 같은 Nvidia Ampere 아키텍처 시리즈 그래픽 카드를 지원합니다.
당신이 해야 할 유일한 일은 다음 라이브러리를 설치하는 것입니다:
pip install -U 비트앤바이트 pip 설치 git+https://github.com/huggingface/diffusers pip 설치 토치==2.0.0
그러면 6GB GPU VRAM에서 직접 HunyuanDiT 텍스트-이미지 변환 여행을 즐길 수 있습니다!
여기 당신을 위한 데모가 있습니다.
cd HunyuanDiT# 빠른 시작model_id=Tencent-Hunyuan/HunyuanDiT-v1.2-디퓨저-증류 프롬프트 = 一个宇航员에서 骑马 추론_단계=50 안내_규모=6 python3 lite/inference.py ${model_id} ${prompt} ${infer_steps} ${guidance_scale}
자세한 내용은 ./lite에서 확인할 수 있습니다.
다음 명령을 실행하기 전에 conda 환경이 활성화되어 있는지 확인하십시오.
# 기본적으로 중국어 UI를 시작합니다. Acceleration.python app/hydit_app.py --infer-mode fa#에 Flash Attention 사용 GPU 메모리가 부족하면 향상 모델을 비활성화할 수 있습니다.# `--no- 없이 앱을 다시 시작할 때까지 향상 기능을 사용할 수 없습니다. 강화` 플래그. python app/hydit_app.py --no-enhance --infer-mode fa# 영어 UI로 시작python app/hydit_app.py --lang en --infer-mode fa# 다중 턴 T2I 생성 UI를 시작합니다. # GPU 메모리가 32GB 미만인 경우 '--load-4bit'를 사용하여 4비트 양자화를 활성화합니다. 이를 위해서는 최소 22GB의 메모리가 필요합니다.python app/multiTurnT2I_app.py --infer-mode fa
그런 다음 http://0.0.0.0:443을 통해 데모에 액세스할 수 있습니다. 여기서 0.0.0.0은 서버 IP와 함께 XXXX여야 합니다.
특정 버전의 디퓨저 라이브러리 요구 사항을 충족하려면 PyTorch 버전 2.0 이상을 미리 설치하십시오.
버전이 0.28.1 이상인지 확인하여 디퓨저를 설치합니다.
pip 설치 git+https://github.com/huggingface/diffusers.git
또는
pip 설치 디퓨저
다음 Python 스크립트를 사용하여 중국어 및 영어 프롬프트가 모두 포함된 이미지를 생성할 수 있습니다.
import torchfrom 디퓨저 import HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers", torch_dtype=torch.float16)pipe.to("cuda")# HunyuanDiT는 영어를 모두 지원하므로 영어 프롬프트를 사용할 수도 있습니다. 및 중국어# 프롬프트 = "말을 타고 있는 우주 비행사"prompt = "一个宇航员재骑马"image = 파이프(프롬프트).images[0]
증류된 모델을 사용하면 이미지를 더욱 빠르게 생성할 수 있습니다.
import torchfrom 디퓨저 import HunyuanDiTPipelinepipe = HunyuanDiTPipeline.from_pretrained("Tencent-Hunyuan/HunyuanDiT-v1.2-Diffusers-Distilled", torch_dtype=torch.float16)pipe.to("cuda")# HunyuanDiT가 지원하므로 영어 프롬프트를 사용할 수도 있습니다. 영어와 중국어 모두# 프롬프트 = "말을 타고 있는 우주 비행사"prompt = "一个宇航员재骑马"image = 파이프(prompt, num_inference_steps=25).images[0]
자세한 내용은 HunyuanDiT-v1.2-Diffusers-Distilled에서 확인할 수 있습니다.
추가 기능: LoRA 및 ControlNet과 같은 다른 기능에 대해서는 ./diffusers의 README를 살펴보십시오.
빠른 시작을 위해 몇 가지 명령을 제공합니다.
# 텍스트-이미지만 가능합니다. Flash Attention modepython Sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --no-enhance# 다른 이미지 크기로 이미지를 생성합니다.python Sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --image-size 1280 768# 프롬프트 향상 + 텍스트-이미지. DialogGen은 4비트 양자화로 로드되지만 성능이 손실될 수 있습니다.python Sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --load-4bit
example_prompts.txt에서 더 많은 예시 프롬프트를 찾을 수 있습니다.
쉽게 사용할 수 있도록 몇 가지 더 유용한 구성을 나열합니다.
논쟁 | 기본 | 설명 |
---|---|---|
--prompt | 없음 | 이미지 생성을 위한 텍스트 프롬프트 |
--image-size | 1024 1024 | 생성된 이미지의 크기 |
--seed | 42 | 이미지 생성을 위한 무작위 시드 |
--infer-steps | 100 | 샘플링 단계 수 |
--negative | - | 이미지 생성에 대한 부정적인 프롬프트 |
--infer-mode | 토치 | 추론 모드(torch, fa 또는 trt) |
--sampler | ddpm | 확산 샘플러(ddpm, ddim 또는 dpmms) |
--no-enhance | 거짓 | 프롬프트 개선 모델 비활성화 |
--model-root | ckpts | 모델 체크포인트의 루트 디렉터리 |
--load-key | 에마 | 학생 모델 또는 EMA 모델(ema 또는 모듈) 로드 |
--load-4bit | 파슬 | 4비트 양자화로 DialogGen 모델 로드 |
두 가지 워크플로우를 지원합니다: Standard ComfyUI 및 Diffusers Wrapper. 전자가 권장됩니다.
HunyuanDiT-v1.1 및 v1.2를 지원합니다.
Kohya에서 교육한 지원 모듈, lora 및 클립 lora 모델입니다.
HunyunDiT 공식 교육 스크립트로 교육된 지원 모듈, lora 모델.
ControlNet이 곧 출시될 예정입니다.
자세한 내용은 ./comfyui-hydit에서 확인할 수 있습니다.
kohya_ss GUI용 사용자 정의 코드와 HunyuanDiT용 sd-scripts 교육 코드를 지원합니다. 자세한 내용은 ./kohya_ss-hydit에서 확인할 수 있습니다.
Hunyuan-DiT <= v1.1
# ============================== v1.1 ================ ==============# modelhuggingface 다운로드-cli download Tencent-Hunyuan/HunyuanDiT-v1.1 --local-dir ./HunyuanDiT-v1.1# modelpython으로 추론 Sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --model-root ./HunyuanDiT-v1.1 --use-style-cond --size-cond 1024 1024 --beta-end 0.03# === =========================== v1.0 ==================== ==========# modelhuggingface 다운로드-cli download Tencent-Hunyuan/HunyuanDiT --local-dir ./HunyuanDiT-v1.0# modelpython으로 추론 Sample_t2i.py --infer-mode fa -- 프롬프트 "渔舟唱晚" --model-root ./HunyuanDiT-v1.0 --use-style-cond --size-cond 1024 1024 --beta-end 0.03
./controlnet에 자세히 설명된 ControlNet용 교육 스크립트가 제공됩니다.
# 기발한 ControlNet.PYTHONPATH=./ sh hydit/train_controlnet.sh를 위한 훈련
우리는 canny
depth
와 pose
에 대해 훈련된 ControlNet 가중치의 세 가지 유형을 제공합니다. 자세한 내용은 링크를 참조하세요.
cd HunyuanDiT# Huggingface-cli 도구를 사용하여 모델을 다운로드합니다.# 증류된 가중치를 ControlNet 추론의 기본 모델로 사용하는 것이 좋습니다. 제공된 사전 훈련된 가중치가 해당 가중치에 대해 훈련되기 때문입니다.huggingface-cli 다운로드 Tencent-Hunyuan/HYDiT-ControlNet- v1.2 --local-dir ./ckpts/t2i/controlnet Huggingface-cli 다운로드 Tencent-Hunyuan/Distillation-v1.2 ./pytorch_model_distill.pt --local-dir ./ckpts/t2i/model# 빠른 시작python3 Sample_controlnet.py --infer-mode fa --no-enhance --load -Key Distill-- 인퍼 단계 50- 통제 유형 Canny-Prompt "在夜晚的酒店门前, 一座古老的中国风格的狮子雕像矗立着, 它的眼睛闪烁着光芒, 仿佛在守护着这座建筑。背景是夜晚的酒店前,构图方式是特写,平视,居中构图。这张사진呈现了真实摄影风格,蕴含了中國雕塑文화,동종 확장" --조건-이미지-경로 컨트롤넷/자산 /input/canny.jpg --control-weight 1.0
조건 입력 | ||
캐니 컨트롤넷 | 깊이 제어넷 | 포즈 컨트롤넷 |
夜晚的酒店门前,一座古老的中國风格的狮子雕夜着,它的眼睛闪烁着光芒,仿佛守护着这座建筑。背景是夜晚的酒店前,构图方式是特写,平视,居中构图。这张photography呈现了真实摄影风格,蕴含了中國雕塑文化,同时展现了神秘氛围(밤이 되면 호텔 앞에 고대 중국풍의 사자상이 서 있고, 그 사자상은 마치 건물을 지키는 듯 눈을 빛냅니다. 배경은 밤의 호텔 입구를 클로즈업, 눈높이, 중심 구도로 구성하였습니다. 이번 사진은 사실적인 사진 스타일을 선보이며 중국 조각 문화를 구현하고 신비로운 분위기를 드러낸다.) | 에서 茂密的森lin中,一只黑白旴的熊猫静静地坐在绿树红꽃中,周围是山gawa海洋。居中构图的方,呈现出写实的效果 (울창한 숲 속, 산과 바다로 둘러싸인 푸른 나무와 붉은 꽃 사이에 흑백 팬더가 조용히 앉아 있습니다. 배경은 빛이 넉넉한 낮의 숲이다. 사진은 클로즈업, 눈높이, 중앙 구도를 사용하여 사실적인 효과를 만들어냅니다.) | 백천의 森lin中, 一位穿着绿color 上衣的亚洲女性站에서 大象旁边 사진含了人物摄影文化,并展现了宁静的氛围(낮의 숲 속에서 녹색 셔츠를 입은 아시아 여성이 코끼리 옆에 서 있습니다. 사진은 사실적인 효과를 내기 위해 미디엄 샷, 눈높이, 중앙 구도를 사용했습니다. 이번 사진은 캐릭터 사진 문화를 구현하고, 고요한 분위기를 전달합니다.) |
ControlNet 출력 | ||
Hunyuan-Captioner는 높은 수준의 이미지-텍스트 일관성을 유지함으로써 텍스트-이미지 기술의 요구 사항을 충족합니다. 객체 설명, 객체 관계, 배경 정보, 이미지 스타일 등을 포함하여 다양한 각도에서 고품질 이미지 설명을 생성할 수 있습니다. 우리 코드는 LLaVA 구현을 기반으로 합니다.
에이. 종속성 설치
종속성과 설치는 기본적으로 기본 모델 과 동일합니다.
비. 모델 다운로드
# Huggingface-cli 도구를 사용하여 모델을 다운로드합니다.huggingface-cli download Tencent-Hunyuan/HunyuanCaptioner --local-dir ./ckpts/captioner
우리 모델은 중국어 캡션 직접 생성 , 특정 지식을 기반으로 중국어 캡션 생성 , 영어 캡션 직접 생성 등 세 가지 모드를 지원합니다. 주입된 정보는 정확한 단서일 수도 있고 시끄러운 레이블(예: 인터넷에서 크롤링된 원시 설명)일 수도 있습니다. 이 모델은 삽입된 정보와 이미지 콘텐츠를 기반으로 신뢰할 수 있고 정확한 설명을 생성할 수 있습니다.
방법 | 프롬프트 템플릿 | 설명 |
---|---|---|
caption_zh | 描述这张사진 | 중국어로 된 캡션 |
insert_content | 根据提示词“{}”,描述这张图그림 | 지식이 삽입된 캡션 |
caption_en | 이 이미지의 내용을 설명해 주세요. | 영어로 된 캡션 |
에이. 중국어로 단일 그림 추론
python mllm/caption_demo.py --mode "caption_zh" --image_file "mllm/images/demo1.png" --model_path "./ckpts/captioner"
비. 캡션에 특정 지식 삽입
python mllm/caption_demo.py --mode "insert_content" --content "宫保鸡丁" --image_file "mllm/images/demo2.png" --model_path "./ckpts/captioner"
기음. 영어로 된 단일 그림 추론
python mllm/caption_demo.py --mode "caption_en" --image_file "mllm/images/demo3.png" --model_path "./ckpts/captioner"
디. 중국어로 여러 그림 추론