1. 项目概述:从“鸡哥厨房”到开源AI工具集

最近在GitHub上看到一个挺有意思的项目,叫“JIGGAI/ClawKitchen”。乍一看这名字,你可能以为是个美食或者游戏模组仓库,但点进去才发现,这是一个围绕AI图像生成与处理的开源工具集合。项目名“ClawKitchen”直译是“爪子厨房”,结合创建者“JIGGAI”的ID,很容易让人联想到网络上流行的“鸡哥”梗文化,这种命名方式本身就带有很强的社区亲和力和趣味性。但别被名字迷惑了,这个厨房里烹饪的可不是家常菜,而是各种用于“抓取”(Claw)和处理AI生成内容的“配方”与“工具”。

这个项目的核心,是提供一系列实用脚本、工作流和解决方案,主要服务于使用Stable Diffusion等扩散模型进行AI绘画的创作者和开发者。如果你自己玩过Stable Diffusion WebUI(Automatic1111或ComfyUI),肯定遇到过不少头疼的问题:生成的图片分辨率不够高,细节模糊;想批量处理一堆图片的某个步骤,手动操作效率极低;或者看到别人分享了一个酷炫的效果,却不知道背后的工作流是怎么搭建的。ClawKitchen试图扮演的就是这样一个“工具箱”和“食谱站”的角色,它把一些经过实践检验的、能提升出图质量或优化工作流程的代码和方法论,打包成易于使用和修改的形式。

对我而言,这类项目最大的价值在于“去神秘化”和“可复现”。AI绘画领域发展极快,每天都有新的模型、新的技术(如ControlNet、LoRA、IP-Adapter)出现,但很多高级技巧和优化方案都散落在论坛、Discord频道或付费教程里,不成体系。ClawKitchen这样的开源项目,相当于一位乐于分享的资深玩家,把自己的“武功秘籍”整理成了公开的菜谱。无论你是刚入门的新手,想快速提升出图质量,还是有一定经验的开发者,希望寻找某个特定功能(比如人脸修复、高清放大、风格迁移)的实现参考,都能在这里找到可以直接运行或借鉴的代码。

2. 核心功能模块深度解析

ClawKitchen仓库的结构通常不会特别复杂,但里面包含的脚本和工具往往直击痛点。虽然具体文件可能随版本更新,但我们可以根据其项目定位,拆解出几个最可能存在的核心功能模块,并深入探讨其背后的技术原理和实用价值。

2.1 图像超分辨率与高清修复

这几乎是所有AI绘画工具的必备后处理环节。扩散模型,尤其是那些基于潜在空间(Latent Space)的模型,为了平衡计算资源和生成质量,通常在较低的分辨率(如512x512或768x768)下进行去噪采样。直接输出这样的图片,在屏幕上放大观看时,往往会显得细节不足、边缘模糊,甚至出现一些结构性错误。

ClawKitchen中很可能包含了针对性的高清放大(Hires. fix)或后期超分(Upscale)方案。这不仅仅是简单调用一个ESRGAN或Real-ESRGAN模型。一个成熟的方案会考虑以下几点:

1. 放大倍率与算法的匹配:

  • 保守放大(2x-4x) :对于小幅提升,像经典的ESRGAN、Real-ESRGAN及其变种(如Real-ESRGAN-anime)效果已经很好,它们在恢复纹理和去模糊方面表现稳定。ClawKitchen可能会提供预训练好的模型文件(.pth)以及对应的推理脚本。
  • 激进放大或追求极致细节 :可能会集成像SwinIR、GFPGAN(专攻人脸)、CodeFormer(人脸修复与增强)等更先进的模型。特别是对于AI生成的人脸,直接放大很容易暴露扭曲的五官或模糊的皮肤纹理,此时GFPGAN或CodeFormer几乎是必选项。

2. 工作流集成: 一个高级的实现不会让用户手动把生成的图片保存下来,再打开另一个软件处理。ClawKitchen的脚本很可能会设计成能够无缝嵌入到Stable Diffusion WebUI的扩展机制中,或者提供ComfyUI的自定义节点(Custom Node)。例如,它可以作为一个“后处理脚本”在WebUI中调用,在图片生成后自动进行一系列操作:先用人脸修复模型处理检测到的人脸区域,再用通用超分模型处理整张图,最后可能还会加一个轻微的锐化或降噪滤镜来提升观感。

3. 参数调优与批处理: 脚本会暴露关键参数,比如超分模型的强度(upscale strength)、人脸修复的保真度(fidelity)权重。更重要的是,它一定支持批处理(batch processing)。想象一下,你用提示词批量生成了100张图,难道要一张张手动处理吗?一个 process_folder.py 脚本,允许你指定输入文件夹、输出文件夹和参数配置,然后泡杯咖啡回来就全部处理完毕,这才是生产力工具该有的样子。

实操心得:超分不是万能的 很多新手会迷信“4倍超分能让烂图变神图”。实际上,超分模型是在已有信息的基础上进行“猜测”和“补充”。如果原图在低分辨率下就存在严重的结构错误(比如三只手、扭曲的肢体),超分后这些错误可能会被放大甚至固化。高清修复的最佳实践是: 先确保在基础采样阶段得到一张结构正确、构图满意的图,哪怕它分辨率低一些、细节糙一点。然后再使用超分作为“精加工”步骤,去增强纹理、锐化边缘。 顺序错了,事倍功半。

2.2 提示词(Prompt)工程与优化工具

提示词是驱动AI生成内容的“咒语”。但如何编写高效、精准的提示词,是一门经验学。ClawKitchen可能会包含一些辅助提示词工作的工具。

1. 提示词权重分析与优化: Stable Diffusion使用CLIP模型来理解文本。但 (word:1.3) 这样的权重语法具体如何影响生成?ClawKitchen或许会提供一个脚本,用于分析提示词中各个令牌(token)对最终潜变量(latent)的影响程度。这能帮助创作者理解哪些词是真正在起作用,哪些是冗余的,从而精简提示词,提升生成效率。

2. 负面提示词(Negative Prompt)库: 高质量的负面提示词能有效抑制不想要的元素(如“丑陋的”、“多肢的”、“模糊的”)。ClawKitchen可能会整理一个经过社区验证的、针对不同风格(写实、动漫、设计)的负面提示词集合,甚至提供一个脚本,让用户可以根据自己常用的正面提示词风格,自动匹配推荐一组负面提示词。

3. 风格模板与预设: “赛博朋克”、“水墨风”、“吉卜力工作室风格”……这些风格往往对应着一套复杂的提示词组合和模型参数(采样器、步数、CFG Scale)。ClawKitchen可以提供一个“风格配方”管理系统,将成熟的风格保存为预设( .json .yaml 文件),用户只需选择“水墨风”,就能自动载入对应的正面/负面提示词、采样器(如DPM++ 2M Karras)、步数(如30)、CFG值(如7)等。这极大地降低了风格复现的门槛。

2.3 工作流自动化与批量生成

这是将AI创作从“手工作坊”升级为“流水线”的关键。ClawKitchen的核心价值之一,可能就是提供了一系列自动化脚本。

1. 图生图(img2img)工作流优化: 例如,一个常见的需求是“角色一致性”:生成同一个角色的多角度、多动作的图片。纯靠文生图(txt2img)很难保证一致性。一个自动化工作流可能是:

  • 步骤1 :用一张满意的角色原图,通过反推(Interrogate)得到其文本编码(Prompt)。
  • 步骤2 :使用ControlNet的OpenPose或Depth模型,提取目标姿势或构图的骨架/深度图。
  • 步骤3 :将原图的编码、ControlNet约束和新姿势的提示词结合,进行图生图,并采用较低的去噪强度(如0.3-0.5)以保持角色特征。 ClawKitchen可能会提供一个脚本,将上述步骤打包,用户只需提供原图和目标姿势图,就能自动生成一系列符合要求的图片。

2. 参数网格搜索(Grid Search): 生成效果受多重参数影响:采样器(Euler a, DPM++, DDIM)、步数(20, 30, 50)、CFG Scale(7, 10, 12)、种子(Seed)等。手动排列组合尝试效率极低。一个 grid_search.py 脚本可以自动遍历你指定的参数组合,批量生成图片,并自动将参数信息写入文件名或生成对比图,帮助你科学地找到最优参数集。

3. 数据集预处理流水线: 对于想训练自己的DreamBooth模型或LoRA的玩家来说,准备训练集是个繁琐活。图片需要统一裁剪成标准大小(如512x512),进行人脸对齐、去除水印、打标签等。ClawKitchen可能包含一套自动化预处理流水线,使用人脸检测库(如dlib或OpenCV的Haar级联分类器)进行对齐,使用Waifu2x或ESRGAN进行初步降噪放大,甚至集成BLIP或DeepDanbooru模型自动为图片生成描述性标签(Caption),为后续训练节省大量时间。

2.4 模型管理与实验分析

当你的模型文件夹里躺着几十个甚至上百个CKPT或Safetensors文件时,如何管理、比较和评估它们?

1. 模型信息快速预览: 一个脚本可以扫描你的模型目录,提取每个模型的元信息(如训练底模、触发词、预览图),并生成一个HTML或Markdown格式的索引页面,方便你快速浏览和选择。

2. 模型对比测试: 给定同一组提示词和种子,用不同的模型分别生成图片,并自动排版成对比图。这比手动切换模型、复制参数要高效得多。ClawKitchen的脚本可以让你一目了然地看出哪个模型在特定风格(如科幻场景、二次元人物)上表现更佳。

3. 生成日志与数据分析: 对于严肃的创作者或研究者,记录每次生成的参数(提示词、模型、种子、步数等)和结果(输出图片路径)至关重要。一个简单的日志系统,将每次运行脚本的生成信息记录到数据库(如SQLite)或JSON文件中,便于后续分析和复现优秀结果。

3. 典型使用场景与实操指南

了解了核心功能后,我们来看几个具体的场景,并模拟一下使用ClawKitchen工具的操作过程。请注意,以下代码和路径均为示例,实际使用时需根据仓库的具体文件结构进行调整。

3.1 场景一:为一批AI头像进行高清人脸修复

假设你有一批用Stable Diffusion生成的半身像,分辨率是512x512,想全部进行高清修复,特别是优化人脸细节。

步骤1:环境准备与依赖安装 首先,克隆仓库并检查依赖。通常这类项目会提供 requirements.txt

git clone https://github.com/JIGGAI/ClawKitchen.git
cd ClawKitchen
# 查看是否有环境配置文件
ls -la
# 安装Python依赖,建议使用虚拟环境
pip install -r requirements.txt

依赖可能包括 torch , torchvision , opencv-python , Pillow , 以及 realesrgan , gfpgan 等包的Python接口。

步骤2:准备模型文件 超分和人脸修复需要预训练模型。ClawKitchen可能会在 README 中提供下载链接,或者使用脚本自动下载。通常你需要将下载的 .pth 模型文件放入项目指定的 models 文件夹。

mkdir -p models
# 假设手动下载了 Real-ESRGAN_x4plus.pth 和 GFPGANv1.4.pth
mv ~/Downloads/Real-ESRGAN_x4plus.pth models/
mv ~/Downloads/GFPGANv1.4.pth models/

步骤3:运行批处理脚本 找到专门用于人脸修复和高清放大的脚本,例如 batch_face_enhance.py

python scripts/batch_face_enhance.py \
  --input_dir /path/to/your/low_res_portraits \
  --output_dir /path/to/save/high_res_results \
  --face_enhance True \
  --model_name realesrgan-x4plus \
  --face_model_name gfpgan-v1.4 \
  --upscale 2 \
  --bg_upscale True \
  --ext png

参数解析:

  • --input_dir : 原始图片所在文件夹。
  • --output_dir : 处理后的图片保存文件夹。
  • --face_enhance : 是否启用专门的人脸修复。
  • --model_name : 选择使用的超分模型。
  • --face_model_name : 选择使用的人脸修复模型。
  • --upscale : 整体放大倍数。
  • --bg_upscale : 是否对非人脸背景也进行超分。
  • --ext : 处理的图片格式。

步骤4:结果检查与参数调整 脚本运行后,检查输出文件夹中的图片。如果发现某些图片修复后肤色不自然或细节过假,可以调整参数重新处理部分图片。例如,GFPGAN有一个 --weight 参数(通常叫 fidelity_weight upscale_weight ),范围在0到1之间。越接近1,修复力度越强,但可能引入模型本身的特征;越接近0,则越保留原图特征,但修复效果减弱。可以尝试设置为0.7或0.8进行平衡。

注意事项:批量处理的资源管理 高清修复,尤其是使用较大超分模型时,对GPU显存要求较高。如果你有大量图片(比如上千张),直接批量处理可能会导致显存溢出(OOM)。一个稳健的脚本应该具备 分块处理(chunk processing) 错误恢复(error recovery) 机制。好的实践是:在脚本内部,每次只加载和处理一小批图片(如4-8张),处理完后立即释放显存。同时,记录已成功处理的文件列表,如果脚本中途因意外中断,重新运行时会跳过已处理的文件,从断点继续。

3.2 场景二:自动化测试不同LoRA模型的效果

你下载了5个不同画风的LoRA模型,想快速知道它们对同一组提示词的影响。

步骤1:准备测试配置 创建一个配置文件,比如 lora_test_config.yaml ,来定义测试参数。

base_model: "path/to/your/sd_model.safetensors"
prompt: "1girl, masterpiece, best quality, detailed eyes, in a classroom"
negative_prompt: "lowres, bad anatomy, worst quality"
sampler: "DPM++ 2M Karras"
steps: 30
cfg_scale: 7
width: 512
height: 768
seed: 12345

loras_to_test:
  - name: "Japanese_Anime_Style"
    path: "./models/lora/japanese_anime_style.safetensors"
    strength: [0.5, 0.8, 1.0] # 测试不同强度
  - name: "Oil_Painting_Effect"
    path: "./models/lora/oil_painting.safetensors"
    strength: [0.7]
  - name: "Cyberpunk_Glow"
    path: "./models/lora/cyberpunk_glow.safetensors"
    strength: [0.6, 0.9]

output_dir: "./output/lora_comparison"

这个配置指定了基础模型、固定提示词、采样参数,以及要测试的LoRA模型列表(包括路径和要测试的强度值)。

步骤2:运行对比测试脚本 假设ClawKitchen提供了 run_lora_grid.py 脚本。

python scripts/run_lora_grid.py --config lora_test_config.yaml

脚本会依次:

  1. 加载基础模型。
  2. 对于每个LoRA模型,合并对应强度的权重。
  3. 用相同的随机种子(确保其他条件一致)生成图片。
  4. 将生成的图片保存,并在文件名中嵌入LoRA名称和强度(如 Japanese_Anime_Style_strength_0.8_seed_12345.png )。
  5. 可能还会自动生成一个对比网格图(collage),将所有结果拼在一张图里,方便直观比较。

步骤3:分析与应用 查看输出文件夹,你立刻能看出:

  • “Japanese_Anime_Style”在强度0.8时,动漫风格特征最明显且自然。
  • “Oil_Painting_Effect”在0.7强度下已经笔触感很强。
  • “Cyberpunk_Glow”在0.9时可能光效过曝,0.6更合适。 基于这个快速测试,你就可以在正式创作中 confidently 地选用合适的LoRA和强度了。

3.3 场景三:构建自定义的图生图迭代工作流

你想实现一个功能:输入一张线稿,先由AI上色并填充基础细节,然后在此基础上不断“细化”和“丰富”画面,迭代多次,每次都在前一次的结果上进行。

这需要编写一个简单的循环脚本。ClawKitchen可能没有直接提供,但其模块化的代码结构可以让你轻松组合。

步骤1:理解Stable Diffusion的API调用 首先,你需要知道如何通过程序调用SD WebUI的API(如果它以后端模式运行)或者直接使用 diffusers 库。假设使用WebUI的API,其基本端点可能是 http://127.0.0.1:7860/sdapi/v1/txt2img

步骤2:编写迭代脚本 创建一个 iterative_img2img.py 脚本。

import requests
import json
import base64
from PIL import Image
import io
import time

def encode_image_to_base64(image_path):
    with open(image_path, "rb") as f:
        return base64.b64encode(f.read()).decode()

def call_sd_api(api_url, payload):
    response = requests.post(url=api_url, json=payload)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f"API call failed: {response.status_code}, {response.text}")

def iterative_refinement(initial_image_path, prompt, steps=5, denoising_strength=0.4):
    current_image_path = initial_image_path
    api_url = "http://127.0.0.1:7860/sdapi/v1/img2img"
    
    for i in range(steps):
        print(f"Iteration {i+1}/{steps}")
        # 准备payload
        with open(current_image_path, "rb") as f:
            init_image_b64 = base64.b64encode(f.read()).decode()
        
        payload = {
            "init_images": [init_image_b64],
            "prompt": prompt,
            "negative_prompt": "blurry, messy, bad anatomy",
            "steps": 30,
            "cfg_scale": 7,
            "width": 512,
            "height": 512,
            "denoising_strength": denoising_strength, # 关键参数,控制变化幅度
            "sampler_name": "Euler a",
            "seed": -1, # 每次随机
        }
        
        result = call_sd_api(api_url, payload)
        # 保存结果
        image_data = base64.b64decode(result['images'][0])
        current_image_path = f"./output/iteration_{i+1}.png"
        with open(current_image_path, "wb") as f:
            f.write(image_data)
        print(f"Saved: {current_image_path}")
        time.sleep(1) # 避免请求过快
    print("Iterative refinement completed.")

if __name__ == "__main__":
    # 使用示例
    iterative_refinement(
        initial_image_path="./input/sketch.png",
        prompt="a beautiful fantasy castle, intricate details, vibrant color, digital painting, trending on artstation",
        steps=5,
        denoising_strength=0.35 # 较低的强度,每次迭代微调
    )

这个脚本会:

  1. 读取初始线稿。
  2. 调用img2img API,以一定的去噪强度( denoising_strength )进行重绘。这个强度值很关键:太低(如0.2)变化太小,迭代效率低;太高(如0.6)可能丢失原图构图。0.35-0.45是个不错的起点。
  3. 将输出图片作为下一次迭代的输入。
  4. 重复指定次数。

步骤3:观察与调整 运行脚本后,观察迭代过程。你可能会发现,在第三次迭代后画面已经足够丰富,后续迭代只是增加噪点。这时你就可以调整策略:在后期迭代中降低 denoising_strength ,或者改变提示词,加入更具体的细节描述(如“add flying birds near the castle towers”)。

4. 常见问题排查与进阶技巧

在实际使用ClawKitchen或类似工具集时,你肯定会遇到各种问题。这里记录一些典型问题的排查思路和从经验中总结的进阶技巧。

4.1 依赖与环境问题

问题1: ImportError ModuleNotFoundError 这是最常见的问题,尤其是项目依赖了一些特定版本的库。

  • 排查 :仔细阅读项目的 README.md requirements.txt 。有时作者会注明需要特定版本的 torch (如 torch==2.0.1+cu118 )或 xformers
  • 解决
    1. 使用虚拟环境( venv conda )隔离项目环境。
    2. 尝试使用 pip install -r requirements.txt --upgrade
    3. 如果某个库安装失败(特别是需要编译的,如 xformers ),可以搜索预编译的wheel文件( .whl )进行安装,或者根据错误信息查找操作系统(Ubuntu/Windows)特定的安装指南。
    4. 对于CUDA相关错误,确保你的PyTorch版本与CUDA版本匹配。可以使用 torch.cuda.is_available() 验证。

问题2:运行脚本时GPU显存不足(OOM) 处理高分辨率图片或批量处理时容易发生。

  • 排查 :使用 nvidia-smi 命令监控显存占用。如果接近显卡容量上限,就会OOM。
  • 解决
    1. 减小批量大小(Batch Size) :在脚本参数中寻找 --batch_size --n_samples ,将其设为1。
    2. 降低分辨率 :先以较低分辨率生成或处理,再用超分放大。
    3. 启用CPU回退 :有些脚本支持 --fp16 (半精度浮点数)或 --cpu-offload (将部分计算卸载到CPU),可以显著减少显存占用,但会降低速度。
    4. 分块处理 :如前所述,确保脚本是分块读取和处理图片的,而不是一次性加载所有图片到内存。

4.2 模型与权重问题

问题3:加载模型时报错或生成结果异常

  • 排查 :检查模型文件是否完整下载(核对MD5或SHA256哈希值)。确认模型类型(如Checkpoint, LoRA, VAE)是否与脚本期望的匹配。
  • 解决
    1. 重新下载模型 :从可信源(如Civitai, Hugging Face)重新下载。
    2. 检查模型格式 :Stable Diffusion模型主要有 .ckpt (PyTorch Checkpoint)和 .safetensors 格式。后者更安全,是推荐格式。确保你的脚本支持对应的格式加载器。
    3. 模型版本兼容性 :SD1.5的模型和SDXL的模型不通用。LoRA也需要对应特定的基础模型。确认你使用的所有模型(底模、LoRA、VAE)是为同一版本的Stable Diffusion训练的。

问题4:超分后图片出现色差或伪影

  • 排查 :原图质量太差,或者超分模型与图片内容不匹配(例如用真人模型超分动漫图)。
  • 解决
    1. 尝试不同模型 :Real-ESRGAN有通用版和动漫版。对于动漫图片,使用 RealESRGAN_x4plus_anime_6B.pth 通常效果更好。
    2. 调整预处理 :超分前,可以先对原图进行轻微的降噪或色彩平衡调整。
    3. 后处理 :超分后,如果出现过度锐化导致的“白边”伪影,可以用图像编辑软件进行轻微的模糊或使用“减少杂色”滤镜。

4.3 工作流与效率优化

问题5:自动化脚本运行速度慢

  • 排查 :瓶颈可能在于IO(读写图片)、网络(调用远程API)或计算(模型推理)。
  • 解决
    1. IO优化 :使用SSD硬盘。如果处理大量小文件,可以考虑先将图片列表加载到内存中。
    2. 计算优化 :确保使用了GPU加速。在代码中,将数据和模型显式地移动到GPU设备( model.to(‘cuda’) )。对于 diffusers 库,可以利用其内置的流水线(pipeline)和注意力优化。
    3. 并行化 :如果脚本是处理独立的图片,可以考虑使用Python的 multiprocessing concurrent.futures 模块进行多进程处理,充分利用多核CPU。但要注意GPU任务的并行需要更精细的控制,避免显存冲突。

问题6:生成的图片风格不稳定

  • 排查 :提示词不够具体,种子(Seed)随机,或者CFG Scale过高导致画面“过拟合”提示词而失去艺术性。
  • 解决
    1. 固定种子 :这是保证可复现性的第一步。找到一张满意的图,记下它的种子,在后续生成中使用。
    2. 优化提示词 :使用更具体、更具象的词汇。与其写“美丽的风景”,不如写“阳光穿过晨雾笼罩的松树林,湖面如镜,安详,广角镜头,摄影”。
    3. 调整CFG Scale :这个参数控制提示词对生成的影响程度。通常7-12是常用范围。太高(>15)会导致画面色彩饱和、线条生硬;太低(<5)则可能忽略提示词。多尝试找到平衡点。
    4. 使用风格LoRA或Embedding :这是最有效的方法之一。直接加载一个“吉卜力风格”或“胶片摄影风格”的LoRA,可以极大地稳定输出风格。

4.4 进阶技巧:让工具为你所用

技巧1:将ClawKitchen脚本集成到现有工作流 不要孤立地使用这些脚本。例如,你可以将那个 batch_face_enhance.py 脚本的输出目录,设置为你的数字资产管理软件(如Eagle、Billfish)的监视文件夹。这样,一旦AI生成完成并自动修复,新图片就会自动出现在你的素材库中,便于整理和调用。

技巧2:阅读源码,按需修改 开源项目的最大优势就是代码可见。如果你发现某个脚本的功能90%符合你需求,但就差那么一点(比如你想在超分后自动添加一个水印,或者想修改默认的图片保存格式),直接去读对应的Python文件。通常逻辑都很清晰,你只需要在合适的位置添加几行PIL(Python Imaging Library)的代码就能实现自定义功能。这比从头写一个脚本要快得多。

技巧3:组合使用,创造新工作流 ClawKitchen的各个工具是积木。例如,你可以:

  1. 用提示词生成工具,快速产生一批构图类似的草图。
  2. 用参数网格搜索,为其中最好的几张草图寻找最优采样参数。
  3. 用图生图迭代脚本,对选定草图进行精细化。
  4. 最后用批处理高清修复脚本,统一处理所有最终成品。 将这个流程写成一个Shell脚本或Python主控脚本,你就拥有了一个属于自己的、端到端的AI绘画生产管线。

技巧4:关注社区与更新 像ClawKitchen这样的项目,其价值会随着社区贡献而增长。定期去GitHub仓库看看 Issues Pull Requests ,你可能会发现别人提交的bug修复、新功能或者更好的参数配置。给对你有帮助的代码点个Star,如果发现了bug或者有改进想法,不妨提交一个Issue,甚至尝试自己修复并提交PR。参与开源,是提升技术最快的方式之一。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐