stable diffusion提示词生成器(UI交互版)

复制代码
import tkinter as tk
from tkinter import scrolledtext
from openai import OpenAI
import pyperclip  # 用于复制文本到剪贴板

# 初始化 OpenAI 客户端
client = OpenAI(
    base_url="https://oneapi.xty.app/v1",
    api_key="sk-gfJsNLc7n7AWUmJG4c2030D10d1d479197400c6c53D58d79"
)

# 系统指令(instruction)
instruction = (
    "你是stable diffusion的提示词生成器,我会给你一个简单的中文,如'苹果',请判断输入词的领域。"
    "根据输入的物体以及输入词的行业领域特点,然后请你返还给我一个英文句子的提示词,注意是稍微长的句子不是一系列词的组合"
    "总提示词大约50英文单词以内,(联想扩充画面细节)并加上相应提升画面效果的词语(如打光,高清,商业摄影等)(效果词可以作为短句加在最后),"
    "用于生成惊艳的stable diffusion画面。每次接受中文或英文输入后只要返还英文提示词,不要说其他东西。"
)

# 初始系统消息
messages = [
    {"role": "system", "content": instruction}
]

# 创建主窗口
window = tk.Tk()
window.title("stable diffusion提示词生成器")
window.configure(background='white')

# 创建使用说明标签
usage_label = tk.Label(window, text="请输入一个词(如'苹果'),点击'生成提示词'以生成提示词。", bg='white', fg='black',
                       font=('Arial', 12))
usage_label.pack(pady=10)

# 创建输入文本框
input_box = tk.Entry(window, width=50, font=('Arial', 14), bg='white')
input_box.pack(pady=20)

# 创建输出文本区域
output_box = scrolledtext.ScrolledText(window, width=60, height=10, font=('Arial', 14), bg='white', fg='black')
output_box.pack(pady=20)

# 发送消息并获取回答的函数
def send_and_get_reply():
    user_input = input_box.get()

    # 将用户的消息添加到消息列表
    messages.append({"role": "user", "content": user_input})

    # 获取模型的回答
    completion = client.chat.completions.create(
        model="gpt-4-1106-preview",
        messages=messages
    )

    # 提取 GPT 的回答
    gpt_response = completion.choices[0].message.content

    # 清空输出框并将处理后的 GPT 回答显示在输出文本区域
    output_box.delete('1.0', tk.END)
    output_box.insert(tk.END, f"{gpt_response}\n")

    # 将 GPT 的回答也添加到消息列表,以便用于下一轮对话
    messages.append({"role": "assistant", "content": gpt_response})

# 创建发送按钮
send_button = tk.Button(window, text="生成提示词", command=send_and_get_reply, font=('Arial', 14), bg='lightblue',
                        fg='black')
send_button.pack(pady=20)

# 复制到剪贴板的函数
def copy_to_clipboard():
    text = output_box.get("1.0", tk.END)  # 获取输出文本区域的内容
    pyperclip.copy(text.strip())  # 将文本复制到剪贴板

# 创建复制按钮
copy_button = tk.Button(window, text="复制到剪贴板", command=copy_to_clipboard, font=('Arial', 14), bg='lightgreen',
                        fg='black')
copy_button.pack(pady=20)

# 运行主循环
window.mainloop()
复制代码

 

posted @   不上火星不改名  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示