AIRider commited on
Commit
482dc31
·
verified ·
1 Parent(s): d6c5f4d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -10
app.py CHANGED
@@ -27,9 +27,10 @@ pipe.to(device)
27
  # 이미지 생성 함수 정의
28
  @spaces.GPU(duration=160)
29
  def generate_image(prompt, num_inference_steps, height, width, guidance_scale, seed, num_images_per_prompt, progress=gr.Progress(track_tqdm=True)):
30
- if seed == 0:
 
31
  seed = random.randint(1, MAX_SEED)
32
-
33
  generator = torch.Generator().manual_seed(seed)
34
 
35
  with torch.inference_mode():
@@ -45,6 +46,13 @@ def generate_image(prompt, num_inference_steps, height, width, guidance_scale, s
45
 
46
  return output
47
 
 
 
 
 
 
 
 
48
  # 예제 프롬프트
49
  examples = [
50
  ["A cat holding a sign that says hello world"],
@@ -139,6 +147,17 @@ h1 {
139
  overflow: hidden;
140
  border: 2px solid #F3F4F6;
141
  }
 
 
 
 
 
 
 
 
 
 
 
142
  '''
143
 
144
  # Gradio 인터페이스 생성
@@ -195,7 +214,11 @@ with gr.Blocks(
195
  minimum=1,
196
  maximum=50,
197
  value=25,
198
- step=1
 
 
 
 
199
  )
200
  guidance_scale = gr.Slider(
201
  label="가이던스 스케일",
@@ -203,7 +226,11 @@ with gr.Blocks(
203
  minimum=0.0,
204
  maximum=7.0,
205
  value=3.5,
206
- step=0.1
 
 
 
 
207
  )
208
 
209
  with gr.Row():
@@ -213,7 +240,11 @@ with gr.Blocks(
213
  minimum=256,
214
  maximum=1024,
215
  step=32,
216
- value=1024
 
 
 
 
217
  )
218
  height = gr.Slider(
219
  label="높이",
@@ -221,19 +252,23 @@ with gr.Blocks(
221
  minimum=256,
222
  maximum=1024,
223
  step=32,
224
- value=1024
 
 
 
 
225
  )
226
 
227
  with gr.Row():
228
- seed = gr.Slider(
229
- value=random.randint(1, MAX_SEED), # 초기값을 랜덤으로 설정
230
  minimum=0,
231
  maximum=MAX_SEED,
232
  step=1,
233
  label="시드",
234
- info="생성 과정의 시작점입니다. 0을 입력하면 랜덤한 시드가 사용됩니다. 🔄 버튼을 클릭하면 랜덤한 값으로 변경됩니다.",
235
- randomize=True # 이 옵션을 추가하면 🔄 버튼이 작동합니다
236
  )
 
237
  num_images_per_prompt = gr.Slider(
238
  label="프롬프트당 이미지 수",
239
  info="설정된 값으로 생성할 이미지의 수",
@@ -251,6 +286,11 @@ with gr.Blocks(
251
  cache_examples=CACHE_EXAMPLES
252
  )
253
 
 
 
 
 
 
254
  gr.on(
255
  triggers=[
256
  prompt.submit,
 
27
  # 이미지 생성 함수 정의
28
  @spaces.GPU(duration=160)
29
  def generate_image(prompt, num_inference_steps, height, width, guidance_scale, seed, num_images_per_prompt, progress=gr.Progress(track_tqdm=True)):
30
+ # 시드가 0이거나 None이면 랜덤 시드 사용
31
+ if seed is None or seed == 0:
32
  seed = random.randint(1, MAX_SEED)
33
+
34
  generator = torch.Generator().manual_seed(seed)
35
 
36
  with torch.inference_mode():
 
46
 
47
  return output
48
 
49
+ # 랜덤 시드 생성 함수
50
+ def random_seed():
51
+ return random.randint(1, MAX_SEED)
52
+
53
+ def create_random_seed():
54
+ return gr.Number.update(value=random_seed())
55
+
56
  # 예제 프롬프트
57
  examples = [
58
  ["A cat holding a sign that says hello world"],
 
147
  overflow: hidden;
148
  border: 2px solid #F3F4F6;
149
  }
150
+ /* 랜덤 시드 버튼 스타일 */
151
+ button.gr-button.gr-button-lg {
152
+ border-radius: 8px;
153
+ font-weight: 500;
154
+ transition: all 0.2s;
155
+ }
156
+ button.gr-button.gr-button-lg:hover {
157
+ transform: translateY(-1px);
158
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
159
+ }
160
+ '''
161
  '''
162
 
163
  # Gradio 인터페이스 생성
 
214
  minimum=1,
215
  maximum=50,
216
  value=25,
217
+ step=1,
218
+ interactive=True,
219
+ show_label=True,
220
+ container=True,
221
+ randomize=False
222
  )
223
  guidance_scale = gr.Slider(
224
  label="가이던스 스케일",
 
226
  minimum=0.0,
227
  maximum=7.0,
228
  value=3.5,
229
+ step=0.1,
230
+ interactive=True,
231
+ show_label=True,
232
+ container=True,
233
+ randomize=False
234
  )
235
 
236
  with gr.Row():
 
240
  minimum=256,
241
  maximum=1024,
242
  step=32,
243
+ value=1024,
244
+ interactive=True,
245
+ show_label=True,
246
+ container=True,
247
+ randomize=False
248
  )
249
  height = gr.Slider(
250
  label="높이",
 
252
  minimum=256,
253
  maximum=1024,
254
  step=32,
255
+ value=1024,
256
+ interactive=True,
257
+ show_label=True,
258
+ container=True,
259
+ randomize=False
260
  )
261
 
262
  with gr.Row():
263
+ seed = gr.Number(
264
+ value=random_seed(),
265
  minimum=0,
266
  maximum=MAX_SEED,
267
  step=1,
268
  label="시드",
269
+ info="생성 과정의 시작점입니다. 0을 입력하면 랜덤한 시드가 사용됩니다."
 
270
  )
271
+ seed_button = gr.Button("🔄 랜덤 시드", size="sm")
272
  num_images_per_prompt = gr.Slider(
273
  label="프롬프트당 이미지 수",
274
  info="설정된 값으로 생성할 이미지의 수",
 
286
  cache_examples=CACHE_EXAMPLES
287
  )
288
 
289
+ seed_button.click(
290
+ fn=create_random_seed,
291
+ outputs=[seed]
292
+ )
293
+
294
  gr.on(
295
  triggers=[
296
  prompt.submit,