Sana: 고해상도 이미지의 빠른 생성, 0.6B 초소형 모델, 로우 프로파일 노트북 GPU 작동

최신 AI 리소스9개월 전에 게시 됨 AI 공유 서클
2.1K 00

일반 소개

Sana는 최대 4096 × 4096 해상도의 이미지를 몇 초 만에 생성하는 NVIDIA 연구소에서 개발된 효율적인 고해상도 이미지 생성 프레임워크로, 선형 확산 변환기와 딥 압축 자동 인코더 기술을 사용하여 이미지 생성의 속도와 품질을 획기적으로 개선하는 동시에 컴퓨팅 리소스의 필요성을 줄입니다. 이 프레임워크는 저렴한 비용으로 콘텐츠를 제작할 수 있도록 일반 노트북 GPU에서 실행할 수 있도록 지원합니다.

Sana:快速生成高分辨率图像,0.6B超小尺寸模型,低配笔记本GPU运行

 

Sana:快速生成高分辨率图像,0.6B超小尺寸模型,低配笔记本GPU运行

온라인 체험: https://nv-sana.mit.edu/

 

기능 목록

  • 고해상도 이미지 생성최대 4096 × 4096 해상도의 이미지 생성을 지원합니다.
  • 선형 확산 변환기선형 주의 메커니즘을 사용하여 고해상도 이미지 생성의 효율성을 개선합니다.
  • 딥 압축 자동 인코더최대 32배까지 이미지를 압축하여 잠재적 마커 수를 줄이고 훈련 및 생성 효율을 향상시킵니다.
  • 텍스트를 이미지로 변환디코더 전용 텍스트 인코더를 통해 이미지와 텍스트 정렬을 개선했습니다.
  • 효율적인 교육 및 샘플링Flow-DPM-Solver는 샘플링 단계를 줄이고 수렴을 가속화하는 데 사용됩니다.
  • 저렴한 비용으로 배포16GB 노트북 GPU에서 실행을 지원하며 1초 이내에 1024 x 1024 해상도 이미지를 생성합니다.

 

도움말 사용

설치 프로세스

  1. Python 버전이 3.10.0 이상, Anaconda 또는 Miniconda가 권장됩니다.
  2. PyTorch 버전 >= 2.0.1+cu12.1을 설치합니다.
  3. 사나 창고 복제:
    git clone https://github.com/NVlabs/Sana.git
    cd Sana
    
  4. 환경 설정 스크립트를 실행합니다:
    ./environment_setup.sh sana
    

    또는 environment_setup.sh 에 설명된 대로 각 구성 요소를 단계별로 설치합니다.

사용법

하드웨어 요구 사항

  • 양자화 버전은 추론을 위해 8GB 미만의 비디오 메모리가 필요하며, 0.6B 모델은 9GB, 1.6B 모델은 12GB의 VRAM이 필요합니다.

빠른 시작

  1. Gradio를 사용하여 공식 온라인 데모를 시작하세요:
    DEMO_PORT=15432 \
    python app/app_sana.py \
    --config=configs/sana_config/1024ms/Sana_1600M_img1024.yaml \
    --model_path=hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth
    
  2. 추론 코드를 실행하여 이미지를 생성합니다:
    import torch
    from app.sana_pipeline import SanaPipeline
    from torchvision.utils import save_image
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    generator = torch.Generator(device=device).manual_seed(42)
    sana = SanaPipeline("configs/sana_config/1024ms/Sana_1600M_img1024.yaml")
    sana.from_pretrained("hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth")
    prompt = 'a cyberpunk cat with a neon sign that says "Sana"'
    image = sana(prompt=prompt, height=1024, width=1024, guidance_scale=5.0, pag_guidance_scale=2.0, num_inference_steps=18, generator=generator)
    save_image(image, 'output/sana.png', nrow=1, normalize=True, value_range=(-1, 1))
    

교육 모델

  1. 다음 형식으로 데이터 집합을 준비합니다:
    asset/example_data
    ├── AAA.txt
    ├── AAA.png
    ├── BCC.txt
    ├── BCC.png
    └── CCC.txt
    
  2. 교육을 시작합니다:
    bash train_scripts/train.sh \
    configs/sana_config/512ms/Sana_600M_img512.yaml \
    --data.data_dir="asset/example_data" \
    --data.type=SanaImgDataset \
    --model.multi_scale=false \
    --train.train_batch_size=32
    
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...