Update README.md
Browse files
README.md
CHANGED
|
@@ -20,26 +20,47 @@ datasets:
|
|
| 20 |
inference: true
|
| 21 |
---
|
| 22 |
|
| 23 |
-
|
| 24 |
-
should probably proofread and complete it, then remove this comment. -->
|
| 25 |
|
|
|
|
| 26 |
|
| 27 |
-
#
|
| 28 |
|
| 29 |
-
|
|
|
|
| 30 |
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
| 32 |
|
| 33 |
-
|
|
|
|
|
|
|
| 34 |
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
-
|
| 40 |
|
| 41 |
-
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
-
## Training details
|
| 44 |
|
| 45 |
-
[TODO: describe the data used to train the model]
|
|
|
|
| 20 |
inference: true
|
| 21 |
---
|
| 22 |
|
| 23 |
+
# controlnet_normal
|
|
|
|
| 24 |
|
| 25 |
+
Generate a normal map from a photograph or basecolor (albedo) map.
|
| 26 |
|
| 27 |
+
# Usage
|
| 28 |
|
| 29 |
+
```
|
| 30 |
+
import argparse
|
| 31 |
|
| 32 |
+
from PIL import Image
|
| 33 |
+
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel, UniPCMultistepScheduler
|
| 34 |
+
from diffusers.utils import load_image
|
| 35 |
+
import torch
|
| 36 |
|
| 37 |
+
parser = argparse.ArgumentParser(description="Args for parser")
|
| 38 |
+
parser.add_argument("--seed", type=int, default=1, help="Seed for inference")
|
| 39 |
+
args = parser.parse_args()
|
| 40 |
|
| 41 |
+
base_model_path = "stabilityai/stable-diffusion-2-1-base"
|
| 42 |
+
controlnet_path = "sidnarsipur/controlnet_normal"
|
| 43 |
+
|
| 44 |
+
controlnet = ControlNetModel.from_pretrained(controlnet_path, torch_dtype=torch.float16)
|
| 45 |
+
pipe = StableDiffusionControlNetPipeline.from_pretrained(
|
| 46 |
+
base_model_path, controlnet=controlnet, torch_dtype=torch.float16
|
| 47 |
+
)
|
| 48 |
+
|
| 49 |
+
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
|
| 50 |
+
pipe.enable_xformers_memory_efficient_attention()
|
| 51 |
+
pipe.enable_model_cpu_offload()
|
| 52 |
+
|
| 53 |
+
control_image = load_image("inference/basecolor.png") #Change based on your image path
|
| 54 |
+
prompt = "Normal Map" #Don't change!
|
| 55 |
+
|
| 56 |
+
if control_image.size[0] > 2048 or control_image.size[1] > 2048: #Optional
|
| 57 |
+
control_image = control_image.resize((control_image.size[0] // 2, control_image.size[1] // 2))
|
| 58 |
|
| 59 |
+
generator = torch.manual_seed(args.seed)
|
| 60 |
|
| 61 |
+
image = pipe(
|
| 62 |
+
prompt, num_inference_steps=50, generator=generator, image=control_image
|
| 63 |
+
).images[0]
|
| 64 |
+
image.save("inference/normal.png")
|
| 65 |
|
|
|
|
| 66 |
|
|
|