AI绘画工作流:OpenClaw+Phi-3-vision-128k-instruct实现提示词自动优化
AI绘画工作流OpenClawPhi-3-vision-128k-instruct实现提示词自动优化1. 为什么需要自动化提示词优化作为一名长期使用Stable Diffusion进行创作的数字艺术家我发现自己每天要花费大量时间在提示词prompt的调试上。有时候为了得到一个满意的画面效果需要反复修改几十次提示词这个过程既枯燥又低效。直到我发现Phi-3-vision-128k-instruct这个多模态模型它能够理解图像内容并生成高质量的文本描述。结合OpenClaw这个自动化框架我终于构建出了一套完整的AI绘画工作流能够自动分析草图、生成优化提示词、调用SD API生成图像并根据结果进行多轮迭代优化。这个工作流最吸引我的地方在于它完美解决了三个痛点创意瓶颈当我没有灵感时可以直接画个草图让系统生成初始提示词效率低下省去了手动反复调整提示词的机械劳动质量不稳定通过多轮优化最终生成的图像质量明显高于单次生成2. 系统架构与核心组件2.1 整体工作流程这套系统的工作流程可以分为四个阶段草图输入我手绘一个简单的概念草图上传到系统提示词生成Phi-3-vision分析草图内容生成初始提示词图像生成OpenClaw自动调用Stable Diffusion API生成第一版图像迭代优化Phi-3-vision比较草图与生成图像的差异给出提示词修改建议循环优化2.2 核心组件介绍Phi-3-vision-128k-instruct是这个系统的大脑负责理解草图内容并转化为文字描述分析生成图像与预期效果的差距给出具体的提示词修改建议OpenClaw则扮演执行者的角色负责调用Phi-3-vision的API进行图像分析自动调用Stable Diffusion的API生成图像管理整个工作流的执行顺序和状态Stable Diffusion作为图像生成引擎我使用的是本地部署的SDXL 1.0版本通过API方式调用。3. 环境配置与模型部署3.1 Phi-3-vision的部署我使用的是CSDN星图平台提供的Phi-3-vision-128k-instruct镜像这个镜像已经预装了vLLM推理引擎和Chainlit前端部署非常简单# 拉取镜像 docker pull csdn-mirror/phi-3-vision-128k-instruct # 运行容器 docker run -d -p 7860:7860 --gpus all csdn-mirror/phi-3-vision-128k-instruct部署完成后通过浏览器访问http://localhost:7860就能使用Chainlit的Web界面与模型交互。3.2 OpenClaw的安装与配置OpenClaw的安装我选择了npm方式因为后续需要安装一些自定义技能sudo npm install -g openclawlatest openclaw onboard在配置向导中我选择了Advanced模式并设置了以下关键参数{ models: { providers: { phi3-vision: { baseUrl: http://localhost:7860/api, api: openai-completions, models: [ { id: phi-3-vision, name: Phi-3 Vision Model } ] } } } }3.3 Stable Diffusion API配置我本地已经部署了Automatic1111的WebUI所以只需要在OpenClaw中配置API端点{ skills: { sd-generator: { apiUrl: http://localhost:7860/sdapi/v1/txt2img, defaultParams: { width: 1024, height: 1024, steps: 30 } } } }4. 核心技能开发与集成4.1 草图分析技能我开发了一个专门用于分析草图的技能sketch-analyzer核心代码如下async function analyzeSketch(imagePath) { const response await openclaw.models.generate({ provider: phi3-vision, model: phi-3-vision, messages: [ { role: user, content: [ { type: text, text: Describe this sketch in detail, focusing on key elements that should appear in the final image. }, { type: image_url, image_url: { url: imagePath } } ] } ] }); return response.choices[0].message.content; }这个函数会将草图上传到Phi-3-vision并获取详细的文字描述作为提示词的基础。4.2 提示词优化技能prompt-optimizer技能负责根据生成的图像与草图的差异优化提示词async function optimizePrompt(originalPrompt, sketchPath, generatedImagePath) { const response await openclaw.models.generate({ provider: phi3-vision, model: phi-3-vision, messages: [ { role: user, content: [ { type: text, text: Original prompt: ${originalPrompt} }, { type: image_url, image_url: { url: sketchPath } }, { type: image_url, image_url: { url: generatedImagePath } }, { type: text, text: Compare the sketch with the generated image. Provide specific suggestions to modify the prompt to better match the sketch. } ] } ] }); return response.choices[0].message.content; }4.3 图像生成技能image-generator技能封装了Stable Diffusion的API调用async function generateImage(prompt) { const response await openclaw.skills.execute(sd-generator, { prompt: prompt, negative_prompt: blurry, low quality, distorted, cfg_scale: 7 }); return response.images[0]; }5. 完整工作流实现将上述技能组合起来就形成了完整的自动化工作流async function autoGenerateArt(sketchPath, maxIterations 3) { let currentPrompt await analyzeSketch(sketchPath); let bestImage null; for (let i 0; i maxIterations; i) { const generatedImage await generateImage(currentPrompt); const tempImagePath /tmp/generated_${i}.png; await saveImage(generatedImage, tempImagePath); if (i 0) { bestImage generatedImage; } const feedback await optimizePrompt(currentPrompt, sketchPath, tempImagePath); currentPrompt applyFeedback(currentPrompt, feedback); const improvedImage await generateImage(currentPrompt); if (isBetterMatch(improvedImage, sketchPath)) { bestImage improvedImage; } } return bestImage; }这个工作流会分析草图生成初始提示词生成第一版图像比较图像与草图优化提示词生成改进版图像重复优化过程最多3次返回最佳匹配的图像6. 实际应用案例与效果为了验证这个工作流的效果我进行了一个简单的测试。我手绘了一个未来城市夜景的草图只有简单的线条和构图。第一轮生成系统生成的初始提示词a futuristic city at night with tall buildings and neon lights, cyberpunk style生成图像的问题建筑风格过于传统缺乏未来感系统优化建议 建议增加megastructures, holographic advertisements, flying vehicles等关键词并强调ultra-modern architecture和high-tech materials第二轮生成 修改后的提示词a futuristic megacity at night with ultra-modern megastructures, holographic advertisements, and flying vehicles, rendered in cyberpunk style with neon lights reflecting on high-tech building materials这次生成的图像明显更符合我的草图构思建筑的未来感更强画面中也出现了我期望的飞行器和全息广告元素。7. 使用技巧与注意事项经过一段时间的实际使用我总结出一些提高工作效率的技巧草图质量草图不需要很精细但关键元素要明确。系统对清晰的结构性草图理解更好。迭代次数通常2-3轮优化就能达到不错的效果超过4轮可能陷入局部优化。提示词控制可以在系统生成的提示词基础上手动添加风格控制词如by Studio Ghibli或trending on ArtStation。模型限制Phi-3-vision对抽象草图的理解有限更适合具象主题。对于抽象艺术可能需要更多手动调整。性能考量整个工作流会消耗较多GPU资源建议在空闲时段运行批量生成任务。8. 未来可能的扩展方向虽然当前的工作流已经大大提高了我的创作效率但还有一些可以改进的地方。比如可以加入风格迁移的能力让系统不仅优化内容提示词还能学习特定艺术家的风格特征。另一个方向是集成更多图像编辑能力在生成后自动进行局部调整和后期处理。不过目前这个基础版本已经足够应对我的日常创作需求最重要的是它把最枯燥的提示词调试工作自动化了让我可以更专注于创意本身。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。