Deadmon commited on
Commit
4b1a081
·
verified ·
1 Parent(s): af5f309

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -15
app.py CHANGED
@@ -21,25 +21,19 @@ if not os.path.exists(model_path):
21
  with open(model_path, 'wb') as f:
22
  f.write(response.content)
23
 
24
- # Source: https://github.com/XLabs-AI/x-flux.git
25
  name = "flux-dev"
26
  device = torch.device("cuda")
27
- offload = False
28
  is_schnell = name == "flux-schnell"
29
 
30
  def preprocess_image(image, target_width, target_height, crop=True):
31
  if crop:
32
  image = c_crop(image) # Crop the image to square
33
  original_width, original_height = image.size
34
-
35
- # Resize to match the target size without stretching
36
  scale = max(target_width / original_width, target_height / original_height)
37
  resized_width = int(scale * original_width)
38
  resized_height = int(scale * original_height)
39
-
40
  image = image.resize((resized_width, resized_height), Image.LANCZOS)
41
-
42
- # Center crop to match the target dimensions
43
  left = (resized_width - target_width) // 2
44
  top = (resized_height - target_height) // 2
45
  image = image.crop((left, top, left + target_width, top + target_height))
@@ -62,7 +56,6 @@ def generate_image(prompt, control_image, num_steps=50, guidance=4, width=512, h
62
  os.makedirs("./controlnet_results/")
63
 
64
  torch_device = torch.device("cuda")
65
-
66
  torch.cuda.empty_cache() # Clear GPU cache
67
 
68
  model = load_flow_model(name, device=torch_device)
@@ -99,22 +92,26 @@ def generate_image(prompt, control_image, num_steps=50, guidance=4, width=512, h
99
 
100
  return [processed_input, output_img] # Return both images for slider
101
 
 
 
 
102
  interface = gr.Interface(
103
  fn=generate_image,
104
  inputs=[
105
  gr.Textbox(label="Prompt"),
106
  gr.Image(type="pil", label="Control Image"),
107
- gr.Slider(step=1, minimum=1, maximum=64, value=28, label="Num Steps"),
108
- gr.Slider(minimum=0.1, maximum=10, value=4, label="Guidance"),
109
- gr.Slider(minimum=128, maximum=1024, step=128, value=512, label="Width"),
110
- gr.Slider(minimum=128, maximum=1024, step=128, value=512, label="Height"),
111
- gr.Slider(value=42, minimum=0, maximum=99999999, step=-1, label="Seed"),
112
  gr.Checkbox(label="Random Seed")
113
  ],
114
  outputs=ImageSlider(label="Before / After"), # Use ImageSlider as the output
115
  title="FLUX.1 Controlnet Canny",
116
- description="Generate images using ControlNet and a text prompt.\n[[non-commercial license, Flux.1 Dev](https://huggingface.co/black-forest-labs/FLUX.1-dev/blob/main/LICENSE.md)]"
 
117
  )
118
 
119
  if __name__ == "__main__":
120
- interface.launch()
 
21
  with open(model_path, 'wb') as f:
22
  f.write(response.content)
23
 
24
+ # Configuration for the model
25
  name = "flux-dev"
26
  device = torch.device("cuda")
 
27
  is_schnell = name == "flux-schnell"
28
 
29
  def preprocess_image(image, target_width, target_height, crop=True):
30
  if crop:
31
  image = c_crop(image) # Crop the image to square
32
  original_width, original_height = image.size
 
 
33
  scale = max(target_width / original_width, target_height / original_height)
34
  resized_width = int(scale * original_width)
35
  resized_height = int(scale * original_height)
 
36
  image = image.resize((resized_width, resized_height), Image.LANCZOS)
 
 
37
  left = (resized_width - target_width) // 2
38
  top = (resized_height - target_height) // 2
39
  image = image.crop((left, top, left + target_width, top + target_height))
 
56
  os.makedirs("./controlnet_results/")
57
 
58
  torch_device = torch.device("cuda")
 
59
  torch.cuda.empty_cache() # Clear GPU cache
60
 
61
  model = load_flow_model(name, device=torch_device)
 
92
 
93
  return [processed_input, output_img] # Return both images for slider
94
 
95
+ def update_value(name, value):
96
+ return f"{name}: {value}"
97
+
98
  interface = gr.Interface(
99
  fn=generate_image,
100
  inputs=[
101
  gr.Textbox(label="Prompt"),
102
  gr.Image(type="pil", label="Control Image"),
103
+ gr.Slider(step=1, minimum=1, maximum=64, value=28, label="Num Steps", interactive=True, info="Steps for the generation"),
104
+ gr.Slider(minimum=0.1, maximum=10, value=4, label="Guidance", interactive=True, info="Guidance scale"),
105
+ gr.Slider(minimum=128, maximum=1024, step=128, value=512, label="Width", interactive=True, info="Image width"),
106
+ gr.Slider(minimum=128, maximum=1024, step=128, value=512, label="Height", interactive=True, info="Image height"),
107
+ gr.Slider(value=42, minimum=0, maximum=99999999, step=1, label="Seed", interactive=True, info="Random seed"),
108
  gr.Checkbox(label="Random Seed")
109
  ],
110
  outputs=ImageSlider(label="Before / After"), # Use ImageSlider as the output
111
  title="FLUX.1 Controlnet Canny",
112
+ description="Generate images using ControlNet and a text prompt.\n[[non-commercial license, Flux.1 Dev](https://huggingface.co/black-forest-labs/FLUX.1-dev/blob/main/LICENSE.md)]",
113
+ live=True,
114
  )
115
 
116
  if __name__ == "__main__":
117
+ interface.launch()