ginipick commited on
Commit
1510895
Β·
verified Β·
1 Parent(s): 6f2e33d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -15
app.py CHANGED
@@ -1158,48 +1158,63 @@ def process_uploaded_files(uploaded_files):
1158
 
1159
  # ───────────────────────────── Image Generation ──────────────────────
1160
  def generate_image(prompt: str):
 
1161
  if not prompt:
1162
  return None, None
 
1163
  try:
1164
  clean_prompt = prompt.strip("\"'").strip()
1165
  if len(clean_prompt) < 3:
1166
  return None, None
1167
 
1168
- # Client 객체 생성 μ‹œ timeout μ„€μ • (선택사항)
1169
- client = Client(IMAGE_API_URL, timeout=30) # μ—¬κΈ°μ„œ timeout μ„€μ •
1170
 
1171
  try:
1172
- # predict ν•¨μˆ˜μ—μ„œλŠ” timeout 인자 제거
1173
  res = client.predict(
1174
- prompt = clean_prompt,
1175
- width = 768,
1176
- height = 768,
1177
- guidance = 3.5,
1178
  inference_steps = 30,
1179
- seed = 3,
1180
- do_img2img = False,
1181
- api_name = "/generate_image"
1182
- # timeout λ§€κ°œλ³€μˆ˜ μ œκ±°ν•¨
1183
  )
1184
  except Exception as api_err:
1185
  st.error(f"이미지 API μ—°κ²° μ‹€νŒ¨: {api_err}")
1186
  logging.error(f"이미지 API μ—°κ²° 였λ₯˜: {api_err}")
1187
  return None, None
1188
 
1189
-
 
 
 
 
 
1190
 
1191
- # URL인 경우
 
 
 
 
 
 
 
 
 
1192
  elif isinstance(raw, str) and raw.startswith("http"):
1193
  return raw, clean_prompt
1194
-
1195
- # λ°”μ΄λ„ˆλ¦¬ 데이터인 경우
1196
  else:
 
1197
  return raw, clean_prompt
1198
 
1199
  except Exception as e:
1200
  logging.error(f"이미지 생성 였λ₯˜: {e}", exc_info=True)
1201
  return None, None
1202
 
 
 
1203
  # ───────────────────────────── Kaggle API ─────────────────────────────
1204
  @st.cache_resource
1205
  def check_kaggle_availability():
 
1158
 
1159
  # ───────────────────────────── Image Generation ──────────────────────
1160
  def generate_image(prompt: str):
1161
+ """이미지 생성 ν•¨μˆ˜"""
1162
  if not prompt:
1163
  return None, None
1164
+
1165
  try:
1166
  clean_prompt = prompt.strip("\"'").strip()
1167
  if len(clean_prompt) < 3:
1168
  return None, None
1169
 
1170
+ # Gradio ν΄λΌμ΄μ–ΈνŠΈ 생성 (timeout은 ν΄λΌμ΄μ–ΈνŠΈ 생성 μ‹œ μ„€μ •)
1171
+ client = Client(IMAGE_API_URL)
1172
 
1173
  try:
 
1174
  res = client.predict(
1175
+ prompt = clean_prompt,
1176
+ width = 768,
1177
+ height = 768,
1178
+ guidance = 3.5,
1179
  inference_steps = 30,
1180
+ seed = 3,
1181
+ do_img2img = False,
1182
+ api_name = "/generate_image"
 
1183
  )
1184
  except Exception as api_err:
1185
  st.error(f"이미지 API μ—°κ²° μ‹€νŒ¨: {api_err}")
1186
  logging.error(f"이미지 API μ—°κ²° 였λ₯˜: {api_err}")
1187
  return None, None
1188
 
1189
+ if not res:
1190
+ logging.warning("이미지 APIκ°€ 빈 응닡을 λ°˜ν™˜ν•¨")
1191
+ return None, None
1192
+
1193
+ # 응닡 처리
1194
+ raw = res[0] if isinstance(res, list) else res
1195
 
1196
+ # 응닡 νƒ€μž…μ— λ”°λ₯Έ 처리
1197
+ if isinstance(raw, str) and raw.startswith("data:image"):
1198
+ raw = raw.split(",", 1)[1]
1199
+ try:
1200
+ import base64
1201
+ img_bytes = base64.b64decode(raw)
1202
+ return img_bytes, clean_prompt
1203
+ except Exception as e:
1204
+ logging.error(f"base64 λ””μ½”λ”© μ‹€νŒ¨: {e}")
1205
+ return None, None
1206
  elif isinstance(raw, str) and raw.startswith("http"):
1207
  return raw, clean_prompt
 
 
1208
  else:
1209
+ # λ°”μ΄λ„ˆλ¦¬ λ°μ΄ν„°μ΄κ±°λ‚˜ λ‹€λ₯Έ ν˜•μ‹μΌ 경우
1210
  return raw, clean_prompt
1211
 
1212
  except Exception as e:
1213
  logging.error(f"이미지 생성 였λ₯˜: {e}", exc_info=True)
1214
  return None, None
1215
 
1216
+
1217
+
1218
  # ───────────────────────────── Kaggle API ─────────────────────────────
1219
  @st.cache_resource
1220
  def check_kaggle_availability():