DiffSynth-Engine: 기존 배포가 적은 FLUX, Wan 2.1을 위한 오픈 소스 엔진

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

일반 소개

확산 모델링 기술을 기반으로 하며 개발자가 프로덕션 환경에 AI 모델을 배포할 수 있도록 이미지와 동영상을 효율적으로 생성하는 데 중점을 둔 ModelScope의 오픈 소스 프로젝트인 DiffSynth-Engine은 GitHub에서 호스팅됩니다. 이 프로젝트는 포괄적인 엔지니어링 혁신을 통해 계산 효율성과 배포 용이성을 최적화한 DiffSynth-Studio에서 발전했습니다. 여러 모델(예: FLUX, Wan2.1)을 지원하며 명확한 코드 구조와 유연한 메모리 관리를 제공합니다. 2025년 3월 현재, 이 프로젝트는 지속적으로 업데이트되고 있으며 오픈 소스 커뮤니티의 광범위한 관심을 받고 있으며, AI 저작의 실용성을 촉진하는 것을 목표로 하고 있습니다.

DiffSynth-Engine:低现存部署FLUX、Wan2.1的开源引擎

 

기능 목록

  • 정적인 사진부터 동적인 콘텐츠까지 다양한 요구 사항을 충족하는 효율적인 이미지 및 동영상 생성을 지원합니다.
  • 타사 라이브러리에 의존하지 않고 명확하고 가독성 있는 코드를 제공하여 개발자가 쉽게 수정하고 확장할 수 있습니다.
  • 다양한 기본 모델(예: FLUX, Wan2.1) 및 LoRA 모델과 호환되어 다양한 시나리오에 맞게 조정할 수 있습니다.
  • 내장된 유연한 메모리 관리 기능, FP8, INT8 및 기타 양자화 모드 지원, 저용량 그래픽 메모리 장치에서 실행할 수 있습니다.
  • 추론 속도를 최적화하고 텐서 병렬 컴퓨팅을 지원하여 대규모 생성 작업을 가속화하세요.
  • 크로스 플랫폼을 지원하며 Windows, macOS(Apple Silicon 포함) 및 Linux와 호환됩니다.
  • 텍스트 대 이미지, 텍스트 대 동영상, 동영상 스타일링 등 다양한 기능을 지원합니다.

 

도움말 사용

설치 프로세스

DiffSynth-Engine 설치는 간단하며 몇 단계로 완료할 수 있습니다.

  1. 핵심 패키지 설치
    터미널에 다음 명령을 입력하여 pip3를 통해 설치합니다:
pip3 install diffsynth-engine

Python 버전이 3.8 이상인지 확인하세요. 종속성 충돌을 피하기 위해 가상 환경을 사용하는 것이 좋습니다.

  1. 모델 파일 다운로드
    프로젝트에는 수동으로 또는 코드를 통해 다운로드해야 하는 모델 파일이 포함되어 있지 않습니다. 예를 들어 FLUX 모델:
from diffsynth_engine import fetch_model
model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")

다운로드 후 모델 파일은 일반적으로 스크립트에서 호출할 수 있도록 지정된 디렉터리에 로컬로 배치됩니다.

  1. 설치 확인
    설치가 완료되면 간단한 테스트 스크립트를 실행하여 환경이 작동하는지 확인합니다:

    from diffsynth_engine import __version__
    print(__version__)
    

    버전 번호가 출력되면 설치가 성공했음을 의미합니다.

주요 기능

1. 이미지 생성(예시: FLUX)

  • 절차
    다음 코드를 사용하여 이미지를 생성합니다:

    from diffsynth_engine.pipelines import FluxImagePipeline, FluxModelConfig
    from diffsynth_engine import fetch_model
    model_path = fetch_model("muse/flux-with-vae", revision="20240902173035", path="flux1-dev-with-vae.safetensors")
    config = FluxModelConfig(dit_path=model_path)
    pipe = FluxImagePipeline.from_pretrained(config, offload_mode="cpu_offload").eval()
    image = pipe(
    prompt="月球上的宇航员骑马,黑白摄影风格,颗粒感强,对比度高",
    width=1024,
    height=1024,
    num_inference_steps=30,
    seed=42,
    )
    image.save("flux_txt2img.png")
    
  • 주요 설명
    기본적으로 23GB의 동영상 메모리가 필요합니다. 메모리가 충분하지 않은 경우, 메모리가 부족한 경우 offload_mode="sequential_cpu_offload"양자화 프로세스는 최소 4GB의 RAM으로도 실행할 수 있지만 생성 시간이 연장됩니다(예: 91초). 여러 양자화 정확도(예: q8_0, q6_k)를 지원하며 메모리 요구 사항을 7~12GB로 줄일 수 있습니다.

2. 비디오 생성(예시: Wan 2.1)

  • 절차
    다음 코드를 사용하여 동영상을 생성합니다:

    from diffsynth_engine.pipelines import WanVideoPipeline, WanModelConfig
    from diffsynth_engine.utils.download import fetch_model
    from diffsynth_engine.utils.video import save_video
    config = WanModelConfig(
    model_path=fetch_model("muse/wan2.1-14b-bf16", path="dit.safetensors"),
    t5_path=fetch_model("muse/wan2.1-umt5", path="umt5.safetensors"),
    vae_path=fetch_model("muse/wan2.1-vae", path="vae.safetensors"),
    )
    pipe = WanVideoPipeline.from_pretrained(config)
    video = pipe(
    prompt="小狗在草地上奔跑,阳光照耀,背景有野花和蓝天",
    num_frames=41,
    width=848,
    height=480,
    seed=42,
    )
    save_video(video, "wan_t2v.mp4", fps=15)
    
  • 주요 설명
    단일 카드에서 2초 분량의 동영상을 생성하는 데 358초가 걸립니다. 4개의 A100 GPU를 사용하고 텐서 병렬 처리를 활성화하는 경우(parallelism=4, use_cfg_parallel=True),时间缩短至 114 秒,加速比达 3.14 倍。

3. 메모리 부족 최적화

  • 절차
    FLUX 예제에서는 offload_mode 로 변경 sequential_cpu_offload::

    pipe = FluxImagePipeline.from_pretrained(config, offload_mode="sequential_cpu_offload").eval()
    
  • 주요 설명
    그래픽 메모리 요구량이 일반 디바이스의 경우 23GB에서 3.52GB로 감소했습니다. 양자화 모드(예: q4_k_s)는 속도와 품질 간의 균형을 유지하여 약간 감소했지만 여전히 유용한 결과를 생성합니다.

4. 다중 카드 병렬 추론

  • 절차
    Wan2.1 예제에서 parallel 매개 변수를 추가합니다:

    pipe = WanVideoPipeline.from_pretrained(config, parallelism=4, use_cfg_parallel=True)
    
  • 주요 설명
    멀티 GPU 병렬 컴퓨팅을 지원합니다. 2개 GPU는 1.97배, 4개 GPU는 3.14배 가속화하여 산업 등급 배포에 적합합니다.

주의

  • 하드웨어 요구 사항이미지 생성에는 8GB, 비디오 생성 또는 멀티 카드 구성에는 24GB의 비디오 메모리가 권장됩니다.
  • 모델 경로다음을 보장하기 위해 fetch_model 다운로드한 경로가 정확하지 않으면 수동으로 지정해야 합니다.
  • 문서 참조자세한 사용법은 공식 GitHub 페이지를 참조하세요. <https://github.com/modelscope/DiffSynth-Engine>.

 

애플리케이션 시나리오

  1. 개인 창작물
    사용자는 FLUX로 예술적인 이미지를 생성하거나 Wan2.1로 소셜 미디어 공유에 적합한 짧은 동영상을 제작할 수 있습니다.
  2. 산업 배포
    기업은 멀티 카드 병렬 추론을 사용하여 광고 또는 영화 제작을 위한 고품질 비디오 콘텐츠를 빠르게 생성할 수 있습니다.
  3. 기술 연구
    개발자는 코드를 수정하고, 다양한 모델과 정량적 전략을 테스트하고, AI 기술의 최적화를 추진할 수 있습니다.
  4. 교육 및 훈련
    학생들은 간단한 설치를 통해 확산 모델링의 실제 적용을 배우고 AI 생성의 원리를 탐구할 수 있습니다.

 

QA

  1. 설치에 실패하면 어떻게 하나요?
    Python 버전과 네트워크 연결을 확인합니다. pip가 최신 버전인지 확인합니다(pip install --upgrade pip)를 사용하거나 종속성을 수동으로 다운로드하세요.
  2. 어떤 모델이 지원되나요?
    이미지 및 비디오 생성을 위한 FLUX, Wan2.1, LoRA 호환 미세 조정 모델과 같은 기본 모델을 지원합니다.
  3. 저가의 컴퓨터도 작동하나요?
    Can. 조정 offload_mode 양자화 매개변수 이후에는 4GB RAM으로 FLUX를 실행할 수 있습니다.
  4. 다중 카드 병렬 처리는 어떻게 설정하나요?
    파이프라인 초기화 중 추가 parallelism 매개변수를 사용하여 GPU 수가 일치하는지 확인합니다.
© 저작권 정책
AiPPT

관련 문서

댓글 없음

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