Spaces:
Runtime error
Runtime error
File size: 3,170 Bytes
13bad59 78efe79 440418c f3985af 021392e d14b0d3 407a575 32c38ef f3985af 440418c 1831164 440418c 22dee1c 7262aa5 021392e 539a18a 6765e94 13bad59 6765e94 13bad59 f714b05 13bad59 d14b0d3 78efe79 d14b0d3 78efe79 dc80b35 7262aa5 9b2f51a 021392e 539a18a 13bad59 7262aa5 13bad59 021392e 6765e94 34428f1 9b2f51a dc80b35 9b2f51a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import requests
import discord
import logging
import os
from transformers import pipeline
import subprocess
# λ‘κΉ
μ€μ
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(name)s: %(message)s', handlers=[logging.StreamHandler()])
# μΈν
νΈ μ€μ
intents = discord.Intents.default()
intents.message_content = True
# λ²μ νμ΄νλΌμΈ μ€μ
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en")
# κ³ μ λ λ€κ±°ν°λΈ ν둬ννΈ
negative_prompt = "blur, low quality, bad composition, ugly, disfigured, weird colors, low quality, jpeg artifacts, lowres, grainy, deformed structures, blurry, opaque, low contrast, distorted details, details are low"
# μ΄λ―Έμ§ μμ± λ° μλ΅ μ²λ¦¬ ν¨μ
def generate_image(prompt, negative_prompt):
headers = {
"Authorization": f"Bearer {os.getenv('HF_TOKEN')}"
}
data = {
"inputs": {
"prompt": prompt,
"negative_prompt": negative_prompt,
"num_inference_steps": 50
}
}
api_url = "https://api-inference.huggingface.co/models/fluently/Fluently-XL-Final"
response = requests.post(api_url, headers=headers, json=data)
if response.status_code == 200:
image_url = response.json()[0]['url'] # μλ΅μμ μ΄λ―Έμ§ URL μΆμΆ
return image_url
else:
logging.error(f"API μμ²μ μ€ν¨νμ΅λλ€: {response.text}")
return None
class MyClient(discord.Client):
async def on_ready(self):
logging.info(f'{self.user}λ‘ λ‘κ·ΈμΈλμμ΅λλ€!')
subprocess.Popen(["python", "web.py"]) # λ³λμ Python μ€ν¬λ¦½νΈ μ€ν
logging.info("web.py μλ²κ° μμλμμ΅λλ€.")
async def on_message(self, message):
if message.author == self.user:
return
if message.content.startswith('!image '):
self.is_processing = True
try:
prompt = message.content[len('!image '):]
prompt_en = translate_prompt(prompt)
logging.debug(f'λ²μλ ν둬ννΈ: {prompt_en}')
logging.debug(f'κ³ μ λ λ€κ±°ν°λΈ ν둬ννΈ: {negative_prompt}')
image_url = generate_image(prompt_en, negative_prompt)
user_id = message.author.id
if image_url:
await message.channel.send(
f"<@{user_id}> λμ΄ μμ²νμ μ΄λ―Έμ§μ
λλ€: {image_url}"
)
else:
await message.channel.send(f"<@{user_id}> μ΄λ―Έμ§ μμ±μ μ€ν¨νμμ΅λλ€.")
finally:
self.is_processing = False
else:
# "!image" λͺ
λ Ήμ΄κ° μλ κ²½μ° μλ΄ λ©μμ§ μ μ‘
await message.channel.send('μ¬λ°λ₯Έ λͺ
λ Ήμ΄λ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ. μ) "!image κ·μ¬μ΄ κ³ μμ΄κ° μ μ μκ³ μλ€." λ±μΌλ‘ μ
λ ₯νμλ©΄ μ΄λ―Έμ§κ° μμ±λ©λλ€.')
# λ΄ μ€ν
if __name__ == "__main__":
discord_token = os.getenv('DISCORD_TOKEN')
discord_client = MyClient(intents=intents)
discord_client.run(discord_token)
|