

로딩 속도를 위해 이미지가 압축됩니다.
ctrlora : 제어 가능한 이미지 생성을위한 확장적이고 효율적인 프레임 워크
Yifeng Xu 1,2 , Zhenliang HE 1 , Shiguang Shan 1,2 , Xilin Chen 1,2
1 AI 안전 실험실, CAS, CAS, CAS, CAS SAIFY의 주요 실험실
2 중국 과학 아카데미, 중국

먼저 대규모 데이터 세트를 사용하여 기본 조건에 대한 조건 별 LORA 와 함께 기본 컨트롤 넷을 훈련시킵니다. 그런 다음 기본 제어 컨트롤 단일 GPU에서 1,000 개의 이미지와 1 시간 미만 .
![]() |
|---|
![]() |
|---|
![]() |
|---|
![]() |
|---|
이 저장소를 복제하십시오.
git clone --depth 1 https://github.com/xyfJASON/ctrlora.git
cd ctrlora새로운 콘다 환경을 만들고 활성화하십시오.
conda create -n ctrlora python=3.10
conda activate ctrloraPytorch 및 기타 종속성을 설치하십시오.
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt 우리는 여기에 사기꾼 모델을 제공합니다. Base Controlnet ( ctrlora_sd15_basecn700k.ckpt )을 ./ckpts/ctrlora-basecn 에 넣고 loras를 ./ckpts/ctrlora-loras 에 넣으십시오. loras의 명명 대회는 기본 조건에 대한 ctrlora_sd15_<basecn>_<condition>.ckpt 및 ctrlora_sd15_<basecn>_<condition>_<images>_<steps>.ckpt 입니다.
또한 SD1.5 기반 모델을 다운로드하여 ./ckpts/sd15 에 넣어야합니다. 우리의 작업에 사용 된 모델 :
v1-5-pruned.ckpt ) : 공식 / 미러python app/gradio_ctrlora.py1/4 개의 512x512 이미지의 배치를 생성하려면 최소 9GB/21GB GPU RAM이 필요합니다.



기본 Controlnet을 기반으로 한 단일 GPU (20GB)에서 1,000 개의 이미지와 1 시간 미만의 사용자 정의 상태에 대해 LORA를 훈련시킬 수 있습니다.
ctrlora_sd15_basecn700k.ckpt , 안정적인 확산 v1.5 ( v1-5-pruned.ckpt )를 ./ckpts/sd15 ./ckpts/ctrlora-basecn 다운로드하십시오.
둘째, 다음 구조로 사용자 정의 데이터를 ./data/<custom_data_name> 에 넣으십시오.
data
└── custom_data_name
├── prompt.json
├── source
│ ├── 0000.jpg
│ ├── 0001.jpg
│ └── ...
└── target
├── 0000.jpg
├── 0001.jpg
└── ...
source 캐니 가장자리, 세분화 맵, 깊이 이미지 등과 같은 조건 이미지가 포함되어 있습니다.target 에는 조건 이미지에 해당하는 지상 진실 이미지가 포함되어 있습니다.prompt.json 의 각 라인 json {"source": "source/0000.jpg", "target": "target/0000.jpg", "prompt": "The quick brown fox jumps over the lazy dog."} .셋째, 다음 명령을 실행하여 사용자 정의 조건에 대해 LORA를 훈련시킵니다.
python scripts/train_ctrlora_finetune.py
--dataroot ./data/ < custom_data_name >
--config ./configs/ctrlora_finetune_sd15_rank128.yaml
--sd_ckpt ./ckpts/sd15/v1-5-pruned.ckpt
--cn_ckpt ./ckpts/ctrlora-basecn/ctrlora_sd15_basecn700k.ckpt
[--name NAME]
[--max_steps MAX_STEPS]--dataroot : 사용자 정의 데이터의 경로.--name : 실험 이름. 로깅 디렉토리는 ./runs/name 입니다. 기본값 : 현재 시간.--max_steps : 최대 교육 단계 수. 기본값 : 100000 .훈련 후 다음 명령으로 로라 가중치를 추출하십시오.
python scripts/tool_extract_weights.py -t lora --ckpt CHECKPOINT --save_path SAVE_PATH--ckpt : 위의 교육에 의해 생성 된 체크 포인트로가는 경로.--save_path : 추출 된 로라 중량을 저장하는 경로. 마지막으로 추출 된 로라를 ./ckpts/ctrlora-loras 에 넣고 Gradio 데모에 사용하십시오.
교육, 미세 조정 및 평가에 대한 자세한 내용은 여기에 지침을 참조하십시오.
이 프로젝트는 안정적인 확산, 컨트롤 넷 및 유니어 제어를 기반으로합니다. 그들의 위대한 일에 감사드립니다!
이 프로젝트가 도움이된다면 다음과 같은 인용을 고려하십시오.
@article { xu2024ctrlora ,
title = { CtrLoRA: An Extensible and Efficient Framework for Controllable Image Generation } ,
author = { Xu, Yifeng and He, Zhenliang and Shan, Shiguang and Chen, Xilin } ,
journal = { arXiv preprint arXiv:2410.09400 } ,
year = { 2024 }
}