File size: 1,400 Bytes
89b3db2
2911f3b
 
e19c312
9f0f9a3
 
 
 
 
 
 
754b60e
2911f3b
754b60e
9f0f9a3
 
 
e794576
adb82a6
e794576
adb82a6
e794576
 
9f0f9a3
 
e794576
 
 
 
 
9f0f9a3
e794576
 
 
 
 
 
 
 
9f0f9a3
 
 
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
import torch
from diffusers.utils import load_image
from diffusers import FluxControlNetPipeline, FluxControlNetModel

# Clear unnecessary memory
torch.cuda.empty_cache()

# Set the environment variable to handle memory fragmentation
import os
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"

base_model = 'black-forest-labs/FLUX.1-dev'
controlnet_model = 'InstantX/FLUX.1-dev-Controlnet-Union'

# Use a smaller precision if possible
controlnet = FluxControlNetModel.from_pretrained(controlnet_model, torch_dtype=torch.float16)
pipe = FluxControlNetPipeline.from_pretrained(base_model, controlnet=controlnet, torch_dtype=torch.float16)
pipe.to("cuda")

control_image_canny = load_image("https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union-alpha/resolve/main/images/canny.jpg")
controlnet_conditioning_scale = 0.5
control_mode = 0

# Ensure that image is loaded correctly
width, height = control_image_canny.size

prompt = 'A bohemian-style female travel blogger with sun-kissed skin and messy beach waves.'

image = pipe(
    prompt, 
    control_image=control_image_canny,
    control_mode=control_mode,
    width=width,
    height=height,
    controlnet_conditioning_scale=controlnet_conditioning_scale,
    num_inference_steps=24, 
    guidance_scale=3.5,
).images[0]
image.save("image.jpg")

# Empty cache after the operation to free up memory
torch.cuda.empty_cache()