Please help me!
Exception has occurred: TypeError
__init__() missing 1 required positional argument: 'master'
File "/home/asdwa/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 17, in <module>
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
Komischer Tkinter error
Joa. Die Fehlermeldung ist da doch sehr eindeutig. Dir fehlt das Argument master. Das wird doch in https://github.com/TomSchimansky/Custom ... i/CTkEntry auch beschrieben.
So klappts aber auch nicht
Exception has occurred: TypeError
__init__() missing 1 required positional argument: 'master'
File "/home/peerpri07/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 17, in <module>
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")x632")
app.title("Stable Bud")
ctk.set_appearance_mode("dark")
prompt = ctk.CTkEntry(master=root_tk, height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
prompt.place(x=10, y=10)
lmain = ctk.CTkLabel(height=512, width=512)
lmain.place(x=10, y=110)
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
def generate():
with autocast(device):
image = pipe(prompt.get(), guidance_scale=8.5)["sample"][0]
image.save('generatedimage.png')
img = ImageTk.PhotoImage(image)
lmain.configure(image=img)
trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 20), text_color="white", fg_color="blue", command=generate)
trigger.configure(text="Generate")
trigger.place(x=206, y=60)
app.mainloop()Exception has occurred: TypeError
__init__() missing 1 required positional argument: 'master'
File "/home/peerpri07/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 17, in <module>
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")x632")
app.title("Stable Bud")
ctk.set_appearance_mode("dark")
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
prompt.place(x=10, y=10)
lmain = ctk.CTkLabel(height=512, width=512)
lmain.place(x=10, y=110)
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
def generate():
with autocast(device):
image = pipe(prompt.get(), guidance_scale=8.5)["sample"][0]
image.save('generatedimage.png')
img = ImageTk.PhotoImage(image)
lmain.configure(image=img)
trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 20), text_color="white", fg_color="blue", command=generate)
trigger.configure(text="Generate")
trigger.place(x=206, y=60)
app.mainloop()
Exception has occurred: TypeError
__init__() missing 1 required positional argument: 'master'
File "/home/peerpri07/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 17, in <module>
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")x632")
app.title("Stable Bud")
ctk.set_appearance_mode("dark")
prompt = ctk.CTkEntry(master=root_tk, height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
prompt.place(x=10, y=10)
lmain = ctk.CTkLabel(height=512, width=512)
lmain.place(x=10, y=110)
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
def generate():
with autocast(device):
image = pipe(prompt.get(), guidance_scale=8.5)["sample"][0]
image.save('generatedimage.png')
img = ImageTk.PhotoImage(image)
lmain.configure(image=img)
trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 20), text_color="white", fg_color="blue", command=generate)
trigger.configure(text="Generate")
trigger.place(x=206, y=60)
app.mainloop()Exception has occurred: TypeError
__init__() missing 1 required positional argument: 'master'
File "/home/peerpri07/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 17, in <module>
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")x632")
app.title("Stable Bud")
ctk.set_appearance_mode("dark")
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
prompt.place(x=10, y=10)
lmain = ctk.CTkLabel(height=512, width=512)
lmain.place(x=10, y=110)
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
def generate():
with autocast(device):
image = pipe(prompt.get(), guidance_scale=8.5)["sample"][0]
image.save('generatedimage.png')
img = ImageTk.PhotoImage(image)
lmain.configure(image=img)
trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 20), text_color="white", fg_color="blue", command=generate)
trigger.configure(text="Generate")
trigger.place(x=206, y=60)
app.mainloop()
Bitte setze doch sowohl Code als auch Fehlermeldungen in Code-Tags. Dann werden sie nicht zu einer Wall of Text und die Einrückungen bleiben erhalten.
Die Fehlermeldung sagt noch immer, dass "master" als Argument fehlt.
Die Fehlermeldung sagt noch immer, dass "master" als Argument fehlt.
In den Fehlermeldungen fehöt das master-Argument bei der bemängelten Zeile.
Vielleicht steht sie im Quelltext drin. Ich bin mir nicht sicher, was du da gepostet hast - aber in dem was du ausführst, und was den Fehler wirft, steht dort das entsprechende Argument nicht.
Vielleicht steht sie im Quelltext drin. Ich bin mir nicht sicher, was du da gepostet hast - aber in dem was du ausführst, und was den Fehler wirft, steht dort das entsprechende Argument nicht.
sparrow hat geschrieben: ↑Donnerstag 15. Dezember 2022, 18:32 In den Fehlermeldungen fehöt das master-Argument bei der bemängelten Zeile.
Vielleicht steht sie im Quelltext drin. Ich bin mir nicht sicher, was du da gepostet hast - aber in dem was du ausführst, und was den Fehler wirft, steht dort das entsprechende Argument nicht.
Code: Alles auswählen
import tkinter as tk
import customtkinter as ctk
from PIL import ImageTk
from authtoken import auth_token
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline
# Create the app
app = tk.Tk()
app.geometry("532x632")
app.title("Stable Bud")
ctk.set_appearance_mode("dark")
prompt = ctk.CTkEntry(master=root_tk, height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
prompt.place(x=10, y=10)
lmain = ctk.CTkLabel(height=512, width=512)
lmain.place(x=10, y=110)
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token)
pipe.to(device)
def generate():
with autocast(device):
image = pipe(prompt.get(), guidance_scale=8.5)["sample"][0]
image.save('generatedimage.png')
img = ImageTk.PhotoImage(image)
lmain.configure(image=img)
trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 20), text_color="white", fg_color="blue", command=generate)
trigger.configure(text="Generate")
trigger.place(x=206, y=60)
app.mainloop()
Exception has occurred: NameError
name 'root_tk' is not defined
File "/home/peerpri07/Python/Ki/BilderKi/StableDiffusionApp-main/app.py", line 18, in <module>
prompt = ctk.CTkEntry(master=root_tk, height=40, width=512, text_font=("Arial", 20), text_color="black", fg_color="white")
Wie behebe ich das jetzt?=
Jetzt hast du zwar das master-Argument drin - aber du übegibst da etwas, das gar nicht existiert.
Wie die Fehlermeldung sagt: Du hast nichts an den Namen root_tk gebunden.
Die Dokumentation, die __deets__ freundlicherweise für dich verlinkt hat, gibt Auskunft darüber, was master sein muss. Ich zitiere: "root, tkinter.Frame or CTkFrame"
Wie die Fehlermeldung sagt: Du hast nichts an den Namen root_tk gebunden.
Die Dokumentation, die __deets__ freundlicherweise für dich verlinkt hat, gibt Auskunft darüber, was master sein muss. Ich zitiere: "root, tkinter.Frame or CTkFrame"
Was "checkst" Du da nicht? Variablen, die man benutzen will, muß man auch definieren.
Mich wundert etwas, wie man 40 Zeilen Code schreiben kann, der aber schon beim Erstellen des ersten Entry-Elements abbricht. So kann programmieren nicht funktionieren. Programme entwickelt man Stück für Stück und macht erst weiter, wenn der Teil, den man bisher gemacht hat auch wirklich funktioniert. Erster Schritt sollte also sein, überhaupt erst einmal ein Fenster mit EINEM Entry zustande zu bringen; das ganze Firlefanz mit Farben und Schriften und Größen und der ganze Rest gehört erstmal weg.
Also fang mit
an, das ist das minimale Programm, an dem Du scheiterst.
Hier habe ich schon den Code in Funktionen gepackt und statt absoluten Größenangaben `pack` benutzt, wie ein ordentliches GUI-Programm aufgebaut sein sollte. Mit so einem Startpunkt hast Du dann später auch weniger Schwierigkeiten (z.B. dass Du versehentlich globale Variablen benutzt, anstatt sie als Parameter an Deine Callbacks zu übergeben).
Mich wundert etwas, wie man 40 Zeilen Code schreiben kann, der aber schon beim Erstellen des ersten Entry-Elements abbricht. So kann programmieren nicht funktionieren. Programme entwickelt man Stück für Stück und macht erst weiter, wenn der Teil, den man bisher gemacht hat auch wirklich funktioniert. Erster Schritt sollte also sein, überhaupt erst einmal ein Fenster mit EINEM Entry zustande zu bringen; das ganze Firlefanz mit Farben und Schriften und Größen und der ganze Rest gehört erstmal weg.
Also fang mit
Code: Alles auswählen
import tkinter as tk
import customtkinter as ctk
def main():
app = tk.Tk()
prompt = ctk.CTkEntry(master=root_tk)
prompt.pack()
app.mainloop()
if __name__ == "__main__":
main()
Hier habe ich schon den Code in Funktionen gepackt und statt absoluten Größenangaben `pack` benutzt, wie ein ordentliches GUI-Programm aufgebaut sein sollte. Mit so einem Startpunkt hast Du dann später auch weniger Schwierigkeiten (z.B. dass Du versehentlich globale Variablen benutzt, anstatt sie als Parameter an Deine Callbacks zu übergeben).
GUI-Objekte bilden eine Hierarchie. Ein Toplevel Fenster beinhaltet zB Frames, und die beinhalten Buttons oder andere Elemente. Du baust diese Hierarchie nicht auf. Deine Objekte hängen in der Luft. Schau dir die Doku und Beispiele an, und vergleich das mit deinem Code.