ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

InvokeAI LLM Prompt Tools 实战指南:用本地大模型实现提示词扩写与图片反推

InvokeAI LLM Prompt Tools 实战指南:用本地大模型实现提示词扩写与图片反推 InvokeAI LLM Prompt Tools 实战指南用本地大模型实现提示词扩写与图片反推【免费下载链接】InvokeAIInvoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.项目地址: https://gitcode.com/GitHub_Trending/in/InvokeAIInvokeAI 内置了两套基于本地语言模型的提示词辅助工具——Expand Prompt提示词扩写与Image to Prompt图片反推提示词分别借助因果语言模型Text LLM和视觉语言模型LLaVA OneVision帮助你在正向提示词输入区快速写出更高质量、更贴合画面需求的描述。读完本文你将掌握这两个工具的完整使用流程、兼容模型选型、撤销与 seed 复现机制以及如何在工作流编辑器中通过Text LLM系列节点搭建自动化的提示词处理管线。工具总览两个按钮、一个前提InvokeAI 的两套 LLM 提示词工具都以小按钮的形式出现在正向提示词输入区域的右上角并且仅在安装兼容模型后才会显示按钮功能依赖模型魔法棒✨Expand Prompt把简短提示词扩写成详细生动的图像生成提示词Text LLM因果语言模型图片️Image to Prompt上传图片并生成描述性提示词LLaVA OneVision 视觉语言模型从前端源码 ExpandPromptButton.tsx 和 ImageToPromptButton.tsx 可以看出两个组件都会先通过useTextLLMModels()/useLlavaModels()查询已安装模型当列表为空时按钮仍可点击但弹层会显示未安装模型提示并提供一键跳转到模型管理器安装页的入口setInstallModelsTabByName(starterModels)。Expand Prompt把一句话扩写成完整画面描述使用步骤在正向提示词输入框键入简短提示词例如a cat in a garden点击提示词区域的魔法棒按钮在弹层中选择 Text LLM 模型下拉框仅列出已安装的 Text LLM 类型模型可选选择一个系统提示词预设或点击铅笔图标管理系统提示词库点击Expand扩写完成后原提示词会被替换为扩写版本。对应的请求会发送到后端POST /api/utilities/expand-prompt端点实现见 utilities.py前端拿到expanded_prompt后调用positivePromptChanged写入提示词框。兼容模型与推荐清单Expand Prompt 兼容任何具备ForCausalLM架构的 HuggingFace 模型。文档给出的推荐选项模型体积HuggingFace IDQwen2.5 1.5B Instruct~3 GBQwen/Qwen2.5-1.5B-InstructPhi-3 Mini Instruct~7.5 GBmicrosoft/Phi-3-mini-4k-instructTinyLlama Chat~2 GBTinyLlama/TinyLlama-1.1B-Chat-v1.0安装方式把 HuggingFace ID 粘贴到**模型管理器Model Manager**中即可模型会被自动识别为Text LLM类型。后端在 utilities.py 中会校验model_config.type ModelType.TextLLM非该类型的模型无法用于扩写。模型路径则通过 模型管理器的配置解析 解析为本地绝对路径并以local_files_onlyTrue加载分词器因此推理过程不依赖外网。系统提示词决定扩写风格的关键扩写弹层允许选择系统提示词预设默认自动选中系统提示词库中的第一条见 expandPromptSlice.ts 与ExpandPromptButton中的useEffect。当未选择任何预设时后端使用内置默认系统提示词定义于 text_llm_pipeline.pyYou are an expert prompt writer for AI image generation. Given a brief description, expand it into a detailed, vivid prompt suitable for generating high-quality images. Only output the expanded prompt, nothing else.这条提示词明确了模型的职责边界只输出扩写后的提示词本身不输出任何多余内容。你可以在系统提示词库中自定义更贴合个人画风的预设例如指定风格、镜头语言或排除词。Reasoning思考型模型的处理Qwen3、DeepSeek-R1 蒸馏版等思考型模型在回答前通常会输出一整段思维链chain of thought。由于扩写工具会原样返回生成文本思维链会被直接塞进提示词。为此 InvokeAI 在渲染 chat 模板时显式传入enable_thinkingFalse见 text_llm_pipeline.py让这些模型直接作答支持该开关的模型Qwen3、DeepSeek-R1 蒸馏版等会输出空的 thinking 块聊天模板不支持该开关的模型不受影响始终强制思考且无法关闭的模型不适合用于提示词扩写。此外当聊天模板不接受独立的system角色时例如 Gemma 系模板管线会捕获异常并把系统提示词合并进首条 user 消息后重试避免扩写失败。底层采样参数与 seed 语义扩写推理通过 TextLLMPipeline 执行关键生成参数固定为do_sampleTrue、temperature0.7、top_p0.9最大新 token 数默认 300API 与节点均限制在 12048 之间。模型加载、tokenize、生成均在独立线程中进行通过TextIteratorStreamer流式消费输出并按 0.1 秒间隔上报进度llm_task_progresssocket 事件进度条显示的是累计文本重新编码后的 token 数。seed 语义API 调用方可选传入seed取值范围0 ~ SEED_MAX未传时后端调用get_random_seed()生成随机种子并在响应ExpandPromptResponse中返回实际生效的 seed供复现。前端弹层的每次点击都会向后端发起一次新请求每次请求均携带新生成的task_id见ExpandPromptButton的uuidv4()由于未传 seed每次扩写结果都会变化。若要固定结果可在 API 层显式传入 seed。可复现的实现细节TextLLMPipeline通过包装torch.multinomial/torch.Tensor.multinomial并使用线程局部thread-local的torch.Generator驱动采样_SeededMultinomialProcessor在 logits 处理阶段武装一次采样调用避免把整个generate()包进TorchFunctionMode而拦截全部模型前向算子text_llm_pipeline.py。Image to Prompt用视觉模型反推图片描述使用步骤点击提示词区域的图片按钮在下拉框中选择 LLaVA OneVision 模型点击Upload Image选择一张图片也可以直接把画廊中的图片拖拽到提示词输入框弹层会自动打开并填入该图片见 ImageToPromptButton.tsx点击Generate Prompt生成的描述会被写入提示词框。兼容模型与请求细节该工具兼容 LLaVA OneVision 系列模型InvokeAI 已原生支持后端校验ModelType.LlavaOnevision。请求发送到POST /api/utilities/image-to-prompt端点utilities.py请求体包含image_name、model_key、instruction和可选的task_id。默认指令为Describe this image in detail for use as an AI image generation prompt.图片从 InvokeAI 的图片存储服务按image_name读取并转为 RGB该端点复用图片读取的访问控制检查非所有者无法通过该接口探测已存储图片。推理由 LlavaOnevisionPipeline 完成模型对单张图片生成描述采样使用do_sampleFalse贪心解码结果更稳定默认最大 400 token并通过 chat 模板正确拼接text/image类型的内容块。Undo30 秒内一键回退由于两个工具都会覆盖当前提示词InvokeAI 提供了撤销机制在提示词文本框中按CtrlZmacOS 为CmdZ即可回退到覆盖前的提示词有效期为 30 秒一旦开始手动输入撤销状态即被清除。该机制由 promptUndo.ts 实现前端在写回扩写/反推结果前调用setPromptUndo保存旧提示词通过 nanostore 原子记录旧值和时间戳并用 30 秒定时器自动过期手动输入会触发clearPromptUndo。撤销时调用consumePromptUndo消费状态——过期或已被清除则返回 null不再回退。工作流节点把 LLM 能力接入自动化管线工作流编辑器提供了两个 LLM 节点定义于 text_llm.py用于构建自动化的提示词处理流程Text LLM 节点prompt输入文本提示词Textarea 组件system_prompt内联系统提示词默认即上面提到的提示词撰写专家指令text_llm_modelText LLM 类型模型选择max_tokens最大生成 token 数默认 300范围 12048seed默认 0范围 0SEED_MAX。节点输出StringOutput生成文本字符串。system_prompt缺省时使用DEFAULT_SYSTEM_PROMPT请求通过 模型加载服务 加载模型后调用TextLLMPipeline.run()。Text LLM (with System Prompt Preset) 节点行为与 Text LLM 一致但system_prompt从系统提示词库中选择预设而非内联输入适合维护一批扩写策略并在多个工作流中复用。需要注意该字段存储的是预设的 id 而非文本工作流导出到另一台安装时只有该安装存在相同 id的预设才能解析——内置默认预设使用固定 UUID跨安装可用用户自建预设则不行StylePresetField有同样的限制多用户模式下节点会执行与 REST API 相同的访问规则校验owner / public / admin见 text_llm.py防止通过引用他人私有预设的 id 窃取提示词内容。seed 与可复现性同一 seed在模型、提示词、设置、硬件与软件版本均相同的前提下可复现采样不同设备或软件版本间结果可能有差异提示词区的Expand Prompt工具每次请求都会选择全新 seed因此重复扩写会得到不同结果API 调用方可向 Expand Prompt 传可选 seed响应会返回实际生效的 seed用于回放当保存的1.0.0版本 Text LLM 工作流被迁移时其 seed 默认变为0重复运行会变成确定性结果若希望每次运行都变化可在seed输入端连接一个随机整数节点。前置条件与限制两个工具按钮仅在安装对应兼容模型后显示未安装时弹层会引导至模型管理器Expand Prompt 需要ForCausalLM架构的 Text LLM 模型推荐见上文表格Image to Prompt 需要 LLaVA OneVision 模型推理完全在本地进行分词器以local_files_onlyTrue加载不依赖外部 API首次运行需要加载模型到显存加载阶段会通过 socket 事件上报loading_model状态弹层内由LLMTaskProgressDisplay展示实时进度流式生成设有 120 秒的兜底超时text_llm_pipeline.py用于防止生成卡死导致界面永久等待生成异常时内部会主动调用streamer.end()结束消费循环避免线程阻塞。小结InvokeAI 的 LLM Prompt Tools 将本地文本大模型与视觉语言模型无缝接入图像创作流程Expand Prompt借助ForCausalLM架构模型与可自定义的系统提示词库把简短描述扩写成高质量画面提示词并对思考型模型做了专门的enable_thinkingFalse处理Image to Prompt通过 LLaVA OneVision 模型把图片反推为可复用的提示词还支持画廊图片直接拖拽触发30 秒撤销保护避免了误覆盖工作流中的Text LLM与Text LLM (with System Prompt Preset)节点则让提示词扩写能力可以被编排进任意自动化管线配合 seed 机制实现结果复现或随机变化。参考 text_llm_pipeline.py、llava_onevision_pipeline.py 与 utilities.py 可以进一步深入其流式生成、进度上报与 seed 可复现的底层实现。【免费下载链接】InvokeAIInvoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.项目地址: https://gitcode.com/GitHub_Trending/in/InvokeAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表