[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-yokonsan--midjourney-api":3,"tool-yokonsan--midjourney-api":64},[4,17,26,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,2,"2026-04-03T11:11:01",[13,14,15],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":23,"last_commit_at":32,"category_tags":33,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,34,35,36,15,37,38,13,39],"数据工具","视频","插件","其他","语言模型","音频",{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,38,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[38,14,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":97,"forks":98,"last_commit_at":99,"license":81,"difficulty_score":10,"env_os":100,"env_gpu":100,"env_ram":100,"env_deps":101,"category_tags":104,"github_topics":105,"view_count":10,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":108,"updated_at":109,"faqs":110,"releases":141},578,"yokonsan\u002Fmidjourney-api","midjourney-api","midjourney in discord api. ","midjourney-api 是一个基于 Discord 的开源项目，它将 Midjourney 强大的绘图能力封装成了标准的 HTTP API。以往使用 Midjourney 必须依赖 Discord 界面手动输入指令，不仅效率低，还难以与其他系统对接。midjourney-api 解决了这一痛点，通过提供 RESTful 接口，让开发者能够轻松将 AI 绘画功能集成到自定义应用或自动化工作流中。\n\n它支持文生图、图生图、图片放大、变体生成、区域重绘及描述生成等所有官方核心功能。项目采用任务队列机制处理并发请求，自动监听 Bot 消息并返回结果，内置了 Swagger 文档便于调试。无论是希望快速集成的开发者、需要批量生产素材的设计师，还是研究 AI 工作流的科研人员，都能从中受益。此外，它支持 Docker 一键部署，环境配置灵活，为本地化运行 Midjourney 提供了便捷的解决方案，是构建 AI 绘图服务的首选开源方案之一。","# midjourney-api\n\n简体中文 \u002F [English](.\u002FREADME-EN.md)\n\n基于 Discord 的 Midjourney API。\n\n**添加 Midjourney 违禁词入口 [issue](https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002Fnew?assignees=&labels=banned+prompt&projects=&template=banned_prompt_report.yml&title=Banned+prompt%3A+)**\n\n项目集成 Demo 参考：[issue31](https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F31)\n\n\n\u003Chr>\n\n## Midjourney API 平台推荐\n如果以上流程&代码对你来说操作有困难，或者维护账户池消耗了你们大量的精力与成本。这里有一个高度集成且价格与稳定性具有超高性价比的 [Midjouney API](https:\u002F\u002Fttapi.io\u002Fmidjourney) 平台推荐 **[TTAPI](https:\u002F\u002Fttapi.io)**\n\n**TTAPI 平台对于Midjourney相关功能支持：**\n- imagine \n- U V pan zoom \n- describe \n- blend \n- vary_region等等所有Midjourney官方包含的高级功能\n- 除此以外还支持**Luma API**、**换脸API**、相对价格比较优惠的**ChatGPT以及Claude API**\n\n**TTAPI 接入**\n\n- 进入[平台github一键登录](https:\u002F\u002Fttapi.io\u002Flogin)即可获取30配额的免费额度（可用于fast模式下执行10次imagine接口用作测试）\n- [平台接口文档地址](https:\u002F\u002Fdocs-zh.mjapiapp.com\u002F)\n\n\u003Chr>\n\n\n## UML\n\n```mermaid\nsequenceDiagram\n    participant ThirdServer\n    participant APIServer\n    participant DiscordAPI\n\n    ThirdServer->>APIServer: 请求接口触发任务\n    APIServer->>APIServer: 放入任务队列\n    APIServer->>DiscordAPI: 调接口触发绘画任务\n    APIServer-->>ThirdServer: 返回是否触发成功\n\n    DiscordAPI->>DiscordAPI: 触发Midjourney bot绘画任务\n    DiscordAPI->>DiscordAPI: 监听MidJourney bot消息\n    DiscordAPI-->>ThirdServer: 返回监听实时消息\n    DiscordAPI-->>APIServer: 清除队列任务\n```\n\n\n## 使用条件\n\n1. 确保程序启动环境能访问 Discord\n2. 已有 Midjourney、Discord 账户\n3. 创建 Discord 频道并添加机器人，参考教程 [Midjourney｜如何集成到自己的平台](https:\u002F\u002Fmp.weixin.qq.com\u002Fs?__biz=Mzg4MjkzMzc1Mg==&mid=2247484029&idx=1&sn=d3c458bba9459f19f05d13ab23f5f67e&chksm=cf4e68eaf839e1fc2db025bd9940d0f5e57862f1788c88215b4a66cb23f553a30c5f37ac3ae8&token=79614426&lang=zh_CN#rd)\n\n\n## 安装启动\n\n```bash\ngit clone\npip install -r requirements.txt\n```\n\n将文件`.env.template`重命名为`.env`，并填入参数值：\n\n```\nUSER_TOKEN=用户token\nBOT_TOKEN=机器人token\nGUILD_ID=服务器ID\nCHANNEL_ID=频道ID\nCALLBACK_URL=回调地址，默认http post请求，用于接收 midjourney 作图进度和结果的服务\n```\n\n### 直接启动\n\n```bash\n# 启动监听机器人\npython task_bot.py\n# 启动http服务\npython server.py\n```\n\n#### 更新\n\n```bash\ngit pull\n\n# 启动监听机器人\npython task_bot.py\n# 启动http服务\npython server.py\n```\n\n### docker 启动\n\n填写 [start.sh](.\u002Fstart.sh) 中 `-e` 后的环境变量，直接启动：\n\n```bash\nsh start.sh\n```\n\n或者本地构建镜像：\n\n```bash\n# 构建镜像\nsh build.sh\n# 启动容器\nsh start.sh\n```\n\n#### 更新\n\n```bash\ndocker rmi kunyu\u002Fmidjourney-api:1.0\nsh start.sh\n```\n\n接口`swagger`文档：[http:\u002F\u002F127.0.0.1:8062\u002Fdocs](http:\u002F\u002F127.0.0.1:8062\u002Fdocs)\n\n`midjourney-api` 提供接口：\n\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine`：触发绘画任务（图生图，Prompt 前加上图片链接即可）\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupscale`：U\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fvariation`：V\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_variation`：Make Variations\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_low_variation`：Vary(Subtle)\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_high_variation`：Vary(Strong)\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fzoomout`：Zoom Out 2x\u002F1.5x\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fexpand`：⬅️ ➡️ ⬆️ ⬇️\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Freset`：重绘\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload`：上传图片\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fdescribe`：通过上传图片名，生成 Prompt\n- [x] `\u002Fv1\u002Fapi\u002Ftrigger\u002Fmessage`：发送图片消息，返回图片链接，用于图生图功能\n\n\n## 使用\n\n### imagine\n\n文生图\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\"\n}'\n```\n\n图生图，需带上图片 URL\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\",\n  \"picurl\": \"https:\u002F\u002Fxxxxxx\u002Fxxxxxxxxxxxx.jpg\"\n}'\n```\n\n### upscale\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fupscale' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，取值：1、2、3、4\n- `msg_id`: `imagine` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `imagine` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `imagine` 绘画完成后回调报文 `trigger_id` 字段\n\n### variation\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fvariation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 2,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n### solo_variation\n\n对 `upscale` 的单张图片进行 \"Make Variations\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n### solo_low_variation\n\n对 `upscale` 的单张图片进行 \"Vary(Subtle)\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_low_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n### solo_high_variation\n\n对 `upscale` 的单张图片进行 \"Vary(Strong)\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_high_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n\n### zoomout\n\n对 `upscale` 的单张图片进行 Zoom Out 2x\u002F1.5x 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fzoomout' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"zoomout\": 50\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `zoomout`: 图片扩大（Outpaint）系数，2x -> 50、1.5x -> 75\n\n\n### expand\n\n对 `upscale` 的单张图片进行某方向的扩展操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fexpand' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"direction\": \"up\"\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `direction`: 图片扩大方向，取值：left\u002Fright\u002Fup\u002Fdown\n\n\n### reset\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Freset' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n### describe\n\n1. 先上传图片\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: multipart\u002Fform-data' \\\n  -F 'file=@cH16Ifh.jpg;type=image\u002Fjpeg'\n```\n\n2. 根据返回的图片文件名，调用 describe\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fdescribe' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"upload_filename\": \"b56ca21a-5fbe-40b4-89ab-6e0aa732f561\u002F9231228408.jpg\",\n  \"trigger_id\": \"9231228408\"\n}'\n```\n\n- `trigger_id` 先用 upload 返回的 trigger_id\n- `upload_filename` upload 返回的文件名\n\n### message\n\n和 `describe` 一样，先 `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload` 上传图片，然后根据返回文件名，发送消息：\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fmessage' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"upload_filename\": \"560a1e26-36a2-4d5f-a48d-9dd877642b51\u002F7185811546.jpg\"\n}'\n```\n\n发送图片后，会返回图片链接。\n该链接用于以图生图中，拼接 Prompt 形如 `图片URL Prompt`，调用 `\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine`。\n\n\n## 功能\n\n- [x] imagine\n- [x] upscale\n- [x] variation\n- [x] solo_variation\n- [x] solo_low_variation\n- [x] solo_high_variation\n- [x] zoomout\n- [x] expand\n- [x] reset\n- [x] describe\n- [x] 图生图（获取到上传图片的链接）\n- [x] 敏感词过滤上报\n- [x] 任务队列（内存存储，不希望引入外建，可加入异常落盘）\n- [ ] tests\n\n## enjoy it\n","# midjourney-api\n\n简体中文 \u002F [English](.\u002FREADME-EN.md)\n\n基于 Discord 的 Midjourney API。\n\n**添加 Midjourney 违禁词入口 [issue](https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002Fnew?assignees=&labels=banned+prompt&projects=&template=banned_prompt_report.yml&title=Banned+prompt%3A+)**\n\n项目集成 Demo 参考：[issue31](https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F31)\n\n\n\u003Chr>\n\n## Midjourney API 平台推荐\n如果以上流程&代码对你来说操作有困难，或者维护账户池消耗了你们大量的精力与成本。这里有一个高度集成且价格与稳定性具有超高性价比的 [Midjouney API](https:\u002F\u002Fttapi.io\u002Fmidjourney) 平台推荐 **[TTAPI](https:\u002F\u002Fttapi.io)**\n\n**TTAPI 平台对于 Midjourney 相关功能支持：**\n- imagine \n- U V pan zoom \n- describe \n- blend \n- vary_region 等等所有 Midjourney 官方包含的高级功能\n- 除此以外还支持**Luma API**、**换脸 API**、相对价格比较优惠的**ChatGPT 以及 Claude API**\n\n**TTAPI 接入**\n\n- 进入 [平台 github 一键登录](https:\u002F\u002Fttapi.io\u002Flogin) 即可获取 30 配额的免费额度（可用于 fast 模式下执行 10 次 imagine 接口用作测试）\n- [平台接口文档地址](https:\u002F\u002Fdocs-zh.mjapiapp.com\u002F)\n\n\u003Chr>\n\n\n## UML\n\n```mermaid\nsequenceDiagram\n    participant ThirdServer\n    participant APIServer\n    participant DiscordAPI\n\n    ThirdServer->>APIServer: 请求接口触发任务\n    APIServer->>APIServer: 放入任务队列\n    APIServer->>DiscordAPI: 调接口触发绘画任务\n    APIServer-->>ThirdServer: 返回是否触发成功\n\n    DiscordAPI->>DiscordAPI: 触发 Midjourney bot 绘画任务\n    DiscordAPI->>DiscordAPI: 监听 MidJourney bot 消息\n    DiscordAPI-->>ThirdServer: 返回监听实时消息\n    DiscordAPI-->>APIServer: 清除队列任务\n```\n\n\n## 使用条件\n\n1. 确保程序启动环境能访问 Discord\n2. 已有 Midjourney、Discord 账户\n3. 创建 Discord 频道并添加机器人，参考教程 [Midjourney｜如何集成到自己的平台](https:\u002F\u002Fmp.weixin.qq.com\u002Fs?__biz=Mzg4MjkzMzc1Mg==&mid=2247484029&idx=1&sn=d3c458bba9459f19f05d13ab23f5f67e&chksm=cf4e68eaf839e1fc2db025bd9940d0f5e57862f1788c88215b4a66cb23f553a30c5f37ac3ae8&token=79614426&lang=zh_CN#rd)\n\n\n## 安装启动\n\n```bash\ngit clone\npip install -r requirements.txt\n```\n\n将文件 `.env.template` 重命名为 `.env`，并填入参数值：\n\n```\nUSER_TOKEN=用户 token\nBOT_TOKEN=机器人 token\nGUILD_ID=服务器 ID\nCHANNEL_ID=频道 ID\nCALLBACK_URL=回调地址，默认 http post 请求，用于接收 midjourney 作图进度和结果的服务\n```\n\n### 直接启动\n\n```bash\n# 启动监听机器人\npython task_bot.py\n# 启动 http 服务\npython server.py\n```\n\n#### 更新\n\n```bash\ngit pull\n\n# 启动监听机器人\npython task_bot.py\n# 启动 http 服务\npython server.py\n```\n\n### docker 启动\n\n填写 [start.sh](.\u002Fstart.sh) 中 `-e` 后的环境变量，直接启动：\n\n```bash\nsh start.sh\n```\n\n或者本地构建镜像：\n\n```bash\n# 构建镜像\nsh build.sh\n# 启动容器\nsh start.sh\n```\n\n#### 更新\n\n```bash\ndocker rmi kunyu\u002Fmidjourney-api:1.0\nsh start.sh\n```\n\n接口 `swagger` 文档：[http:\u002F\u002F127.0.0.1:8062\u002Fdocs](http:\u002F\u002F127.0.0.1:8062\u002Fdocs)\n\n`midjourney-api` 提供接口：\n\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine`：触发绘画任务（图生图，Prompt 前加上图片链接即可）\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupscale`：U\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fvariation`：V\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_variation`：Make Variations\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_low_variation`：Vary(Subtle)\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_high_variation`：Vary(Strong)\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fzoomout`：Zoom Out 2x\u002F1.5x\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fexpand`：⬅️ ➡️ ⬆️ ⬇️\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Freset`：重绘\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload`：上传图片\n- [x]  `\u002Fv1\u002Fapi\u002Ftrigger\u002Fdescribe`：通过上传图片名，生成 Prompt\n- [x] `\u002Fv1\u002Fapi\u002Ftrigger\u002Fmessage`：发送图片消息，返回图片链接，用于图生图功能\n\n\n## 使用\n\n### imagine\n\n文生图\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\"\n}'\n```\n\n图生图，需带上图片 URL\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\",\n  \"picurl\": \"https:\u002F\u002Fxxxxxx\u002Fxxxxxxxxxxxx.jpg\"\n}'\n```\n\n### upscale\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fupscale' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，取值：1、2、3、4\n- `msg_id`: `imagine` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `imagine` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `imagine` 绘画完成后回调报文 `trigger_id` 字段\n\n### variation\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fvariation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 2,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n### solo_variation\n\n对 `upscale` 的单张图片进行 \"Make Variations\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n### solo_low_variation\n\n对 `upscale` 的单张图片进行 \"Vary(Subtle)\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_low_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n### solo_high_variation\n\n对 `upscale` 的单张图片进行 \"Vary(Strong)\" 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_high_variation' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"index\": 1,\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `index`: 图片索引，此处无用，取值：1\n- `msg_id`: `upscale` 绘画完成后回调报文 `id` 字段\n- `msg_hash`: `upscale` 绘画完成后回调报文 `attachments[0].filename.split(\"_\")[-1].split(\".\").[0]`\n- `trigger_id`: `upscale` 绘画完成后回调报文 `trigger_id` 字段\n\n\n### zoomout\n\n对 `upscale` 的单张图片进行 Zoom Out 2x\u002F1.5x 操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fzoomout' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"zoomout\": 50\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `zoomout`: 图片扩大（Outpaint）系数，2x -> 50、1.5x -> 75\n\n\n### expand\n\n对 `upscale` 的单张图片进行某方向的扩展操作\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fexpand' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"direction\": \"up\"\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n- `direction`: 图片扩大方向，取值：left\u002Fright\u002Fup\u002Fdown\n\n\n### reset\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Freset' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"msg_id\": \"xxxxxxxxxx\",\n  \"msg_hash\": \"xxxxx-xxx-xxxx-xxxx-xxxxxx\",\n  \"trigger_id\": \"xxxxxxxxxx\"\n}'\n```\n\n### describe\n\n1. 先上传图片\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: multipart\u002Fform-data' \\\n  -F 'file=@cH16Ifh.jpg;type=image\u002Fjpeg'\n```\n\n2. 根据返回的图片文件名，调用 `describe`（图像描述）接口\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fdescribe' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"upload_filename\": \"b56ca21a-5fbe-40b4-89ab-6e0aa732f561\u002F9231228408.jpg\",\n  \"trigger_id\": \"9231228408\"\n}'\n```\n\n- `trigger_id` 先用 upload 返回的 trigger_id\n- `upload_filename` upload 返回的文件名\n\n### message\n\n和 `describe` 一样，先 `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload` 上传图片，然后根据返回文件名，发送 `message`（消息）：\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fmessage' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"upload_filename\": \"560a1e26-36a2-4d5f-a48d-9dd877642b51\u002F7185811546.jpg\"\n}'\n```\n\n发送图片后，会返回图片链接。\n该链接用于以图生图中，拼接 `Prompt`（提示词）形如 `图片 URL Prompt`，调用 `\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine`。\n\n\n## 功能\n\n- [x] imagine（文生图）\n- [x] upscale（放大）\n- [x] variation（变体）\n- [x] solo_variation（独立变体）\n- [x] solo_low_variation（低强度独立变体）\n- [x] solo_high_variation（高强度独立变体）\n- [x] zoomout（缩放）\n- [x] expand（扩展）\n- [x] reset（重置）\n- [x] describe（图像描述）\n- [x] 图生图（获取到上传图片的链接）\n- [x] 敏感词过滤上报\n- [x] 任务队列（内存存储，不希望引入外建，可加入异常落盘）\n- [ ] 测试\n\n## 开始体验\n\n请直接输出翻译后的中文 README，不要加任何前缀说明。","# midjourney-api 快速上手指南\n\n基于 Discord 的 Midjourney API 服务，提供文生图、图生图及图像编辑等功能的接口调用。\n\n## 环境准备\n\n在开始之前，请确保满足以下条件：\n\n1.  **系统环境**：已安装 Python 环境。\n2.  **网络要求**：程序启动环境必须能够访问 Discord 服务器。\n3.  **账户准备**：\n    *   拥有有效的 Midjourney 账户。\n    *   拥有有效的 Discord 账户。\n4.  **机器人配置**：\n    *   创建 Discord 频道并添加机器人。\n    *   参考教程：[Midjourney｜如何集成到自己的平台](https:\u002F\u002Fmp.weixin.qq.com\u002Fs?__biz=Mzg4MjkzMzc1Mg==&mid=2247484029&idx=1&sn=d3c458bba9459f19f05d13ab23f5f67e&chksm=cf4e68eaf839e1fc2db025bd9940d0f5e57862f1788c88215b4a66cb23f553a30c5f37ac3ae8&token=79614426&lang=zh_CN#rd)\n\n## 安装步骤\n\n### 1. 克隆项目\n\n```bash\ngit clone\npip install -r requirements.txt\n```\n\n### 2. 配置环境变量\n\n将文件 `.env.template` 重命名为 `.env`，并根据实际情况填入以下参数：\n\n```\nUSER_TOKEN=用户 token\nBOT_TOKEN=机器人 token\nGUILD_ID=服务器 ID\nCHANNEL_ID=频道 ID\nCALLBACK_URL=回调地址，默认 http post 请求，用于接收 midjourney 作图进度和结果的服务\n```\n\n### 3. 启动服务\n\n#### 方式一：直接启动\n\n```bash\n# 启动监听机器人\npython task_bot.py\n# 启动 http 服务\npython server.py\n```\n\n#### 方式二：Docker 启动\n\n填写 `start.sh` 中 `-e` 后的环境变量后直接启动：\n\n```bash\nsh start.sh\n```\n\n或本地构建镜像：\n\n```bash\n# 构建镜像\nsh build.sh\n# 启动容器\nsh start.sh\n```\n\n启动成功后，可通过 Swagger 查看接口文档：[http:\u002F\u002F127.0.0.1:8062\u002Fdocs](http:\u002F\u002F127.0.0.1:8062\u002Fdocs)\n\n## 基本使用\n\n### 文生图 (imagine)\n\n发送 POST 请求触发绘画任务。\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\"\n}'\n```\n\n### 图生图\n\n在 Prompt 前带上图片 URL 即可实现图生图功能。\n\n```bash\ncurl -X 'POST' \\\n  'http:\u002F\u002F127.0.0.1:8062\u002Fv1\u002Fapi\u002Ftrigger\u002Fimagine' \\\n  -H 'accept: application\u002Fjson' \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\n  \"prompt\": \"a cute cat\",\n  \"picurl\": \"https:\u002F\u002Fxxxxxx\u002Fxxxxxxxxxxxx.jpg\"\n}'\n```\n\n### 其他支持功能\n\n除基础生成外，本工具还支持以下操作（具体参数请参考 Swagger 文档）：\n\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupscale`：放大图片 (U)\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fvariation`：变体生成 (V)\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fsolo_variation`：单张变体\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fzoomout`：缩放画面\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fexpand`：扩展画面\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fdescribe`：通过图片生成 Prompt\n- `\u002Fv1\u002Fapi\u002Ftrigger\u002Fupload`：上传图片","某跨境电商团队计划在新品上线前，利用 AI 快速生成数百张不同风格的营销海报，并需将这些素材自动同步至官网后台及 CDN 素材库。\n\n### 没有 midjourney-api 时\n- 设计师需频繁切换至 Discord 客户端手动输入 Prompt，单张图片耗时超过 5 分钟，且容易因疲劳导致指令错误。\n- 无法实现批量处理，面对上百个 SKU 的修图需求，人力成本极高，严重拖慢项目上线进度。\n- 生成结果分散在聊天窗口，下载整理困难，难以对接内部 CMS 系统，数据流转断层。\n- 缺乏程序化控制，无法根据业务逻辑自动调整参数或进行二次创作，灵活性受限。\n\n### 使用 midjourney-api 后\n- 后端服务通过 HTTP 接口直接触发 imagine 任务，无需人工干预 Discord 界面，释放人力资源。\n- 利用 Callback URL 接收实时进度，生成完成后自动上传至对象存储并更新数据库，闭环管理。\n- 脚本可循环调用 upscale 与 variation 接口，一键生成适配多端尺寸的完整素材集，标准化输出。\n- 结合 Docker 部署稳定运行，支持高并发请求，彻底打通了 AI 绘图与业务流程，实现规模化生产。\n\nmidjourney-api 将繁琐的手工操作转化为标准化的 API 调用，显著提升了企业级 AI 内容生产的效率与稳定性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fyokonsan_midjourney-api_4f0cd274.png","yokonsan","YuKun","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fyokonsan_b78f491c.jpg","听我说武功，无法高过寺院的钟","Home","NanJing",null,"yokonsan.com","https:\u002F\u002Fgithub.com\u002Fyokonsan",[85,89,93],{"name":86,"color":87,"percentage":88},"Python","#3572A5",96.4,{"name":90,"color":91,"percentage":92},"Shell","#89e051",2.6,{"name":94,"color":95,"percentage":96},"Dockerfile","#384d54",0.9,889,184,"2026-03-30T07:50:08","未说明",{"notes":102,"python":100,"dependencies":103},"1. 需确保运行环境能访问 Discord 网络；2. 需拥有 Midjourney 和 Discord 账户；3. 需创建 Discord 频道并添加机器人获取相关 Token；4. 需配置.env 文件中的 USER_TOKEN、BOT_TOKEN、GUILD_ID、CHANNEL_ID 等参数；5. 支持 Docker 容器化部署；6. 该工具为 Discord API 桥接层，实际绘图由 Midjourney 云端完成，本地无需 GPU 参与图像生成。",[100],[36,14],[106,107],"midjourney","midjourney-api-bot","2026-03-27T02:49:30.150509","2026-04-06T07:05:50.309994",[111,116,121,126,131,136],{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},2361,"Python task_bot.py 运行时报错或无法连接 Discord 是什么原因？","常见原因包括网络连接问题和 Discord Bot 配置缺失。请务必在 Discord 开发者后台（https:\u002F\u002Fdiscord.com\u002Fdevelopers\u002Fapplications）开启 `SERVER MEMBERS INTENT` 选项，否则会导致任务无法运行。如果是网络问题，建议尝试使用代理工具（如 steampp.net）。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F45",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},2362,"task_bot 启动后无法监听 Discord 消息或无日志输出怎么办？","首先检查频道 ID 和服务器 ID 配置是否正确。确保 Midjourney 的 BOT 和你配置的 BOT 在同一个频道内。如果已新建服务器、频道和 BOT 仍无效，需排查网络或 Token 配置问题，并确认 Discord 内手动触发任务时 task_bot 能否正常监听。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F21",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},2363,"调用接口返回成功但收不到回调消息或在 Discord 频道无反应怎么办？","可能是 Discord 报文改版导致的不兼容，需更新代码版本。此外，网络环境也可能影响回调接收，有用户反馈将代码部署到海外机器后恢复正常。请检查网络连接及代码是否为最新版本，并确认 API 请求参数正确。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F49",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},2364,"运行一段时间后回调地址收不到消息，且机器人不再触发绘画任务，如何排查？","可能是禁用词导致任务卡在队列中未清除。解决方法是增加并发数配置值，并确保配置了正确的回调地址 `\u002Frelease` 以便释放队列资源。同时检查是否有任务因违规被永久阻塞。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F47",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},2365,"服务器启动时出现 SSL 证书验证失败或连接超时错误如何解决？","这通常是网络问题。参考 StackOverflow 上的 aiohttp 连接错误解决方案处理 SSL 配置。如果是国内服务器，可能需要配置代理或更换网络环境以访问 discord.com:443，确保本地环境能正常连接 Discord 服务器。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F25",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},2366,"在哪里配置日志等级？callback_url 接收的信息包格式是怎样的？","日志等级 `LOG_LEVEL` 需在环境变量或配置文件中设置（建议设为 DEBUG 以查看图片链接）。关于 callback_url 的具体接收格式，建议参考项目文档或向维护者索取示例代码，因为不同版本可能有所差异，需确保日志级别足够低以捕获详细信息。","https:\u002F\u002Fgithub.com\u002Fyokonsan\u002Fmidjourney-api\u002Fissues\u002F46",[]]