每段代码都有注释了,第三方网站就不放出来了,这是自己学习测试用的,就不打广告了。
简单易用,实现的功能就是输入关键词自动转换英文,提交到midjourney生成相关的图像。
其实如果用英文去提交效果是最好的。
import requests import os import time import hashlib import random import json # 提示用户输入关键词 keyword = input("请输入您的关键词:") # 百度翻译API的URL url = "http://api.fanyi.baidu.com/api/trans/vip/translate" # 百度翻译API的APP ID和密钥 appid = '请替换为您的APP ID' # 请替换为您的APP ID secretKey = '请替换为您的密钥' # 请替换为您的密钥 # 生成随机的salt值 salt = random.randint(32768, 65536) # 拼接要进行MD5加密的字符串 sign = appid + keyword + str(salt) + secretKey sign = hashlib.md5(sign.encode()).hexdigest() # 构造请求参数 params = { 'q': keyword, 'from': 'zh', 'to': 'en', 'appid': appid, 'salt': salt, 'sign': sign, } # 发送GET请求 response = requests.get(url, params=params) # 解析响应内容 result = response.json() # 获取翻译结果 translated_keyword = result['trans_result'][0]['dst'] # API端点 endpoint = "https://api.不打广告.io/midjourney/v1/imagine" # 请求头,包含API密钥 headers = { "TT-API-KEY": "API密钥", "Content-Type": "application/json" } # 请求数据,包含用户输入的关键词 data = { "prompt": translated_keyword, # 使用翻译后的关键词 "model": "fast", "hookUrl": "", "timeout": 300 } # 发送POST请求 response = requests.post(endpoint, headers=headers, json=data) # 打印状态码和响应内容 print(response.status_code) print(response.json()) # 如果请求成功发送,等待100秒 if response.status_code == 200: print("请求已发送,正在等待图像生成...") time.sleep(100) # 等待100秒 # 获取作业ID job_id = response.json()["data"]["jobId"] # 设置获取任务状态的API端点 fetch_endpoint = "https://api.不打广告.io/midjourney/v1/fetch" # 设置获取任务状态的请求数据 fetch_data = { "jobId": job_id } # 发送POST请求以获取任务状态 fetch_response = requests.post(fetch_endpoint, headers=headers, json=fetch_data) print(fetch_response.status_code) print(fetch_response.json()) # 检查响应状态是否为成功 if fetch_response.json()["status"] == "SUCCESS": # 获取图像URL image_url = fetch_response.json()["data"].get("cdnImage") # 如果'image_url'存在 if image_url: # 确保D盘的mj文件夹存在 save_path = "img" if not os.path.exists(save_path): os.makedirs(save_path) # 获取图像内容 image_response = requests.get(image_url) # 检查图像请求是否成功 if image_response.status_code == 200: # 创建图像文件的完整路径 file_path = os.path.join(save_path, f"{translated_keyword}.png") # 使用翻译后的关键词作为文件名 # 将图像内容写入文件 with open(file_path, "wb") as f: f.write(image_response.content) print(f"图像已保存到:{file_path}") else: print(f"下载图像失败,状态码:{image_response.status_code}") else: print("没有找到图像URL。")
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。