概念滑块
项目网站 | Arxiv预印本 | 训练好的滑块 | Colab演示 | Huggingface演示
"概念滑块:用于扩散模型精确控制的LoRA适配器"的官方代码实现
Colab演示
更新
现在您可以使用GPT-4(或任何其他OpenAI模型)为文本滑块创建提示。您只需描述想要创建的滑块(例如:"我想让人看起来开心")。
请参考GPT笔记本
设置
要设置Python环境:
conda create -n sliders python=3.9
conda activate sliders
git clone https://github.com/rohitgandikota/sliders.git
cd sliders
pip install -r requirements.txt
如果您在Windows上运行 - 请参考这里的Windows设置指南
文本概念滑块
训练SD-1.x和SD-2.x LoRa
要训练年龄滑块 - 转到train-scripts/textsliders/data/prompts.yaml
并编辑target=person
、positive=old person
、unconditional=young person
(正面的反面)、neutral=person
和action=enhance
,guidance=4
。
如果您不希望编辑针对人,请将其替换为任何您想要的目标(例如狗),或者如果您需要全局替换,请将person
替换为""
最后,运行命令:
python trainscripts/textsliders/train_lora.py --attributes 'male, female' --name 'ageslider' --rank 4 --alpha 1 --config_file 'trainscripts/textsliders/data/config.yaml'
--attributes
参数用于将概念从滑块中分离。例如,年龄滑块使所有老年人变成男性(所以添加"female, male"
属性以允许分离)
评估
要评估您训练的模型,请使用SD1-sliders-inference.ipynb
笔记本
训练SD-XL
要为SD-XL训练滑块,使用脚本train_lora_xl.py
。设置与SDv1.4相同
python trainscripts/textsliders/train_lora_xl.py --attributes 'male, female' --name 'agesliderXL' --rank 4 --alpha 1 --config_file 'trainscripts/textsliders/data/config-xl.yaml'
评估
要评估您训练的模型,请使用XL-sliders-inference.ipynb
笔记本
视觉概念滑块
训练SD-1.x和SD-2.x LoRa
要训练基于图像的滑块,您需要创建一个约4-6对图像数据集(所需概念的编辑前/后)。分别保存编辑前和编辑后的图像。您还可以创建具有不同强度效果的数据集并将它们分别保存。
要训练眼睛大小的图像滑块 - 转到train-scripts/imagesliders/data/config.yaml
并编辑target=eye
、positive='eye'
、unconditional=''
、neutral=eye
和action=enhance
,guidance=4
。
如果您希望扩散模型自行确定编辑概念 - 将target, positive, unconditional, neutral
保留为''
最后,运行命令:
python trainscripts/imagesliders/train_lora-scale.py --name 'eyeslider' --rank 4 --alpha 1 --config_file 'trainscripts/imagesliders/data/config.yaml' --folder_main 'datasets/eyesize/' --folders 'bigsize, smallsize' --scales '1, -1'
为了使其工作 - 您需要将编辑前的图像存储在smallsize
中,将编辑后的图像存储在bigsize
中。两个文件夹中对应的成对文件应该具有相同的名称。这两个子文件夹应该在datasets/eyesize
下。随意使用您自己的命名约定创建自己的数据集。
训练SD-XL
要为SD-XL训练图像滑块,使用脚本train-lora-scale-xl.py
。设置与SDv1.4相同
python trainscripts/imagesliders/train_lora-scale-xl.py --name 'eyesliderXL' --rank 4 --alpha 1 --config_file 'trainscripts/imagesliders/data/config-xl.yaml' --folder_main '/share/u/rohit/imageXLdataset/eyesize_data/'
编辑真实图像
概念滑块可用于编辑真实图像。我们使用空反演来编辑图像 - 而不是提示,我们使用滑块!
查看demo_image_editing.ipynb
以获取更多详细信息。
在本地运行Gradio演示
您还可以使用以下脚本在本地运行HF托管的gradio滑块工具(非常感谢gradio和HF团队)
git lfs install
git clone https://huggingface.co/spaces/baulab/ConceptSliders
cd ConceptSliders
pip install requirements.txt
python app.py
有关更多推理时间gradio演示,请参考Cameduru的仓库这里
与ControlNet集成运行
我们的用户社区真是太棒了!这里是集成ControlNet的资源:https://github.com/rohitgandikota/sliders/issues/76#issuecomment-2099766893
引用我们的工作
预印本可以如下引用
@article{gandikota2023sliders,
title={Concept Sliders: LoRA Adaptors for Precise Control in Diffusion Models},
author={Rohit Gandikota and Joanna Materzy\'nska and Tingrui Zhou and Antonio Torralba and David Bau},
journal={arXiv preprint arXiv:2311.12092},
year={2023}
}