当前位置:首页>python>我用纯 Python 写了一个会自己"长脑子"的 AI 画图助手

我用纯 Python 写了一个会自己"长脑子"的 AI 画图助手

  • 2026-06-29 10:34:31
我用纯 Python 写了一个会自己"长脑子"的 AI 画图助手

只用 Python 内置模块,Claude Code 就能调用本地 ComfyUI,把一句自然语言变成高质量图片,全程在你自己的机器上跑,不依赖任何云出图服务。而且每出一张图,下次就更聪明一点。

先说说 AI 画图"卡"在哪

我自己在用comfyui进行本地文生图的时候,总是有一个难点:我只会用简单的文字进行描述,好不容易写了一段 prompt,跑出来的图不尽人意,于是换换措辞再来,反反复复直到撞上一张还行的。

这个过程有几个老毛病一直没解决:

说话往往很模糊,"画个猫"三个字,模型的理解空间太大;出图质量全凭运气,不满意的图没有任何补救机制,只能手动重来;每次生成都是独立事件,之前踩过的坑、踩出来的经验都没有记录,下一次又是从头开始;中文文字渲染受限于模型和比较差的prompt,基本都是乱码。

image-gen 这个Skill,就是冲着这四个问题去的。

它不包装那些独家的云服务API,而是在用户和生成模型之间加了一层智能中间件:能理解意图、能自动补全、能自己评估、能记住经验

以下图片都是我在本地使用量化的Z-Image模型,在RTX5070显卡上跑出来的,我只是输入了一句简单的话。

生成一张猫在草地上抓蝴蝶的图片
生成一张美女在水下潜水的图

七步流程,环环相扣

image-gen 的核心是一条七步流程,把一句自然语言变成高质量图片:

自然语言 → 意图澄清(Step 0) → 意图识别(LLM) → 知识图谱查询 → Prompt 组装 → ComfyUI 出图 → 评估迭代 → 经验积累

每一步都有对应模块。下面一个一个来聊。

核心引擎:零外部依赖

这是 image-gen 最"轴"的一个决定:整个引擎只用 Python 标准库

不依赖 torch、transformers、requests,甚至连 PIL 都是可选的。所有 HTTP 请求用 urllib,数据序列化用 json,路径处理用 pathlib,字符串匹配用 re,全是 Python 自带的。

为什么不调云端出图 API?因为 image-gen 走的是本地出图路线:模型跑在你自己的 GPU 上,图片不经过任何第三方服务器,数据完全留在本地。好处很直接,不限次数、不计费、不出网、隐私安全,而且可以随时切换模型和工作流,不受平台锁定。

# comfyui.py — 完全用 urllib 实现 ComfyUI 客户端import urllib.requestimport jsondef check_connection(cfg):    try:        url = f"http://{cfg['comfyui_host']}:{cfg['comfyui_port']}/system_stats"        with urllib.request.urlopen(url, timeout=5) as resp:            return resp.status == 200    except Exception:        return False

clone 下来就能跑,不用 pip install 任何东西(ComfyUI 本身当然要装)。对于不想折腾 Python 环境的人来说,这是真正的零负担。

Step 0:先搞清楚你要什么

这是整个流程的第一步,也是最容易被忽略的一步。

大多数用户说话是模糊的。"画个猫",什么风格?什么光影?什么构图?什么色调?这些维度如果都不指定,后面的知识图谱再聪明,也只能猜。

Step 0 的职责就是在流程启动之前,先把用户没说清楚的东西问明白

具体怎么做的?系统会对照八个关键维度,风格、氛围、光照、构图、色调、背景、用途、宽高比,逐一检查用户描述里有没有覆盖。如果用户的话已经足够详细(比如"写实摄影风格,金色黄昏光影,特写构图,暖色调的猫"),会直接跳过这步。

如果描述比较简短,系统就会挑出影响最大的 2-4 个维度,一次只问一个问题,给 3-5 个具体选项:

你希望什么风格?(写实摄影 / 油画 / 水彩 / 数字插画 / 其他)→ 水彩光影偏好?(自然光 / 金色黄昏 / 棚拍灯光 / 阴天柔光 / 其他)→ 自然光构图呢?(特写 / 半身 / 全身 / 场景全景 / 其他)→ 特写

问完之后,把答案合并进原始描述,形成增强版 prompt:

原始:一只猫增强:一只猫,水彩风格,自然光,特写构图

这一步看着简单,效果很实际,它让后面所有环节都有了更明确的输入,而不是靠猜。

Step 1:用大模型理解你的话

意图澄清之后,就进入实体识别环节。image-gen 接了一个 OpenAI 兼容的 LLM 来做意图解析。它会读取知识图谱里所有已知实体,带着这些背景知识去理解用户的话,然后输出结构化的标签列表。

# intent.py — LLM 驱动的意图识别def extract_seed_entities_llm(user_intent, cfg):    catalog_preview = _build_catalog_preview()  # 带上已知实体作为参考    system_prompt = _SYSTEM_PROMPT.format(catalog=catalog_preview)    response = _call_chat_api(full_prompt, cfg)    # 解析 JSON 数组 → ["subject:cat", "style:watercolor"]

举个例子,用户说"给我画一只趴在窗台上的慵懒猫咪,水彩风格,暖色调",系统能拆解出:

  • • subject:cat — 主体是猫
  • • style:watercolor — 水彩风格
  • • mood:warm — 温暖氛围

关键是,即使遇到知识图谱里没有的词,比如用户说"赛博朋克猫",模型也不会忽略它,照样会构造一个 subject:cyberpunk_cat 标签传下去,后续由知识图谱自动接纳。

万一大模型调不通,还有关键词兜底,不会彻底挂掉。

Step 2:知识图谱,用系统的"记忆"生成图片骨干

PromptKG 是整条流程里最有"灵魂"的部分。它不是一个静态词典,而是一个会生长的知识图谱,记录了三个维度的信息:

实体字典:覆盖 12 个分类(主体、风格、情绪、构图、光照、背景、色调、颜色、类型、技法、纹理、主题),每个实体都有中英文双语标注和出现频次统计。

共现关系:记录哪些实体经常一起出现。"水彩"和"温暖"共现了 52 次,"水彩"和"冷色调"只有 3 次,下次你选了水彩,系统就知道优先推荐温暖,而不是冷色调。

模板索引:保存历史上成功的实体组合,可以直接复用。

你输入"一只猫",KG 会一口气补全你没说到的东西:

维度
推荐值
来源
风格
watercolor
共现分 52
光照
natural light
共现分 35
色调
warm tones
共现分 28
情绪
warm
共现分 45

用户不需要想得面面俱到,系统帮你填上那些你"应该要但没想到"的细节。

而且,知识图谱还支持自动扩展。当 LLM 识别出一个新实体(比如 subject:cyberpunk_cat),KG 会自动把它加进字典,并且在后台异步调用 LLM 把中文名翻译好。下次再出现类似请求,这个新实体就正式成为系统的一部分了。

Step 3:14 维结构化 Prompt

这个阶段,image-gen 不写"一大坨"文字 prompt,而是用 14 维的 JSON 结构来控制画面的每个方面:

维度
控制什么
例子
subject
主体
"a cat on windowsill"
style
风格
"watercolor"
mood
氛围
"warm, cozy"
composition
构图
"close-up, centered"
lighting
光照
"natural light from window"
background
背景
"indoor, cozy room"
color_palette
色调
"warm tones"
genre
用途
"poster", "cover"
text_content
图片中的文字
"秋日味道"
typography_layout
中文排版 DSL
字号、渐变、排版方向...
confrontation
对比构图
左右分屏对比
negative_constraints
排除项
blurry, watermark...
technical_specs
质量参数
分辨率、采样步数
aspect_ratio
宽高比
"3:4" / "16:9"

结构化的好处是每个维度可以独立调整。你只想把光照从"日落"换成"日出"?改 lighting 字段就行,主体、风格、色调都不用动。

特别值得一提的两个设计:

中文排版 DSL:控制图片中文字的大小、颜色、渐变、排版方向,适合做海报、封面。

对比构图:用户说"猫 vs 狗",系统会自动识别对比意图,构造左右分屏的构图 prompt。

prompt_assembly 模块负责把这些维度组装起来:它会先填 KG 已知的实体,再补上 LLM 发现但 KG 不认识的新实体,最后用推荐填满剩余维度。一条全自动的 prompt 装配线。

Step 4:ComfyUI 本地出图

Prompt 准备好了,接下来就是让 ComfyUI 在本地机器上生成图片。

ComfyUI 是跑在你自己电脑上的 Stable Diffusion 工作流引擎,图片生成完全在本地 GPU 完成,不调用任何云服务。系统先检查本地 ComfyUI 是否在跑(默认监听 127.0.0.1:8188),连接正常后,把组装好的正向和负向 prompt 注入到工作流 JSON 里,提交给本地 ComfyUI,轮询等待图片生成完毕,最后保存到本地输出目录。

工作流注入逻辑相当健壮:自动找到 CLIPTextEncode 节点,第一个注入正向 prompt,第二个注入负向 prompt;找不到第二个就顺着 KSampler 的 negative 输入追溯;KSampler 的 seed 每次也会随机化,避免生成完全相同的图。

系统默认加载 ernie_image_gguf.json 工作流,也支持自定义,把从 ComfyUI 界面导出的 API 格式 JSON 放到 workflows/ 目录下,配置里改一行就能切换。

Step 5:评估迭代,让模型给自己打分

这是 image-gen 的核心亮点。图片生成之后,不是直接丢给用户,而是先过一道评估关。

系统用视觉模型从六个维度给图片打分:

维度
权重
评什么
主体准确度
25%
图片是不是画对了主体
风格还原度
20%
艺术风格有没有对
情绪传达
15%
氛围到位了没
构图质量
15%
布局合不合理
技术质量
15%
清晰度、细节够不够
整体满意度
10%
整体观感

六个分数加权平均,低于阈值(默认 8 分)就触发迭代:

  1. 1. 视觉模型分析图片的不足(比如"猫的姿势不够自然,水彩笔触感不足")
  2. 2. 自动生成改进版 prompt
  3. 3. 释放显存,防止质量退化
  4. 4. 用新 prompt 重新生成,再评估

最多迭代 3 轮,直到达标为止。

--- Iteration 1/3 ---  Score: 6.5/8  Weaknesses: 猫的姿势不够自然,水彩笔触感不足  Refining prompt...--- Iteration 2/3 ---  Score: 8.2/8  Passed threshold! Stopping.

迭代之间有一个容易忽略但很重要的细节:显存管理。ComfyUI 连续出图几次后,GPU 显存累积状态会导致浮点精度漂移,图片质量莫名下降,多余肢体、细节模糊、画面扭曲都可能出现。image-gen 在每轮迭代结束时主动调用 ComfyUI 的 /free 接口释放显存,可选是否完全卸载模型。这个小细节,实际跑起来效果很明显,第 1 张和第 5 张图的质量几乎没有差距。

Step 6:经验回写,越用越聪明

评分达标的生成结果,系统会自动回写到知识图谱:

  • • 更新共现计数:用过的实体对,共现分 +1
  • • 添加新模板:新的成功组合,进入模板索引
  • • 注册新实体:LLM 识别出的未知实体,写入字典
  • • 异步翻译:后台启动进程,把新实体的中文名翻译好

写入是原子操作,先写临时文件,再 os.replace 替换,避免并发读写出问题。

def update_kg(used_entities, positive_prompt, score, threshold=8):    # 1. 更新共现    for e1, e2 in combinations(used_entities, 2):        graph["co_occurrence"][e1][e2] += 1    # 2. 新模板入索引    graph["prompt_index"].append(new_entry)    # 3. 原子写入    _atomic_json_save(GRAPH_PATH, graph)

结果就是:你用得越多,推荐越准。第一次"赛博朋克猫"可能要迭代 3 轮才达标,成功之后共现计数上去了,下次类似的组合可能 1 轮就过。

两个 CLI,精细控制随你选

image-gen 提供两个命令行入口:

快速入口image-gen.py — 一行命令跑完全流程:

python scripts/image-gen.py "a cat on windowsill, watercolor style"

精细控制image-gen-cli.py — 十几个子命令,按需组合:

# 完整流程python scripts/image-gen-cli.py pipeline --prompt "画一只水彩猫"# 单步调试:只提取意图python scripts/image-gen-cli.py intent --text "水彩猫"# 单步评估:给已有图片打分python scripts/image-gen-cli.py evaluate --image result.png --intent "水彩猫"# 看看图片分析结果python scripts/image-gen-cli.py describe --image result.png --prompt "描述这张图"# 释放显存python scripts/image-gen-cli.py free-memory --unload

所有子命令都输出 JSON 格式,方便脚本调用或接入其他流程。

配置很简单

本地 ComfyUI 的地址和视觉模型 API,一个 config.json 搞定一切:

{  "comfyui_host": "127.0.0.1",  "comfyui_port": 8188,  "output_dir": "~/image-gen-output",  "vision_api_url": "https://your-api/v1",  "vision_model": "qwen3.6-plus",  "vision_api_key": "",  "max_iterations": 3,  "score_threshold": 8,  "default_workflow": "workflows/ernie_image_gguf"}

API 密钥推荐通过环境变量 VISION_API_KEY 设置,不要直接写在配置文件里。

视觉模型用的是 OpenAI 兼容协议,想换成其他兼容OpenAI协议的模型,只需改 vision_api_url 和 vision_model 就能切换。

这个视觉模型承担了两个重要角色:理解意图评估质量。一个模型两份工作,整条流程的智能就靠它驱动。

总结

总得来说 image-gen 做的事情就是:

  1. 1. 完整流程:七步流程,从一句自然语言到一张高质量图片,中间环节全自动。Step 0 先澄清意图,后面每一步都建立在更准确的输入之上
  2. 2. 本地出图:模型跑在你自己的 GPU 上,图片不出网、不计费、不限次数,如果配合本地的LLM模型,隐私安全更有保障
  3. 3. 零依赖:核心引擎只用 Python 标准库,clone 就能跑
  4. 4. LLM 驱动:意图识别和图片评估都由大语言模型完成,比关键词匹配聪明得多
  5. 5. 知识图谱:PromptKG 基于共现统计做智能推荐,解决"用户描述太简单"的老问题
  6. 6. 自动迭代:六维度加权评估,不达标的图不出手,自动优化重试
  7. 7. 经验积累:成功组合回写 KG,系统越用越精准
  8. 8. 中文友好:支持中文实体识别、中英文双语标注、中文排版 DSL、汉字渲染

对了,安装文档在项目的 docs/install-guide.md 里,包括 ComfyUI 部署、GGUF 量化模型下载(8GB 显存就能跑)、配置说明、常见问题等。

项目地址:https://github.com/xsyl06/image-gen

最后,还要感谢B站UP主 小天fotos ,本项目的kg推荐模块等流程就是从他的一人公司项目获取的灵感。

这里贴上他的一人公司项目地址:https://github.com/xiaotianfotos/OPC

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 09:39:48 HTTP/2.0 GET : https://f.mffb.com.cn/a/491739.html
  2. 运行时间 : 0.279804s [ 吞吐率:3.57req/s ] 内存消耗:4,560.44kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4565805a476c999e6068909946faadf5
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000410s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000609s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010713s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002951s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000618s ]
  6. SELECT * FROM `set` [ RunTime:0.011727s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000687s ]
  8. SELECT * FROM `article` WHERE `id` = 491739 LIMIT 1 [ RunTime:0.001181s ]
  9. UPDATE `article` SET `lasttime` = 1783129188 WHERE `id` = 491739 [ RunTime:0.001436s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000241s ]
  11. SELECT * FROM `article` WHERE `id` < 491739 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000477s ]
  12. SELECT * FROM `article` WHERE `id` > 491739 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000562s ]
  13. SELECT * FROM `article` WHERE `id` < 491739 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.031372s ]
  14. SELECT * FROM `article` WHERE `id` < 491739 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.059399s ]
  15. SELECT * FROM `article` WHERE `id` < 491739 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.088598s ]
0.281356s