[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-salesforce--UniControl":3,"tool-salesforce--UniControl":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 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[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":10,"last_commit_at":59,"category_tags":60,"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",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":10,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":104,"github_topics":107,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":154},9794,"salesforce\u002FUniControl","UniControl","Unified Controllable Visual Generation Model","UniControl 是一款统一的视觉生成基础模型，旨在将多种“条件到图像”的控制任务整合到一个框架中。它解决了传统 AI 绘图工具往往只能针对单一控制类型（如仅支持边缘检测或仅支持深度图）的局限，让用户无需切换不同模型，即可通过一张参考图结合文字描述，精准生成符合预期的图像。\n\n无论是需要精确控制物体结构的开发者、探索多模态生成的研究人员，还是追求创意落地的设计师，都能从 UniControl 中受益。普通用户也可通过其在线演示轻松体验强大的可控绘图能力。目前，它已支持包括边缘提取、素描、深度图、法线图、骨架检测、边界框、语义分割，以及图像修复、去模糊和上色等在内的 12 种复杂任务。\n\n其核心技术亮点在于引入了一个“任务感知超网络”（Task-aware HyperNet）。该机制能够动态调节预训练的文本到图像扩散模型，使其在保持对文字提示（负责风格与语境）敏感的同时，让视觉条件（负责结构与布局）发挥像素级的精确控制作用。实验表明，UniControl 在同等参数量下，表现往往优于专用的单任务控制方法，是可控视觉生成领域的重要进展。","# [UniControl](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147) [![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F📃-arXiv-ff69b4)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.11147.pdf) [![webpage](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🖥-Website-9cf)](https:\u002F\u002Fcanqin001.github.io\u002FUniControl-Page\u002F) [![HuggingFace space](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗-Huggingface%20Space-cyan.svg)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FRobert001\u002FUniControl-Demo)\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4bef36085c78.png\"  height=\"100px\" >\u003C\u002Fa>\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_9412d4573486.png\"  height=\"100px\" >\u003C\u002Fa>\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4f4c020f201e.png\"  height=\"100px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nThis repository is for the paper:\n> **[UniControl: A Unified Diffusion Model for Controllable Visual Generation In the Wild](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147)** \\\n> Can Qin \u003Csup>1,2\u003C\u002Fsup>, Shu Zhang\u003Csup>1\u003C\u002Fsup>, Ning Yu \u003Csup>1\u003C\u002Fsup>, Yihao Feng\u003Csup>1\u003C\u002Fsup>, Xinyi Yang\u003Csup>1\u003C\u002Fsup>, Yingbo Zhou \u003Csup>1\u003C\u002Fsup>, Huan Wang \u003Csup>1\u003C\u002Fsup>, Juan Carlos Niebles\u003Csup>1\u003C\u002Fsup>, Caiming Xiong \u003Csup>1\u003C\u002Fsup>, Silvio Savarese \u003Csup>1\u003C\u002Fsup>, Stefano Ermon \u003Csup>3\u003C\u002Fsup>, Yun Fu \u003Csup>2\u003C\u002Fsup>,  Ran Xu \u003Csup>1\u003C\u002Fsup> \\\n> \u003Csup>1\u003C\u002Fsup> Salesforce AI \u003Csup>2\u003C\u002Fsup> Northeastern University  \u003Csup>3\u003C\u002Fsup> Stanford University \\\n> Work done when Can Qin was an intern at Salesforce AI Research.\n\n\n![img](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_ddb5631e2c76.png)\n\n\n\n## Introduction\nWe introduce **UniControl**, a new generative foundation model that consolidates a wide array of controllable condition-to-image (C2I) tasks within a singular framework, while still allowing for arbitrary language prompts. UniControl enables pixel-level-precise image generation, where visual conditions primarily influence the generated structures and language prompts guide the style and context. To equip UniControl with the capacity to handle diverse visual conditions, we augment pretrained text-to-image diffusion models and introduce a task-aware HyperNet to modulate the diffusion models, enabling the adaptation to different C2I tasks simultaneously. Experimental results show that UniControl often surpasses the performance of single-task-controlled methods of comparable model sizes. This control versatility positions UniControl as a significant advancement in the realm of controllable visual generation. \n\n\n![img](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_28e1727fefde.png)\n\n\n\n\n## Updates\n* **05\u002F18\u002F23**: ***[UniControl](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147) paper uploaded to arXiv.***\n* **05\u002F26\u002F23**: ***UniControl inference code and checkpoint open to public.*** \n* **05\u002F28\u002F23**: ***Latest UniControl model [checkpoint](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt) (1.4B #params, 5.78GB) updated.*** \n* **06\u002F08\u002F23**: ***Latest UniControl model [checkpoint](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt) updated which supports 12 tasks now (***Canny***, ***HED***, ***Sketch***, ***Depth***, ***Normal***, ***Skeleton***, ***Bbox***, ***Seg***, ***Outpainting***, ***Inpainting***, ***Deblurring*** and ***Colorization***) !*** \n* **06\u002F08\u002F23**: ***Training dataset ([MultiGen-20M](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset)) is fully released.*** \n* **06\u002F08\u002F23**: ***Training code is public.***:blush:\n* **07\u002F06\u002F23**: ***Latest UniControl model v1.1 [checkpoint](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.ckpt) updated which supports 12 tasks now (***Canny***, ***HED***, ***Sketch***, ***Depth***, ***Normal***, ***Skeleton***, ***Bbox***, ***Seg***, ***Outpainting***, ***Inpainting***, ***Deblurring*** and ***Colorization***) !***\n* **07\u002F25\u002F23**: ***Huggingface Demo API is available! [![HuggingFace space](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗-Huggingface%20Space-cyan.svg)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FRobert001\u002FUniControl-Demo)***\n* **07\u002F25\u002F23**: ***Safetensors model is available! [checkpoint](https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.st)***\n* **09\u002F21\u002F23**: ***UniControl is accepted to NeurIPS 2023.***:blush:\n\n\n## MultiGen-20M Datasets\nThere are more than 20M image-prompt-condition triplets [here](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset) with total size ***> 2TB***. It includes all 12 tasks (`Canny, HED, Sketch, Depth, Normal, Skeleton, Bbox, Seg, Outpainting, Inpainting, Deblurring, Colorization`) which are fully released.\n\n## Instruction\n### Environment Preparation\nSetup the env first (need to wait a few minutes).\n```\nconda env create -f environment.yaml\nconda activate unicontrol\n```\n### Checkpoint Preparation\nThe checkpoint of pre-trained UniControl model is saved at `.\u002Fckpts\u002Funicontrol.ckpt`.\n```\ncd ckpts\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt \n```\n\nYou can also use the latest trained model (ckpt and safetensors)\n```\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.ckpt\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.st\n```\n\nIf you want to train from scratch, please follow the ControlNet to prepare the checkpoint initialization. ControlNet provides a simple script for you to achieve this easily. If your SD filename is `.\u002Fckpts\u002Fv1-5-pruned.ckpt` and you want the script to save the processed model (SD+ControlNet) at location `.\u002Fckpts\u002Fcontrol_sd15_ini.ckpt`, you can just run:\n```\npython tool_add_control.py .\u002Fckpts\u002Fv1-5-pruned.ckpt .\u002Fckpts\u002Fcontrol_sd15_ini.ckpt\n```\n\n### Data Preparation \nPlease download the training dataset ([MultiGen-20M](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset)) to `.\u002Fmultigen20m`. Please:\n```\ncd multigen20m\ngsutil -m cp -r gs:\u002F\u002Fsfr-unicontrol-data-research\u002Fdataset .\u002F\n```\nThen unzip the all the files.\n\n### Model Training (CUDA 11.0 and Conda 4.12.0 work)\nTraining from Scratch:\n``` \npython train_unicontrol.py --ckpt .\u002Fckpts\u002Fcontrol_sd15_ini.ckpt --config .\u002Fmodels\u002Fcldm_v15_unicontrol_v11.yaml --lr 1e-5\n```\n\nModel Finetuning:\n``` \npython train_unicontrol.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt  --config .\u002Fmodels\u002Fcldm_v15_unicontrol.yaml --lr 1e-7\n```\n\n### Model Inference (CUDA 11.0 and Conda 4.12.0 work)\nFor different tasks, please run the code as follows. If you meet OOM error, please decrease the \"--num_samples\".\n\nIf you use safetensors model, you can load the model following .\u002Fload_model\u002Fload_safetensors_model.py\n\nCanny to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task canny\n```\n\nHED Edge to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task hed \n```\n\nHED-like Skech to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task hedsketch\n```\n\nDepth Map to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task depth \n```\n\nNormal Surface Map to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task normal\n```\n\nSegmentation Map to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task seg\n```\n\n\nHuman Skeleton to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task openpose\n```\n\n\nObject Bounding Boxes to Image Generation:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task bbox\n```\n\n\nImage Outpainting:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task outpainting\n```\n\n\nImage Inpainting:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task inpainting\n```\n\n\nImage Deblurring:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task blur\n```\n\n\nImage Colorization:\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task grayscale\n```\n\n### Gradio Demo ([App Demo Video](https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F1), CUDA 11.0 and Conda 4.12.0 work)\nWe have provided gradio demos for different tasks to use. The example images are saved at `.\u002Ftest_imgs`. \n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_fd6325a7dc7f.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nFor all the tasks (`Canny, HED, Sketch, Depth, Normal, Human Pose, Seg, Bbox, Outpainting, Colorization, Deblurring, Inpainting`) please run the following code: \n```\npython app\u002Fgradio_all_tasks.py\n```\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4a2d39284877.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nWe support the direct condition-to-image generation (as shown above). Please unmark the `Condition Extraction` in UI if you want to upload condition image directly. \n\n***\n\nOr, we provide the task-specifc gradio demos:\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_d1087b7a6cad.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nCanny to Image Generation:\n```\npython app\u002Fgradio_canny2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_32b0cfb24709.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nHED Edge to Image Generation:\n```\npython app\u002Fgradio_hed2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_a6c97da0a335.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nHED-like Skech to Image Generation:\n```\npython app\u002Fgradio_hedsketch2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_575ec9c74fb5.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nDepth Map to Image Generation:\n```\npython app\u002Fgradio_depth2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_0018d8df18af.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nNormal Surface Map to Image Generation:\n```\npython app\u002Fgradio_normal2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_1e1aac613214.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nSegmentation Map to Image Generation:\n```\npython app\u002Fgradio_seg2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_abae184c193d.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nHuman Skeleton to Image Generation:\n```\npython app\u002Fgradio_pose2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_a1d5c5199e2a.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nObject Bounding Boxes to Image Generation:\n```\npython app\u002Fgradio_bbox2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_035e6821a0eb.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nImage Outpainting:\n```\npython app\u002Fgradio_outpainting.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_aa76df4d5db1.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nImage Colorization:\n```\npython app\u002Fgradio_colorization.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_72461306b212.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nImage Deblurring:\n```\npython app\u002Fgradio_deblur.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_960bcea4ef02.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nImage Inpainting:\n```\npython app\u002Fgradio_inpainting.py\n```\n\n\n## To Do\n- [x] Data Preparation\n- [x] Pre-training Tasks Inference\n- [x] Gradio Demo\n- [x] Model Training\n- [x] HF Space\n- [ ] Colab\n\n## Tips\n* Negative prompts are very useful sometimes: `monochrome, lowres, bad anatomy, worst quality, low quality` are example negative prompts.\n\n* UniControl can work well on some tasks (ie, Colorization and Deblurring) without ANY text prompts.\n\n* If OOM, let `--num_samples 1` may be helpful\n\n## Citation\nIf you find this project useful for your research, please kindly cite our paper:\n\n```bibtex\n@article{qin2023unicontrol,\n  title={UniControl: A Unified Diffusion Model for Controllable Visual Generation In the Wild},\n  author={Qin, Can and Zhang, Shu and Yu, Ning and Feng, Yihao and Yang, Xinyi and Zhou, Yingbo and Wang, Huan and Niebles, Juan Carlos and Xiong, Caiming and Savarese, Silvio and others},\n  journal={arXiv preprint arXiv:2305.11147},\n  year={2023}\n}\n```\n\n## Acknowledgement\n*This project is built upon the gaint sholders of ControlNet and Stable Diffusion. Great thanks to them!*\n\nStable Diffusion https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion\n\nControlNet https:\u002F\u002Fgithub.com\u002Flllyasviel\u002FControlNet \n\nStyleGAN3 https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fstylegan3\n    \n","# [UniControl](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147) [![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F📃-arXiv-ff69b4)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2305.11147.pdf) [![webpage](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🖥-Website-9cf)](https:\u002F\u002Fcanqin001.github.io\u002FUniControl-Page\u002F) [![HuggingFace space](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗-Huggingface%20Space-cyan.svg)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FRobert001\u002FUniControl-Demo)\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4bef36085c78.png\"  height=\"100px\" >\u003C\u002Fa>\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_9412d4573486.png\"  height=\"100px\" >\u003C\u002Fa>\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4f4c020f201e.png\"  height=\"100px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n此仓库用于以下论文：\n> **[UniControl：一种用于野外可控视觉生成的统一扩散模型](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147)** \\\n> 秦灿 \u003Csup>1,2\u003C\u002Fsup>, 张舒\u003Csup>1\u003C\u002Fsup>, 于宁\u003Csup>1\u003C\u002Fsup>, 冯一昊\u003Csup>1\u003C\u002Fsup>, 杨欣怡\u003Csup>1\u003C\u002Fsup>, 周英博\u003Csup>1\u003C\u002Fsup>, 王欢\u003Csup>1\u003C\u002Fsup>, 胡安·卡洛斯·尼布尔斯\u003Csup>1\u003C\u002Fsup>, 熊才明\u003Csup>1\u003C\u002Fsup>, 西尔维奥·萨瓦雷塞\u003Csup>1\u003C\u002Fsup>, 斯特凡诺·埃尔蒙\u003Csup>3\u003C\u002Fsup>, 傅云\u003Csup>2\u003C\u002Fsup>, 徐然\u003Csup>1\u003C\u002Fsup> \\\n> \u003Csup>1\u003C\u002Fsup> Salesforce AI \u003Csup>2\u003C\u002Fsup> 东北大学 \u003Csup>3\u003C\u002Fsup> 斯坦福大学 \\\n> 该工作完成于秦灿在Salesforce AI Research实习期间。\n\n\n![img](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_ddb5631e2c76.png)\n\n\n\n## 简介\n我们提出了**UniControl**，这是一种新的生成式基础模型，它将广泛的条件到图像（C2I）可控任务整合到一个单一框架中，同时仍支持任意语言提示。UniControl能够实现像素级精确的图像生成，其中视觉条件主要影响生成的结构，而语言提示则指导风格和上下文。为了使UniControl具备处理多样化视觉条件的能力，我们对预训练的文本到图像扩散模型进行了增强，并引入了一个任务感知的HyperNet来调制这些扩散模型，从而使其能够同时适应不同的C2I任务。实验结果表明，UniControl通常优于同等规模的单任务控制方法。这种控制的多样性使UniControl成为可控视觉生成领域的一项重要进展。\n\n\n![img](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_28e1727fefde.png)\n\n\n\n\n## 更新\n* **2023年5月18日**：***[UniControl](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.11147) 论文已上传至arXiv。***\n* **2023年5月26日**：***UniControl推理代码和检查点向公众开放。***\n* **2023年5月28日**：***最新的UniControl模型[检查点](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt)（1.4B参数，5.78GB）已更新。***\n* **2023年6月8日**：***最新的UniControl模型[检查点](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt)已更新，现支持12项任务（***Canny***、***HED***、***Sketch***、***Depth***、***Normal***、***Skeleton***、***Bbox***、***Seg***、***Outpainting***、***Inpainting***、***Deblurring*** 和 ***Colorization***)！***\n* **2023年6月8日**：***训练数据集([MultiGen-20M](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset))已完全公开。***\n* **2023年6月8日**：***训练代码已公开。***:blush:\n* **2023年7月6日**：***最新的UniControl模型v1.1 [检查点](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002F_details\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.ckpt)已更新，现支持12项任务（***Canny***、***HED***、***Sketch***、***Depth***、***Normal***、***Skeleton***、***Bbox***、***Seg***、***Outpainting***、***Inpainting***、***Deblurring*** 和 ***Colorization***)！***\n* **2023年7月25日**：***HuggingFace演示API现已可用！[![HuggingFace space](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🤗-Huggingface%20Space-cyan.svg)](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FRobert001\u002FUniControl-Demo)***\n* **2023年7月25日**：***Safetensors模型现已可用！[检查点](https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.st)***。\n* **2023年9月21日**：***UniControl已被NeurIPS 2023接收。***:blush:\n\n\n## MultiGen-20M 数据集\n这里有超过2000万张图像-提示-条件三元组[在此](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset)，总大小***> 2TB***。它包含了所有12项任务（`Canny、HED、Sketch、Depth、Normal、Skeleton、Bbox、Seg、Outpainting、Inpainting、Deblurring、Colorization`），均已完全公开。\n\n## 使用说明\n### 环境准备\n首先设置环境（需等待几分钟）。\n```\nconda env create -f environment.yaml\nconda activate unicontrol\n```\n### 检查点准备\n预训练的UniControl模型检查点保存在`.\u002Fckpts\u002Funicontrol.ckpt`。\n```\ncd ckpts\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt \n```\n\n你也可以使用最新训练的模型（ckpt和safetensors）：\n```\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.ckpt\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.st\n```\n\n如果你想从头开始训练，请按照ControlNet的步骤准备检查点初始化。ControlNet提供了一个简单的脚本，方便你完成这一操作。如果你的SD文件名为`.\u002Fckpts\u002Fv1-5-pruned.ckpt`，并希望脚本将处理后的模型（SD+ControlNet）保存到`.\u002Fckpts\u002Fcontrol_sd15_ini.ckpt`，只需运行：\n```\npython tool_add_control.py .\u002Fckpts\u002Fv1-5-pruned.ckpt .\u002Fckpts\u002Fcontrol_sd15_ini.ckpt\n```\n\n### 数据准备\n请将训练数据集([MultiGen-20M](https:\u002F\u002Fconsole.cloud.google.com\u002Fstorage\u002Fbrowser\u002Fsfr-unicontrol-data-research\u002Fdataset))下载到`.\u002Fmultigen20m`。请执行：\n```\ncd multigen20m\ngsutil -m cp -r gs:\u002F\u002Fsfr-unicontrol-data-research\u002Fdataset .\u002F\n```\n然后解压所有文件。\n\n### 模型训练（CUDA 11.0和Conda 4.12.0有效）\n从零开始训练：\n``` \npython train_unicontrol.py --ckpt .\u002Fckpts\u002Fcontrol_sd15_ini.ckpt --config .\u002Fmodels\u002Fcldm_v15_unicontrol_v11.yaml --lr 1e-5\n```\n\n微调模型：\n``` \npython train_unicontrol.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt  --config .\u002Fmodels\u002Fcldm_v15_unicontrol.yaml --lr 1e-7\n```\n\n### 模型推理（CUDA 11.0 和 Conda 4.12.0 可用）\n针对不同任务，请按以下方式运行代码。如果遇到显存不足（OOM）错误，请减少 `--num_samples` 参数的值。\n\n如果您使用的是 safetensors 格式的模型，可以按照 `.\u002Fload_model\u002Fload_safetensors_model.py` 的方法加载模型。\n\nCanny 边缘到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task canny\n```\n\nHED 边缘到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task hed \n```\n\n类似 HED 的草图到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task hedsketch\n```\n\n深度图到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task depth \n```\n\n法线表面图到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task normal\n```\n\n分割图到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task seg\n```\n\n\n人体骨骼关键点到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task openpose\n```\n\n\n目标边界框到图像生成：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task bbox\n```\n\n\n图像外扩填充：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task outpainting\n```\n\n\n图像修复填充：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task inpainting\n```\n\n\n图像去模糊：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task blur\n```\n\n\n图像上色：\n```\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task grayscale\n```\n\n### Gradio 演示（[应用演示视频](https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F1)，CUDA 11.0 和 Conda 4.12.0 可用）\n我们为不同任务提供了 Gradio 演示工具。示例图片保存在 `.\u002Ftest_imgs` 目录下。\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_fd6325a7dc7f.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n对于所有任务（`Canny、HED、Sketch、Depth、Normal、Human Pose、Seg、Bbox、Outpainting、Colorization、Deblurring、Inpainting`），请运行以下代码：\n```\npython app\u002Fgradio_all_tasks.py\n```\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_4a2d39284877.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n我们支持直接条件输入生成图像（如上所示）。如果您想直接上传条件图像，请在界面中取消勾选“条件提取”选项。\n\n***\n\n此外，我们还提供了特定任务的 Gradio 演示：\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_d1087b7a6cad.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nCanny 边缘到图像生成：\n```\npython app\u002Fgradio_canny2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_32b0cfb24709.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\nHED 边缘到图像生成：\n```\npython app\u002Fgradio_hed2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_a6c97da0a335.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n类似 HED 的草图到图像生成：\n```\npython app\u002Fgradio_hedsketch2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_575ec9c74fb5.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n深度图到图像生成：\n```\npython app\u002Fgradio_depth2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_0018d8df18af.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n法线表面图到图像生成：\n```\npython app\u002Fgradio_normal2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_1e1aac613214.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n分割图到图像生成：\n```\npython app\u002Fgradio_seg2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_abae184c193d.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n人体骨骼关键点到图像生成：\n```\npython app\u002Fgradio_pose2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_a1d5c5199e2a.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n目标边界框到图像生成：\n```\npython app\u002Fgradio_bbox2image.py\n```\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_035e6821a0eb.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n图像外扩填充：\n```\npython app\u002Fgradio_outpainting.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_aa76df4d5db1.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n图像上色：\n```\npython app\u002Fgradio_colorization.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_72461306b212.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n图像去模糊：\n```\npython app\u002Fgradio_deblur.py\n```\n\n\n***\n\n\u003Cdiv align=\"center\">\n    \u003Ca>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_readme_960bcea4ef02.png\"  height=\"450px\" >\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n图像修复填充：\n```\npython app\u002Fgradio_inpainting.py\n```\n\n\n## 待办事项\n- [x] 数据准备\n- [x] 预训练任务推理\n- [x] Gradio 演示\n- [x] 模型训练\n- [x] HF Space\n- [ ] Colab\n\n## 小贴士\n* 负面提示词有时非常有用：例如 `monochrome, lowres, bad anatomy, worst quality, low quality` 等。\n\n* UniControl 在某些任务（如图像上色和去模糊）上，即使不使用任何文本提示词也能取得良好效果。\n\n* 如果出现显存不足问题，可以尝试将 `--num_samples` 设置为 1。\n\n## 引用\n如果您觉得本项目对您的研究有所帮助，请引用我们的论文：\n\n```bibtex\n@article{qin2023unicontrol,\n  title={UniControl: A Unified Diffusion Model for Controllable Visual Generation In the Wild},\n  author={Qin, Can and Zhang, Shu and Yu, Ning and Feng, Yihao and Yang, Xinyi and Zhou, Yingbo and Wang, Huan and Niebles, Juan Carlos and Xiong, Caiming and Savarese, Silvio and others},\n  journal={arXiv preprint arXiv:2305.11147},\n  year={2023}\n}\n```\n\n## 致谢\n*本项目建立在 ControlNet 和 Stable Diffusion 这两座巨人的肩膀之上。衷心感谢它们！*\n\nStable Diffusion https:\u002F\u002Fgithub.com\u002FCompVis\u002Fstable-diffusion\n\nControlNet https:\u002F\u002Fgithub.com\u002Flllyasviel\u002FControlNet \n\nStyleGAN3 https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fstylegan3","# UniControl 快速上手指南\n\nUniControl 是一个统一的扩散模型，能够在单一框架下支持多种可控图像生成任务（如边缘检测、深度图、分割、上色、去模糊等），同时保留自由文本提示的能力。\n\n## 环境准备\n\n**系统要求：**\n- 操作系统：Linux (推荐) 或 macOS\n- GPU：NVIDIA GPU (显存建议 8GB 以上，复杂任务需更大显存)\n- CUDA 版本：11.0\n- Conda 版本：4.12.0\n\n**前置依赖：**\n- Git\n- wget\n- Google Cloud SDK (`gsutil`) - 仅当需要下载训练数据集时必需\n\n## 安装步骤\n\n### 1. 克隆项目并配置环境\n首先克隆仓库并创建 Conda 环境：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl.git\ncd UniControl\nconda env create -f environment.yaml\nconda activate unicontrol\n```\n\n### 2. 下载模型权重\n进入检查点目录并下载预训练模型。你可以选择基础版或最新的 v1.1 版本（支持 12 种任务）：\n\n```bash\nmkdir -p ckpts\ncd ckpts\n\n# 选项 A: 下载最新 v1.1 模型 (推荐，支持更多任务)\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.ckpt\n# 或者使用 Safetensors 格式\nwget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol_v1.1.st\n\n# 选项 B: 下载基础模型\n# wget https:\u002F\u002Fstorage.googleapis.com\u002Fsfr-unicontrol-data-research\u002Funicontrol.ckpt\n```\n\n*注：如果下载速度慢，可尝试使用代理或寻找国内镜像源。*\n\n### 3. (可选) 准备自定义初始化权重\n如果你需要从 Stable Diffusion 从头训练，需先运行脚本处理权重（基于 ControlNet 逻辑）：\n\n```bash\n# 假设你已有 v1-5-pruned.ckpt\npython tool_add_control.py .\u002Fckpts\u002Fv1-5-pruned.ckpt .\u002Fckpts\u002Fcontrol_sd15_ini.ckpt\n```\n\n## 基本使用\n\n### 命令行推理示例\n以下是最简单的使用方式，以 **Canny 边缘转图像** 为例。请确保当前处于 `unicontrol` 环境中，且 `ckpts` 目录下有对应的 `.ckpt` 文件。\n\n```bash\npython inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol_v1.1.ckpt --task canny\n```\n\n**支持的任务类型 (`--task` 参数)：**\n- `canny`: Canny 边缘检测\n- `hed`: HED 边缘检测\n- `hedsketch`: 素描草图\n- `depth`: 深度图\n- `normal`: 法线图\n- `seg`: 语义分割图\n- `openpose`: 人体骨骼姿态\n- `bbox`: 物体边界框\n- `outpainting`: 图像外绘 (Outpainting)\n- `inpainting`: 图像修复 (Inpainting)\n- `blur`: 图像去模糊\n- `grayscale`: 图像上色\n\n**实用技巧：**\n- 如果遇到显存不足 (OOM) 错误，请在命令中添加 `--num_samples 1`。\n- 部分任务（如上色 `grayscale` 和去模糊 `blur`）无需文本提示即可工作。\n- 可添加负面提示词提升质量：`monochrome, lowres, bad anatomy, worst quality, low quality`。\n\n### 启动本地 Web 界面 (Gradio Demo)\n为了方便测试所有功能，可以启动本地的 Gradio 交互界面：\n\n```bash\n# 启动包含所有任务的综合界面\npython app\u002Fgradio_all_tasks.py\n```\n\n启动后，在浏览器访问显示的本地地址（通常为 `http:\u002F\u002F127.0.0.1:7860`），即可上传条件图片并生成结果。如需针对特定任务启动独立界面，可运行 `app\u002Fgradio_\u003Ctask>2image.py` 系列脚本。","一位游戏概念设计师需要快速将粗糙的手绘草图转化为多套不同风格（如赛博朋克、奇幻写实）的高精度场景原画，同时必须严格保持原始构图和物体轮廓不变。\n\n### 没有 UniControl 时\n- **工具切换繁琐**：设计师需分别使用 ControlNet 处理线稿、专用模型进行上色、另外的工具完成去模糊或修复，工作流在不同软件间反复横跳。\n- **风格与结构冲突**：在调整提示词改变画风时，常导致原本精心设计的建筑轮廓或角色姿态发生扭曲变形，难以兼顾“精准结构”与“自由风格”。\n- **重复劳动成本高**：若需尝试多种视觉条件（如从线稿切换到深度图），必须重新训练或加载不同的单任务模型，耗时且占用大量显存资源。\n- **细节一致性差**：多步骤生成导致画面光影逻辑不统一，后期需要人工花费大量时间修复合成痕迹。\n\n### 使用 UniControl 后\n- **一站式全能处理**：UniControl 单个模型即可同时支持线稿、深度图、骨架、分割图等 12 种控制条件，设计师在一个界面内即可完成从草图到成图的全流程。\n- **结构与风格解耦**：利用其任务感知超网络，视觉条件精准锁定画面结构，而自然语言提示词仅负责引导风格，确保无论怎么改风格，原始草图的像素级细节都毫厘不差。\n- **灵活适配多任务**：无需重新加载模型，随时可在“草图转图像”、“局部重绘”或“自动上色”等任务间无缝切换，大幅降低显存占用并提升迭代速度。\n- **生成质量跃升**：得益于统一框架的训练优势，生成的图像在复杂光照和纹理细节上往往优于单一任务模型，直接产出可用级素材。\n\nUniControl 通过统一架构打破了控制条件的壁垒，让创作者能以最低的成本实现“结构绝对可控、风格无限自由”的高质量视觉生成。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsalesforce_UniControl_ddb5631e.png","salesforce","Salesforce","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsalesforce_6ff2d82a.png","Noteworthy Open Source projects made available by Salesforce. Available under Open Source or Creative Commons licensing. No warranty or support implied",null,"osscore@salesforce.com","https:\u002F\u002Fopensource.salesforce.com","https:\u002F\u002Fgithub.com\u002Fsalesforce",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,{"name":86,"color":87,"percentage":88},"Shell","#89e051",0,657,34,"2026-04-17T02:27:27","Apache-2.0","未说明","必需 NVIDIA GPU，支持 CUDA 11.0","未说明（提示若遇显存不足 OOM 错误需减少采样数量）",{"notes":97,"python":98,"dependencies":99},"官方明确测试通过的环境为 CUDA 11.0 和 Conda 4.12.0。模型检查点文件较大（约 5.78GB），需手动下载或通过脚本获取。支持 12 种控制任务（如边缘检测、深度图、骨架等）。若遇到显存溢出（OOM），建议将推理参数 '--num_samples' 设置为 1。训练或推理均基于 Stable Diffusion 和 ControlNet 架构。","未说明（建议使用 Conda 4.12.0 管理环境）",[100,101,102,103],"torch (隐含)","gradio","ControlNet (基于)","Stable Diffusion (基于)",[105,35,15,106],"视频","音频",[108,109,110],"aigc","generation","multi-modal","2026-03-27T02:49:30.150509","2026-04-20T07:17:15.795692",[114,119,124,129,134,139,144,149],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},43978,"去模糊任务没有产生去模糊的结果，这是预期的吗？","论文中的模型（三个月前发布）仅使用了 9 个任务进行预训练，展示的是零样本结果。新发布的 12 任务检查点（checkpoint）包含了对去模糊、着色和修复任务的监督训练，以确保在这些任务上的稳定性能。Hugging Face 空间使用的是 12 任务版本。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F20",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},43979,"应该使用哪个配置文件（yaml）和检查点（ckpt）？unicontrol_v1.1.ckpt 对应哪个 yaml？","这是一个常见的误解。unicontrol_v1.1.ckpt 并不与 cldm_v15_unicontrol_v1.1.yaml 对齐。**请始终使用 cldm_v15_unicontrol.yaml**，即使你使用的是 unicontrol_v1.1.ckpt 检查点也是如此。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F13",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},43980,"如何进行多条件控制（同时使用多个条件输入）？","对于多条件控制，需要将它们的 MoE（混合专家）特征进行加权平均相加，并拼接它们的任务提示（task prompts）。具体操作是：features = weight1 * feature1 + weight2 * feature2，prompts = prompt1 + prompt2。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F10",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},43981,"运行 demo 时遇到错误，是否与 xformers 或 CUDA 版本有关？","如果安装 xformers 导致报错或自动卸载了 PyTorch 1.12.1 并安装了不兼容的版本，建议**不要安装 xformers**。维护者表示不使用 xformers 也能正常工作，且不确定其是否能提供更好的结果。如果仍有问题，可以尝试运行推理代码测试环境：`CUDA_VISIBLE_DEVICES=0 python inference_demo.py --ckpt .\u002Fckpts\u002Funicontrol.ckpt --task canny`。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F7",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},43982,"解压后的数据集需要多少磁盘存储空间？","解压后的数据所需空间与压缩包大小相似，约为 2.2TB。具体分布参考：conditions 文件夹约 1.2TB，images 文件夹约 1.3TB，json_files 文件夹约 6.7GB，总计约 2.5TB。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F24",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},43983,"MultiGen-20M 训练数据集会公开吗？数据来源是什么？","数据集已经发布。原始数据来自 Hugging Face 的 `ChristophSchuhmann\u002Fimproved_aesthetics_6plus` 数据集。条件提取方法遵循 ControlNet annotator 的实现逻辑（参考 `lllyasviel\u002FControlNet` 仓库中的 annotator 部分）。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F5",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},43984,"UniControl 与 Multi-ControlNet 或 Uni-ControlNet 有什么区别？","UniControl 与 Uni-ControlNet 是两个不同的项目，采用不同的方法论，标题相似纯属巧合。UniControl 论文第一版于 2023 年 5 月 18 日上传，早于 Uni-ControlNet 的发布。关于 Multi-ControlNet，UniControl 旨在通过单一模型支持多种任务，并计划提取模型以便开发者在自己的数据集上部署。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F21",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},43985,"下载数据集时提示 'gs:\u002F\u002Fsfr-unicontrol-data-research\u002Fdataset' 无法访问或权限拒绝怎么办？","该问题之前是由于 Google Cloud Storage 桶的公共访问权限未开启导致的，维护者已修复此问题。如果现在仍然遇到 `Permission 'storage.objects.list' denied` 错误，请检查网络连接或确认是否使用了正确的下载命令，目前该存储桶应对公众开放。","https:\u002F\u002Fgithub.com\u002Fsalesforce\u002FUniControl\u002Fissues\u002F8",[]]