File size: 1,850 Bytes
683afc3
 
cbee50c
c1497a6
0737dc8
74c4e79
121ee3d
4fbc46c
c1497a6
683afc3
121ee3d
312f233
121ee3d
683afc3
121ee3d
 
cbee50c
121ee3d
 
52d3f89
74c4e79
0737dc8
74c4e79
312f233
121ee3d
c1497a6
0737dc8
121ee3d
52d3f89
683afc3
8d2ed6a
 
 
 
 
 
683afc3
8d2ed6a
 
 
683afc3
8d2ed6a
312f233
 
683afc3
8d2ed6a
121ee3d
 
683afc3
 
8d2ed6a
 
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
import gradio as gr
import torch
from diffusers import StableDiffusion3ControlNetPipeline, ControlNetModel, UniPCMultistepScheduler
from huggingface_hub import login
import os
import spaces
# Log in to Hugging Face with your token
token = os.getenv("HF_TOKEN")
login(token=token)

# Model IDs for Stable Diffusion 1.5 and ControlNet
model_id = "stabilityai/stable-diffusion-3.5-large-turbo"
controlnet_id = "lllyasviel/control_v11p_sd15_inpaint"

# Load the ControlNet model and Stable Diffusion pipeline
controlnet = ControlNetModel.from_pretrained(controlnet_id, torch_dtype=torch.float16)
pipe = StableDiffusion3ControlNetPipeline.from_pretrained(
    model_id, controlnet=controlnet, torch_dtype=torch.float16
)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")

@spaces.GPU
def generate_image(prompt, reference_image,controlnet_conditioning_scale):
    # Prepare the reference image for ControlNet
    reference_image = reference_image.convert("RGB").resize((512, 512))

    # Generate the image with ControlNet conditioning
    generated_image = pipe(
        prompt=prompt,
        image=reference_image,
        controlnet_conditioning_scale=1.0,
        guidance_scale=7.5,
        num_inference_steps=50
    ).images[0]
    return generated_image

# Set up Gradio interface
interface = gr.Interface(
    fn=generate_image,
    inputs=[
        gr.Textbox(label="Prompt"),
        gr.Image(type="pil", label="Reference Image (Style)"),
        gr.Slider(label="Control Net Conditioning Scale",minimum=0,maximum=1),
    ],
    outputs="image",
    title="Image Generation with Stable Diffusion 1.5 and ControlNet",
    description="Generates an image based on a text prompt and a reference image using Stable Diffusion 1.5 with ControlNet."
)

# Launch the Gradio interface
interface.launch()