- main.py: 4360 → 146 lines (96.6% reduction), entry layer only - services/: rate_limiter, autostart, persona, connection, profile, hotspot, content, engagement, scheduler, queue_ops (10 business modules) - ui/app.py: all Gradio UI code extracted into build_app(cfg, analytics) - Fix: with gr.Blocks() indented inside build_app function - Fix: cfg.all property (not get_all method) - Fix: STATUS_LABELS, get_persona_keywords, fetch_proactive_notes imports - Fix: queue_ops module-level set_publish_callback moved into configure() - Fix: pub_queue.format_*() wrapped as queue_format_table/calendar helpers - All 14 files syntax-verified, build_app() runtime-verified - 58/58 tasks complete"
🍒 小红书 AI 爆文生产工坊 V2.5
全自动小红书内容创作 & 智能运营工具
灵感 → 文案 → 绘图 → 排期 → 发布 → 运营 → 学习,全闭环 AI 驱动
功能特性 • 快速开始 • 使用指南 • 配置说明 • 人设系统 • FAQ • 贡献
✨ 功能特性
📝 内容创作(Tab 1)
- AI 文案生成 — 输入主题即可生成小红书爆款标题、正文、话题标签
- AI 绘图 — 集成 Stable Diffusion WebUI,支持 3 款模型智能适配
- 人设视觉优化 — 9 种人设专属视觉方案,自动注入风格提示词
- ReActor 换脸 — 上传头像一键换脸,保持角色一致性
- 质量模式 — 快速/标准/精细三档,灵活平衡速度与画质
- 反 AI 检测 — 8 层文案人格化 + 7 步图片后处理,绕过 AI 内容检测
- 一键导出 — 文案 + 图片打包导出到本地文件夹
🔥 热点探测(Tab 2)
- 关键词搜索 — 搜索小红书热门笔记,支持多维度排序
- AI 趋势分析 — 分析热门标题套路、内容结构,给出模仿建议
- 一键借鉴创作 — 参考热门笔记风格生成原创内容
💬 评论管家(Tab 3)
- 主动评论引流 — 浏览笔记 → AI 智能生成评论 → 一键发送
- 自动回复粉丝 — 加载笔记评论 → AI 生成回复 → 发送
🔐 账号管理(Tab 4)
- 扫码登录 — 小红书二维码登录,自动获取 Token
- 多 LLM 提供商 — 支持 DeepSeek、OpenAI、通义千问等所有兼容接口
📊 数据看板(Tab 5)
- 账号概览 — 粉丝数、获赞数等核心指标可视化
- 笔记排行 — 点赞排行图表分析
- 笔记详情 — 全部笔记数据明细表
🧠 智能学习(Tab 6)
- 数据采集 — 自动采集已发布笔记的互动数据(点赞、评论、收藏)
- 多维权重 — 主题权重、风格权重、标签权重、标题模式权重
- AI 深度分析 — LLM 分析笔记表现规律,生成内容策略建议
- 定时学习 — 后台自动采集 + 分析(1-48 小时可配置)
- 加权发布 — 自动发布时根据笔记表现权重智能选择高互动主题
🤖 自动运营(Tab 7,无人值守)
- 一键评论 — 自动搜索高赞笔记 + AI 生成评论 + 发送
- 一键点赞 — 批量随机点赞,提升账号活跃度
- 一键回复 — 自动扫描我的笔记 + AI 回复粉丝评论
- 一键发布 — 自动生成文案 + SD 生图 + 发布到小红书
- 随机定时 — 评论/点赞/回复/发布全自动定时执行,随机间隔模拟真人
- 每日限额 — 评论/点赞/收藏/发布/回复独立限额,防封号
- 错误冷却 — 连续错误自动暂停,避免异常操作
📅 内容排期(Tab 8)
- 批量生成 — 一键批量生成多篇内容(文案 + 图片)加入队列
- 队列管理 — 草稿 → 审核 → 排期 → 发布,全流程状态管理
- 定时发布 — SQLite 队列 + 后台 Publisher 线程自动定时发布
- 队列处理器 — 启动/停止后台自动发布引擎
📸 截图预览
启动后在浏览器中打开
http://127.0.0.1:7860
🚀 快速开始
环境要求
| 依赖 | 要求 | 说明 |
|---|---|---|
| Python | >= 3.10 | 推荐 3.11+ |
| xiaohongshu-mcp | 运行中 | 小红书 MCP 服务(默认端口 18060) |
| Stable Diffusion WebUI | 可选 | 本地 AI 绘图(默认端口 7860) |
| LLM API | 必须 | 任意 OpenAI 兼容接口 |
安装步骤
# 1. 克隆项目
git clone https://github.com/your-username/xhs-autobot.git
cd xhs-autobot
# 2. 创建虚拟环境(推荐)
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# 3. 安装依赖
pip install -r requirements.txt
# 4. 复制配置文件并填写你的 API Key
cp config.example.json config.json
# 编辑 config.json,填写 api_key、base_url 等
# 5. 启动!
python main.py
启动后会自动打开浏览器,访问 http://127.0.0.1:7860。
🐳 Docker 部署(推荐)
使用 Docker Compose 一键启动所有服务,无需手动安装 Python 环境:
# 1. 克隆项目
git clone https://github.com/your-username/xhs-autobot.git
cd xhs-autobot
# 2. 准备配置文件
cp config.example.json config.json
# 编辑 config.json,填写 api_key、base_url 等
# ⚠️ mcp_url 改为容器网络地址:
# "mcp_url": "http://xhs-mcp:18060/mcp"
# 3. 一键启动
docker compose up -d
# 4. 查看日志
docker compose logs -f xhs-autobot
启动后访问 http://localhost:7860。
Docker 服务说明
| 服务 | 容器名 | 端口 | 说明 |
|---|---|---|---|
xhs-autobot |
xhs-autobot | 7860 | 主应用(Gradio UI) |
xhs-mcp |
xhs-mcp | 18060 | 小红书 MCP 服务 |
sd-webui |
sd-webui | 7861 | SD WebUI(可选,需 GPU) |
常用命令
# 停止所有服务
docker compose down
# 重新构建(代码更新后)
docker compose up -d --build
# 查看运行状态
docker compose ps
# 进入主容器调试
docker compose exec xhs-autobot bash
启用 Stable Diffusion(需要 NVIDIA GPU)
编辑 docker-compose.yml,取消 sd-webui 部分的注释,并将 config.json 中的 sd_url 改为:
"sd_url": "http://sd-webui:7860"
前置服务
xiaohongshu-mcp(必须)
本项目通过 xiaohongshu-mcp 与小红书交互(搜索、发布、评论等),请先启动 MCP 服务:
# 按照 xiaohongshu-mcp 文档启动,默认端口 18060
npx xiaohongshu-mcp
Stable Diffusion WebUI(可选,用于 AI 绘图)
推荐使用 AUTOMATIC1111/stable-diffusion-webui,启动时开启 API:
python launch.py --api
推荐模型:
| 模型 | 架构 | 风格 | 推荐场景 |
|---|---|---|---|
| JuggernautXL | SDXL | 电影大片风 | 通用首选,高质量写真 |
| majicmixRealistic | SD 1.5 | 东亚网红风 | 亚洲博主、日韩风 |
| Realistic Vision | SD 1.5 | 纪实摄影风 | 生活场景、街拍 |
📖 使用指南
首次使用流程
- 配置 LLM — 展开「⚙️ 全局设置」,添加 LLM 提供商(API Key + Base URL),点击「连接 LLM」
- 连接 SD(可选)— 填写 SD WebUI URL,点击「连接 SD」
- 检查 MCP — 点击「检查 MCP」确认小红书服务正常
- 登录小红书 — 切换到「🔐 账号登录」Tab,扫码登录
- 选择人设 — 在人设下拉框选择博主人设(影响文案风格 + 图片视觉)
- 开始创作 — 切换到「✨ 内容创作」Tab,输入主题,一键生成
自动化运营
切换到「🤖 自动运营」Tab:
- 一键操作 — 手动触发单次评论/点赞/回复/发布
- 定时调度 — 勾选需要的功能,设置间隔时间,点击「▶️ 启动定时」
- 查看日志 — 点击「🔄 刷新日志」查看实时执行记录
- 每日统计 — 自动跟踪今日操作量,超限自动暂停
内容排期
切换到「📅 内容排期」Tab:
- 批量生成 — 点击「📋 批量生成 → 加入队列」,自动生成多篇内容存入队列
- 审核内容 — 在队列列表中预览、编辑或驳回草稿
- 设定时间 — 为已审核内容设置发布时间
- 启动发布 — 点击「▶ 启动队列处理」,后台自动在预定时间发布
智能学习
切换到「🧠 智能学习」Tab:
- 采集数据 — 点击「📊 立即采集」收集笔记互动数据
- 分析权重 — 系统自动计算主题/风格/标签权重
- 启用加权 — 开启后自动发布时优先选择高互动主题
- 定时学习 — 设置自动采集间隔,持续优化内容策略
⚙️ 配置说明
配置文件 config.json 会在运行时自动创建和保存。首次使用请从 config.example.json 复制:
{
"api_key": "你的LLM API Key",
"base_url": "https://api.deepseek.com/v1",
"sd_url": "http://127.0.0.1:7860",
"mcp_url": "http://localhost:18060/mcp",
"model": "deepseek-chat",
"persona": "赛博AI虚拟博主,住在2077年的数码女孩...",
"my_user_id": "你的小红书userId(24位)"
}
| 字段 | 说明 | 必填 |
|---|---|---|
api_key |
LLM API 密钥 | ✅ |
base_url |
LLM API 地址(OpenAI 兼容) | ✅ |
sd_url |
Stable Diffusion WebUI 地址 | 绘图需要 |
mcp_url |
xiaohongshu-mcp 服务地址 | ✅ |
model |
默认使用的 LLM 模型名 | ✅ |
persona |
博主人设(影响文案风格 + SD 视觉风格) | 可选 |
my_user_id |
你的小红书 userId(24 位十六进制) | 数据看板/自动回复需要 |
llm_providers |
多 LLM 提供商配置数组 | 通过 UI 管理 |
获取 userId
- 浏览器打开你的小红书主页
- 网址格式为
xiaohongshu.com/user/profile/xxxxxxxx profile/后面的就是 userId
📁 项目结构
xhs-autobot/
├── main.py # 主程序入口 (Gradio UI + 业务逻辑 + 8 个 Tab)
├── config_manager.py # 配置管理模块 (单例、自动保存)
├── llm_service.py # LLM 服务封装 (文案生成、热点分析、评论回复、SD Prompt 指南)
├── sd_service.py # Stable Diffusion 服务封装 (3 模型适配、9 人设视觉方案)
├── mcp_client.py # 小红书 MCP 客户端 (搜索、发布、评论、点赞)
├── analytics_service.py # 笔记数据分析 & 权重学习服务
├── publish_queue.py # 内容排期队列 (SQLite + 后台 Publisher)
├── config.json # 运行时配置 (gitignore)
├── config.example.json # 配置模板
├── requirements.txt # Python 依赖
├── Dockerfile # Docker 镜像构建
├── docker-compose.yml # Docker Compose 编排
├── .dockerignore # Docker 构建排除规则
├── xhs_workspace/ # 导出的文案和图片 (gitignore)
│ ├── publish_queue.db # 排期队列数据库
│ ├── analytics_data.json # 笔记表现数据
│ └── content_weights.json # 内容权重数据
└── autobot.log # 运行日志 (gitignore)
🎭 人设系统
项目内置 28 种博主人设,每种人设拥有:
- 专属主题池 — 匹配人设的内容方向(如健身博主自动抽健身主题)
- 评论关键词 — 搜索和评论时使用与人设相关的关键词
- SD 视觉方案 — 9 种人设拥有专属视觉优化(prompt_boost + 风格词 + 负面词)
- LLM 指导词 — LLM 生成 SD Prompt 时收到人设专属的视觉风格引导
内置人设视觉方案
| 人设 | 视觉风格 |
|---|---|
| 赛博AI虚拟博主 | 科幻/赛博朋克,发光特效,极致完美面容 |
| 性感福利主播 | 暖金色调,闺房/泳池,魅力摄影 |
| 身材管理健身美女 | 健身房/运动场,活力运动风 |
| 温柔知性时尚博主 | 法式优雅,时装杂志质感 |
| 文艺青年摄影师 | 胶片颗粒,Kodak Portra 怀旧色调 |
| 二次元coser | 动漫灵感,Cosplay,鲜艳色彩 |
| 汉服爱好者 | 水墨画风,丝绸流动,古典意境 |
| 独居女孩 | 温馨烛光,Hygge 风格 |
| 资深美妆博主 | 环形灯棚拍,完美妆容特写 |
选择「🎲 随机人设」可每次自动切换,增加账号内容多样性。
❓ 常见问题
Q: LLM API 报错 400 json_object
某些 API 在使用 response_format: json_object 时要求消息中包含 "json" 一词。本项目已自动处理,如仍遇到请升级到最新版本。
Q: 评论发送成功但 App 上看不到
小红书有内容审核机制,评论可能需要 1-5 分钟显示。部分评论可能被风控(仅自己可见)。查看自动化日志中的 MCP 响应可排查。
Q: SD WebUI 连接失败
确保启动 SD WebUI 时加了 --api 参数,且端口匹配。本项目默认连接 http://127.0.0.1:7860。
Q: xiaohongshu-mcp 是什么?怎么启动?
这是一个开源的小红书 MCP 服务端,提供搜索、发布、评论等 API。详见 xiaohongshu-mcp 项目。
Q: 支持哪些 LLM?
支持所有 OpenAI 兼容接口,包括但不限于:DeepSeek、GPT-4o、通义千问、Gemini(通过中转)、Claude(通过中转)等。
Q: 反 AI 检测是怎么实现的?
文案层面(8 层人格化):口语化改写、插入不完美表达、随机错别字、方言词汇、不规律标点、emoji 混入、段落长度随机化、句式打乱。
图片层面(7 步后处理):微旋转裁剪、轻微色偏、随机噪点、JPEG 二次压缩(质量 82-92)、EXIF 清除、局部模糊/锐化、微位移。
Q: 如何添加自定义人设?
在人设下拉框中直接输入自定义人设描述即可(支持自由输入)。如需配套主题池和关键词,需在 main.py 的 PERSONA_POOL_MAP 中添加对应条目。如需配套 SD 视觉方案,需在 sd_service.py 的 PERSONA_SD_PROFILES 中添加。
Q: 支持哪些 SD 模型?
内置适配 3 款模型:majicmixRealistic(SD 1.5)、Realistic Vision(SD 1.5)、Juggernaut XL(SDXL)。系统会自动检测当前模型并匹配最佳参数。未知模型自动回退到 SDXL 默认档案。
🤝 贡献指南
欢迎贡献代码!请查看 CONTRIBUTING.md 了解详情。
简要流程:
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'feat: add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 发起 Pull Request
📋 更新日志
详见 CHANGELOG.md。
⚠️ 免责声明
- 本项目仅供学习和研究目的,请遵守小红书平台的使用规范和服务条款
- 过度使用自动化功能可能导致账号被限制,请合理设置操作间隔
- 用户需为自己发布的内容和使用行为承担全部责任
- 本项目不保存、不传输任何用户的账号密码信息
📄 许可证
本项目使用 MIT License 开源。
🌟 Star History
如果这个项目对你有帮助,请点亮 ⭐ Star!