AI绘画技能封装:从提示词工程到自动化工作流构建

news2026/5/2 10:57:46
1. 项目概述从“女娲”技能到AI驱动的创意工作流最近在GitHub上看到一个挺有意思的项目叫yaosenlin975-art/copaw-nuwa-skill。乍一看这个标题可能会有点摸不着头脑但如果你对AI绘画、自动化工作流或者创意工具开发感兴趣这个项目绝对值得你花时间研究。它本质上是一个为“女娲”Nuwa模型或类似AI绘画工具设计的“技能”Skill包旨在将复杂的AI绘画提示词工程、参数调整和后期处理流程封装成一个个可复用、可组合的“技能单元”。简单来说它解决了一个核心痛点当我们使用Stable Diffusion、Midjourney或者国内的一些AI绘画平台时生成一张理想的图片往往不是一蹴而就的。你需要反复调试提示词Prompt调整各种参数如采样步数、CFG Scale、种子等甚至还需要进行多轮迭代和后期处理。这个过程对新手来说门槛很高对老手来说也相当耗时。copaw-nuwa-skill项目就是试图将那些被验证有效的“配方”——比如“如何生成赛博朋克风格的机甲少女”、“如何获得电影感的光影效果”、“如何保持角色形象的一致性”——打包成标准化的模块。用户无需深究底层原理通过调用或组合这些技能就能快速、稳定地产出高质量、符合特定需求的图像。这个项目适合哪些人呢首先是那些希望提升AI绘画出图效率和稳定性的创作者无论是插画师、概念设计师还是游戏美术。其次是想要构建自动化内容生成流水线的开发者或团队他们可以将这些技能集成到自己的应用中。最后对于AI绘画的爱好者来说这也是一个绝佳的学习库你可以通过拆解这些技能包反向学习到高级的提示词撰写技巧和参数搭配逻辑。接下来我将带你深入拆解这个项目的设计思路、核心实现以及如何将其应用到你的实际工作中。2. 核心架构与设计哲学解析2.1 “技能”Skill究竟是什么在这个项目的语境里“技能”不是一个抽象概念而是一个个具体、可执行的配置文件或脚本模块。一个完整的技能通常包含以下几个核心部分元数据Metadata定义技能的名称、版本、作者、描述和标签。这便于技能库的管理、搜索和分类。例如一个名为cyberpunk-portrait的技能其标签可能包含[cyberpunk, portrait, neon, character]。核心提示词模板Prompt Template这是技能的灵魂。它不是一个固定的字符串而是一个带有变量的模板。例如A {gender} {character_type} in a cyberpunk city, wearing {clothing_style}, neon lights reflecting on {material}, cinematic lighting, masterpiece, best quality。用户调用时可以传入具体的参数如gender“female”,character_type“hacker”来实例化这个模板。参数预设Parameter Presets包括模型选择如sd_xl_base_1.0.safetensors、采样器如DPM 2M Karras、步数steps30、引导系数cfg_scale7.5、分辨率width1024, height1024等。一个优秀的技能会提供一组经过大量测试、能稳定产出优质结果的“黄金参数”。负面提示词Negative Prompt同样重要。它用于明确排除我们不希望出现的元素例如“deformed, blurry, bad anatomy, ugly, duplicate”。一个针对人像的技能其负面提示词会特别强化对畸形手部、扭曲面部等常见问题的抑制。后处理流程Post-processing Pipeline定义生成图像后的自动化操作。这可能包括使用另一个AI模型进行超分辨率放大Upscale、人脸修复Face Restoration、特定风格的滤镜应用或者简单的裁剪、调色。这些步骤也可以被封装成独立的“后处理技能”。这种设计哲学的核心是“封装”和“复用”。将专家经验代码化、模块化降低使用门槛同时保证输出质量的下限。2.2 项目结构探秘如何组织一个技能库一个设计良好的技能库其项目结构应该是清晰且可扩展的。根据常见的实践copaw-nuwa-skill的项目目录可能如下所示copaw-nuwa-skill/ ├── README.md ├── skills/ # 核心技能目录 │ ├── characters/ # 角色相关技能 │ │ ├── anime-girl.json │ │ ├── realistic-portrait.json │ │ └── fantasy-warrior.json │ ├── styles/ # 风格化技能 │ │ ├── cyberpunk.json │ │ ├── oil-painting.json │ │ └── ink-wash.json │ ├── compositions/ # 构图与场景技能 │ │ ├── wide-shot.json │ │ ├── close-up.json │ │ └── dynamic-angle.json │ └── utilities/ # 工具类技能 │ ├── upscale.json │ ├── inpaint.json │ └── prompt-optimizer.json ├── presets/ # 共享的参数预设 │ ├── models.yaml │ ├── samplers.yaml │ └── base_negative_prompts.txt ├── examples/ # 示例输出和调用代码 │ ├── images/ │ └── scripts/ ├── src/ # 技能加载与执行引擎可选 │ ├── skill_loader.py │ └── executor.py └── config.yaml # 全局配置文件为什么这样设计按领域分类将技能分门别类方便用户按图索骥。一个想画科幻场景的用户会直接浏览styles/cyberpunk和compositions/下的技能。技能即配置使用JSON或YAML这类结构化文件定义技能而非硬编码在程序里。这使得技能的创建、修改和分享变得极其简单甚至非程序员也能参与贡献。共享预设将常用的模型列表、采样器等抽取出来避免在每个技能文件中重复定义便于统一管理和更新。引擎与执行分离src/目录下的代码是技能的“运行时”负责解析技能文件、替换变量、调用底层的AI绘画API如Automatic1111的WebUI API、ComfyUI的API等。技能开发者只需关注配置而不用重写调用逻辑。实操心得在规划自己的技能库时一开始不必追求大而全。从一个你最熟悉的垂直领域开始比如“二次元头像”创建3-5个高度精炼的技能。确保每个技能都能稳定输出80分以上的结果这比拥有一堆半成品技能要有价值得多。技能的版本管理也很重要可以在元数据中加入version字段当您优化了提示词或参数后升级版本号方便追踪变化。3. 深度拆解一个高质量技能的诞生过程让我们以创建一个“电影感特写人像”技能为例来还原一个技能从构思到实现的完整过程。这个过程能让你透彻理解提示词工程和参数调优的细节。3.1 需求分析与目标定义首先我们需要明确这个技能的目标生成一张具有电影质感、焦点清晰、光影富有戏剧性的人物特写照片主要用于角色设定、海报或关键帧插图。核心要素人物面部表情、眼神光、电影级打光如伦勃朗光、浅景深、高质量的皮肤和毛发细节。风格锚定介于纯写实和艺术渲染之间偏向cinematic photo,photorealistic,studio lighting的感觉避免看起来像3D渲染或卡通画。可变部分人物的性别、年龄、发型、情绪、轻微的装饰如耳环、衣领可以作为变量。3.2 提示词工程的逐层构建提示词的撰写是分层级的从整体氛围到局部细节权重逐渐降低。我们将构建一个模板{ prompt_template: (masterpiece, best quality, ultra-detailed, 8k), cinematic photo of a {age} {gender} {ethnicity} {character}, {hair_style} hair, looking at {gaze_direction}, {emotion} expression, intricate {clothing} details, dramatic {lighting_style} lighting, shallow depth of field, bokeh, film grain, shot on 85mm lens, f/1.2, negative_prompt: (worst quality, low quality, normal quality:1.4), deformed, distorted, disfigured, poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, watermark, signature, text, username }逐层解析第一层质量与风格锚定(masterpiece, best quality, ultra-detailed, 8k), cinematic photo。用括号和逗号分隔并置于开头给予这些概念最高的权重。这相当于告诉AI“首先这是一张顶级质量的电影照片”。第二层主体描述{age} {gender} {ethnicity} {character}。这里是变量区定义了角色的核心身份。{character}可以是更具体的如“detective”,“scientist”。第三层细节刻画{hair_style} hair, looking at {gaze_direction}, {emotion} expression, intricate {clothing} details。描述发型、视线、情绪和服装质感。intricate这个词能有效提升细节丰富度。第四层摄影技术强化dramatic {lighting_style} lighting, shallow depth of field, bokeh, film grain, shot on 85mm lens, f/1.2。这是赋予“电影感”的关键。指定灯光类型如Rembrandt,chiaroscuro、浅景深shallow depth of field、镜头焦段和光圈。film grain胶片颗粒能增加质感避免图片过于“数码味”。负面提示词的精炼负面提示词要具体且有力。这里不仅排除了低质量标签还特别强调了deformed, distorted, disfigured, bad anatomy等针对人像的常见问题。(worst quality, low quality, normal quality:1.4)中的:1.4表示权重意味着对“普通质量”的抑制力度是“最差质量”的1.4倍这是一种微调技巧。3.3 参数配置的“科学”与“玄学”提示词决定了“画什么”参数则决定了“怎么画”。以下是一组针对人像写实风格的推荐参数并附上选择理由parameters: model: realisticVisionV60B1_v51VAE.safetensors # 专精于写实人像的模型 sampler: DPM 2M Karras # 在细节和速度间取得良好平衡的采样器 steps: 30 # 步数足够让采样器充分迭代少于20步细节可能不足多于40步收益递减且耗时 cfg_scale: 7.5 # 引导系数。7-9是写实风格的甜点区。过低则偏离提示词过高则画面僵硬、对比度过强 width: 832 height: 1216 # 采用竖版9:16比例更符合人像特写和手机海报的构图习惯 seed: -1 # -1表示随机种子追求多样性。当得到一张完美图片后可固定种子进行微调 hires_fix: enable: true upscaler: 4x-UltraSharp # 使用高保真放大算法 hires_steps: 10 # 高清修复步数通常为主步数的1/3到1/2 denoising_strength: 0.3 # 去噪强度控制放大时重新绘制的程度。0.3-0.5能很好地在增加细节和保持原图间平衡参数选择背后的逻辑模型是基石选择与目标风格最匹配的模型比任何参数调整都重要。realisticVision、ChilloutMix对人像有特殊优化。采样器与步数Euler a速度快但可能不稳定DPM 2M Karras和DDIM通常能产生更清晰、细节更丰富的结果。步数并非越高越好30步左右是多数场景的性价比之选。CFG Scale的微妙平衡这是最需要反复调试的参数之一。对于创意性、艺术性强的画面可以尝试较低的CFG5-7对于需要严格遵循提示词的写实或设计类任务则需要较高的CFG7-10。一个常见的误区是盲目调高CFG来“增强细节”这往往会导致色彩饱和度过高、画面“塑料感”加重。分辨率与长宽比SD 1.5模型在512x512训练但适当提高分辨率如768x768有助于生成更多细节。然而直接生成非常大的图如2048x2048可能引发模型无法理解全局构图导致多主体或扭曲。最佳实践是生成一个基础尺寸然后使用hires_fix或专门的放大技能进行后处理。高清修复Hires. fix这几乎是生成高质量大图的必备步骤。denoising strength是关键它控制放大时AI“重新发挥”的程度。0.2-0.4适用于微调细节0.5-0.7则可能改变构图和添加新元素。注意事项参数之间会相互影响。例如更换模型后之前最优的CFG和步数可能需要重新调整。建议采用“控制变量法”固定其他所有参数每次只调整一个观察其变化规律并做好记录。可以为你常用的模型-风格组合建立自己的“参数预设库”。4. 技能的组合、调用与自动化集成单个技能已经很有用但copaw-nuwa-skill项目的更大威力在于技能的“组合”与“流水线”化。4.1 技能链实现复杂创意工作流假设我们的需求是“生成一个赛博朋克风格的女战士背景是雨夜的霓虹都市然后将其转换为铅笔素描风格。” 这个工作流可以分解为三个技能技能A:character/cyberpunk-female-warrior- 生成主体角色。技能B:style/rainy-neon-cityscape- 生成背景或作为A技能的背景变量输入。技能C:utility/style-transfer-pencil-sketch- 将前两步合成的结果进行风格转换。实现方式有两种顺序链先执行A将输出图像作为输入再执行C风格转换。这需要技能引擎支持图像输入。组合提示词在技能A的提示词模板中直接引入技能B的风格描述作为变量。例如“{character_prompt}, {background_prompt}, {lighting_prompt}”。这更简单但要求所有元素在一次生成中协调对模型提示词理解能力要求更高。一个技能链的伪代码示例假设使用Python调用import skill_loader import image_processor # 加载技能 char_skill skill_loader.load(skills/characters/cyberpunk-female-warrior.json) bg_skill skill_loader.load(styles/rainy-neon-cityscape.json) sketch_skill skill_loader.load(utilities/style-transfer-pencil-sketch.json) # 生成角色假设技能执行函数返回图像和参数 char_image, char_seed execute_skill(char_skill, genderfemale, posedynamic) # 生成背景这里简化实际可能需要图生图或拼接 # 假设我们采用组合提示词方式在角色技能里已经包含了背景变量 # 或者我们使用 char_image 作为初始图用 bg_skill 进行重绘img2img以融合背景 # 风格转换将角色图转换为素描风格 final_image execute_skill(sketch_skill, input_imagechar_image, strength0.8)4.2 集成到现有平台以WebUI和ComfyUI为例对于大多数个人用户技能库最直接的用法是集成到Stable Diffusion WebUI或ComfyUI中。在Automatic1111 WebUI中提示词模板你可以将技能的提示词模板和负面提示词保存为.txt文件放在styles文件夹下。这样在WebUI的“样式”下拉菜单中就可以直接选用一键填充所有提示词。参数预设WebUI支持将一整套参数采样器、步数、尺寸等保存为预设。你可以为每个技能创建一个同名的预设实现提示词和参数的同步加载。脚本扩展更有野心的做法是开发一个WebUI扩展直接读取copaw-nuwa-skill的目录结构在界面中呈现一个技能浏览器点击即可加载所有配置。在ComfyUI中ComfyUI的节点化、工作流化的思想与“技能”的概念天然契合。将技能封装为自定义节点你可以创建一个“Load Skill”节点输入技能名称输出对应的正面提示词、负面提示词、采样器参数等。这些输出可以连接到标准的CLIP Text Encode和KSampler节点。构建可复用的子工作流直接将一个完整的生成流程包括提示词编码、采样、VAE解码、后处理保存为.json工作流文件。这就是一个可视化的“技能”。团队成员可以轻松共享和加载这个.json文件。变量替换在ComfyUI中可以使用Primitive节点或String节点来代表技能模板中的变量通过连接实现动态注入。实操心得与WebUI相比ComfyUI在构建复杂、可复用的技能流水线上有巨大优势。但它的学习曲线也更陡峭。我的建议是先在WebUI中用“样式”和“预设”功能快速验证你的技能效果。当技能稳定且需要频繁复用时再将其迁移到ComfyUI中构建成更强大、更自动化的子工作流。ComfyUI的工作流管理器如ComfyUI Manager能极大方便技能子工作流的分享和安装。5. 进阶技巧从使用到创造与优化当你熟练使用现有技能后自然会想创建和优化自己的技能。以下是几个进阶方向。5.1 技能效果的量化评估与迭代如何判断一个技能是“好”的除了主观审美可以引入一些半客观的评估维度一致性使用同一技能、不同随机种子生成10-20张图观察在风格、质量、构图遵循度上是否稳定。可控性调整模板变量如更换{hair_color}观察输出是否按预期变化而没有引发其他元素的崩坏。提示词效率尝试精简提示词移除某些词汇看是否对产出质量有显著影响。目标是找到最简练、最有效的提示词组合。跨模型兼容性在一个基础模型如SDXL上开发的技能尝试在另一个同类型模型上测试看效果是否迁移良好。通用性强的技能价值更高。建立一个简单的测试脚本批量生成并保存结果在文件名中记录关键参数种子、变量值是进行迭代优化的基础。5.2 利用LoRA和Embedding增强技能特异性基础技能提供通用框架而LoRALow-Rank Adaptation和Textual Inversion Embedding则可以为技能注入极其特定的风格或对象。LoRA集成如果你的技能是为了生成某种特定画风比如某位画师风格或特定角色可以将对应的LoRA文件路径和触发词集成到技能配置中。{ prompt_template: ... lora:my_artist_style:0.8 ..., loras: [ {path: ./models/lora/my_artist_style.safetensors, weight: 0.8} ] }这样技能加载器在运行时可以自动将LoRA模型加载到生成管线中。Embedding应用对于需要排除的特定负面概念如“模糊的手”可以使用训练好的负面Embedding。将其加入负面提示词效果往往比纯文本描述更精准。5.3 构建技能市场与协作生态copaw-nuwa-skill项目的理想形态是一个开放平台。开发者可以定义技能标准制定一个统一的技能描述文件格式如基于JSON Schema规定必选和可选字段。建立分享平台允许用户上传、下载、评分和评论技能。技能可以打上标签便于搜索。版本管理与依赖像软件包一样管理技能版本甚至可以声明依赖关系例如“素描风格转换技能”依赖于“通用图像预处理技能”。在线测试提供简单的Web界面让用户无需本地部署就能预览技能效果降低尝试门槛。这对于团队协作尤其有用。主美可以创建和维护一套符合项目美术规范的“官方技能包”所有团队成员使用相同的技能能从源头上保证产出风格的一致性大幅减少后期修改和统一的工作量。6. 常见问题、排查与性能优化实录在实际使用和开发技能的过程中你会遇到各种各样的问题。这里记录了一些典型场景和解决思路。6.1 技能执行中的典型问题排查问题现象可能原因排查步骤与解决方案生成结果与预期严重不符1. 提示词变量未正确替换。2. 使用了不兼容的模型。3. CFG Scale参数极端。1. 检查技能执行日志确认输入的变量值是否成功注入到最终提示词字符串中。2. 核对技能配置中的model字段确认本地是否存在该模型文件且版本正确。3. 将CFG Scale调整回常用区间5-9观察变化。图像质量低下有扭曲或伪影1. 分辨率设置不当。2. 采样步数不足。3. 负面提示词不够强。4. VAE模型有问题。1. 尝试使用技能预设的hires_fix或手动分步生成先小图后放大。2. 逐步增加steps20, 25, 30观察质量提升拐点。3. 强化负面提示词加入blurry, deformed, ugly, bad anatomy等具体词汇。4. 尝试切换不同的VAE模型有时能显著改善色彩和细节。风格“漂移”同一技能输出不稳定1. 随机种子seed影响。2. 模型本身波动大。3. 提示词中存在冲突或过于宽泛的描述。1. 对于需要稳定输出的生产环节固定seed值。2. 尝试使用不同的采样器如DPM 2M Karras通常比Euler a更稳定。3. 审查提示词移除可能产生歧义的词汇增加权重符号()或[]来明确核心概念。生成速度非常慢1. 分辨率设置过高。2. 采样步数过多。3. 未使用GPU加速或显存不足。4. 启用了耗时的后处理如高分辨率修复。1. 遵循“先小后大”原则基础分辨率不宜超过1024x1024SDXL除外。2. 在质量可接受范围内减少steps。3. 检查任务管理器确认是否在用GPU运行。考虑使用--medvram或--lowvram参数启动WebUI。4. 评估hires_fix的必要性或调整其denoising strength和hires_steps到更低值。6.2 技能开发与维护的实践建议文档化一切在每个技能文件的description字段里详细说明其用途、最佳使用场景、关键变量含义并附上1-2张示例图。这能极大降低他人的使用成本。单一职责一个技能最好只做好一件事。比如“生成红色长发”和“生成赛博朋克背景”应该是两个独立的技能。这样可以提高复用性通过组合来创造复杂效果。参数边界检查如果你的技能引擎支持可以为变量添加简单的验证。例如{strength}变量应该在0到1之间。这能避免用户输入无效值导致生成失败。性能考量在技能中预设hires_fix参数时要意识到这会显著增加单张图的生成时间。对于需要批量生成或实时交互的场景可以考虑提供“快速预览”禁用hires_fix和“最终产出”启用hires_fix两种配置模式。向后兼容当你更新一个技能比如改进了提示词尽量通过增加新版本version: 2.0来实现而不是直接覆盖旧版本。这样依赖旧版本技能的其他工作流不会意外崩溃。6.3 安全与伦理考量虽然copaw-nuwa-skill项目本身是工具但使用它生成内容时必须保持清醒版权与肖像权避免使用技能生成与现有知名IP或真实人物肖像高度相似的内容用于商业用途时风险极高。内容安全技能库管理者应建立审核机制防止上传和分享用于生成暴力、色情或其它不良内容的技能模板。可以在技能加载引擎中加入基础的内容安全过滤。偏见与公平性AI模型训练数据中存在的社会偏见可能会在技能输出中体现。例如在未指定{ethnicity}的情况下模型可能默认生成特定族裔的特征。作为技能开发者在提供变量时应尽量给予中性、多样化的选项。从我个人的实践来看copaw-nuwa-skill这类项目代表了AI绘画工具从“玩具”走向“生产力”的关键一步。它将离散的经验沉淀为可复用的数字资产让创作者能更专注于创意本身而不是繁琐的参数调试。开始构建你自己的第一个技能吧哪怕只是将你最得意的一组提示词保存下来这就是你个性化创意工作流的起点。随着技能的积累和组合你会发现自己的创作效率和作品质量都会迎来质的飞跃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2574738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…