import requests import webbrowser from openai import OpenAI client = OpenAI( base_url="https://oneapi.xty.app/v1", api_key="sk-JBQJmyrMcAAJJtWb00816e05Ff80438389BaE80834Ea5480" ) # 定義系統指令(instruction) instruction = ( "我將給你一段網路文學,如{0}, 先判斷文學是現代文還是古代文。如果是現代文,用現代都市漫畫風格。返還給我一段自然語言提示詞。" "如果是古代文,用國風古風武俠漫畫風格。畫面需要精美,敘事小說風格。請你把這個文學轉譯成適合stable diffusion作畫的英文描述。不要直譯,需要一個畫面。" "畫面要有故事感,提示詞以描述人物為主,武俠感強一點,人物白瘦幼。" "重要:提示詞最後加上字尾' --niji 6',提示詞不要有引號出現。只要回答英文提示詞,不要回答其他東西。" ) # 初始系統訊息 messages = [ {"role": "system", "content": instruction} ] # 列印使用說明 print("歡迎使用網文提示詞生成器!") print("請輸入一段網文,我會返還給你網文配圖。") # 迴圈直到使用者輸入 'quit' while True: # 獲取使用者輸入 user_input = input("請輸入您的詞語: ") # 如果使用者輸入 'quit', 結束對話 if user_input.lower() == 'quit': print("正在退出對話...") break # 將使用者的訊息新增到訊息列表 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 print("生成的提示詞:", gpt_response) # 將 GPT 的回答也新增到訊息列表,以便用於下一輪對話 messages.append({"role": "assistant", "content": gpt_response}) url = "https://api.zhishuyun.com/midjourney/imagine?token=8ed375d196b849098c43dae29b9ab0dc" headers = { "accept": "application/json", "content-type": "application/json" } # 使用者輸入prompt user_prompt = gpt_response payload = { "action": "generate", "prompt": user_prompt, "timeout": 480 } response = requests.post(url, json=payload, headers=headers) data = response.json() # 提取圖片地址 image_url = data.get("image_url") # 列印並開啟圖片地址 print(image_url) webbrowser.open(image_url)