evalstate commited on
Commit
8c9766e
·
1 Parent(s): ac783de

add size options for output testing

Browse files
Files changed (1) hide show
  1. app.py +24 -8
app.py CHANGED
@@ -19,9 +19,25 @@ pipe = QwenImagePipeline.from_pretrained("Qwen/Qwen-Image", torch_dtype=dtype).t
19
  # --- UI Constants and Helpers ---
20
  MAX_SEED = np.iinfo(np.int32).max
21
 
 
 
 
 
22
  def get_image_size(aspect_ratio):
23
  """Converts aspect ratio string to width, height tuple."""
24
- if aspect_ratio == "1:1":
 
 
 
 
 
 
 
 
 
 
 
 
25
  return 664, 664
26
  elif aspect_ratio == "16:9":
27
  return 832, 464
@@ -36,8 +52,8 @@ def get_image_size(aspect_ratio):
36
  elif aspect_ratio == "2:3":
37
  return 528, 792
38
  else:
39
- # Default to 1:1 if something goes wrong
40
- return 664, 664
41
 
42
  # --- Main Inference Function ---
43
  @spaces.GPU(duration=30)
@@ -70,8 +86,8 @@ def generate_image(
70
 
71
  # Set up the generator for reproducibility
72
  generator = torch.Generator(device=device).manual_seed(seed)
73
- magic_prompt = "Ultra HD, 4K, cinematic composition"
74
- prompt = prompt + " " + magic_prompt
75
  print(f"Calling pipeline with prompt: '{prompt}'")
76
  # if prompt_enhance:
77
  # prompt = rewrite(prompt)
@@ -150,9 +166,9 @@ with gr.Blocks(css=css) as demo:
150
 
151
  with gr.Row():
152
  aspect_ratio = gr.Radio(
153
- label="Aspect ratio (width:height)",
154
- choices=["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"],
155
- value="16:9",
156
  )
157
  prompt_enhance = gr.Checkbox(label="Prompt Enhance", value=True)
158
 
 
19
  # --- UI Constants and Helpers ---
20
  MAX_SEED = np.iinfo(np.int32).max
21
 
22
+ def ensure_divisible_by_16(value):
23
+ """Ensures a value is divisible by 16 by rounding to nearest multiple."""
24
+ return (value + 8) // 16 * 16
25
+
26
  def get_image_size(aspect_ratio):
27
  """Converts aspect ratio string to width, height tuple."""
28
+ # Handle 16:9 size variants
29
+ if aspect_ratio == "16:9_large":
30
+ return 1664, 928
31
+ elif aspect_ratio == "16:9_three_quarter":
32
+ # 75% of full size, ensuring divisibility by 16
33
+ width = ensure_divisible_by_16(int(1664 * 0.75))
34
+ height = ensure_divisible_by_16(int(928 * 0.75))
35
+ return width, height # 1248, 704
36
+ elif aspect_ratio == "16:9_half":
37
+ # 50% of full size
38
+ return 832, 464
39
+ # Keep original aspect ratios as fallback
40
+ elif aspect_ratio == "1:1":
41
  return 664, 664
42
  elif aspect_ratio == "16:9":
43
  return 832, 464
 
52
  elif aspect_ratio == "2:3":
53
  return 528, 792
54
  else:
55
+ # Default to 16:9_half if something goes wrong
56
+ return 832, 464
57
 
58
  # --- Main Inference Function ---
59
  @spaces.GPU(duration=30)
 
86
 
87
  # Set up the generator for reproducibility
88
  generator = torch.Generator(device=device).manual_seed(seed)
89
+ # magic_prompt = "Ultra HD, 4K, cinematic composition"
90
+ # prompt = prompt + " " + magic_prompt
91
  print(f"Calling pipeline with prompt: '{prompt}'")
92
  # if prompt_enhance:
93
  # prompt = rewrite(prompt)
 
166
 
167
  with gr.Row():
168
  aspect_ratio = gr.Radio(
169
+ label="Image Size (16:9 aspect ratio)",
170
+ choices=["16:9_large", "16:9_three_quarter", "16:9_half"],
171
+ value="16:9_half",
172
  )
173
  prompt_enhance = gr.Checkbox(label="Prompt Enhance", value=True)
174