Kims12 commited on
Commit
95df87a
Β·
verified Β·
1 Parent(s): bfd9212

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -13
app.py CHANGED
@@ -9,8 +9,9 @@ import base64
9
  import mimetypes
10
  import logging
11
 
12
- from google import genai
13
- from google.genai import types
 
14
 
15
  # .env νŒŒμΌμ— μ €μž₯된 ν™˜κ²½λ³€μˆ˜ λ‘œλ“œ (python-dotenv μ„€μΉ˜ ν•„μš”: pip install python-dotenv)
16
  from dotenv import load_dotenv
@@ -21,17 +22,14 @@ logging.basicConfig(level=logging.DEBUG,
21
  format='%(asctime)s - %(levelname)s - %(message)s')
22
  logger = logging.getLogger(__name__)
23
 
24
-
25
  def save_binary_file(file_name, data):
26
  logger.debug(f"νŒŒμΌμ— 이진 데이터 μ €μž₯ 쀑: {file_name}")
27
  with open(file_name, "wb") as f:
28
  f.write(data)
29
  logger.debug(f"파일 μ €μž₯ μ™„λ£Œ: {file_name}")
30
 
31
-
32
  def generate(text, file_name, background_file=None, style_file=None, model="gemini-2.0-flash-exp-image-generation"):
33
  logger.debug(f"generate ν•¨μˆ˜ μ‹œμž‘ - ν…μŠ€νŠΈ: '{text}', 파일λͺ…: '{file_name}', λͺ¨λΈ: '{model}'")
34
-
35
  try:
36
  # API ν‚€λŠ” ν™˜κ²½λ³€μˆ˜μ—μ„œ 뢈러옴
37
  effective_api_key = os.environ.get("GEMINI_API_KEY")
@@ -77,7 +75,6 @@ def generate(text, file_name, background_file=None, style_file=None, model="gemi
77
  )
78
  # μŠ€νƒ€μΌ 이미지 파트 (쑴재 μ‹œ)
79
  if style_file is not None:
80
- # 배경이 μ—†λŠ” 경우 uploaded_files[1]κ°€ μŠ€νƒ€μΌ 이미지가 됨에 주의
81
  style_index = 2 if background_file is not None else 1
82
  parts.append(
83
  types.Part.from_uri(
@@ -141,8 +138,7 @@ def generate(text, file_name, background_file=None, style_file=None, model="gemi
141
 
142
  except Exception as e:
143
  logger.exception("이미지 생성 쀑 였λ₯˜ λ°œμƒ:")
144
- return None # 였λ₯˜ λ°œμƒ μ‹œ None λ°˜ν™˜
145
-
146
 
147
  def process_image_and_prompt(original_pil, prompt, background_pil=None, style_pil=None):
148
  logger.debug(f"process_image_and_prompt ν•¨μˆ˜ μ‹œμž‘ - ν”„λ‘¬ν”„νŠΈ: '{prompt}'")
@@ -186,12 +182,10 @@ def process_image_and_prompt(original_pil, prompt, background_pil=None, style_pi
186
  return [result_img]
187
  else:
188
  logger.error("generate ν•¨μˆ˜μ—μ„œ None λ°˜ν™˜λ¨.")
189
- return [] # 였λ₯˜ μ‹œ 빈 리슀트 λ°˜ν™˜
190
-
191
  except Exception as e:
192
  logger.exception("process_image_and_prompt ν•¨μˆ˜μ—μ„œ 였λ₯˜ λ°œμƒ:")
193
- return [] # 였λ₯˜ μ‹œ 빈 리슀트 λ°˜ν™˜
194
-
195
 
196
  # --- Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성 ---
197
  with gr.Blocks() as demo:
@@ -231,7 +225,6 @@ with gr.Blocks() as demo:
231
  )
232
 
233
  # --- ν…ŒμŠ€νŠΈ μ½”λ“œ ---
234
- # ν…ŒμŠ€νŠΈμš© 더미 이미지 (μ‹€μ œ μ΄λ―Έμ§€λ‘œ λŒ€μ²΄ κ°€λŠ₯)
235
  dummy_original = Image.new("RGBA", (100, 100), color="red")
236
  dummy_background = Image.new("RGBA", (100, 100), color="green")
237
  dummy_style = Image.new("RGBA", (100, 100), color="blue")
 
9
  import mimetypes
10
  import logging
11
 
12
+ # 기쑴의 "from google import genai" λŒ€μ‹  λ‹€μŒκ³Ό 같이 μˆ˜μ •
13
+ import google.generativeai as genai
14
+ from google.generativeai import types
15
 
16
  # .env νŒŒμΌμ— μ €μž₯된 ν™˜κ²½λ³€μˆ˜ λ‘œλ“œ (python-dotenv μ„€μΉ˜ ν•„μš”: pip install python-dotenv)
17
  from dotenv import load_dotenv
 
22
  format='%(asctime)s - %(levelname)s - %(message)s')
23
  logger = logging.getLogger(__name__)
24
 
 
25
  def save_binary_file(file_name, data):
26
  logger.debug(f"νŒŒμΌμ— 이진 데이터 μ €μž₯ 쀑: {file_name}")
27
  with open(file_name, "wb") as f:
28
  f.write(data)
29
  logger.debug(f"파일 μ €μž₯ μ™„λ£Œ: {file_name}")
30
 
 
31
  def generate(text, file_name, background_file=None, style_file=None, model="gemini-2.0-flash-exp-image-generation"):
32
  logger.debug(f"generate ν•¨μˆ˜ μ‹œμž‘ - ν…μŠ€νŠΈ: '{text}', 파일λͺ…: '{file_name}', λͺ¨λΈ: '{model}'")
 
33
  try:
34
  # API ν‚€λŠ” ν™˜κ²½λ³€μˆ˜μ—μ„œ 뢈러옴
35
  effective_api_key = os.environ.get("GEMINI_API_KEY")
 
75
  )
76
  # μŠ€νƒ€μΌ 이미지 파트 (쑴재 μ‹œ)
77
  if style_file is not None:
 
78
  style_index = 2 if background_file is not None else 1
79
  parts.append(
80
  types.Part.from_uri(
 
138
 
139
  except Exception as e:
140
  logger.exception("이미지 생성 쀑 였λ₯˜ λ°œμƒ:")
141
+ return None
 
142
 
143
  def process_image_and_prompt(original_pil, prompt, background_pil=None, style_pil=None):
144
  logger.debug(f"process_image_and_prompt ν•¨μˆ˜ μ‹œμž‘ - ν”„λ‘¬ν”„νŠΈ: '{prompt}'")
 
182
  return [result_img]
183
  else:
184
  logger.error("generate ν•¨μˆ˜μ—μ„œ None λ°˜ν™˜λ¨.")
185
+ return []
 
186
  except Exception as e:
187
  logger.exception("process_image_and_prompt ν•¨μˆ˜μ—μ„œ 였λ₯˜ λ°œμƒ:")
188
+ return []
 
189
 
190
  # --- Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성 ---
191
  with gr.Blocks() as demo:
 
225
  )
226
 
227
  # --- ν…ŒμŠ€νŠΈ μ½”λ“œ ---
 
228
  dummy_original = Image.new("RGBA", (100, 100), color="red")
229
  dummy_background = Image.new("RGBA", (100, 100), color="green")
230
  dummy_style = Image.new("RGBA", (100, 100), color="blue")