File size: 3,692 Bytes
fcb72eb 46b6a5b fcb72eb 59da8a0 46b6a5b db04c44 46b6a5b 0b3513f 46b6a5b 0b3513f 46b6a5b 4918ff0 46b6a5b db04c44 0b3513f 46b6a5b 59da8a0 1099b93 59da8a0 46b6a5b 4918ff0 46b6a5b 4918ff0 46b6a5b 4918ff0 46b6a5b 1099b93 59da8a0 46b6a5b 1099b93 46b6a5b 59da8a0 4918ff0 59da8a0 4918ff0 46b6a5b 1099b93 46b6a5b 0b3513f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
---
license: openrail
datasets:
- ChristophSchuhmann/improved_aesthetics_6.5plus
language:
- en
---
Based on my GitHub monologs at [Edge Drawing - a Canny alternative](https://github.com/lllyasviel/ControlNet/discussions/318)
Controls image generation by edge maps generated with [EdgeDrawing Parameter-Free](https://github.com/CihanTopal/ED_Lib).
For usage see the model page on [Civitai.com](https://civitai.com/models/149740). For evaluation see the corresponding .zip files with images. To run your own evaluation you can use [inference.py](https://gitlab.com/-/snippets/3602096).
**EdgeDrawing Parameter-Free**
![image/png](https://cdn-uploads.huggingface.co/production/uploads/64c0ec65a2ec8cb2f589233a/jmdCGeMJx4dKFGo44cuEq.png)
**Example**
sampler=UniPC steps=20 cfg=7.5 seed=0 batch=9 model: v1-5-pruned-emaonly.safetensors cherry-picked: 1/9
prompt: _a detailed high-quality professional photo of swedish woman standing in front of a mirror, dark brown hair, white hat with purple feather_
![image/png](https://cdn-uploads.huggingface.co/production/uploads/64c0ec65a2ec8cb2f589233a/2PSWsmzLdHeVG-i67S7jF.png)
**Canndy Edge Detection (default in Automatic1111)**
![image/png](https://cdn-uploads.huggingface.co/production/uploads/64c0ec65a2ec8cb2f589233a/JZTpa-HZfw0NUYnxZ52Iu.png)
# Image dataset
* [laion2B-en aesthetics>=6.5 dataset](https://huggingface.co/datasets/ChristophSchuhmann/improved_aesthetics_6.5plus)
* `--min_image_size 512 --max_aspect_ratio 2 --resize_mode="center_crop" --image_size 512`
* resulting in 180k images
# Training
```
accelerate launch train_controlnet.py ^
--pretrained_model_name_or_path="runwayml/stable-diffusion-v1-5" ^
--output_dir="control-edgedrawing-[version]-fp16/" ^
--dataset_name="mydataset" ^
--mixed_precision="fp16" ^
--resolution=512 ^
--learning_rate=1e-5 ^
--train_batch_size=1 ^
--gradient_accumulation_steps=4 ^
--gradient_checkpointing ^
--use_8bit_adam ^
--enable_xformers_memory_efficient_attention ^
--set_grads_to_none ^
--seed=0
```
# Versions
**Experiment 4 - control-edgedrawing-cv480edpf-drop0-fp16-checkpoint-90000**
Conditioning images generated with [edpf.py](https://gitlab.com/-/snippets/3601881) using [opencv-contrib-python::ximgproc::EdgeDrawing](https://docs.opencv.org/4.8.0/d1/d1c/classcv_1_1ximgproc_1_1EdgeDrawing.html).
```
ed = cv2.ximgproc.createEdgeDrawing()
params = cv2.ximgproc.EdgeDrawing.Params()
params.PFmode = True
ed.setParams(params)
edges = ed.detectEdges(image)
edge_map = ed.getEdgeImage(edges)
```
90000 steps (45000 steps on original, 45000 steps with left-right flipped images)
**Experiment 3 - control-edgedrawing-cv480edpf-drop0-fp16-checkpoint-45000**
see experiment 4. 45000 steps. This is version 0.1 on civitai.
**Experiment 2 - control-edgedrawing-default-noisy-drop0-fp16-checkpoint-40000**
Images converted with https://github.com/shaojunluo/EDLinePython
Default settings are:
`smoothed=False`
```
{ 'ksize' : 5
, 'sigma' : 1.0
, 'gradientThreshold': 36
, 'anchorThreshold' : 8
, 'scanIntervals' : 1
}
```
`smoothed=True`, but no empty prompts
Trained for 40000 steps with default settings
=> conditioning images are too noisy
**Experiment 1 - control-edgedrawing-default-drop50-fp16-checkpoint-40000**
Same as experiment 2.
Update: bug in algorithm produces too sparse images on default, see https://github.com/shaojunluo/EDLinePython/issues/4
additional arguments: `--proportion_empty_prompts=0.5`
Trained for 40000 steps with default settings
=> empty prompts were probably too excessive
# Question and answers
**Q: What's the point of another edge control net anyway?**
A: 🤷
|