用 AI 批量出图出文很容易,难的是”可控”与”可审计”:风格漂移、版权与合规风险、出事时查不到某张图是哪个提示词哪次运行生成的。把 AIGC 从”手工抽卡”变成流水线,核心是三件事:输入模板化、审核门禁化、产物台账化。本文搭一条最小可审计的生产管线。

前置准备

以文生图批量生产为例,生成侧用任意 OpenAI 兼容接口,台账用 SQLite 起步:

pip install openai pillow sqlite-utils
  • 台账表:run_id、prompt 模板版本、种子、模型版本、参数、产物哈希、审核状态、发布链接
  • 原则:先有台账再放量——没有元数据的产物一律视为不可发布

步骤一:模板化提示词与种子管理

风格可控的前提是输入可控:提示词走模板(风格词、禁词固定),种子显式记录:

TEMPLATE = "flat illustration, {subject}, soft palette, no text, no watermark"
BANNED = ["logo", "celebrity", "brand"]

def make_prompt(subject):
p = TEMPLATE.format(subject=subject)
assert not any(b in p.lower() for b in BANNED), "命中禁词"
return p
  • 模板版本化(v1/v2),与提示词工程流程共用一套管理方式
  • 每次生成记录 seed:可复现 = 可审计的前提,投诉时能原样重放出问题的那张图

步骤二:批量生成并写入台账

生成与登记在一个事务里完成,杜绝”有图无账”:

import sqlite3, hashlib, uuid
db = sqlite3.connect("ledger.db")
db.execute("""CREATE TABLE IF NOT EXISTS assets(
run_id TEXT, prompt_ver TEXT, prompt TEXT, seed INT, model TEXT,
sha256 TEXT, status TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)""")

for subject in subjects:
seed = int(uuid.uuid4().int % 2**31)
img = client.images.generate(prompt=make_prompt(subject), seed=seed, model="sdxl")
sha = hashlib.sha256(img.bytes).hexdigest()
save(img, f"out/{sha}.png")
db.execute("INSERT INTO assets VALUES(?,?,?,?,?,?,?,CURRENT_TIMESTAMP)",
(run_id, "v2", make_prompt(subject), seed, "sdxl", sha, "pending"))
db.commit()

步骤三:机审 + 人审双门禁

机审挡大头,人审抽检兜底,两道门都过才允许发布:

def machine_gate(sha):
checks = {
"nsfw": nsfw_score(sha) < 0.3, # 安全分类器
"dup": perceptual_dup(sha) is None, # pHash 去重, 防自抄袭
"face": face_detect(sha) == 0, # 无人脸, 规避肖像权
}
return all(checks.values()), checks
  • 机审不通过的产物状态置 rejected 并记录原因——丢弃也要留痕
  • 人审抽检率按风险分级:对外商用 100%,内部素材 10%;审核结论回写台账

步骤四:水印与发布关联

发布前叠加可见/不可见水印,并把发布链接回写台账形成闭环:

from PIL import Image
im = Image.open(f"out/{sha}.png")
im = add_visible_signature(im, "@heiau") # 可见署名
im = add_invisible_watermark(im, run_id) # 不可见水印携带 run_id
im.save(f"pub/{sha}.png")
db.execute("UPDATE assets SET status='published', publish_url=? WHERE sha256=?",
(upload(f"pub/{sha}.png"), sha))
  • 不可见水印带 run_id:外部发现侵权或违规内容时,可反查整条生产记录
  • 台账定期导出冷备,保留期与内容合规要求对齐(建议 ≥ 2 年)

常见问题

  • 风格漂移:模型升级后同模板出图风格变化——模板版本与模型版本绑定登记,换模型跑风格回归集
  • 台账漏记:绕过管线手工出图——发布出口只认台账状态为 published 的产物,出口收口即杜绝
  • 机审误杀率高:阈值一刀切——按品类分别标定阈值,误杀样本进人审队列回收再训练
  • 成本失控:批量任务加预算熔断(日生成量/费用上限),超限自动暂停排队

小结

可控可审计的 AIGC 流水线 = 模板化输入(可控)+ 双门禁审核(合规)+ 全链路台账(可审计)+ 水印闭环(可追溯)。四件事做完,”AI 生产内容”才从个人手艺变成组织能力:任何一张已发布图都能反查出提示词、种子、模型版本与审核记录——这份可追溯性,就是 AIGC 规模化的许可证。