OpenClaw+千问3.5-35B-A3B-FP8:本地化AI绘画描述生成器

张开发
2026/4/18 20:02:06 15 分钟阅读

分享文章

OpenClaw+千问3.5-35B-A3B-FP8:本地化AI绘画描述生成器
OpenClaw千问3.5-35B-A3B-FP8本地化AI绘画描述生成器1. 为什么需要本地化的AI绘画描述生成器去年我在为一个独立游戏项目设计角色原画时遇到了一个典型痛点每天要手动编写上百条风格化提示词prompt给Stable Diffusion使用。这些描述需要精确控制服装细节、光影氛围、动作姿态等元素而市场上公开的提示词工具要么功能单一要么需要将创作内容上传到第三方服务器。这让我开始思考能否用本地部署的大模型自动化工具链构建一个隐私安全且高度定制化的提示词生成系统经过两个月的实践我最终用OpenClaw对接千问3.5多模态模型实现了这个目标。现在我的工作流变成截取参考图→自动分析视觉元素→生成结构化提示词→直接调用本地SD WebUI作图全程数据不出本机。2. 技术方案选型与核心组件2.1 为什么选择OpenClaw千问3.5组合这个方案的独特价值在于隐私性与可扩展性的平衡。相比直接调用云端API如GPT-4V本地部署的千问3.5-35B-A3B-FP8模型具有以下优势视觉理解能力强FP8量化的35B参数模型在保持精度的同时显存占用控制在24GB以内我的RTX 3090可流畅运行多模态支持完善支持图片内容描述、风格分析、元素拆解等核心功能本地处理无泄漏商业项目的角色设定、场景草图等敏感素材无需外传而OpenClaw作为自动化框架解决了三个关键问题操作串联自动完成截图→传图→取结果→填充到SD的全流程技能封装将常用提示词模板如赛博朋克风格霓虹灯光机械义肢保存为可调用的技能异常处理当模型输出不符合预期时自动触发重试或切换备用模板2.2 系统架构与数据流实际部署后的工作流如下图所示注此处应为文字描述[截图工具] → [OpenClaw监控文件夹] → [千问3.5视觉分析] → [提示词优化模块] → [SD WebUI自动填充]关键节点配置使用OpenClaw的file-watcher技能监控~/Downloads/ref_images文件夹千问3.5模型部署在本机Docker容器通过http://localhost:5000/v1提供服务提示词优化模块是我用Python写的后处理脚本主要做去除冗余描述如图片中有一个女孩→直接保留女孩追加风格关键词根据项目需求动态加载不同风格的词库格式化输出为SD可解析的语法如(masterpiece), (best quality), [要素1:要素2:0.8]3. 具体实现步骤与避坑指南3.1 环境准备与模型部署首先通过星图平台获取千问3.5-35B-A3B-FP8镜像这是我使用的Docker命令docker run -d --name qwen-vision \ -p 5000:5000 \ -v ~/qwen_data:/data \ --gpus all \ registry.cn-hangzhou.aliyuncs.com/qwen/qwen3.5-35b-a3b-fp8:latest \ python -m vllm.entrypoints.openai.api_server \ --model /data/Qwen3.5-35B-A3B-FP8 \ --served-model-name qwen-vision \ --max-num-seqs 256踩坑记录最初直接使用原始镜像时OOM崩溃后来发现需要添加--max-num-seqs限制并发必须挂载数据卷持久化模型文件否则每次重启需要重新下载Windows系统需额外配置NVIDIA Container Toolkit3.2 OpenClaw配置关键点配置文件~/.openclaw/openclaw.json的核心修改{ models: { providers: { qwen-local: { baseUrl: http://localhost:5000/v1, apiKey: null, api: openai-completions, models: [ { id: qwen-vision, name: Local Qwen Vision, contextWindow: 32768, vision: true } ] } } }, skills: { prompt-generator: { watchDir: ~/Downloads/ref_images, outputTemplate: {style}风格{objects}{lighting}光影{composition}构图 } } }特别注意必须声明vision: true才能启用图片理解能力outputTemplate中的占位符对应千问3.5返回的JSON字段我额外编写了一个post-process.js脚本处理模型原始输出3.3 技能开发实战案例下面分享我开发的generate-sd-prompt技能核心逻辑Node.js版const fs require(fs); const axios require(axios); module.exports async (imagePath) { // 调用千问3.5视觉接口 const res await axios.post(http://localhost:5000/v1/chat/completions, { model: qwen-vision, messages: [{ role: user, content: [ { type: text, text: 分析图片中的主要物体、风格、光影和构图 }, { type: image_url, image_url: { url: file://${imagePath} } } ] }] }); // 提取关键元素 const analysis res.data.choices[0].message.content; const elements { objects: extractBetween(analysis, 主要物体, ), style: extractBetween(analysis, 风格, ) || fantasy, lighting: extractBetween(analysis, 光影, ) || soft lighting, composition: extractBetween(analysis, 构图, 。) || medium shot }; // 应用项目定制词库 const projectLexicon loadProjectConfig(); return applyTemplate(elements, projectLexicon); };经验总结千问3.5返回的是非结构化文本需要用正则提取关键信息必须设置默认值如|| fantasy避免空值导致SD报错项目词库通过loadProjectConfig()动态加载实现不同项目间的快速切换4. 实际效果与优化方向4.1 典型使用场景示例当我需要设计一个蒸汽朋克女警角色时在Pinterest找到参考图截图保存到监控文件夹OpenClaw自动触发分析生成提示词steampunk风格女性警官穿着铜质齿轮装饰的制服手持发光的特斯拉步枪 warm amber lighting cinematic composition intricate details自动填充到SD WebUI生成效果图人工微调后得到最终作品效率提升单次提示词生成时间从手动编写的5-10分钟缩短到15秒风格一致性提高相同关键词会保持在整个项目周期隐私保障所有设计草稿和迭代版本都留在本地4.2 遇到的挑战与解决方案问题1模型对抽象概念理解偏差现象输入概念艺术草图时常误判物体类型解决在提示词模板中添加强制描述请专注于形状和轮廓忽略不明确的细节问题2多物体场景元素混杂现象复杂场景中主次关系不清晰解决在后处理脚本中添加优先级排序算法按画面占比排序元素问题3风格化词汇过于笼统现象科幻风格可能指向赛博朋克或太空歌剧解决建立项目专属词库如科幻风格机械结构全息界面冷色调4.3 可能的扩展方向当前系统还有两个待优化点第一是增加历史记录功能将成功案例存入本地数据库供后续检索第二是开发可视化调试界面实时查看模型对图片的理解结果。不过这些需要权衡开发成本与实际收益对于个人创作者来说现在的版本已经能解决80%的日常需求。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章