共计 2286 个字符,预计需要花费 6 分钟才能阅读完成。
背景痛点
在构建 AI 图文生成并自动发布到小红书的系统中,开发者面临着几大核心挑战:

- 内容合规性:小红书平台对内容有严格的审核机制,AI 生成的内容需要符合社区规范,避免涉及敏感话题或低质内容。
- API 调用频率限制:小红书开放平台的 API 有严格的调用频率限制,尤其是在高频发布场景下容易被限流。
- 生成质量不稳定:单一的 AI 模型(如 Stable Diffusion 或 DALL·E)生成的图文内容质量参差不齐,难以满足多样化的需求。
- 发布流程复杂:从生成到发布的流程中涉及多个步骤(如图片上传、文案生成、标签匹配等),容易出现失败或超时。
技术选型
主流生成模型对比
- Stable Diffusion
- 优点:开源免费,支持本地部署,生成速度快,适合高定制化需求。
- 缺点:生成的图片风格较单一,需要额外训练微调模型。
- DALL·E
- 优点:由 OpenAI 提供,生成质量高,支持多模态输入(文本 + 图片)。
- 缺点:API 调用成本高,生成速度较慢。
- MidJourney
- 优点:艺术风格多样,适合创意类内容。
- 缺点:闭源,依赖 Discord 平台,无法直接集成到自动化流程中。
模型组合方案
基于以上对比,我们选择 Stable Diffusion + OpenAI GPT-3 的组合:
- Stable Diffusion:用于生成高质量图片,通过本地部署降低成本。
- GPT-3:用于生成文案和标签,提升内容的多样性和可读性。
核心架构
系统分为三大模块:
- 前端服务:接收用户输入(如主题、风格要求),调用生成服务并返回结果。
- 生成服务:
- 图片生成:调用 Stable Diffusion API 生成图片。
- 文案生成:调用 GPT- 3 生成标题和描述。
- 发布服务:调用小红书开放平台 API 完成内容发布。
架构图
graph TD
A[用户输入] --> B[前端服务]
B --> C[生成服务]
C --> D[Stable Diffusion]
C --> E[GPT-3]
D --> F[图片生成]
E --> G[文案生成]
F --> H[发布服务]
G --> H
H --> I[小红书 API]
I --> J[发布成功]
关键实现
图片生成与文案生成
import requests
import openai
from PIL import Image
import io
# Stable Diffusion 生成图片
def generate_image(prompt):
url = "http://localhost:7860/sdapi/v1/txt2img"
payload = {
"prompt": prompt,
"steps": 50,
"width": 512,
"height": 512
}
response = requests.post(url, json=payload)
if response.status_code == 200:
image_data = response.json()["images"][0]
return Image.open(io.BytesIO(image_data))
else:
raise Exception("图片生成失败")
# GPT- 3 生成文案
def generate_text(prompt):
openai.api_key = "your-api-key"
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=100
)
return response.choices[0].text
小红书发布服务
def post_to_xiaohongshu(image_path, title, content):
url = "https://open.xiaohongshu.com/api/content/publish"
headers = {
"Authorization": "Bearer your-access-token",
"Content-Type": "multipart/form-data"
}
files = {"image": open(image_path, "rb")}
data = {
"title": title,
"content": content,
"tags": "AI, 科技"
}
response = requests.post(url, headers=headers, files=files, data=data)
if response.status_code == 200:
return response.json()
else:
raise Exception("发布失败")
性能优化
- 缓存机制:对生成的图片和文案进行缓存,避免重复生成。
- 异步队列:使用 Celery 或 RabbitMQ 将生成和发布任务异步化,提升系统吞吐量。
- 批量处理:支持批量生成和发布,减少 API 调用次数。
避坑指南
- 内容审核失败:
- 问题:AI 生成的内容可能包含敏感词或不符合社区规范。
- 解决方案:在发布前调用小红书的预审 API,或使用第三方内容审核服务(如阿里云内容安全)。
- API 限流:
- 问题:高频调用小红书 API 容易被限流。
- 解决方案:实现指数退避重试机制,限制调用频率。
- 生成质量不稳定:
- 问题:Stable Diffusion 生成的图片风格不一致。
- 解决方案:使用 LoRA 或 Dreambooth 微调模型,提升生成质量。
安全考量
- 用户数据隐私:
- 避免存储用户的原始输入和生成结果。
- 使用加密传输(HTTPS)和存储(AES)。
- 平台合规:
- 严格遵守小红书开放平台的开发者协议。
- 在生成内容中添加 ”AI 生成 ” 标识,避免误导用户。
开放性问题
- 如何进一步降低生成成本?
- 如何实现多平台(如抖音、微博)的自动化发布?
- 如何通过用户反馈优化生成模型?
正文完
发表至: 技术分享
近两天内
