[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-XavierXiao--Dreambooth-Stable-Diffusion":3,"tool-XavierXiao--Dreambooth-Stable-Diffusion":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":76,"owner_twitter":76,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":98,"env_os":99,"env_gpu":100,"env_ram":99,"env_deps":101,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":145},9271,"XavierXiao\u002FDreambooth-Stable-Diffusion","Dreambooth-Stable-Diffusion","Implementation of Dreambooth (https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.12242) with Stable Diffusion","Dreambooth-Stable-Diffusion 是将谷歌提出的 Dreambooth 技术成功移植到 Stable Diffusion 模型上的开源实现。它主要解决了原始 Dreambooth 依赖不公开的 Imagen 模型、导致大众无法复用的痛点，让普通用户也能利用少量图片对强大的文生图模型进行个性化微调。\n\n与仅优化文本嵌入的\"Textual Inversion\"技术不同，Dreambooth-Stable-Diffusion 直接对整个扩散模型进行微调。这意味着用户只需提供几张特定主体（如自家的宠物或独特的艺术品）的照片，就能训练出一个能精准识别并生成该主体的新模型，且能灵活应用于各种创意场景中，同时有效避免过拟合。\n\n该项目特别适合希望深入探索 AI 绘画潜力的开发者、研究人员以及需要定制化内容生成的设计师使用。虽然部署和训练过程需要一定的技术基础（如配置环境和准备正则化图像），但它极大地降低了个性化模型训练的门槛。其技术亮点在于在保留原代码结构的基础上，通过启用梯度检查点（gradient checkpointing）等技巧，有效降低了显存占用，使得在消费级显卡上进","Dreambooth-Stable-Diffusion 是将谷歌提出的 Dreambooth 技术成功移植到 Stable Diffusion 模型上的开源实现。它主要解决了原始 Dreambooth 依赖不公开的 Imagen 模型、导致大众无法复用的痛点，让普通用户也能利用少量图片对强大的文生图模型进行个性化微调。\n\n与仅优化文本嵌入的\"Textual Inversion\"技术不同，Dreambooth-Stable-Diffusion 直接对整个扩散模型进行微调。这意味着用户只需提供几张特定主体（如自家的宠物或独特的艺术品）的照片，就能训练出一个能精准识别并生成该主体的新模型，且能灵活应用于各种创意场景中，同时有效避免过拟合。\n\n该项目特别适合希望深入探索 AI 绘画潜力的开发者、研究人员以及需要定制化内容生成的设计师使用。虽然部署和训练过程需要一定的技术基础（如配置环境和准备正则化图像），但它极大地降低了个性化模型训练的门槛。其技术亮点在于在保留原代码结构的基础上，通过启用梯度检查点（gradient checkpointing）等技巧，有效降低了显存占用，使得在消费级显卡上进行微调成为可能。如果你渴望拥有专属的 AI 绘画模型，这是一个值得尝试的强大工具。","# Dreambooth on Stable Diffusion\n\nThis is an implementtaion of Google's [Dreambooth](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.12242) with [Stable Diffusion](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion). The original Dreambooth is based on [Imagen](https:\u002F\u002Fimagen.research.google\u002F) text-to-image model. However, neither the model nor the pre-trained weights of Imagen is available. To enable people to fine-tune a text-to-image model with a few examples, I implemented the idea of Dreambooth on Stable diffusion.\n\nThis code repository is based on that of [Textual Inversion](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion). Note that Textual Inversion only optimizes word ebedding, while dreambooth fine-tunes the whole diffusion model.\n\nThe implementation makes minimum changes over the official codebase of Textual Inversion. In fact, due to lazyness, some components in Textual Inversion, such as the embedding manager, are not deleted, although they will never be used here.\n## Update\n**9\u002F20\u002F2022**: I just found a way to reduce the GPU memory a bit. Remember that this code is based on Textual Inversion, and TI's code base has [this line](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion\u002Fblob\u002Fmain\u002Fldm\u002Fmodules\u002Fdiffusionmodules\u002Futil.py#L112), which disable gradient checkpointing in a hard-code way. This is because in TI, the Unet is not optimized. However, in Dreambooth we optimize the Unet, so we can turn on the gradient checkpoint pointing trick, as in the original SD repo [here](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion\u002Fblob\u002Fmain\u002Fldm\u002Fmodules\u002Fdiffusionmodules\u002Futil.py#L112). The gradient checkpoint is default to be True in [config](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fconfigs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml#L47). I have updated the codes.\n## Usage\n\n### Preparation\nFirst set-up the ```ldm``` enviroment following the instruction from textual inversion repo, or the original Stable Diffusion repo.\n\nTo fine-tune a stable diffusion model, you need to obtain the pre-trained stable diffusion models following their [instructions](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion#stable-diffusion-v1). Weights can be downloaded on [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FCompVis). You can decide which version of checkpoint to use, but I use ```sd-v1-4-full-ema.ckpt```.\n\nWe also need to create a set of images for regularization, as the fine-tuning algorithm of Dreambooth requires that. Details of the algorithm can be found in the paper. Note that in the original paper, the regularization images seem to be generated on-the-fly. However, here I generated a set of regularization images before the training. The text prompt for generating regularization images can be ```photo of a \u003Cclass>```, where ```\u003Cclass>``` is a word that describes the class of your object, such as ```dog```. The command is\n\n```\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 --n_samples 8 --n_iter 1 --scale 10.0 --ddim_steps 50  --ckpt \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt --prompt \"a photo of a \u003Cclass>\" \n```\n\nI generate 8 images for regularization, but more regularization images may lead to stronger regularization and better editability. After that, save the generated images (separately, one image per ```.png``` file) at ```\u002Froot\u002Fto\u002Fregularization\u002Fimages```.\n\n**Updates on 9\u002F9**\nWe should definitely use more images for regularization. Please try 100 or 200, to better align with the original paper. To acomodate this, I shorten the \"repeat\" of reg dataset in the [config file](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fconfigs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml#L96).\n\nFor some cases, if the generated regularization images are highly unrealistic (happens when you want to generate \"man\" or \"woman\"), you can find a diverse set of images (of man\u002Fwoman) online, and use them as regularization images.\n\n### Training\nTraining can be done by running the following command\n\n```\npython main.py --base configs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml \n                -t \n                --actual_resume \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt  \n                -n \u003Cjob name> \n                --gpus 0, \n                --data_root \u002Froot\u002Fto\u002Ftraining\u002Fimages \n                --reg_data_root \u002Froot\u002Fto\u002Fregularization\u002Fimages \n                --class_word \u003Cxxx>\n```\n\nDetailed configuration can be found in ```configs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml```. In particular, the default learning rate is ```1.0e-6``` as I found the ```1.0e-5``` in the Dreambooth paper leads to poor editability. The parameter ```reg_weight``` corresponds to the weight of regularization in the Dreambooth paper, and the default is set to ```1.0```.\n\nDreambooth requires a placeholder word ```[V]```, called identifier, as in the paper. This identifier needs to be a relatively rare tokens in the vocabulary. The original paper approaches this by using a rare word in T5-XXL tokenizer. For simplicity, here I just use a random word ```sks``` and hard coded it.. If you want to change that, simply make a change in [this file](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fldm\u002Fdata\u002Fpersonalized.py#L10).\n\nTraining will be run for 800 steps, and two checkpoints will be saved at ```.\u002Flogs\u002F\u003Cjob_name>\u002Fcheckpoints```, one at 500 steps and one at final step. Typically the one at 500 steps works well enough. I train the model use two A6000 GPUs and it takes ~15 mins.\n\n### Generation\nAfter training, personalized samples can be obtained by running the command\n\n```\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 \n                                 --n_samples 8 \n                                 --n_iter 1 \n                                 --scale 10.0 \n                                 --ddim_steps 100  \n                                 --ckpt \u002Fpath\u002Fto\u002Fsaved\u002Fcheckpoint\u002Ffrom\u002Ftraining\n                                 --prompt \"photo of a sks \u003Cclass>\" \n```\n\nIn particular, ```sks``` is the identifier, which should be replaced by your choice if you happen to change the identifier, and ```\u003Cclass>``` is the class word ```--class_word``` for training.\n\n## Results\nHere I show some qualitative results. The training images are obtained from the [issue](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion\u002Fissues\u002F8) in the Textual Inversion repository, and they are 3 images of a large trash container. Regularization images are generated by prompt ```photo of a container```. Regularization images are shown here:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_6005b5ec45a5.jpg)\n\nAfter training, generated images with prompt ```photo of a sks container```:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_f9f61eb1edf8.jpg)\n\nGenerated images with prompt ```photo of a sks container on the beach```:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_2af9dbbffc65.jpg)\n\nGenerated images with prompt ```photo of a sks container on the moon```:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_cc7ce30dc24b.jpg)\n\nSome not-so-perfect but still interesting results:\n\nGenerated images with prompt ```photo of a red sks container```:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_a182ff0fc897.jpg)\n\nGenerated images with prompt ```a dog on top of sks container```:\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_4ec69e5872a7.jpg)\n\n","# Dreambooth 在 Stable Diffusion 上的实现\n\n这是基于 Google 的 [Dreambooth](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.12242) 和 [Stable Diffusion](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion) 的实现。原始的 Dreambooth 是基于 [Imagen](https:\u002F\u002Fimagen.research.google\u002F) 文本到图像模型的，然而 Imagen 的模型和预训练权重均未公开。为了使人们能够仅用少量示例就微调文本到图像模型，我在 Stable Diffusion 上实现了 Dreambooth 的思想。\n\n该代码仓库基于 [Textual Inversion](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion) 的代码库。需要注意的是，Textual Inversion 只优化词嵌入，而 Dreambooth 则对整个扩散模型进行微调。\n\n该实现对 Textual Inversion 的官方代码库进行了最小的改动。事实上，由于懒惰，Textual Inversion 中的一些组件，比如嵌入管理器，并没有被删除，尽管它们在这里根本不会被使用。\n## 更新\n**2022年9月20日**：我刚刚找到了一种稍微减少 GPU 内存占用的方法。请记住，这段代码是基于 Textual Inversion 的，而 TI 的代码库中有一行代码[这里](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion\u002Fblob\u002Fmain\u002Fldm\u002Fmodules\u002Fdiffusionmodules\u002Futil.py#L112)，以硬编码的方式禁用了梯度检查点技术。这是因为在 TI 中，Unet 并没有被优化。然而，在 Dreambooth 中，我们优化了 Unet，因此可以启用梯度检查点技术，就像在原始 SD 仓库中的[这里](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion\u002Fblob\u002Fmain\u002Fldm\u002Fmodules\u002Fdiffusionmodules\u002Futil.py#L112)一样。在[配置文件](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fconfigs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml#L47)中，默认情况下梯度检查点是开启的。我已经更新了代码。\n## 使用方法\n\n### 准备工作\n首先按照 Textual Inversion 仓库或原始 Stable Diffusion 仓库的说明设置 ```ldm``` 环境。\n\n要微调一个 Stable Diffusion 模型，你需要按照他们的[说明](https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion#stable-diffusion-v1)获取预训练的 Stable Diffusion 模型。权重可以在 [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FCompVis) 上下载。你可以选择使用哪个版本的检查点，但我使用的是 ```sd-v1-4-full-ema.ckpt```。\n\n我们还需要创建一组用于正则化的图片，因为 Dreambooth 的微调算法需要这些图片。算法的详细信息可以在论文中找到。需要注意的是，在原始论文中，正则化图片似乎是实时生成的。然而，在这里，我在训练之前就生成了一组正则化图片。生成正则化图片的文本提示可以是 ```photo of a \u003Cclass>```，其中 ```\u003Cclass>``` 是描述你对象类别的词，比如 ```dog```。命令如下：\n\n```\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 --n_samples 8 --n_iter 1 --scale 10.0 --ddim_steps 50  --ckpt \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt --prompt \"a photo of a \u003Cclass>\" \n```\n\n我生成了 8 张用于正则化的图片，但更多的正则化图片可能会带来更强的正则化效果和更好的可编辑性。之后，将生成的图片分别保存为单个 ```.png``` 文件，存放在 ```\u002Froot\u002Fto\u002Fregularization\u002Fimages``` 目录下。\n\n**9月9日更新**\n我们当然应该使用更多的正则化图片。请尝试使用 100 或 200 张，以便更好地符合原始论文的要求。为此，我在[配置文件](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fconfigs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml#L96)中缩短了正则化数据集的“重复”次数。\n\n在某些情况下，如果生成的正则化图片非常不真实（当你想生成“man”或“woman”时就会发生），你可以在网上找到一组多样化的图片（关于男人\u002F女人），并将它们用作正则化图片。\n\n### 训练\n训练可以通过运行以下命令来进行：\n\n```\npython main.py --base configs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml \n                -t \n                --actual_resume \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt  \n                -n \u003Cjob name> \n                --gpus 0, \n                --data_root \u002Froot\u002Fto\u002Ftraining\u002Fimages \n                --reg_data_root \u002Froot\u002Fto\u002Fregularization\u002Fimages \n                --class_word \u003Cxxx>\n```\n\n详细的配置可以在 ```configs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml``` 中找到。特别是，我将默认学习率设置为 ```1.0e-6```，因为发现 Dreambooth 论文中使用的 ```1.0e-5``` 会导致较差的可编辑性。参数 ```reg_weight``` 对应于 Dreambooth 论文中的正则化权重，默认值为 ```1.0```。\n\nDreambooth 需要一个占位符单词 ```[V]```，称为标识符，正如论文中所述。这个标识符需要是词汇表中相对罕见的标记。原始论文通过使用 T5-XXL 分词器中的一个罕见词来实现这一点。为了简单起见，这里我直接使用了一个随机词 ```sks```，并将其硬编码进去。如果你想更改它，只需修改[这个文件](https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fblob\u002Fmain\u002Fldm\u002Fdata\u002Fpersonalized.py#L10)即可。\n\n训练将进行 800 步，会在 ```.\u002Flogs\u002F\u003Cjob_name>\u002Fcheckpoints``` 目录下保存两个检查点，一个在 500 步时，另一个在最后一步。通常，500 步时的检查点就已经足够好用了。我使用两块 A6000 显卡进行训练，大约需要 15 分钟。\n### 生成\n训练完成后，可以通过运行以下命令来获得个性化样本：\n\n```\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 \n                                 --n_samples 8 \n                                 --n_iter 1 \n                                 --scale 10.0 \n                                 --ddim_steps 100  \n                                 --ckpt \u002Fpath\u002Fto\u002Fsaved\u002Fcheckpoint\u002Ffrom\u002Ftraining\n                                 --prompt \"photo of a sks \u003Cclass>\" \n```\n\n特别地，```sks``` 是标识符，如果你更改了标识符，就需要替换为你选择的词；而 ```\u003Cclass>``` 则是训练时使用的类别词 ```--class_word```。\n\n## 结果\n这里展示一些定性结果。训练图像取自 Textual Inversion 仓库中的 [issue](https:\u002F\u002Fgithub.com\u002Frinongal\u002Ftextual_inversion\u002Fissues\u002F8)，分别是三个大型垃圾箱的图片。正则化图像由提示词 ```photo of a container``` 生成。正则化图像如下：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_6005b5ec45a5.jpg)\n\n训练完成后，使用提示词 ```photo of a sks container``` 生成的图像：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_f9f61eb1edf8.jpg)\n\n使用提示词 ```photo of a sks container on the beach``` 生成的图像：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_2af9dbbffc65.jpg)\n\n使用提示词 ```photo of a sks container on the moon``` 生成的图像：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_cc7ce30dc24b.jpg)\n\n还有一些不太完美但仍然有趣的例子：\n\n使用提示词 ```photo of a red sks container``` 生成的图像：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_a182ff0fc897.jpg)\n\n使用提示词 ```a dog on top of sks container``` 生成的图像：\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_readme_4ec69e5872a7.jpg)","# Dreambooth-Stable-Diffusion 快速上手指南\n\n本指南基于 Google Dreambooth 论文思想，利用 Stable Diffusion 模型实现少量图片的微调训练。与 Textual Inversion 仅优化词嵌入不同，Dreambooth 会对整个扩散模型进行微调，从而获得更高质量的个性化生成效果。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐) 或 macOS\n- **GPU**: 建议使用显存 16GB 及以上的 NVIDIA GPU（如 A6000, A100, RTX 3090\u002F4090）。原作者使用双卡 A6000 训练约需 15 分钟。\n- **Python**: 3.8+\n\n### 前置依赖\n本项目基于 `textual_inversion` 和 `stable-diffusion` 官方代码库。\n1. 克隆仓库并安装基础依赖：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion.git\n   cd Dreambooth-Stable-Diffusion\n   pip install -e .\n   ```\n   *注：若国内下载依赖缓慢，可配置 pip 国内镜像源（如清华源）：*\n   ```bash\n   pip install -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n   ```\n\n2. **获取预训练模型权重**：\n   你需要下载 Stable Diffusion v1 的预训练权重。推荐版本为 `sd-v1-4-full-ema.ckpt`。\n   - 下载地址：[HuggingFace - CompVis\u002Fstable-diffusion](https:\u002F\u002Fhuggingface.co\u002FCompVis\u002Fstable-diffusion-v-1-4-original)\n   - *国内加速建议*：若 HuggingFace 访问困难，可使用国内镜像站（如 ModelScope 或 HuggingFace 国内镜像）下载后放置到本地路径。\n\n## 安装步骤与数据准备\n\n在开始训练前，必须准备两类数据：**训练图像**（你的主体对象）和 **正则化图像**（防止过拟合）。\n\n### 1. 生成正则化图像 (Regularization Images)\nDreambooth 算法需要一组描述同类物体的通用图像作为正则化项。\n假设你要训练的对象类别是 `dog`（狗），请运行以下命令生成正则化图片（建议生成 100-200 张以获得更好效果，原示例为 8 张）：\n\n```bash\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 --n_samples 8 --n_iter 1 --scale 10.0 --ddim_steps 50  --ckpt \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt --prompt \"a photo of a \u003Cclass>\"\n```\n*请将 `\u003Cclass>` 替换为你的类别词（如 `dog`, `container`, `man` 等），并将生成的图片保存至单独文件夹，例如 `\u002Froot\u002Fto\u002Fregularization\u002Fimages`。*\n\n> **提示**：如果生成的正则化图像质量不佳（例如训练“人”时），可以直接从网络下载多样化的同类公开图片作为正则化数据集。\n\n### 2. 准备训练图像\n将你的主体对象图片（通常 3-5 张即可）放入一个文件夹，例如 `\u002Froot\u002Fto\u002Ftraining\u002Fimages`。\n\n## 基本使用\n\n### 启动训练\n运行以下命令开始微调。请根据实际情况修改路径和参数。\n\n```bash\npython main.py --base configs\u002Fstable-diffusion\u002Fv1-finetune_unfrozen.yaml \\\n                -t \\\n                --actual_resume \u002Fpath\u002Fto\u002Foriginal\u002Fstable-diffusion\u002Fsd-v1-4-full-ema.ckpt \\\n                -n \u003Cjob_name> \\\n                --gpus 0, \\\n                --data_root \u002Froot\u002Fto\u002Ftraining\u002Fimages \\\n                --reg_data_root \u002Froot\u002Fto\u002Fregularization\u002Fimages \\\n                --class_word \u003Cclass>\n```\n\n**参数说明：**\n- `\u003Cjob_name>`: 自定义任务名称，日志和模型将保存在 `.\u002Flogs\u002F\u003Cjob_name>\u002F`。\n- `\u003Cclass>`: 对象的类别词（需与生成正则化图像时使用的词一致）。\n- `--gpus`: 指定使用的 GPU 编号。\n- **标识符 (Identifier)**: 代码中硬编码了稀有词 `sks` 作为占位符。如需修改，请编辑 `ldm\u002Fdata\u002Fpersonalized.py` 第 10 行。\n- **训练步数**: 默认训练 800 步，会在 500 步和结束时保存检查点。通常 500 步的效果已足够好。\n- **学习率**: 配置文件默认为 `1.0e-6`，以避免过拟合导致编辑性变差。\n\n### 生成个性化图像\n训练完成后，使用生成的检查点进行推理。\n\n```bash\npython scripts\u002Fstable_txt2img.py --ddim_eta 0.0 \\\n                                 --n_samples 8 \\\n                                 --n_iter 1 \\\n                                 --scale 10.0 \\\n                                 --ddim_steps 100 \\\n                                 --ckpt \u002Fpath\u002Fto\u002Fsaved\u002Fcheckpoint\u002Ffrom\u002Ftraining \\\n                                 --prompt \"photo of a sks \u003Cclass>\"\n```\n\n**使用说明：**\n- `--ckpt`: 指向训练输出的 `.ckpt` 文件路径（通常在 `.\u002Flogs\u002F\u003Cjob_name>\u002Fcheckpoints\u002F` 下）。\n- `sks`: 训练时使用的唯一标识符，提示词中必须包含它来触发个性化特征。\n- `\u003Cclass>`: 替换为你的类别词。\n- 你可以尝试组合新场景，例如：`\"photo of a sks container on the moon\"`。","一位独立游戏开发者需要为即将上线的奇幻 RPG 项目快速生成大量风格统一且包含特定主角形象的宣传素材。\n\n### 没有 Dreambooth-Stable-Diffusion 时\n- **角色一致性难以维持**：每次使用通用提示词生成的“精灵战士”形象各异，五官、发色和装备细节随机变化，无法固定为同一个游戏角色。\n- **微调成本过高**：若要训练专属模型，传统方法往往需要数千张标注图片及昂贵的算力资源，独立开发者难以承担。\n- **后期修图效率低下**：为了保持角色统一，美术人员不得不手动对每张生成图进行重绘或拼接，严重拖慢物料产出进度。\n- **风格融合生硬**：尝试通过简单的提示词工程（Prompt Engineering）强行指定特征，往往导致画面崩坏或风格与游戏整体美术基调割裂。\n\n### 使用 Dreambooth-Stable-Diffusion 后\n- **实现“主体绑定”生成**：仅需提供 3-5 张主角概念图，即可将特定角色身份注入模型，后续只需输入简单指令即可生成该角色在任何场景下的准确图像。\n- **低样本高效训练**：利用少量正则化图片（如通用的“人”类照片）防止过拟合，在消费级显卡上即可完成对整个扩散模型的微调，大幅降低门槛。\n- **批量生产高质量素材**：一旦模型训练完成，可瞬间生成数百张角色在不同动作、光影和背景下的素材，且始终保持面部和服饰特征高度一致。\n- **创意自由度极大提升**：开发者可以自由组合“主角 + 新场景 + 新动作”的提示词，无需担心角色变形，轻松探索各种营销创意构图。\n\nDreambooth-Stable-Diffusion 通过将特定主体深度植入模型底层，以极低的样本成本解决了 AI 绘画中“角色一致性”的核心痛点，让个性化内容批量生产成为可能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FXavierXiao_Dreambooth-Stable-Diffusion_f9f61eb1.jpg","XavierXiao","Xavier","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FXavierXiao_2d66c711.jpg",null,"University of Chicago","Chicago, IL","xavierxiao.github.io","https:\u002F\u002Fgithub.com\u002FXavierXiao",[82,86,90],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",89.6,{"name":87,"color":88,"percentage":89},"Python","#3572A5",10.3,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0.1,7739,800,"2026-04-17T17:18:34","MIT",4,"未说明","必需 NVIDIA GPU。作者使用 2 张 A6000 (每张 48GB 显存) 进行训练，耗时约 15 分钟。代码支持通过开启梯度检查点 (gradient checkpointing) 来降低显存占用，但具体最低显存需求未明确说明。",{"notes":102,"python":99,"dependencies":103},"1. 环境搭建需遵循 Textual Inversion 或 Stable Diffusion 官方仓库的 'ldm' 环境配置指令。\n2. 需要预先下载 Stable Diffusion v1 预训练权重 (如 sd-v1-4-full-ema.ckpt)。\n3. 训练前必须准备正则化图像 (regulation images)，建议使用提示语生成 100-200 张，或使用网络收集的多样化图片。\n4. 默认标识符 (identifier) 硬编码为 'sks'，如需修改需更改源代码。\n5. 默认训练步数为 800 步，会在 500 步和结束时保存检查点。",[104,105,106,107],"ldm (基于 Textual Inversion 和 Stable Diffusion 官方代码库)","torch","transformers","pytorch-lightning",[15,14],[110,107,111,112],"pytorch","stable-diffusion","text-to-image","2026-03-27T02:49:30.150509","2026-04-19T06:01:44.531304",[116,121,126,131,136,141],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},41613,"为什么建议使用 \"sks\" 作为标识符？它有什么问题吗？","\"sks\" 是一个有争议的标识符，因为它在某些语境下与枪支相关。DreamBooth 原作者建议通过查找词汇表中罕见的 token（例如 T5-XXL 分词器中 5000 到 10000 范围内的 token），并将其反转回文本空间来生成独特的标识符。通常选择长度 k=1 到 3 的短序列效果较好。建议避免使用 \"sks\"，而是采用这种随机采样罕见 token 的方法生成更安全的唯一标识符。","https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fissues\u002F71",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},41614,"遇到报错 \"AttributeError: 'int' object has no attribute 'strip'\" 该如何解决？","该错误是因为 `lightning_config.trainer.gpus` 是整数类型，而代码试图对其调用字符串方法 `.strip()`。解决方法是在调用 `.strip()` 之前将其转换为字符串：\n```python\nlightning_config.trainer.gpus = str(lightning_config.trainer.gpus)\n```\n将这行代码添加在 `ngpu = len(...)` 之前即可解决问题。","https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fissues\u002F24",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},41615,"运行训练或生成脚本时出现 \"CUDA out of memory\" 错误怎么办？","Stable Diffusion 训练非常消耗显存，可能需要 35GB 以上。如果显存不足（如只有 24GB），可以尝试以下方案：\n1. 改用原始的 Latent Diffusion 模型，其显存占用比 Stable Diffusion 低。\n2. 减少 batch size 或图像分辨率。\n3. 使用梯度检查点（gradient checkpointing）等技术优化显存使用。\n用户反馈显示，即使拥有 24GB 显存的 Quadro P6000 也可能遇到此问题，因此降低资源需求是关键。","https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fissues\u002F7",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},41616,"在 Windows 上运行时遇到 \"RuntimeError: Distributed package doesn't have NCCL built in\" 错误如何解决？","这是因为 Windows 不支持 NCCL 后端。解决方法是在 `main.py` 文件的第 22 行之后添加以下两行代码，强制使用 \"gloo\" 后端：\n```python\nif sys.platform == \"win32\":\n    os.environ[\"PL_TORCH_DISTRIBUTED_BACKEND\"] = \"gloo\"\n```\n添加后即可在 Windows 环境下正常运行分布式训练。","https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fissues\u002F65",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},41617,"运行 notebook 时遇到 \"TypeError: __init__() missing 1 required positional argument: 'personalization_config'\" 怎么办？","该问题可能由环境配置或版本不兼容引起。尝试以下步骤解决：\n1. 确保 CUDA 版本足够新（有用户反馈升级到 CUDA 12.0 后问题解决）。\n2. 以可编辑模式重新安装项目包：\n```bash\npip install -e .\n```\n如果问题依旧，请检查配置文件是否完整，或模型文件是否损坏（如出现 unexpected EOF 错误需重新下载模型）。","https:\u002F\u002Fgithub.com\u002FXavierXiao\u002FDreambooth-Stable-Diffusion\u002Fissues\u002F162",{"id":142,"question_zh":143,"answer_zh":144,"source_url":120},41618,"如何在一个模型中训练多个人物（例如情侣）？","可以实现多概念训练（multiconcept training）。虽然无法单独指定每个人物的标识符，但模型能够区分不同人物（如识别性别）。只需准备高质量的情侣合照数据集进行单次训练，生成的图像通常会包含两人，有时也会单独出现其中一人或多人。关键在于提供多样化且标注清晰的训练图片，无需特殊修改代码流程。",[]]