Skip to content
🔗 分享本题
查看我的学习进度 →

生图 Agent 从理解意图、增强提示词、调用扩散模型到质量验收的完整流程

🧠 图解记忆: 生图 Agent 的职责是理解意图、增强 Prompt、选择与调用模型并验收结果;真正从噪声去噪成图的是扩散模型。

💡 答案要点

主流生图模型对比:

模型原理优势适用场景
Stable Diffusion扩散模型(DDPM)+ 潜空间压缩开源可本地部署,可微调定制化生图,私有化部署
DALL-E 3Transformer + CLIP引导文字理解强,API简单快速集成,文字渲染
Midjourney闭源扩散模型美学质量高艺术创作
FluxFlow Matching(新架构)速度快,质量好实时生图
ComfyUI + SD工作流引擎 + SD高度可定制Agent集成,流程自动化

Stable Diffusion 核心原理(面试重点):

文本Prompt → CLIP文本编码器 → 条件向量

随机噪声 → [去噪U-Net(循环T步)] → 潜空间图像

              条件向量注入(Cross-Attention)

潜空间图像 → VAE解码器 → 最终图像(512x512 or 1024x1024)

关键参数:

  • CFG Scale(Classifier-Free Guidance):控制文本对图像的影响强度,7-12是常用范围
  • Steps:去噪步数,20-50步,越多越精细但越慢
  • Sampler:去噪算法,DDIM快、DPM++质量好
  • Seed:随机种子,固定seed可复现

Agent 集成生图的架构:

python
class ImageGenerationAgent:
    def __init__(self):
        self.sd_client = StableDiffusionClient(
            model="sd-xl-1.0",
            api_url="http://localhost:7860"  # 本地 ComfyUI
        )

    async def generate(self, description: str) -> str:
        # 1. 用 LLM 优化 Prompt(自然语言→专业生图Prompt)
        optimized_prompt = await self._enhance_prompt(description)

        # 2. 调用生图模型
        image = await self.sd_client.generate(
            prompt=optimized_prompt,
            negative_prompt="blurry, low quality, distorted",
            cfg_scale=7.5,
            steps=30,
            width=1024, height=1024
        )
        return image

    async def _enhance_prompt(self, description: str) -> str:
        """LLM 将自然语言转为生图专业提示词"""
        return await llm.complete(
            f"将以下描述转为 Stable Diffusion 提示词(英文,包含风格、光线、质量词):{description}"
        )

面试话术:

"我们生图子 Agent 用的是 Stable Diffusion XL,通过本地 ComfyUI 部署。核心原理是扩散模型:从随机噪声出发,在文本 embedding 的引导下(Cross-Attention),经过30步去噪还原出图像。关键是在 Agent 链路中加了一步 Prompt Enhancement,用 LLM 把用户的自然语言描述转为专业的 SD Prompt,图像质量提升明显。"