🏛️ INTERVIEW ARCHITECTURE SHOWCASE

图片逆向提示词
工作流技术方案

将“看图写提示词”从一次性模型调用,升级为可解释、可评估、可迭代的多阶段视觉语义编译系统。 核心目标不是生成“相似描述”,而是输出可被不同生图模型稳定消费、尽可能复现原图的结构化提示词。

领域:多模态 AI / Prompt Engineering 架构:模块化单体 + 异步任务 部署:Cloudflare / 容器化 GPU 服务 文档版本:v1.0
Executive Summary

一、执行摘要

方案采用“视觉分析 IR → 提示词编译 → 模型适配 → 质量验证”的编译器式架构,避免把全部责任压在单次大模型调用上。

01

核心问题

同一张图,不同模型容易遗漏构图、镜头、材质、光影和负面约束,导致提示词不可复现、不可评估。

02

核心解法

先生成与模型无关的结构化视觉中间表示,再编译成 Midjourney、SDXL、Flux、即梦等目标格式。

03

核心收益

可观察每阶段质量、可替换底层模型、可回放失败任务,并通过反馈数据持续优化提示词模板。

架构判断:当前规模不需要微服务。优先使用模块化单体,保留队列、模型网关和存储端口;当任务量、GPU 调度或团队边界成熟后,再按模块拆分服务。
Problem & Constraints

二、问题定义与约束

业务目标

  • 上传单张图片,输出中英文可复用提示词。
  • 输出标题、简介、画幅、正向提示词、负向提示词和结构化标签。
  • 强调“高度复刻原图”,减少模型自由发挥。
  • 支持批量导入提示词站、人工编辑和版本追踪。

非功能约束

  • 单图 P95 处理时间目标:15 秒以内。
  • 文件大小限制、EXIF 清理、内容安全检测。
  • 供应商 API 不稳定时可重试、降级和回放。
  • 提示词结果必须具备可解释来源和质量分。

关键难点

难点表现设计应对
视觉信息密度高主体、场景、构图、镜头、光影、材质同时存在分维度抽取,禁止只生成自然语言长段落
模型格式差异不同生图模型对词序、权重、参数敏感建立 Target Model Adapter
复现性不可直接验证“描述得像”不代表“生成得像”加入反向生成与图像相似度评估
大模型偶发幻觉补充原图不存在的饰品、背景或风格Grounding 校验 + 置信度 + 人工确认
Core Workflow

三、核心工作流

工作流将一次请求拆成七个可观测阶段,每一阶段都可独立重试、缓存和评估。

STEP 1
输入治理
格式、尺寸、重复图、EXIF、敏感内容、哈希去重。
STEP 2
视觉理解
识别主体、场景、姿态、构图、镜头、材质、光线。
STEP 3
IR 归一化
转换为统一 VisualPromptIR,消除模型输出格式漂移。
STEP 4
提示词编译
按语义权重、词序和目标平台规则生成提示词。
STEP 5
约束校验
检测缺失字段、矛盾、幻觉词、敏感词和长度超限。
STEP 6
质量评分
完整度、忠实度、可消费性、复现潜力四维评分。
STEP 7
发布与反馈
保存版本、人工编辑、发布、收集复制与生成反馈。
System Architecture

四、系统架构

交互层
Web / H5上传、预览、编辑、发布
Admin Console任务追踪、失败回放、模板管理
Public API批量导入、第三方调用
Webhook异步任务结果通知
应用层
ReversePromptUseCase编排完整工作流
BatchJobUseCase批量任务与并发控制
ReviewUseCase人工审核和版本发布
ReplayUseCase失败任务重放
领域核心
VisualPromptIR统一视觉语义中间表示
PromptCompiler按目标模型生成提示词
QualityPolicy质量门禁和发布策略
PromptVersion结果版本与变更原因
端口与适配器
VisionModelPortGPT、Gemini、Qwen-VL 等
StoragePortR2 / S3 / 本地对象存储
QueuePortCloudflare Queues / Redis
EvaluatorPortCLIP、VLM Judge、规则评分
基础设施
Cloudflare Worker鉴权、API、轻任务编排
GPU Worker本地或云端视觉模型推理
D1 / PostgreSQL任务、提示词、评分、版本
R2 / S3原图、缩略图、生成对比图

推荐部署

Cloudflare Pages + Worker + D1 + R2 承载用户端和业务 API;复杂视觉推理通过模型网关调用云端 API 或独立 GPU Worker。

边界约束

Worker 不直接承载长时间 GPU 推理;领域层不依赖具体模型 SDK,避免未来更换模型时重写业务流程。

Domain Model

五、领域模型与职责边界

ReverseTask 聚合

维护任务状态机、输入图片、当前阶段、重试次数和最终发布版本。

Invariant 同一任务只能有一个已发布版本。

VisualPromptIR 值对象

不可变结构,表达主体、场景、构图、镜头、光线、材质、色彩与负面约束。

Invariant 关键维度必须带置信度与证据来源。

PromptVersion 实体

记录模型版本、模板版本、人工编辑、评分和发布时间,支持 A/B 对比。

Invariant 发布内容必须通过最低质量门禁。

状态机

UPLOADED → PREPROCESSED → ANALYZED → COMPILED → VALIDATED → SCORED → REVIEWED → PUBLISHED

任何阶段失败进入 FAILED_RETRYABLEFAILED_FINAL;只有幂等阶段可自动重试。

Data Contract

六、结构化视觉中间表示

VisualPromptIR 是系统的稳定核心。模型只是产生 IR 的工具,最终提示词由确定性的编译器生成。

{ "schema_version": "1.0", "image": { "aspect_ratio": "3:4", "orientation": "portrait", "quality": "high" }, "subject": { "type": "adult_woman", "identity_sensitive": "false", "appearance": ["short black hair", "natural skin texture"], "pose": "half-body, facing camera", "expression": "gentle and melancholic" }, "scene": { "environment": "minimal dark grey studio", "foreground": [], "background": ["clean backdrop"] }, "camera": { "shot_type": "medium close-up", "angle": "eye level", "depth_of_field": "shallow" }, "lighting": { "key_light": "soft dim frontal light", "shadow": "subtle side shadow" }, "style": ["photorealistic", "editorial portrait", "subtle film grain"], "palette": ["low saturation", "charcoal", "beige"], "materials": ["ribbed knit", "natural hair texture"], "negative_constraints": ["extra fingers", "plastic skin", "busy background"], "confidence": 0.91, "evidence": ["vision_model:gpt-x", "rule:portrait_layout"] }
关键设计:领域层只依赖该契约,不依赖任何供应商原始 JSON。供应商返回结果先经过 Anti-Corruption Layer 转换,避免模型升级导致全链路漂移。
Prompt Compiler

七、提示词编译器设计

编译顺序

  1. 主体与身份特征
  2. 姿态、动作与表情
  3. 服装、材质和局部细节
  4. 场景与背景
  5. 构图、镜头与景深
  6. 光线、色彩与风格
  7. 质量词、平台参数与负面词

编译策略

  • 事实性描述优先于审美修饰。
  • 低置信度信息不进入强约束词。
  • 同义词去重,避免重复堆叠。
  • 按目标模型控制词序、长度、权重语法。
  • 中文与英文从同一 IR 分别编译,禁止互译串行造成语义损失。

目标模型适配器

目标适配重点输出示例
通用自然语言完整、清晰、便于人工编辑分段描述 + Negative Prompt
SDXL / Flux高信息密度、材质和镜头词、负向约束逗号词组 + 参数字段
Midjourney风格、画幅、stylize、chaos 等参数Prompt + --ar 3:4
国内平台中文语义清晰、避免不支持的参数语法中文自然语言描述
Evaluation

八、质量评估体系

单纯检查 JSON 完整度不足。质量评估需要同时覆盖“描述是否忠实”和“提示词是否能复现”。

离线指标

字段完整度关键 IR 字段覆盖率
视觉忠实度VLM Judge 对原图与 IR 的一致性评分
幻觉率原图不存在但提示词出现的属性比例
跨模型稳定度不同视觉模型生成 IR 的一致性
复现相似度反向生图后 CLIP / DINO / 人工评分

在线指标

用户编辑率发布前被修改的字段比例
复制率生成后提示词被复制的比例
发布率任务完成后被正式发布的比例
重试率用户主动重新生成的比例
人工回退率低分任务进入人工修正的比例

质量门禁示例

≥ 85 分

自动通过,可直接发布。

70–84 分

进入轻量人工确认。

< 70 分

自动重试或切换模型。

Reliability & Operations

九、可靠性、可观测性与安全

可靠性

  • 按阶段幂等键去重。
  • 指数退避重试与死信队列。
  • 供应商级熔断和配额保护。
  • 结果缓存按图片哈希 + 模型版本命中。

可观测性

  • 每阶段 traceId 与耗时。
  • 记录模型、模板和 Schema 版本。
  • 监控成功率、P95、Token 成本、重试率。
  • 保留原始模型响应用于审计。

安全与隐私

  • 上传前端限制和服务端 MIME 二次校验。
  • 移除 EXIF 与地理位置信息。
  • 对象存储使用短期签名 URL。
  • 敏感图像、未成年人和身份相关场景单独策略。

失败处理矩阵

失败类型处理策略是否自动重试
网络超时 / 429指数退避,切换备用模型
Schema 不合法修复提示 + JSON Repair,仍失败则换模型
低质量或高幻觉更严格 Grounding Prompt,再分析一次是,最多 1 次
内容安全拦截终止流程并返回明确原因
人工审核拒绝生成新版本,保留原版本和修改原因
Trade-off Analysis

十、架构方案权衡

维度
单次 VLM 调用
模块化工作流
微服务流水线
开发复杂度
可解释性
模型可替换性
运维成本
中低
适用阶段
Demo
MVP 至增长期
大规模平台期
最终选择:模块化单体 + 异步任务。牺牲少量初期开发速度,换取模型切换、质量评估、故障回放和后续拆分能力;不提前承担微服务的部署和一致性成本。

关键 ADR

ADR-001:采用 VisualPromptIR

Context:模型供应商输出格式和表达方式不稳定。

Decision:引入稳定的领域中间表示,所有模型结果先转换为 IR。

Consequences:增加一次映射成本,但编译、评估和迁移更稳定。

ADR-002:采用模块化单体

Context:团队规模小、领域边界仍在探索。

Decision:单仓库、单部署单元,模块间通过端口交互。

Consequences:部署简单,但必须通过代码规则保护依赖方向。

ADR-003:异步执行长任务

Context:多模型调用耗时和失败率不可控。

Decision:API 创建任务后进入队列,前端轮询或 SSE 获取进度。

Consequences:状态机更复杂,但避免请求超时并支持回放。

ADR-004:规则评分 + 模型评分组合

Context:纯规则无法判断视觉忠实度,纯模型评分不稳定。

Decision:Schema、长度和敏感词用规则;忠实度和幻觉用 VLM Judge。

Consequences:成本略增,但评分更可解释。

API & Storage

十一、接口与数据存储

核心 API

POST /v1/reverse-tasks创建逆向任务
GET /v1/reverse-tasks/:id查询进度和结果
POST /v1/reverse-tasks/:id/retry失败重试
PUT /v1/prompt-versions/:id人工编辑
POST /v1/prompt-versions/:id/publish发布版本

核心表

reverse_task任务状态、阶段、重试信息
image_asset原图、缩略图、哈希、元数据
visual_prompt_ir结构化视觉中间表示
prompt_version各目标模型提示词版本
quality_score各维度评分和证据
model_invocation调用成本、耗时、响应摘要
Evolution Strategy

十二、实施与演进路线

阶段 1|MVP单图上传、单一视觉模型、VisualPromptIR、通用中英文提示词、人工发布。
阶段 2|质量闭环质量评分、失败重试、模板版本、人工编辑差异采集、批量任务。
阶段 3|多模型适配接入 SDXL / Flux / Midjourney 格式,加入模型路由和成本策略。
阶段 4|复现评估自动反向生图、图像相似度、A/B 模板实验、在线质量门禁。
阶段 5|平台化任务编排拆分、GPU 调度、租户隔离、开放 API 和插件生态。

规模触发器

触发条件演进动作
GPU 任务持续排队,P95 超过目标独立 GPU 调度服务,按模型和显存分队列
模型供应商超过 5 个且策略频繁变化拆出 Model Gateway 服务
评估任务计算量大于生成任务拆出 Evaluation Worker,异步回填评分
团队按业务域分组按任务、模型、评估、内容平台边界拆服务
Conclusion

十三、结论

本方案的核心价值,不是把大模型包装成一个接口,而是把不稳定的多模态推理转化为可治理的软件工程流程。 通过稳定的视觉语义中间表示、确定性的提示词编译器、模型适配器和质量闭环,系统能够在保持 MVP 开发效率的同时, 获得可解释、可替换、可评估和可持续演进的架构基础。

一句话总结:先理解图片,再形成稳定语义,最后针对目标模型编译提示词;模型负责推理,系统负责可靠性。