huggingface / huggingface/diffusers

Ctrlora implementation : Easy solution to train a controlnet with < 1000 examples

Open
#9,713 5 comments 6 reactions 0 assignees View on GitHub
contributions-welcome stale
Dominant language
Python
Stars
34.5k
Forks
7.3k
Avg merge
3d 3h
Merged PRs (30d)
91

Description

### Model/Pipeline/Scheduler description

Authors of the paper trained a base controlnet (with a new architecture if I'm not mistaken) on 9 different conditions to allow finetuning on new conditions easily using a LoRA rank 128. This method allows finetuning a novel condition using less than 1000 examples with less than 24GB of VRAM in a few hours.
The potential is really high and for having trained a new unseen condition myself, I can confirm it works pretty well (even though my dataset has 5K examples but I did train it quickly using only a 3090 GPU).

The only problem is that the training and inference code seems to be done on the old stable diffusion code and it may be difficult to port it to diffusers.

Anyone interested in implementing the training and inference code in diffusers ? License is Apache-2.0 license

### Open source status

- [X] The model implementation is available.
- [X] The model weights are available (Only relevant if addition is not a scheduler).

### Provide useful links for the implementation

Ctrlora repo : https://github.com/xyfJASON/ctrlora
Ctrlora paper : https://arxiv.org/abs/2410.09400

Contributor guide

Open the contributing guide

Research direction

Start by reading the linked Ctrlora repository and paper, then compare their training and inference code with the diffusers architecture. Done means the Ctrlora training and inference approach is implemented in diffusers and supports the stated low-example, under-24GB VRAM use case.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.