[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ShihaoZhaoZSH--Uni-ControlNet":3,"tool-ShihaoZhaoZSH--Uni-ControlNet":62},[4,18,26,35,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},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"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",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"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":77,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":10,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":102,"github_topics":77,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":103,"updated_at":104,"faqs":105,"releases":135},8967,"ShihaoZhaoZSH\u002FUni-ControlNet","Uni-ControlNet","[NeurIPS 2023] Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models","Uni-ControlNet 是一款基于扩散模型的图像生成工具，旨在让用户通过多种条件灵活控制“文生图”的过程。它解决了传统可控生成模型在面对多重条件时，往往需要为每种组合单独训练模型、导致成本高昂且难以灵活组合的痛点。无论是设计师希望精确把控画面构图与风格，还是研究人员探索多模态控制机制，都能从中受益。\n\n该工具的核心亮点在于其“全能合一”的架构设计。它创新性地引入了局部控制适配器（如边缘、姿态、深度图）和全局控制适配器（如内容风格），允许用户在同一个模型中自由叠加任意数量的局部与全局控制信号。无需重新进行联合训练，Uni-ControlNet 即可支持复杂的混合条件生成，例如同时结合人物姿态、场景深度以及特定的艺术风格。这种设计不仅大幅降低了微调成本和模型体积，更实现了前所未有的控制灵活性，让创作者能够轻松构建出单靠文字描述难以实现的复杂视觉场景。","# [NeurIPS 2023] Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models\n\nOfficial implementation of Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models, which is accepted by NeurIPS 2023.\n\n### [Project Page](https:\u002F\u002Fshihaozhaozsh.github.io\u002Funicontrolnet\u002F) | [Paper (ArXiv)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.16322) \n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_2e5a82c29c44.png\">\n\n\n## ⏳ : To Do\n- [x] Release training code\n- [x] Release test code\n- [x] Release pre-trained models\n\n## 💡 : Method\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_885b4701823c.png\">\n\u003C\u002Fdiv>\n\nUni-ControlNet is a novel controllable diffusion model that allows for the simultaneous utilization of different local controls and global controls in a flexible and composable manner within one model. This is achieved through the incorporation of two adapters - local control adapter and global control adapter, regardless of the number of local or global controls used. These two adapters can be trained separately without the need for joint training, while still supporting the composition of multiple control signals. \n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"600\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_be213d6aa3c2.png\">\n\u003C\u002Fdiv>\n\nHere are the comparisons of different controllable diffusion models. N is the number of conditions. Uni-ControlNet not only reduces the fine-tuning costs and model size as the number of the control conditions grows, but also facilitates composability of different conditions.\n\n## ⚙ : Setup\nFirst create a new conda environment\n\n    conda env create -f environment.yaml\n    conda activate unicontrol\n\nThen download the [pretrained model](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1lagkiWUYFYbgeMTuJLxutpTW0HFuBchd\u002Fview?usp=sharing) ([or here](https:\u002F\u002Fhuggingface.co\u002Fshihaozhao\u002Funi-controlnet\u002Fblob\u002Fmain\u002Funi.ckpt)) and put it to `.\u002Fckpt\u002F` folder. The model is built upon Stable Diffusion v1.5.\n\n## 💻 : Test\nYou can launch the gradio demo by:\n\n    python src\u002Ftest\u002Ftest.py\n    \nThis command will load the downloaded pretrained weights and start the App. We include seven example local conditions: Canny edge, MLSD edge, HED boundary, sketch, Openpose, Midas depth, segmentation mask, and one example global condition: content. \n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_7e598ed24aad.png\">\n\u003C\u002Fdiv>\n\nYou can first upload a source image and our code automatically detects its sketch. Then Uni-ControlNet generates samples following the sketch and the text prompt which in this example is \"Robot spider, mars\". The results are shown at the bottom of the demo page, with generated images in the upper part and detected conditions in the lower part:\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_7cf0bbf79573.png\">\n\u003C\u002Fdiv>\n\nYou can further detail your configuration in the panel：\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_136788c96460.png\">\n\u003C\u002Fdiv>\n\nUni-ControlNet also handles multi-conditions setting well. Here is an example of the combination of two local conditions: Canny edge of the Stormtrooper and the depth map of a forest. The prompt is set to \"Stormtrooper's lecture in the forest\" and here are the results:\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_2eaa3524b883.png\">\n\u003C\u002Fdiv>\n\nWith Uni-ControlNet, you can go even further and incorporate more conditions. For instance, you can provide the local conditions of a deer, a sofa, a forest, and the global condition of snow to create a scene that is unlikely to occur naturally. The prompt is set to \"A sofa and a deer in the forest\" and here are the results.\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_e0ac5c1719f1.png\">\n\u003C\u002Fdiv>\n\n## ☕️ : Training\n\nYou should first download the pretrained weights of [Stable Diffusion](https:\u002F\u002Fhuggingface.co\u002Frunwayml\u002Fstable-diffusion-v1-5\u002Fblob\u002Fmain\u002Fv1-5-pruned.ckpt) and put it to `.\u002Fckpt\u002F` folder. Then, you can get the initial weights for training by:\n\n    python utils\u002Fprepare_weights.py init_local ckpt\u002Fv1-5-pruned.ckpt configs\u002Flocal_v15.yaml ckpt\u002Finit_local.ckpt\n    \n    python utils\u002Fprepare_weights.py init_global ckpt\u002Fv1-5-pruned.ckpt configs\u002Fglobal_v15.yaml ckpt\u002Finit_global.ckpt\n\nThe 4 arguments are mode, pretrained SD weights, model configs and output path for the initial weights.\n\nTo prepare the training data, please ensure that they are placed in the `.\u002Fdata\u002F` folder and organized in the following manner:\n\n```\ndata\u002F\n├── anno.txt\n├── images\u002F\n├── conditions\u002F\n    ├── condition-1\u002F\n    ├── condition-2\u002F\n    ...\n...\n```\n\nSpecifically, you can utilize the condition detectors in `.\u002Fannotator\u002F` to extract the conditions. Then, you have to put the original images into `.\u002Fdata\u002Fimages\u002F` folder and the extracted conditions into `.\u002Fdata\u002Fconditions\u002Fcondition-N\u002F` folder. And `.\u002Fdata\u002Fanno.txt` is the annotation file, where each line represents a training sample and is divided into two parts: 1) file ID and 2) annotation. Please ensure the consistency between the file IDs in `.\u002Fdata\u002Fanno.txt`， `.\u002Fdata\u002Fimages\u002F` and `.\u002Fdata\u002Fconditions\u002Fcondition-N\u002F` directories.\n\nNow, you can train with you own data simply by:\n\n    python src\u002Ftrain\u002Ftrain.py\n\nKindly note that the local adapter and global adapter must be trained separately. Additionally, you can customize the training configurations in `.\u002Fsrc\u002Ftrain\u002Ftrain.py` and `.\u002Fconfigs\u002F`. \n\nOnce you have completed separate training, you will need to integrate the two adapters by:\n\n    python utils\u002Fprepare_weights.py integrate path1 path2 configs\u002Funi_v15.yaml path3\n\nPath1 and path2 refer to the trained weights of SD with local and global adapters, respectively, while path3 denotes the output path for Uni-ControlNet.\n\n## 🎉 : Acknowledgments:\n\nThis repo is built upon [ControlNet](https:\u002F\u002Fgithub.com\u002Flllyasviel\u002FControlNet\u002Ftree\u002Fmain) and really thank to their great work!\n\n## 📖 : Citation\n\n```bibtex\n@article{zhao2023uni,\n  title={Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models},\n  author={Zhao, Shihao and Chen, Dongdong and Chen, Yen-Chun and Bao, Jianmin and Hao, Shaozhe and Yuan, Lu and Wong, Kwan-Yee~K.},\n  journal={Advances in Neural Information Processing Systems},\n  year={2023}\n}\n```\n","# [NeurIPS 2023] Uni-ControlNet：面向文本到图像扩散模型的一体化控制方法\n\nUni-ControlNet 的官方实现：一种面向文本到图像扩散模型的一体化控制方法，已被 NeurIPS 2023 接收。\n\n### [项目页面](https:\u002F\u002Fshihaozhaozsh.github.io\u002Funicontrolnet\u002F) | [论文（ArXiv）](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.16322) \n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_2e5a82c29c44.png\">\n\n\n## ⏳ ：待办事项\n- [x] 发布训练代码\n- [x] 发布测试代码\n- [x] 发布预训练模型\n\n## 💡 ：方法\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_885b4701823c.png\">\n\u003C\u002Fdiv>\n\nUni-ControlNet 是一种新颖的可控扩散模型，能够在单个模型中以灵活且可组合的方式同时利用多种局部控制和全局控制。这是通过引入两个适配器——局部控制适配器和全局控制适配器来实现的，无论使用多少种局部或全局控制信号均可适用。这两个适配器可以分别进行训练，无需联合训练，同时仍支持多组控制信号的组合。\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"600\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_be213d6aa3c2.png\">\n\u003C\u002Fdiv>\n\n以下是不同可控扩散模型的对比。N 表示条件的数量。Uni-ControlNet 不仅在控制条件数量增加时能够降低微调成本和模型规模，还能够方便地实现不同条件的组合。\n\n## ⚙ ：环境搭建\n首先创建一个新的 conda 环境：\n\n    conda env create -f environment.yaml\n    conda activate unicontrol\n\n然后下载 [预训练模型](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1lagkiWUYFYbgeMTuJLxutpTW0HFuBchd\u002Fview?usp=sharing) ([或在此处](https:\u002F\u002Fhuggingface.co\u002Fshihaozhao\u002Funi-controlnet\u002Fblob\u002Fmain\u002Funi.ckpt)) 并将其放置在 `.\u002Fckpt\u002F` 文件夹中。该模型基于 Stable Diffusion v1.5 构建。\n\n## 💻 ：测试\n您可以通过以下命令启动 Gradio 演示：\n\n    python src\u002Ftest\u002Ftest.py\n    \n此命令将加载下载的预训练权重并启动应用程序。我们包含了七种示例局部条件：Canny 边缘、MLSD 边缘、HED 边界、草图、Openpose、Midas 深度图、分割掩码，以及一个示例全局条件：内容。\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_7e598ed24aad.png\">\n\u003C\u002Fdiv>\n\n您可以先上传一张源图像，我们的代码会自动检测其草图。随后，Uni-ControlNet 将根据草图和文本提示生成样本，在本例中提示为“机器人蜘蛛，火星”。结果展示在演示页面的底部，上方是生成的图像，下方是检测到的条件：\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_7cf0bbf79573.png\">\n\u003C\u002Fdiv>\n\n您还可以在面板中进一步细化您的配置：\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_136788c96460.png\">\n\u003C\u002Fdiv>\n\nUni-ControlNet 也能很好地处理多条件设置。这里是一个结合了两种局部条件的例子：风暴兵的 Canny 边缘和森林的深度图。提示设置为“风暴兵在森林中的讲座”，结果如下：\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_2eaa3524b883.png\">\n\u003C\u002Fdiv>\n\n借助 Uni-ControlNet，您甚至可以进一步结合更多条件。例如，您可以提供鹿、沙发、森林的局部条件，以及雪的全局条件，来创造一个不太可能自然发生的场景。提示设置为“森林中的沙发和鹿”，结果如下：\n\n\u003Cdiv align=\"center\">\n\u003Cimg width=\"800\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_readme_e0ac5c1719f1.png\">\n\u003C\u002Fdiv>\n\n## ☕️ ：训练\n\n首先，您需要下载 [Stable Diffusion 的预训练权重](https:\u002F\u002Fhuggingface.co\u002Frunwayml\u002Fstable-diffusion-v1-5\u002Fblob\u002Fmain\u002Fv1-5-pruned.ckpt) 并将其放置在 `.\u002Fckpt\u002F` 文件夹中。然后，您可以通过以下命令获取用于训练的初始权重：\n\n    python utils\u002Fprepare_weights.py init_local ckpt\u002Fv1-5-pruned.ckpt configs\u002Flocal_v15.yaml ckpt\u002Finit_local.ckpt\n    \n    python utils\u002Fprepare_weights.py init_global ckpt\u002Fv1-5-pruned.ckpt configs\u002Fglobal_v15.yaml ckpt\u002Finit_global.ckpt\n\n这四个参数分别为模式、预训练的 SD 权重、模型配置文件以及初始权重的输出路径。\n\n为了准备训练数据，请确保它们被放置在 `.\u002Fdata\u002F` 文件夹中，并按照以下方式组织：\n\n```\ndata\u002F\n├── anno.txt\n├── images\u002F\n├── conditions\u002F\n    ├── condition-1\u002F\n    ├── condition-2\u002F\n    ...\n...\n```\n\n具体来说，您可以使用 `.\u002Fannotator\u002F` 中的条件检测器来提取条件。然后，您需要将原始图像放入 `.\u002Fdata\u002Fimages\u002F` 文件夹，将提取的条件放入 `.\u002Fdata\u002Fconditions\u002Fcondition-N\u002F` 文件夹。而 `.\u002Fdata\u002Fanno.txt` 是标注文件，每行代表一个训练样本，分为两部分：1) 文件 ID 和 2) 标注。请确保 `.\u002Fdata\u002Fanno.txt`、`.\u002Fdata\u002Fimages\u002F` 和 `.\u002Fdata\u002Fconditions\u002Fcondition-N\u002F` 目录中的文件 ID 保持一致。\n\n现在，您只需运行以下命令即可使用自己的数据进行训练：\n\n    python src\u002Ftrain\u002Ftrain.py\n\n请注意，局部适配器和全局适配器必须分别进行训练。此外，您还可以在 `.\u002Fsrc\u002Ftrain\u002Ftrain.py` 和 `.\u002Fconfigs\u002F` 中自定义训练配置。\n\n完成单独训练后，您需要通过以下命令将两个适配器整合在一起：\n\n    python utils\u002Fprepare_weights.py integrate path1 path2 configs\u002Funi_v15.yaml path3\n\n其中，path1 和 path2 分别指带有局部和全局适配器的已训练 SD 权重，path3 则表示 Uni-ControlNet 的输出路径。\n\n## 🎉 ：致谢：\n\n本仓库基于 [ControlNet](https:\u002F\u002Fgithub.com\u002Flllyasviel\u002FControlNet\u002Ftree\u002Fmain) 构建，衷心感谢他们的杰出工作！\n\n## 📖 ：引用\n\n```bibtex\n@article{zhao2023uni,\n  title={Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models},\n  author={Zhao, Shihao and Chen, Dongdong and Chen, Yen-Chun and Bao, Jianmin and Hao, Shaozhe and Yuan, Lu and Wong, Kwan-Yee~K.},\n  journal={Advances in Neural Information Processing Systems},\n  year={2023}\n}\n```","# Uni-ControlNet 快速上手指南\n\nUni-ControlNet 是一个基于 Stable Diffusion 的多条件可控图像生成模型。它允许在一个模型中灵活组合多种局部控制（如边缘、姿态、深度）和全局控制（如内容风格），无需为每种条件单独训练模型。\n\n## 环境准备\n\n*   **系统要求**：Linux \u002F Windows \u002F macOS\n*   **硬件要求**：推荐 NVIDIA GPU (显存 ≥ 8GB)\n*   **前置依赖**：\n    *   Python 3.8+\n    *   Conda (推荐用于环境管理)\n    *   Git\n\n## 安装步骤\n\n### 1. 创建并激活虚拟环境\n使用项目提供的配置文件创建 Conda 环境：\n\n```bash\nconda env create -f environment.yaml\nconda activate unicontrol\n```\n\n### 2. 下载预训练模型\n下载官方预训练权重（基于 Stable Diffusion v1.5），并将其放入 `.\u002Fckpt\u002F` 目录。\n\n*   **Google Drive**: [下载链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1lagkiWUYFYbgeMTuJLxutpTW0HFuBchd\u002Fview?usp=sharing)\n*   **Hugging Face**: [下载链接](https:\u002F\u002Fhuggingface.co\u002Fshihaozhao\u002Funi-controlnet\u002Fblob\u002Fmain\u002Funi.ckpt)\n\n放置完成后，目录结构应包含 `.\u002Fckpt\u002Funi.ckpt`。\n\n> **提示**：如果下载速度较慢，可尝试使用国内镜像加速工具或代理。\n\n## 基本使用\n\n### 启动 Gradio 演示界面\n运行以下命令即可加载预训练权重并启动本地 Web 界面：\n\n```bash\npython src\u002Ftest\u002Ftest.py\n```\n\n### 操作说明\n启动后，浏览器将自动打开演示页面（通常位于 `http:\u002F\u002F127.0.0.1:7860`）。\n\n1.  **上传源图像**：上传一张图片，系统会自动检测其素描\u002F边缘信息。\n2.  **输入提示词**：在文本框中输入生成提示词（例如：\"Robot spider, mars\"）。\n3.  **选择控制条件**：\n    *   **局部条件**：支持 Canny 边缘、MLSD 线条、HED 边界、素描、OpenPose 姿态、Midas 深度图、分割掩码等 7 种。\n    *   **全局条件**：支持内容风格控制。\n4.  **多条件组合**：你可以同时启用多个条件。例如，结合“风暴兵的边缘图”和“森林的深度图”，配合提示词 \"Stormtrooper's lecture in the forest\" 进行生成。\n5.  **生成结果**：点击生成按钮，页面下方将展示生成的图像及对应的条件检测图。\n\n通过面板配置，你可以进一步调整采样步数、引导尺度等参数以获得更佳效果。","一位游戏概念设计师需要在极短时间内，为一款科幻生存游戏创作一张“暴风雪中废弃机械鹿在森林休憩”的高精度宣传图，且必须严格遵循策划提供的线稿轮廓与景深布局。\n\n### 没有 Uni-ControlNet 时\n- **多条件控制割裂**：若要同时锁定线稿结构、深度层次和全局雪景氛围，需串联多个独立的 ControlNet 模型或反复微调单一模型，工作流极其繁琐。\n- **显存与成本爆炸**：每增加一种控制条件（如从仅控边缘到同时控边缘 + 深度 + 分割），往往需要加载额外的完整模型副本，导致显存迅速溢出，训练和推理成本成倍增长。\n- **风格一致性难保**：在不同控制模块间切换时，容易出现画面风格断层，例如机械鹿的细节符合线稿，但背景森林的光影却与前景不协调，需后期大量手动修图。\n- **迭代效率低下**：调整任一条件（如想把雪景改为雨天）都需要重新配置整个复杂的管道，无法灵活组合信号进行快速试错。\n\n### 使用 Uni-ControlNet 后\n- **全合一灵活组合**：Uni-ControlNet 通过本地与全局适配器，允许在一个模型内同时输入线稿、深度图及“雪景”全局提示，轻松实现多信号的自由编排。\n- **资源占用大幅降低**：无论叠加多少种控制条件，只需维护一个轻量级模型架构，显著减少了显存占用和微调成本，让单卡运行复杂控制成为可能。\n- **画面高度协同**：生成的图像中，机械鹿的骨骼结构精准匹配线稿，森林的远近关系严格遵循深度图，同时全局雪花氛围自然融合，无需后期合成。\n- **敏捷创意验证**：设计师可实时替换任意局部条件（如将“鹿”换成“沙发”）或全局环境，秒级生成多种变体，极大加速了概念验证过程。\n\nUni-ControlNet 的核心价值在于打破了多条件控制的壁垒，以单一的轻量架构实现了复杂创意指令的精准落地与高效迭代。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShihaoZhaoZSH_Uni-ControlNet_2e5a82c2.png","ShihaoZhaoZSH","Shihao Zhao","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FShihaoZhaoZSH_d036ab9c.png","Ph.D. student @HKU-VisionGroup ",null,"Hong Kong","https:\u002F\u002Fshihaozhaozsh.github.io\u002F","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,{"name":87,"color":88,"percentage":89},"Shell","#89e051",0,671,44,"2026-04-07T15:26:00","MIT","未说明","必需 NVIDIA GPU（基于 Stable Diffusion v1.5），具体显存和 CUDA 版本未在文中明确，通常建议 8GB+ 显存及 CUDA 11.x",{"notes":97,"python":94,"dependencies":98},"需使用 conda 创建环境（environment.yaml）；必须下载预训练模型（约 5GB）并放置于 .\u002Fckpt\u002F 目录；支持多种局部控制（如 Canny、Openpose 等）和全局控制条件；训练时局部适配器和全局适配器需分别训练，最后通过脚本整合权重。",[99,100,101],"conda","gradio","Stable Diffusion v1.5",[15],"2026-03-27T02:49:30.150509","2026-04-18T16:24:56.320276",[106,111,116,121,126,130],{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},40236,"全局条件（global conditions）的 CLIP 嵌入是由原始 RGB 图像生成的，还是由单一风格条件图像（如深度图、姿态图等）生成的？","是的，全局条件的 CLIP 嵌入是由原始 RGB 图像生成的。","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH\u002FUni-ControlNet\u002Fissues\u002F14",{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},40237,"运行图像推理时界面无响应或报错，如何解决？","这通常是由于 Gradio 版本不兼容导致的。请尝试升级或指定特定的 Gradio 版本来解决：\n1. 执行命令：`pip install gradio==3.40.1`\n2. 或者尝试组合：`pip install gradio==3.39.0 gradio-client==0.17.0`\n如果使用的是较旧环境，避免使用过旧的版本（如 3.16.2），最新版也可能存在兼容性问题，建议优先测试 3.39.0 或 3.40.1 版本。","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH\u002FUni-ControlNet\u002Fissues\u002F19",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},40238,"训练数据中如果某些图片不包含特定条件（如无人物导致无法提取 OpenPose），是如何处理的？是否过滤了这些数据？","没有过滤掉任何数据，所有条件是同时训练的。针对某些图片可能缺失特定条件（如 OpenPose）的情况，作者在训练时将 OpenPose 条件的 dropout 概率设置为 0，以确保该条件得到充分训练，从而避免因数据缺失导致的问题。","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH\u002FUni-ControlNet\u002Fissues\u002F13",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},40239,"在图 7 中，Injection-S2 方法与完整方法相比有哪些具体的表现差异？","Injection-S2 在多个案例中表现不如完整方法：\n1. \"戴眼镜的大猩猩\"案例中，眼睛和眼镜融合不当。\n2. \"风暴兵\"案例中，手部和象鼻融合不佳。\n3. 在部分案例的背景元素（如树木、石头）与深度图的匹配度上，Injection-S2 表现较差。","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH\u002FUni-ControlNet\u002Fissues\u002F6",{"id":127,"question_zh":128,"answer_zh":129,"source_url":125},40240,"特征提取器的输入是否为固定形状的张量？当丢弃（dropout）特定条件时如何处理？是否对不同局部条件进行了掩码处理？","1. 是的，输入是固定形状的张量。\n2. 当发生 dropout 时，对应的通道会被设置为零。\n3. 目前没有对不同局部条件进行空间掩码处理（即没有让不同条件控制不同空间区域），但这被视为一个潜在的改进方向。更多细节将在训练代码中提供。",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},40241,"启动本地测试服务后界面无法显示或空白，可能的原因和解决方法是什么？","这通常是因为 Gradio 版本与环境不兼容。解决方案是安装特定版本的 Gradio 和 gradio-client：\n执行命令：`pip install gradio==3.39.0 gradio-client==0.17.0`\n安装完成后重新启动服务即可正常显示界面。","https:\u002F\u002Fgithub.com\u002FShihaoZhaoZSH\u002FUni-ControlNet\u002Fissues\u002F25",[]]