seawolf2357 commited on
Commit
49c60e7
Β·
verified Β·
1 Parent(s): 8393c96

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -42
app.py CHANGED
@@ -1,10 +1,7 @@
1
  import discord
2
  import logging
3
  import os
4
- import uuid
5
- import subprocess
6
- import threading
7
- import gradio as gr
8
  from gradio_client import Client
9
 
10
  # λ‘œκΉ… μ„€μ •
@@ -14,21 +11,8 @@ logging.basicConfig(level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(nam
14
  intents = discord.Intents.default()
15
  intents.message_content = True
16
 
17
- # Gradio API ν΄λΌμ΄μ–ΈνŠΈ μ„€μ •
18
- client = Client("http://211.233.58.202:7960/")
19
-
20
- # 이미지 생성 ν•¨μˆ˜
21
- def generate_image(prompt):
22
- # μ‹€μ œ 이미지 생성 λ‘œμ§μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€.
23
- # μ˜ˆμ‹œλ‘œ, μ—¬κΈ°μ„œλŠ” λ‹¨μˆœνžˆ promptλ₯Ό 이미지에 ν‘œμ‹œν•˜λŠ” κ°€μ§œ 이미지 생성을 ν•  κ²ƒμž…λ‹ˆλ‹€.
24
- return f"Image generated with prompt: {prompt}"
25
-
26
- # Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
27
- iface = gr.Interface(fn=generate_image, inputs="text", outputs="image")
28
-
29
- # Gradio μΈν„°νŽ˜μ΄μŠ€ μ‹€ν–‰ ν•¨μˆ˜
30
- def run_gradio():
31
- iface.launch(show_error=True)
32
 
33
  # λ””μŠ€μ½”λ“œ 봇 클래슀
34
  class MyClient(discord.Client):
@@ -38,8 +22,7 @@ class MyClient(discord.Client):
38
 
39
  async def on_ready(self):
40
  logging.info(f'{self.user}둜 λ‘œκ·ΈμΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€!')
41
- subprocess.Popen(["python", "web.py"])
42
- logging.info("web.py μ„œλ²„κ°€ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
43
  channel = self.get_channel(int(os.getenv("DISCORD_CHANNEL_ID", "123456789012345678")))
44
  await channel.send("μ €λŠ” 이미지 생성을 μˆ˜ν–‰ν•  수 있으며, μƒμ„±λœ 이미지에 λŒ€ν•œ μ„€λͺ…을 ν•œκΈ€λ‘œ μ œκ³΅ν•˜κ³  μƒν˜Έ λŒ€ν™”λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. '!image <ν”„λ‘¬ν”„νŠΈ>'λ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지λ₯Ό μš”μ²­ν•˜μ„Έμš”.")
45
 
@@ -57,9 +40,10 @@ class MyClient(discord.Client):
57
  user_id = message.author.id
58
  await message.channel.send(
59
  f"<@{user_id}> λ‹˜μ΄ μš”μ²­ν•˜μ‹  μ΄λ―Έμ§€μž…λ‹ˆλ‹€.",
60
- file=discord.File(image_path, 'generated_image.png')
61
  )
62
- await initiate_conversation(prompt, image_path, message)
 
63
  except Exception as e:
64
  logging.error(f'이미지 생성 쀑 였λ₯˜ λ°œμƒ: {e}')
65
  await message.channel.send("이미지 생성 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— λ‹€μ‹œ μ‹œλ„ν•΄ μ£Όμ„Έμš”.")
@@ -70,8 +54,10 @@ class MyClient(discord.Client):
70
  if not prompt:
71
  raise ValueError("Prompt is empty or None")
72
 
 
 
73
  try:
74
- result = client.predict(
75
  prompt=prompt,
76
  seed=123,
77
  randomize_seed=False,
@@ -81,20 +67,19 @@ class MyClient(discord.Client):
81
  num_inference_steps=28,
82
  api_name="/infer_t2i"
83
  )
84
- logging.debug(f"API call result: {result}")
85
-
86
- if 'path' in result:
87
- image_path = result['path']
88
- logging.debug(f"Image successfully retrieved from {image_path}")
89
- return image_path
90
- else:
91
- raise RuntimeError("이미지 생성 μ‹€νŒ¨: κ²°κ³Όκ°€ λΉ„μ–΄ μžˆκ±°λ‚˜ κ²½λ‘œκ°€ ν¬ν•¨λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.")
92
  except Exception as e:
93
- logging.error(f'이미지 생성 도쀑 μ˜ˆμ™Έ λ°œμƒ: {e}')
94
- raise RuntimeError(f"이미지 생성 도쀑 μ˜ˆμ™Έ λ°œμƒ: {str(e)}")
95
 
96
- async def initiate_conversation(prompt, image_path, message):
97
  logging.debug(f'λŒ€ν™” μ‹œμž‘ 쀑: {prompt}')
 
98
  description = "μƒμ„±λœ μ΄λ―Έμ§€μž…λ‹ˆλ‹€."
99
  logging.debug(f'이미지 μ„€λͺ…: {description}')
100
 
@@ -102,6 +87,7 @@ async def initiate_conversation(prompt, image_path, message):
102
  await continue_conversation(prompt, message)
103
 
104
  async def continue_conversation(prompt, message):
 
105
  logging.debug(f'λŒ€ν™” 지속 쀑: {prompt}')
106
  # 계속 λŒ€ν™” λ‚΄μš©μ„ λ°›μ•„ μƒν˜Έμž‘μš©ν•˜λ„λ‘ κ΅¬ν˜„
107
 
@@ -109,10 +95,4 @@ async def continue_conversation(prompt, message):
109
  if __name__ == "__main__":
110
  discord_token = os.getenv('DISCORD_TOKEN')
111
  discord_client = MyClient(intents=intents)
112
- discord_client.run(discord_token)
113
-
114
- # Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
115
- iface = gr.Interface(fn=my_model_function, inputs="text", outputs="image")
116
-
117
- # μΈν„°νŽ˜μ΄μŠ€ μ‹€ν–‰, 였λ₯˜ λ³΄μ—¬μ£ΌλŠ” μ˜΅μ…˜ ν™œμ„±ν™”
118
- iface.launch(show_error=True)
 
1
  import discord
2
  import logging
3
  import os
4
+ from io import BytesIO
 
 
 
5
  from gradio_client import Client
6
 
7
  # λ‘œκΉ… μ„€μ •
 
11
  intents = discord.Intents.default()
12
  intents.message_content = True
13
 
14
+ # API ν΄λΌμ΄μ–ΈνŠΈ μ„€μ •
15
+ api_client = Client("http://211.233.58.202:7960/")
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  # λ””μŠ€μ½”λ“œ 봇 클래슀
18
  class MyClient(discord.Client):
 
22
 
23
  async def on_ready(self):
24
  logging.info(f'{self.user}둜 λ‘œκ·ΈμΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€!')
25
+ # μƒν˜Έ λŒ€ν™” κΈ°λŠ₯ μ•Œλ¦Ό
 
26
  channel = self.get_channel(int(os.getenv("DISCORD_CHANNEL_ID", "123456789012345678")))
27
  await channel.send("μ €λŠ” 이미지 생성을 μˆ˜ν–‰ν•  수 있으며, μƒμ„±λœ 이미지에 λŒ€ν•œ μ„€λͺ…을 ν•œκΈ€λ‘œ μ œκ³΅ν•˜κ³  μƒν˜Έ λŒ€ν™”λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. '!image <ν”„λ‘¬ν”„νŠΈ>'λ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지λ₯Ό μš”μ²­ν•˜μ„Έμš”.")
28
 
 
40
  user_id = message.author.id
41
  await message.channel.send(
42
  f"<@{user_id}> λ‹˜μ΄ μš”μ²­ν•˜μ‹  μ΄λ―Έμ§€μž…λ‹ˆλ‹€.",
43
+ file=discord.File(image_path)
44
  )
45
+ # 이미지 생성 ν›„ μ„€λͺ… 제곡 및 λŒ€ν™”
46
+ await initiate_conversation(prompt, message)
47
  except Exception as e:
48
  logging.error(f'이미지 생성 쀑 였λ₯˜ λ°œμƒ: {e}')
49
  await message.channel.send("이미지 생성 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— λ‹€μ‹œ μ‹œλ„ν•΄ μ£Όμ„Έμš”.")
 
54
  if not prompt:
55
  raise ValueError("Prompt is empty or None")
56
 
57
+ logging.debug(f"Sending request to API with prompt: {prompt}")
58
+
59
  try:
60
+ result = api_client.predict(
61
  prompt=prompt,
62
  seed=123,
63
  randomize_seed=False,
 
67
  num_inference_steps=28,
68
  api_name="/infer_t2i"
69
  )
70
+ logging.debug(f"API response received: {result}")
71
+
72
+ # API μ‘λ‹΅μ—μ„œ 이미지 파일 경둜 μΆ”μΆœ
73
+ image_path = result[0] # API 응닡 ꡬ쑰에 따라 쑰정이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€
74
+
75
+ return image_path
 
 
76
  except Exception as e:
77
+ logging.error(f'API μš”μ²­ 쀑 였λ₯˜ λ°œμƒ: {e}')
78
+ raise RuntimeError(f"API μš”μ²­ 쀑 였λ₯˜ λ°œμƒ: {str(e)}")
79
 
80
+ async def initiate_conversation(prompt, message):
81
  logging.debug(f'λŒ€ν™” μ‹œμž‘ 쀑: {prompt}')
82
+ # 이미지 μ„€λͺ…을 ν•œκΈ€λ‘œ 생성
83
  description = "μƒμ„±λœ μ΄λ―Έμ§€μž…λ‹ˆλ‹€."
84
  logging.debug(f'이미지 μ„€λͺ…: {description}')
85
 
 
87
  await continue_conversation(prompt, message)
88
 
89
  async def continue_conversation(prompt, message):
90
+ # λŒ€ν™” 지속 κΈ°λŠ₯
91
  logging.debug(f'λŒ€ν™” 지속 쀑: {prompt}')
92
  # 계속 λŒ€ν™” λ‚΄μš©μ„ λ°›μ•„ μƒν˜Έμž‘μš©ν•˜λ„λ‘ κ΅¬ν˜„
93
 
 
95
  if __name__ == "__main__":
96
  discord_token = os.getenv('DISCORD_TOKEN')
97
  discord_client = MyClient(intents=intents)
98
+ discord_client.run(discord_token)