Instructions to use kimsalvador/Flux.1-dev-Controlnet-Surface-Normals with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use kimsalvador/Flux.1-dev-Controlnet-Surface-Normals with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("kimsalvador/Flux.1-dev-Controlnet-Surface-Normals", dtype=torch.bfloat16, device_map="cuda") prompt = "Turn this cat into a dog" input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") image = pipe(image=input_image, prompt=prompt).images[0] - Notebooks
- Google Colab
- Kaggle
import torch
from diffusers import DiffusionPipeline
from diffusers.utils import load_image
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("kimsalvador/Flux.1-dev-Controlnet-Surface-Normals", dtype=torch.bfloat16, device_map="cuda")
prompt = "Turn this cat into a dog"
input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")
image = pipe(image=input_image, prompt=prompt).images[0]⚡ Flux.1-dev: Surface Normals ControlNet ⚡
This is Flux.1-dev ControlNet for Surface Normals map developed by Jasper research team.
How to use
This model can be used directly with the diffusers library
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetModel
from diffusers.pipelines import FluxControlNetPipeline
# Load pipeline
controlnet = FluxControlNetModel.from_pretrained(
"jasperai/Flux.1-dev-Controlnet-Surface-Normals",
torch_dtype=torch.bfloat16
)
pipe = FluxControlNetPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev",
controlnet=controlnet,
torch_dtype=torch.bfloat16
)
pipe.to("cuda")
# Load a control image
control_image = load_image(
"https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals/resolve/main/examples/surface.jpg"
)
prompt = "a man showing stop sign in front of window"
image = pipe(
prompt,
control_image=control_image,
controlnet_conditioning_scale=0.6,
num_inference_steps=28,
guidance_scale=3.5,
height=control_image.size[1],
width=control_image.size[0]
).images[0]
image
💡 Note: You can compute the conditioning map using the NormalBaeDetector from the controlnet_aux library
from controlnet_aux import NormalBaeDetector
from diffusers.utils import load_image
normal_bae = NormalBaeDetector.from_pretrained("lllyasviel/Annotators")
normal_bae.to("cuda")
# Load an image
im = load_image(
"https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals/resolve/main/examples/output.jpg"
)
surface = normal_bae(im)
Training
This model was trained with surface normals maps computed with Clipdrop's surface normals estimator model as well as an open-souce surface normals estimation model such as Boundary Aware Encoder (BAE).
Licence
This model falls under the Flux.1-dev model licence.
- Downloads last month
- 1
Model tree for kimsalvador/Flux.1-dev-Controlnet-Surface-Normals
Base model
black-forest-labs/FLUX.1-dev