Midjourney 作品集自动生成:Anything-LLM 联动实践
在 AI 创作工具日益普及的今天,设计师们正面临一个看似矛盾的现象:生产力空前提升,但知识管理却愈发混乱。每天生成上百张图像、尝试无数种提示词组合后,真正能被复用的设计经验反而像沙子一样从指缝中溜走。你是否也有过这样的经历——明明记得上周做过一张'赛博朋克海滩'的图,现在客户提出类似需求时,翻遍 Discord 聊天记录却怎么也找不到?
这正是我们构建这套自动化系统的出发点。与其把 AI 当作一次性的画笔,不如让它成为团队的'长期记忆体'。而关键,就在于如何将那些散落在各处的图像和提示词,转化为可检索、可对话的知识资产。
想象一下这个场景:你在 Anything-LLM 的聊天框里输入:'找一张去年夏天做的、带霓虹灯的城市夜景图,风格接近赛博朋克。'几秒钟后,系统不仅返回了三张匹配度最高的作品预览,还附上了原始 prompt、参数设置以及生成时间。更进一步,它甚至建议:'您在 7 月 12 日还尝试过一种高 Chaos 值的变体,视觉冲击更强,需要查看吗?'
这不是未来设想,而是通过Midjourney + Anything-LLM联动即可实现的工作流跃迁。其核心思路并不复杂:我们不直接干预 AI 作画过程,而是围绕输出结果建立一条'捕获—结构化—归档—智能调用'的闭环链路。
为什么是 Anything-LLM?
市面上并不缺少文档管理工具,但大多数仍停留在'文件柜'阶段——你需要知道文件名或关键词才能找到它。而 Anything-LLM 的不同之处在于,它是一个会'思考'的知识库。它的底层基于 RAG(检索增强生成)架构,这意味着当你提问时,它不会凭空编造答案,而是先从你的私有文档中检索相关信息,再结合语言模型组织成自然语言回应。
整个流程可以拆解为两个阶段:
首先是文档摄入与向量化。当你上传一份 PDF 或 Markdown 文件时,系统会用文本解析器提取内容,切成 512~1024 token 的语义片段,然后通过嵌入模型(如 BAAI/bge-small-en-v1.5)转换为高维向量,存入本地数据库(如 ChromaDB)。这些向量就像是每段文字的'指纹',决定了它们在语义空间中的位置。
其次是查询与生成响应。当用户提问时,问题同样被编码为向量,并在数据库中进行相似度搜索(通常使用余弦相似度)。最相关的几个文本块会被提取出来,连同问题一起送入大语言模型(如 Llama3 或 GPT-4),最终生成一个有据可依的回答。这种机制有效避免了纯 LLM 常见的'幻觉'问题。
更重要的是,Anything-LLM 支持完全本地化部署,所有数据保留在内网环境中。对于设计机构而言,这意味着客户的创意草稿、未发布的品牌视觉方案都不会上传到第三方服务器,满足 GDPR 等隐私合规要求。
import requests
# 示例:通过 API 自动归档新生成的作品
BASE_URL = "http://localhost:3001"
def create_workspace(name: str):
resp = requests.post(f"{BASE_URL}/api/workspace", json={"name": name})
return resp.json()["id"]
def upload_document(workspace_id: str, file_path: str):
with open(file_path, "rb") as f:
files = {"file": (file_path.split()[-], f, )}
data = {: workspace_id}
resp = requests.post(, files=files, data=data)
resp.status_code ==
__name__ == :
ws_id = create_workspace()
success = upload_document(ws_id, )
(, success)

