added dalle3hd

This commit is contained in:
phixxy 2024-01-27 22:13:07 -08:00
parent c65cf891ff
commit 0ccd421f8b

View file

@ -103,7 +103,7 @@ class ChatGPT(commands.Cog):
self.bot.logger.exception("Error occurred in answer_question") self.bot.logger.exception("Error occurred in answer_question")
return "Error occurred in answer_question" return "Error occurred in answer_question"
async def get_dalle(self, prompt, model="dall-e-2"): async def get_dalle(self, prompt, model="dall-e-2", quality="standard", size="1024x1024"):
headers = { headers = {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("openai.api_key")}', 'Authorization': f'Bearer {os.getenv("openai.api_key")}',
@ -111,8 +111,8 @@ class ChatGPT(commands.Cog):
data = { data = {
"model": model, "model": model,
"prompt": prompt, "prompt": prompt,
"size": "1024x1024", "size": size,
"quality": "standard", "quality": quality,
"n":1, "n":1,
} }
url = "https://api.openai.com/v1/images/generations" url = "https://api.openai.com/v1/images/generations"
@ -241,7 +241,28 @@ class ChatGPT(commands.Cog):
async def dalle3(self, ctx): async def dalle3(self, ctx):
if ctx.author.get_role(self.premium_role): if ctx.author.get_role(self.premium_role):
prompt = ctx.message.content.split(" ", maxsplit=1)[1] prompt = ctx.message.content.split(" ", maxsplit=1)[1]
img_url = await self.get_dalle(prompt, "dall-e-3") img_url = await self.get_dalle(prompt, model="dall-e-3")
my_filename = str(time.time_ns()) + ".png"
filepath = f"{self.data_dir}dalle/{my_filename}"
await self.download_image(img_url, filepath)
with open(filepath, "rb") as fh:
f = discord.File(fh, filename=filepath)
log_data = f'Author: {ctx.author.name}, Prompt: {prompt}, Filename: {my_filename}\n'
with open(f"{self.data_dir}logs/dalle3.log", 'a') as log_file:
log_file.writelines(log_data)
await ctx.send(f'Generated by: {ctx.author.name}\nPrompt: {prompt}', file=f)
else:
await ctx.send("Sorry you must be a premium member to use this command. (!donate)")
@commands.command(
description="Dalle 3 HD",
help="Generate an HD image with Dalle 3 Usage: !dalle3 (prompt)",
brief="Generate HD Image",
)
async def dalle3hd(self, ctx):
if ctx.author.get_role(self.premium_role):
prompt = ctx.message.content.split(" ", maxsplit=1)[1]
img_url = await self.get_dalle(prompt, model="dall-e-3", quality="hd", size="1792x1024")
my_filename = str(time.time_ns()) + ".png" my_filename = str(time.time_ns()) + ".png"
filepath = f"{self.data_dir}dalle/{my_filename}" filepath = f"{self.data_dir}dalle/{my_filename}"
await self.download_image(img_url, filepath) await self.download_image(img_url, filepath)