PPT Master 图片获取与预处理通用参考:AI 生成、Web 检索与派生资产的统一管线
PPT Master 图片获取与预处理通用参考AI 生成、Web 检索与派生资产的统一管线【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master本文基于 PPT Master 的 image-base.md 展开它是整个图片体系AI 生成路径、Web 检索路径、派生资产的公共基线。它定义了资源行与路径分派规则、图片状态机、获取执行流程、失败处理与版权交接协议贯穿 Default Generate 与 Quick Generate 两条工作流。读完本文你将掌握一张图片从计划行到可被 SVG 消费的project/images/资产的完整生命周期包括派生资产何时必须用image_treat.py生成独立文件、何时应交给 SVG 原生处理以及Needs-Manual、Failed、Sourced等状态的真实语义。一、适用范围与触发条件image-base.md是所有获取路径acquisition path与准备好的派生资产prepared derivative共享的基线文档。其下辖两条具体路径各有专文AI 生成路径见 image-generator.mdWeb 检索路径见 image-searcher.md。触发条件只要资源列表中至少有一行资源的Acquire Via为ai/web/slice或者任何 §VIII / Quick 活动上下文资源是待处理的派生资产user/placeholder行会被跟踪但跳过就进入本流程。具体而言Default Generate从design_spec.md §VIII出发Quick Generate从主代理的活动上下文决策加必需的操作清单出发独立模式针对已有项目单独运行。两条路径互斥一个全web的 deck 永远不会读取image-generator.md反之亦然见 image-generator.md 开篇与 image-searcher.md 开篇的路径声明。这一设计保证了AI 生成与开放许可检索两套能力在单一 deck 内不会混用。二、资源行与路径分派Resource Row and Path Dispatch2.1 资源行的必填字段每个未被跳过的资源行都必须携带Acquire Via与StatusReference对以下三类行是必填的每一行web/slice行每一行新建的ai行每一个派生资产行。唯一的例外是一个已存在、但Reference为空的ai行只能通过 image-generator.md §8 声明的推断规则declared inference继续推进。资源行的标准形态对应 svg-image-embedding.md 中的 Image Resource List 格式FilenameDimensionsPurpose / TypeImage patternCrop PolicyAcquire ViaStatusReferenceplanned fileplanned sizeplanned roleowner-resolved recommendationadaptive/no-cropai/web/slicePendingacquisition brief其中Reference在 image-searcher.md §4 中被明确定义为意图而非查询——例如Diverse engineering team in modern office, natural light或Abstract digital waves, deep navy gradient #0A2540。它由 StrategistDefault或 Quick 的代理拥有接收角色负责翻译执行但不得重新解读派生资产的行前缀是元数据不是查询语句。2.2 按Acquire Via的分派表对于每一行 Pending 资源按下列规则执行这是本文档的核心调度矩阵Row kind / Acquire ViaLoadRunSuccess statusDeterministic prepared derivativethis reference父资源可用后用image_treat.py生成独立.png保留源文件继承父级user → Existingweb → Sourcedai/slice → GeneratedRegistered-layer derivativeimage-generator.md §4.4父资源可用后按 §4.4 执行用户提供user → Existing生成ai → Generatedaiimage-generator.mdimage_gen.pyGeneratedwebimage-searcher.mdimage_search.py有视觉能力时先取有界缩略图页再选一张原图无视觉时仅取严格按元数据排序的最佳项SourcedNeeds-Selection为中间态sliceimage-generator.md §4.3父 sheet 为Generated后执行slice_images.pyGenerateduser/placeholder——已处于Existing/Placeholder2.3 派生资产的 Reference 分类协议派生资产必须在Acquire Via之前先声明分类Reference: Derived from canonical bare filename; treatmentoperation; …。其约束是父行必须是独立的、非派生的user/web/ai/slice行禁止占位符父级placeholder parents、禁止派生链chains、禁止循环cycles、禁止自引用self-reference。三、图片状态机Status Enumsvg-image-embedding.md 给出了完整的资源生命周期状态枚举本文档直接消费它Status含义Executor 处理Pending获取或声明的派生尚未尝试Step 5 消费之后不得残留Failed最近一次自动尝试失败可重试、非终结态Step 5 重跑所属 manifest 或解析为Needs-Manual永不作为可用内容Needs-SelectionWeb 搜索已产生一个有界缩略图页尚无原图与出处Step 5 晋升一个候选、翻页或穷尽后改查询并回到Pending永不消费GeneratedAI / slice 输出已存在从../images/引用manifest 记录负责署名Illustration Sheet 仅作为未放置的切片源保留在 §VIIISourcedWeb 来源文件已存在于预期路径从../images/引用若image_sources.json中license_tier: attribution-required则渲染行内署名Needs-Manual所属路径需要人工补足slice表示父 sheet 不可用Default 可先用虚线占位符直至就绪闸门Quick 阻塞所有处于该状态且必需的资源行Existing用户提供Acquire Via: user放入images/用image引用Placeholder有意不准备Acquire Via: placeholder虚线占位符后续替换需要特别强调的是Needs-Manual的边界它对获取而言是终结态但对导出不是——之后若用户补交了文件需要先验证再将其行调和reconcile为Existing、Generated或Sourced。而 Quick 模式即使磁盘上已有文件只要必需的资源行仍处于Needs-Selection或Needs-Manual就会阻塞导出。四、派生资产与处理路径4.1 处理路径的铁律本阶段绝不新增或重选处理方案never adds or reselects a treatment。三种处理方式的边界划分是整个体系最关键的决策点none直接使用规范位图canonical bitmapnative不产生任何文件——裁切/裁剪crop/clip、变换transform、不透明度opacity、边框/阴影/遮罩/晕影frame/shadow/scrim/vignette、重叠overlap全部由 SVG 原生承担prepared derivative仅当需要以下栅格化效果时才用image_treat.py生成独立文件——像素级模糊pixel blur去饱和 / 灰度desaturation/grayscale双色调duotone亮度 / 对比度brightness/contrast缩放到计划的上屏尺寸image_treat.py --fit WxH绝不放大已有的抠图 / 注册层准备existing cutout/registered-layer preparation。硬性约束绝不要把本应交给 SVG 的原生处理烘烤bake进派生文件。这与 image-layout-patterns.md 中 A 系列Asset-Dependent Treatments的准备好的资产门Prepared-asset gate完全一致——每个处理都只消费命名好的项目本地资产SVG 实现阶段不再授权创建。4.2 图案 → 准备的映射表image-base.md给出的图案 → 准备方式映射adopted id 本身不创建任何东西与 image-layout-patterns.md 的图案目录一一对应图案 ID准备方式P*/M*/C*使用已有资产 原生合成不产生文件A1-02/A1-03image_treat.py模糊 / 双色调A1-01/A1-04已有合成物或走宿主 / AI 路径image_treat.py不做混合 blendA2-01已有 RGBA 资产或扁平键 AI / slice 资产需要场景注册时配A2-02/A2-03 §4.4A2-02/A2-03image-generator.md §4.4 注册层A2-04已有透明框架/设备资产 注册在其下方的内容图A3-01原图/主体 注册的image_treat.py派生图A3-02注册的全画布模糊派生图 原生裁剪面板A3-03去饱和基底 已有的或 §4.4 的颜色主体层五、执行流程Procedureimage-base.md§2 定义了四步流程是 Default 与 Quick 共用的骨架读取并分组读取 Design Spec/lock 或复用 Quick 的活动上下文决策将派生资产单独列出其余规范行按Acquire Via分组确保project/images/目录存在。完成规范行准备完成user行以及被触发的ai/web/slice规范行准备。物化派生资产只物化声明过的派生资产从可用父级出发保留原文件然后在 SVG 之前运行一次analyze_images.py。验证checkpoint满足以下全部条件才算通过——每个未跳过的行都有project/images/filename或是Needs-Manual每个派生资产都有独立文件和可用父级web 出处已复制进image_sources.json每个slice行都有其元素文件或因 sheet 不可用而标记Needs-Manual不存在残留的Pending、Failed、Needs-Selection当仍有活动的ai行时image_prompts.json必须存在且每个条目为Generated或Needs-Manual当处理过 web 行时image_sources.json必须存在且每个条目的license_tier ∈ {no-attribution, attribution-required, manual}。analyze_images.py的用法见 image.mdpython3 scripts/analyze_images.py project_path/images它只分析客观的文件事实EXIF 校正后的原生尺寸、AspectRatio、格式、实际透明像素存在性、使用次数等不负责版面建议——这是它作为默认事实清单的定位。六、失败处理与自动穷尽原则6.1 硬规则自动穷尽优先于阻塞在尚有未尝试的、允许范围内的策略时绝不打开交互式选择或停下。面对可恢复的失败网络、无候选、许可被拒、速率限制应在路径权限内继续尝试实质性不同的策略且不重复已穷尽的策略当路径的变体、排序页、提供商、许可阶段、后端与重试全部穷尽后遵循其终结规则terminal ruleweb可以置为Needs-ManualDefault 的 AI 行保持Failed直到 image-generator.md §7 的三结果恢复决策只有确认人工补足后才置Needs-ManualQuick通过 §7 的 no-AI 重规划移除已穷尽的自动 AI/slice 作业显式选择的人工路径才可以置Needs-Manual。之后需汇总每个Needs-Manual行文件名、提示词位置images/image_prompts.md可用image_gen.py --render-md刷新、目标路径project/images/filename对 slice 还需给出父 sheet 与元素名用户放置 sheet 后代理重跑slice_images.py。Needs-Manual同时也是Offline Manual Mode的入口但只能通过显式的manual决策进入两种 profile 在规划阶段都不探测提供商planning never probes a provider。6.2 生成路径的失败处理细节image-generator.md §7 对生成路径做了补充auto模式下连续两次 Path A 失败会降级到 Path B宿主原生工具不再中断如果 B 也失败Default 进入上述恢复决策Quick 进入 no-AI 重规划。确认的api或host-native路径只重试一次、绝不切换提供商。若替代平台给输出加水印如 Gemini web仓库提供了 gemini_watermark_remover.py。6.3 Web 路径的替换阶梯image-searcher.md §5 定义了 web 侧的替换阶梯Replacement ladder有视觉时晋升通过审核的缩略图 → 翻取下一页编号全局延续第 2 页从candidate_09开始→ 池耗尽后补充实质性不同的身份/翻译/别名/视点/消歧变体生成新池 → 视觉模式下取已采纳source_url的 Markdown 配图包 → 手动 URL 替换--from-url记为manual→ 全部穷尽后置Needs-Manual。此审核绝不打开获取时的交互。七、版权、署名与交接Credits and Handoff许可与署名数据只存在于project/images/image_sources.json绝不进入notes/*.md否则 TTS 会朗读它们、total.md或 SVG 的title/desc导出时会被剥离。三条纪律结束页可以汇总署名但永远不能取代每页的署名Executor 按 executor-web-image.md 与 image-searcher.md §7 在每页渲染行内署名license_tier是下游唯一读的字段——no-attribution与manual只嵌imageattribution-required追加 §7 的信用文本svg_quality_checker.py 会验证每个被引用的 attribution-required 图片都有自己可见的作者 许可署名一个 deck 级 CC 标记不能覆盖多张图。SVG 创作只消费project/images/*.{jpg,png,webp}与image_sources.json。Default Executor 绝不调用image_gen.py/image_search.py/slice_images.py/image_treat.py——素材缺失就返回给 Strategist 负责的准备阶段Quick 则在创作前完成获取与派生绘制期间既不获取、不派生、也不重选素材。八、源码纵深image_treat.py的确定性派生实现image-base.md反复提到的image_treat.py在 scripts/image_treat.py 中有完整实现。先看它的处理顺序见文件头 docstring 与_treatment_plan()image_treat.py处理按固定顺序执行brightness → contrast → tone treatmentdesaturate / grayscale / duotone→ Gaussian blur →--fit降采样。命令行形态python3 scripts/image_treat.py project_path source --output filename.png [options]全部参数依据build_parser()的实现参数类型 / 校验说明project_path位置参数包含images/目录的项目根source裸文件名project_path/images/下的现有位图禁止路径分量--output必填images/下的新.png已有文件绝不覆盖含大小写冲突检测--brightness正浮点数亮度因子1 为不变--contrast正浮点数对比度因子1 为不变--desaturate0..1移除该比例的颜色1 即灰度--grayscale布尔转灰度保留 alpha 遮罩--duotone两个#RRGGBB在SHADOW与HIGHLIGHT两色间映射 sRGB 亮度--blur≥0高斯模糊半径0 为不变--fitWxH等比缩放到 WIDTH×HEIGHT 框内保留纵横比与 alpha绝不放大实现上的关键安全与语义约束对应 image_treat.py 的_resolve_paths()、_treatment_plan()、_assert_output_absent()输入输出都是images/下的裸文件名输出必须为.png且不能与源同名含大小写images/目录不得是符号链接、不得逃逸项目根去饱和、灰度、双色调三者在参数上互斥add_mutually_exclusive_group至少一个选项必须产生真实变化--brightness 1、--desaturate 0、--blur 0这类恒等值不算数会直接报错动画源被拒绝而非取单帧相机多画面 JPEGMPO只取主帧工具保留 EXIF 校正后的显示尺寸不改动 alpha 遮罩绝不复写源文件若image_sources.json含源文件名新记录会继承该法律出处并记录derived_from与有序的treatments。典型用法来自 image.mdpython3 scripts/image_treat.py projects/demo hero.jpg \ --output hero_soft.png --brightness 0.9 --contrast 1.1 --blur 12 python3 scripts/image_treat.py projects/demo hero.jpg \ --output hero_duotone.png --duotone #14213D #FCA311 python3 scripts/image_treat.py projects/demo title_art.png \ --output title_art_fit.png --fit 920x228注意边界image_treat.py不做语义背景移除semantic background removal——平面色键请用slice_images.py --alpha --bg key --strict-alpha纯红/绿/蓝键还能恢复软 alpha 并去除色溢独立抠图用已备好的 RGBA 资产或宿主图像编辑器注册的 base/subject 层则只能走 image-generator.md §4.4。九、配套工具链image_gen.py、image_search.py与slice_images.py9.1image_gen.pyAI 生成路径的 Path A它是生成路径的 API/代理执行器统一入口image.mdpython3 scripts/image_gen.py A modern futuristic workspace python3 scripts/image_gen.py Abstract tech background --aspect_ratio 16:9 --image_size 4K python3 scripts/image_gen.py Concept car -o projects/demo/images python3 scripts/image_gen.py --list-backendsManifest 批量模式是 Defaultapi/auto的正式执行机制python3 scripts/image_gen.py --manifest project/images/image_prompts.json --output project/images它会在跳过每个Generated行前验证其文件、以有界并发遍历可重试行并原子写入状态中断安全已完成项保持Generated中断后可用--render-md刷新 Markdown 侧车文件。后端选择、.env查找顺序进程环境 → cwd → skill 目录 → 克隆根 →~/.ppt-master/.env、提供商密钥及 OpenAI 兼容旋钮都记录在 image.md。IMAGE_BACKEND必须显式选择激活后端IMAGE_API_KEY/IMAGE_MODEL/IMAGE_BASE_URL被有意禁用。9.2image_search.pyWeb 检索路径单行检索python3 scripts/image_search.py offshore wind farm \ --filename cover_bg.jpg --slide 01_cover \ --orientation landscape -o projects/demo/images多行批量web 侧的--manifest姊妹python3 scripts/image_search.py --batch project_path/images/image_queries.json -o project_path/images --save-candidates提供商链默认pexels→pixabay各自有键时→openverse→wikimedia其中 Openverse 与 Wikimedia 零配置。许可纪律分两级no-attributionCC0 / PD / Pexels / Pixabay与attribution-requiredCC BY / CC BY-SA--strict-no-attribution是拒绝所有署名要求的显式开关。自动拒绝CC BY-NC、CC BY-NC-SA、CC BY-ND、CC BY-NC-ND、All Rights Reserved、未知或缺失许可。视觉审核路径--save-candidates只保存排序后的第一页预览默认 8 张到candidates/stem/review/并写review_sheet.jpg不下载原图人工/模型晋升用--promote candidate_03.jpg --filename name.jpg。无视觉时省略该旗标仅严格元数据最佳项记录selection_method: metadata-ranked。9.3slice_images.pyIllustration Sheet 切片把一张 AI 生成的插图页多元素网格布局的单张图切成 N 个独立元素文件slice_images.pypython3 scripts/slice_images.py project/images/illus_sheet.png --grid 2x3 \ --names team,product,customer,growth,risk,vision --trim --alpha \ --bg ${SHEET_KEY_HEX} --strict-alpha关键行为--grid RxC先按行切--trim按内容包围盒紧裁--alpha把扁平底色抠为透明--strict-alpha在抠键不完整时不写任何输出文件并以错误退出。背景色自动从主导平面域采样也可显式--bg。三个质量约束在 image-generator.md §4.3 有完整定义严格键恢复--tolerance只吸收实测的平面漂移须低于元素像素到键的最小通道距离、单元格隔离干净跨界元素使 sheet 不可用、源像素充足每格至少显示尺寸的 1.5–2 倍1K小点缀、2K中等、4K大图。十、SVG 消费端嵌入与导出边界准备完成的资产由 svg-image-embedding.md 定义的规范形式消费image href../images/image.png x0 y0 width1280 height720 preserveAspectRatioxMidYMid slice/href是相对项目的路径x/y/width/height是显示框preserveAspectRatioxMidYMid slice居中裁切类似 CSScover、xMidYMid meet完整显示类似contain、none拉伸——绝不可用于no-crop源Base64data:href 只是svg_final/预览形式由 finalize 产生不是创作形式导出边界svg_final/是自包含预览可作 SVG 图片插入 PowerPoint唯一受支持的生成式 PPTX 路线是从svg_output/走项目转换器PowerPoint 的手动 Convert-to-Shape 不受支持。项目目录约定images/资产、sources/源文件及*_files/图片、svg_output/外部引用、svg_final/Default 专属的内嵌预览。预览svg_output/需用 HTTP 服务浏览器禁止直接打开文件时跨目录引用图片python3 -m http.server -d project_path 8000十一、任务完成检查点汇总两条路径的完成标准Default每个行、文件、manifest、出处记录都验证通过后进入 ExecutorQuick只有所有证据与可用状态通过验证后才导出且只报告阻塞性恢复report only blocking recoveryweb 路径专项image-searcher.md §11每个必需的 web 行都是Sourced原图在project/images/filename或Needs-Manual带原因多模态Sourced图必须来自有界缩略图页且只下载了获胜者无视觉时只有严格元数据候选成为Sourced每个Sourced行有合法license_tier且attribution_text非空manual除外每个需要署名的图在其引用的每个 SVG 中都有信用下载尺寸远小于声明时已浮现metadata_dimensions警告。这套状态机与验证闸门保证了任何被 SVG 引用的图片都必然有文件、有出处、有许可层级、有明确的状态归属——这正是 PPT Master 把图片获取从一次性的手工操作升级为可审计、可恢复、可交接的工程化流程的核心所在。【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →