Frag:e: Warum funktioniert dieser Code nicht? (Discord Bot + ChatGPT + Midjourney)
Verfasst: Donnerstag 13. April 2023, 00:18
Guten Tag, ich habe nicht so viel Ahnung mit Python und bastle nun schon seit 21 Uhr hier rum. Bis jetzt habe ich aber immer Niederlagen gehabt. Ich will einen Discord Bot erstellen, der für mich ChatGPT 3.5 turbo nach prompts fragt, diese dann in die Textdatei prompts.txt legt. Als nächstes werden die promts ausgelesen und an Midjourney weitergegeben (Discord). Die erstellten Bilder von midjourney sollen dann hochskaliert werden, und dann auf meinen PC gedownloadet werden.
Es wäre echt nett, wenn mir jemand helfen würde, weil sonst verzweifle ich hier noch wirklich
Information: Ist nur für eigene Anwendung.(Interessehalber)
Es wäre echt nett, wenn mir jemand helfen würde, weil sonst verzweifle ich hier noch wirklich

Information: Ist nur für eigene Anwendung.(Interessehalber)
Code: Alles auswählen
import discord
import openai
import asyncio
import os
# OpenAI-API-Schlüssel
openai.api_key = "AI_SCHLÜSSEL"
# Discord-Bot-Token
TOKEN = "DISCORD_BOT_TOKEN"
intents = discord.Intents.default()
intents.members = True # Optional, falls Sie beabsichtigen, auf die Mitgliederliste des Servers zuzugreifen
# Discord-Client-Objekt
client = discord.Client(intents=intents)
# Pfad zum Speichern der Bilder
IMAGE_PATH = "DATEIPFAD"
# Funktion zum Speichern der Prompts in eine Datei
async def save_prompts(prompts):
with open("prompts.txt", "w+") as f:
f.write("\n\n".join(prompts))
# Funktion zum Generieren von Prompts und Herunterladen von Bildern
async def generate_prompts():
while True:
prompts = []
for i in range(10):
prompt = "generate a detailed prompt suitable for midjourney. picture is for stock."
response = openai.Completion.create(
engine="gpt-3.5-turbo",
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
prompt_text = response.choices[0].text.strip()
prompts.append(prompt_text)
# An Midjourney senden, um Bild zu generieren
response = openai.Completion.create(
engine="davinci",
prompt=prompt_text,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
image_url = response.choices[0].text.strip()
# Bild herunterladen
filename = "image_{}.png".format(i + 1)
filepath = os.path.join(IMAGE_PATH, filename)
os.system("wget {} -O {}".format(image_url, filepath))
prompts.append(image_url)
await save_prompts(prompts)
# Discord-Bot-Event-Handler für das "ready"-Event
@client.event
async def on_ready():
print("Bot is ready")
# Discord-Bot-Event-Handler für das "message"-Event
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("*start"):
# Starte den Prozess zum Generieren von Prompts und Herunterladen von Bildern
await generate_prompts()
await message.channel.send("Prompts werden generiert und Bilder heruntergeladen.")
elif message.content.startswith("*stop"):
# Stoppe den Prozess zum Generieren von Prompts und Herunterladen von Bildern
await message.channel.send("Bot wird gestoppt.")
exit()
# Discord-Bot-Client starten
client.run(TOKEN)