You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python自动化调用Midjourney的/imagine命令?

解决Discord机器人触发Midjourney /imagine指令的问题
  • 别直接发送"/imagine ..."普通文本,Discord的斜杠指令是应用级交互命令,必须用对应格式触发,不是普通消息。
  • 用Python实现的核心思路是构造符合Discord交互规范的请求,而不是发普通消息。下面是具体实现步骤:
    1. 读取你的JSON生成需求文件,提取每个prompt内容。
    2. 准备好你的机器人Token、目标频道ID、Midjourney机器人的应用ID(可在Discord服务器成员列表或开发者后台查看)。
    3. 直接调用Discord API来触发指令:
      import json
      import requests
      
      # 配置信息
      BOT_TOKEN = "你的机器人Token"
      CHANNEL_ID = 123456789012345678  # 替换为目标频道ID
      MJ_APP_ID = "Midjourney机器人的应用ID"
      GUILD_ID = "你的服务器ID"
      
      # 加载prompt列表
      with open('prompts.json', 'r', encoding='utf-8') as f:
          prompts = json.load(f)
      
      # 构造请求头
      headers = {"Authorization": f"Bot {BOT_TOKEN}"}
      
      # 遍历触发每个prompt
      for item in prompts:
          prompt = item.get('prompt', '')
          if not prompt:
              continue
          # 构造Discord交互请求体
          payload = {
              "type": 2,
              "application_id": MJ_APP_ID,
              "guild_id": GUILD_ID,
              "channel_id": CHANNEL_ID,
              "data": {
                  "name": "imagine",
                  "options": [{"name": "prompt", "value": prompt}]
              }
          }
          # 发送请求触发指令
          response = requests.post("https://discord.com/api/v10/interactions", json=payload, headers=headers)
          if response.status_code in (200, 204):
              print(f"成功触发/imagine:{prompt}")
          else:
              print(f"触发失败,状态码:{response.status_code},响应:{response.text}")
      
    4. 关键注意点:
      • 确保机器人拥有发送消息和使用应用命令的服务器权限。
      • 必须正确传递prompt参数,Midjourney的/imagine指令需要明确指定参数名。
      • 控制请求频率,遵守Midjourney的使用规则,避免触发限制。

内容的提问来源于stack exchange,提问作者infermi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:12:46