DragDiffusion: 대화형 포인트 기반 이미지 편집을 위한 확산 모델 활용
Yujun Shi Chuhui Xue Jun Hao Liew Jiachun Pan
한슈 얀 웬칭 장 빈센트 YF 탄 송 바이
부인 성명
이것은 상업용 제품이 아닌 연구 프로젝트입니다. 사용자는 이 도구를 사용하여 이미지를 생성할 자유가 있지만 현지 법률을 준수하고 책임 있는 방식으로 사용해야 합니다. 개발자는 사용자의 잠재적인 오용에 대해 어떠한 책임도 지지 않습니다.
뉴스 및 업데이트
- [1월 29일] 디퓨저 지원 업데이트==0.24.0!
- [10월 23일] DragBench의 코드와 데이터가 공개되었습니다! 자세한 내용은 "drag_bench_evaluation" 아래의 README를 확인하세요.
- [10월 16일] 생성된 이미지 드래그 시 FreeU를 통합합니다.
- [10월 3일] 실제 영상 편집 시 LoRA 훈련 속도 향상. ( 현재 A100에서는 약 20대입니다! )
- [9월 3일] v0.1.0 출시.
- 확산 생성 이미지 드래그를 활성화합니다.
- 드래그 결과의 품질을 크게 향상시키는 새로운 안내 메커니즘을 도입합니다. (MasaCtrl에서 영감을 얻었습니다)
- 임의의 종횡비로 이미지 드래그 활성화
- DPM++Solver(생성된 이미지)에 대한 지원 추가
- [7월 18일] v0.0.1 출시.
- LoRA 교육을 사용자 인터페이스에 통합합니다. 학습 스크립트를 사용할 필요가 없으며 모든 것이 UI에서 편리하게 수행됩니다!
- 사용자 인터페이스 레이아웃을 최적화합니다.
- 눈과 얼굴에 더 나은 VAE를 사용하도록 설정합니다(이 항목 참조).
- [7월 8일] v0.0.0 출시.
설치
Linux 시스템이 설치된 Nvidia GPU에서 코드를 실행하는 것이 좋습니다. 다른 구성에서는 아직 테스트하지 않았습니다. 현재 우리의 방법을 실행하려면 약 14GB GPU 메모리가 필요합니다. 우리는 계속해서 메모리 효율성을 최적화할 것입니다.
필요한 라이브러리를 설치하려면 다음 명령을 실행하면 됩니다.
conda env create -f environment.yaml
conda activate dragdiff
DragDiffusion 실행
먼저 명령줄에서 다음을 실행하여 Gradio 사용자 인터페이스를 시작합니다.
단계별 방식으로 UI 사용법을 보여주는 위의 GIF를 확인할 수 있습니다.
기본적으로 다음 단계로 구성됩니다.
사례 1: 입력 실제 이미지 드래그
1) LoRA 훈련
- 입력 이미지를 가장 왼쪽 상자에 놓습니다.
- "프롬프트" 필드에 이미지를 설명하는 프롬프트를 입력하세요.
- 입력 이미지가 주어졌을 때 LoRA를 학습하려면 "Train LoRA" 버튼을 클릭하세요.
2) "드래그" 편집을 수행합니다.
- 편집 가능한 영역을 지정하려면 가장 왼쪽 상자에 마스크를 그립니다.
- 가운데 상자에서 핸들과 대상점을 클릭합니다. 또한 "포인트 취소"를 클릭하면 모든 포인트를 재설정할 수 있습니다.
- 알고리즘을 실행하려면 "실행" 버튼을 클릭하세요. 편집된 결과는 가장 오른쪽 상자에 표시됩니다.
사례 2: 확산 생성 이미지 드래그
1) 이미지 생성
- 생성 매개변수(예: 긍정/부정 프롬프트, 생성 구성 및 FreeU 매개변수 아래의 매개변수)를 입력합니다.
- "이미지 생성"을 클릭하세요.
2) 생성된 이미지를 "드래그"합니다.
- 편집 가능한 영역을 지정하려면 가장 왼쪽 상자에 마스크를 그립니다.
- 가운데 상자에서 핸들 지점과 대상 지점을 클릭합니다.
- 알고리즘을 실행하려면 "실행" 버튼을 클릭하세요. 편집된 결과는 가장 오른쪽 상자에 표시됩니다.
특허
DragDiffusion 알고리즘과 관련된 코드는 Apache 2.0 라이센스를 따릅니다.
BibTeX
우리 레포가 도움이 되었다면 별표를 남기거나 우리 논문을 인용해 주세요 :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
연락하다
본 프로젝트에 대한 문의사항은 유준([email protected])에게 연락주시기 바랍니다.
승인
이 작품은 놀라운 DragGAN에서 영감을 받았습니다. lora 훈련 코드는 디퓨저의 예에서 수정되었습니다. 이미지 샘플은 unsplash, pexels, pixabay에서 수집되었습니다. 마지막으로 모든 놀라운 오픈 소스 확산 모델과 라이브러리에 큰 감사를 드립니다.
관련 링크
- GAN 드래그: 생성 이미지 매니폴드에서 대화형 포인트 기반 조작
- MasaCtrl: 일관된 이미지 합성 및 편집을 위한 조정 없는 상호 Self-Attention 제어
- 이미지 확산의 새로운 대응
- DragonDiffusion: 확산 모델에서 드래그 스타일 조작 활성화
- FreeDrag: 대화형 포인트 기반 이미지 편집에는 포인트 추적이 필요하지 않습니다.
일반적인 문제 및 해결 방법
- 인터넷 제약으로 인해 Huggingface에서 모델을 로드하는 데 어려움을 겪고 있는 사용자의 경우 1) 이 링크를 따라 모델을 "local_pretrained_models" 디렉터리에 다운로드하세요. 2) "drag_ui.py"를 실행하고 "알고리즘 매개변수 -> 기본 모델 구성 -> 확산 모델 경로"에서 사전 훈련된 모델의 디렉터리를 선택합니다.
확장하다