Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1164,31 +1164,43 @@ def generate_image(prompt: str):
|
|
1164 |
clean_prompt = prompt.strip("\"'").strip()
|
1165 |
if len(clean_prompt) < 3:
|
1166 |
return None, None
|
1167 |
-
logging.info(f"Sending image generation request with prompt: {clean_prompt}")
|
1168 |
|
1169 |
res = Client(IMAGE_API_URL).predict(
|
1170 |
-
prompt=clean_prompt,
|
1171 |
-
width=768,
|
1172 |
-
height=768,
|
1173 |
-
guidance=3.5,
|
1174 |
-
inference_steps=30,
|
1175 |
-
seed=3,
|
1176 |
-
do_img2img=False,
|
1177 |
-
|
1178 |
-
image2image_strength=0.8,
|
1179 |
-
resize_img=True,
|
1180 |
-
api_name="/generate_image"
|
1181 |
)
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
logging.warning(f"Invalid response format from image API: {res}")
|
1187 |
return None, None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1188 |
except Exception as e:
|
1189 |
-
logging.error(f"Image generation error: {
|
1190 |
return None, None
|
1191 |
|
|
|
1192 |
# βββββββββββββββββββββββββββββ Kaggle API βββββββββββββββββββββββββββββ
|
1193 |
@st.cache_resource
|
1194 |
def check_kaggle_availability():
|
@@ -2331,12 +2343,16 @@ def process_input(prompt: str, uploaded_files):
|
|
2331 |
|
2332 |
status.update(label="Invention ideas created!", state="complete")
|
2333 |
|
2334 |
-
|
|
|
2335 |
img_data = img_caption = None
|
2336 |
if st.session_state.generate_image and full_response:
|
2337 |
-
|
2338 |
-
|
2339 |
-
|
|
|
|
|
|
|
2340 |
if match:
|
2341 |
raw_prompt = re.sub(r'[\r\n"\'\\]', " ", match.group(1)).strip()
|
2342 |
with st.spinner("Generating illustrative imageβ¦"):
|
@@ -2344,6 +2360,7 @@ def process_input(prompt: str, uploaded_files):
|
|
2344 |
if img_data:
|
2345 |
st.image(img_data, caption=f"Visualized Concept β {img_caption}")
|
2346 |
|
|
|
2347 |
answer_msg = {"role": "assistant", "content": full_response}
|
2348 |
if img_data:
|
2349 |
answer_msg["image"] = img_data
|
|
|
1164 |
clean_prompt = prompt.strip("\"'").strip()
|
1165 |
if len(clean_prompt) < 3:
|
1166 |
return None, None
|
|
|
1167 |
|
1168 |
res = Client(IMAGE_API_URL).predict(
|
1169 |
+
prompt = clean_prompt,
|
1170 |
+
width = 768,
|
1171 |
+
height = 768,
|
1172 |
+
guidance = 3.5,
|
1173 |
+
inference_steps = 30,
|
1174 |
+
seed = 3,
|
1175 |
+
do_img2img = False,
|
1176 |
+
api_name = "/generate_image",
|
|
|
|
|
|
|
1177 |
)
|
1178 |
+
|
1179 |
+
# β‘ κ·Έλ μ΄λμ€/νμ€νΈAPI ꡬνμ λ°λΌ res κ° 1-elementμΌ μ μμΌλ―λ‘ len μ²΄ν¬ μ κ±°
|
1180 |
+
if not res:
|
1181 |
+
logging.warning("Empty response from image API")
|
|
|
1182 |
return None, None
|
1183 |
+
|
1184 |
+
raw = res[0] # URL, νμΌκ²½λ‘, λλ base64
|
1185 |
+
if raw.startswith("http"):
|
1186 |
+
return raw, clean_prompt
|
1187 |
+
|
1188 |
+
# base64μΌ κ²½μ° λμ½λ©
|
1189 |
+
if raw.startswith("data:image"):
|
1190 |
+
raw = raw.split(",", 1)[1]
|
1191 |
+
try:
|
1192 |
+
import base64
|
1193 |
+
img_bytes = base64.b64decode(raw)
|
1194 |
+
return img_bytes, clean_prompt
|
1195 |
+
except Exception as e:
|
1196 |
+
logging.error(f"base64 decode failed: {e}")
|
1197 |
+
return None, None
|
1198 |
+
|
1199 |
except Exception as e:
|
1200 |
+
logging.error(f"Image generation error: {e}", exc_info=True)
|
1201 |
return None, None
|
1202 |
|
1203 |
+
|
1204 |
# βββββββββββββββββββββββββββββ Kaggle API βββββββββββββββββββββββββββββ
|
1205 |
@st.cache_resource
|
1206 |
def check_kaggle_availability():
|
|
|
2343 |
|
2344 |
status.update(label="Invention ideas created!", state="complete")
|
2345 |
|
2346 |
+
|
2347 |
+
# ββ Auto image generation βββββββββββββββββββββββββββββ
|
2348 |
img_data = img_caption = None
|
2349 |
if st.session_state.generate_image and full_response:
|
2350 |
+
# β header(###)κ° μλ μλ , ν/μ νκΈ°λ₯Ό λͺ¨λ μ‘μλΈλ€
|
2351 |
+
match = re.search(
|
2352 |
+
r"(?:#{0,3}\s*)?(?:Image|μ΄λ―Έμ§)\s*ν둬ννΈ\s*(?:[:οΌ\-]\s*)?\n+([^\n]+)",
|
2353 |
+
full_response,
|
2354 |
+
re.I,
|
2355 |
+
)
|
2356 |
if match:
|
2357 |
raw_prompt = re.sub(r'[\r\n"\'\\]', " ", match.group(1)).strip()
|
2358 |
with st.spinner("Generating illustrative imageβ¦"):
|
|
|
2360 |
if img_data:
|
2361 |
st.image(img_data, caption=f"Visualized Concept β {img_caption}")
|
2362 |
|
2363 |
+
|
2364 |
answer_msg = {"role": "assistant", "content": full_response}
|
2365 |
if img_data:
|
2366 |
answer_msg["image"] = img_data
|