小红书 AI 宣传图和图文笔记技能 - 根据用户提示词自动判断生成单张或多张宣传图,调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片;仅在用户明确要求发布时才执行发布。
一体化工作流:理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记
先根据用户提示词判断目标,再选择生成和发布动作:
scripts/publish_xhs.py。manifest.json 读取标题和 publish_desc,图片按 cover.png、 card_*.png 顺序上传,最多 9 张。执行顺序:
gpt-image-2 或火山引擎 Ark 文生图模型生成宣传图;视频任务验证用户提供的本地 MP4 和可选封面。cover.png / card_*.png 和 manifest.json。根据用户输入自动生成:
OPENAI_API_KEY 走 OpenAI, ARK_API_KEY 走火山引擎 Arkgpt-image-2doubao-seedream-4-5-251128doubao-seed-2-0-pro-260215,可用 --text-model 切换cover.png,多张输出 cover.png + card_*.png.mp4 文件,不生成、不下载、不转码、不剪辑视频--dry-run 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数⚠️ 数据传输提示:您输入的描述及生成的提示词等内容将发送至第三方 AI 服务(OpenAI 或火山引擎)进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。
bash
# 只需要配置一种 API Key
export OPENAI_API_KEY="your_api_key"
# 或
export ARK_API_KEY="your_ark_api_key"
python3 scripts/generate_xhs.py \
"给 蒙语 AI 翻译 API 写一篇小红书推广笔记,突出一个 API Key 搞定翻译、OCR 和语音识别" \
-o ./output
生成结果:
text
output/
├── manifest.json # 结构化标题、主题、发布文案、Tags 和图片路径
├── cover.png
└── card_*.png
bash
python3 scripts/generate_xhs.py "你的描述" -o ./output --skip-image
bash
# 单张宣传图,只输出 cover.png
python3 scripts/generate_xhs.py "你的描述" -o ./output --image-count 1
# 多张组图,总数包含封面,最多 9 张
python3 scripts/generate_xhs.py "你的描述" -o ./output --image-count 5
text
xiaohongshu-ai/
├── SKILL.md # 技能文档
├── scripts/
│ ├── generate_xhs.py # 自动内容 + AI 宣传图生成脚本
│ ├── ai_services/ # 可扩展 AI 模型服务实现
│ │ ├── chatgpt_service.py
│ │ └── volcengine_service.py
│ └── publish_xhs.py # 明确要求发布时使用的图文/视频发布脚本
参数说明默认值description用户输入的文字描述必填或使用 --input-file``--input-file从文件读取描述无--output-dir, -o输出目录./output``--provider服务提供方openai/ chatgpt 或 volcengine/ ark,默认根据可用 Key 自动选择--text-model主题和正文生成模型OpenAI 默认 gpt-5-mini,Ark 默认 doubao-seed-2-0-pro-260215``--image-size宣传图尺寸OpenAI 默认 1024x1536,火山默认 2K``--image-qualityOpenAI 宣传图质量high``--ark-base-url火山引擎 Ark OpenAI 兼容接口地址https://ark.cn-beijing.volces.com/api/v3``--volcengine-watermark火山图片生成时添加水印关闭--skip-image不调用图片模型,只生成 manifest.json关闭--image-count目标输出图片总数,包含封面;单张宣传图使用 1不限制,按内容自动生成
bash
# 自动生成宣传图
python3 scripts/generate_xhs.py "你的描述" -o ./output
# 生成单张宣传图
python3 scripts/generate_xhs.py "你的描述" -o ./output --image-count 1
# 生成 5 张组图
python3 scripts/generate_xhs.py "你的描述" -o ./output --image-count 5
# 从文件读取需求描述
python3 scripts/generate_xhs.py --input-file brief.txt -o ./output
# 指定文案模型
python3 scripts/generate_xhs.py "你的描述" --text-model gpt-5-mini
# 使用火山引擎 Ark 文生图
python3 scripts/generate_xhs.py "你的描述" \
--provider volcengine \
--image-size 2K
发布是独立步骤,只能在用户明确要求“发布到小红书”时执行。
bash
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc "笔记描述 #标签 1 #标签 2" \
--images cover.png card_1.png card_2.png
# 使用 glob 匹配所有图片(自然排序)
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc "笔记描述" \
--images-glob "./output/*.png"
# 从文件读取描述
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc-file ./output/desc.txt \
--images cover.png
# 验证模式(不实际发布)
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc "笔记描述" \
--images cover.png \
--dry-run
# 设为公开笔记(默认为私密)
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc "笔记描述" \
--images cover.png \
--public
# 定时发布
python3 scripts/publish_xhs.py \
--title "笔记标题" \
--desc "笔记描述" \
--images cover.png \
--post-time "2024-01-01 12:00:00"
# 发布本地 MP4 视频(未指定封面时自动使用视频第一帧)
python3 scripts/publish_xhs.py \
--title "视频标题" \
--desc "视频描述 #标签" \
--video ./video.mp4
# 发布本地 MP4 视频并指定封面
python3 scripts/publish_xhs.py \
--title "视频标题" \
--desc "视频描述 #标签" \
--video ./video.mp4 \
--cover ./cover.png
# 验证视频参数和文件(不需要 Cookie,不实际发布)
python3 scripts/publish_xhs.py \
--title "视频标题" \
--video ./video.mp4 \
--dry-run
参数说明默认值--title, -t笔记标题(不超过 20 字)必填--desc, -d笔记描述/正文内容""``--desc-file从 UTF-8 文件读取描述无--images, -i图片文件路径(空格分隔)无--images-glob使用 glob 匹配图片,按自然序排序无--video, -v本地 MP4 视频路径;与图片参数互斥无--cover视频封面图片;仅能与 --video 一起使用自动使用视频第一帧--video-wait-time自动获取视频第一帧时的轮询间隔秒数3``--require-image-count要求图片数量必须等于该值不限制--private设为私密笔记(默认)默认开启--public设为公开笔记关闭--post-time定时发布时间( 2024-01-01 12:00:00)立即发布--dry-run仅验证,不实际发布关闭--verbose显示底层库输出关闭--debug-json将发布结果写入 JSON 文件无--yes, -y兼容旧参数(当前脚本不再交互确认)—
export OPENAI_API_KEY="your_api_key"export ARK_API_KEY="your_ark_api_key"--dry-run 不需要):
export XHS_COOKIE="your_cookie_string"--dry-run 参数。XHS_COOKIEbash
pip install openai
pip install "xhs>=0.2.13"