[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-PeterWang512--GANSketching":3,"tool-PeterWang512--GANSketching":61},[4,18,28,37,45,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":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"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":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"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 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"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":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":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":10,"env_os":103,"env_gpu":104,"env_ram":103,"env_deps":105,"category_tags":112,"github_topics":113,"view_count":24,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":119,"updated_at":120,"faqs":121,"releases":151},10133,"PeterWang512\u002FGANSketching","GANSketching","Sketch Your Own GAN: Customizing a GAN model with hand-drawn sketches.","GANSketching 是一款让生成对抗网络（GAN）“听懂”手绘草图的创新工具。它允许用户通过绘制简单的手绘草图，快速定制现有的预训练 GAN 模型，使其生成的图像在形状和姿态上精准匹配草图内容，同时完美保留原模型中的颜色、纹理和背景等视觉细节。\n\n这一工具有效解决了传统 GAN 编辑中难以精确控制物体几何结构的问题。以往想要改变生成物体的姿态或轮廓，往往需要复杂的参数调整或重新训练，而 GANSketching 仅需少量草图即可实现定制化修改，大大降低了操作门槛。此外，它还支持在不同定制模型间进行平滑插值，无论是潜在空间还是模型权重空间，都能实现自然的形态过渡，为创意探索提供了广阔空间。\n\nGANSketching 特别适合设计师、数字艺术家以及从事计算机视觉研究的人员使用。设计师可以利用它快速原型化创意概念；研究人员则能借此深入探索 GAN 的可控性与编辑能力。虽然普通用户也能体验其趣味功能，但最佳效果通常需要一定的技术背景来部署和调试。作为发表于 ICCV 2021 的研究成果，GANSketching 展示了草图引导式模型定制的強大潜力，是连接人类直觉与人工智能生成能力的桥","GANSketching 是一款让生成对抗网络（GAN）“听懂”手绘草图的创新工具。它允许用户通过绘制简单的手绘草图，快速定制现有的预训练 GAN 模型，使其生成的图像在形状和姿态上精准匹配草图内容，同时完美保留原模型中的颜色、纹理和背景等视觉细节。\n\n这一工具有效解决了传统 GAN 编辑中难以精确控制物体几何结构的问题。以往想要改变生成物体的姿态或轮廓，往往需要复杂的参数调整或重新训练，而 GANSketching 仅需少量草图即可实现定制化修改，大大降低了操作门槛。此外，它还支持在不同定制模型间进行平滑插值，无论是潜在空间还是模型权重空间，都能实现自然的形态过渡，为创意探索提供了广阔空间。\n\nGANSketching 特别适合设计师、数字艺术家以及从事计算机视觉研究的人员使用。设计师可以利用它快速原型化创意概念；研究人员则能借此深入探索 GAN 的可控性与编辑能力。虽然普通用户也能体验其趣味功能，但最佳效果通常需要一定的技术背景来部署和调试。作为发表于 ICCV 2021 的研究成果，GANSketching 展示了草图引导式模型定制的強大潜力，是连接人类直觉与人工智能生成能力的桥梁。","## Sketch Your Own GAN\n [**Project**](https:\u002F\u002Fpeterwang512.github.io\u002FGANSketching\u002F) | [**Paper**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.02774) | [**Youtube**](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1smwQ-tSCjM) | [**Slides**](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ADtaOLauX3h-mB3tmjdMFs1hcnJNKZwO\u002Fedit)\n\n\n\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_6538514c788b.gif\" width=\"800px\"\u002F>\n\n\nOur method takes in one or a few hand-drawn sketches and customizes an off-the-shelf GAN to match the input sketch. While our new model changes an object’s shape and pose, other visual cues such as color, texture, background, are faithfully preserved after the modification.\n\u003Cbr>\u003Cbr>\u003Cbr>\n\n[Sheng-Yu Wang](https:\u002F\u002Fpeterwang512.github.io\u002F)\u003Csup>1\u003C\u002Fsup>, [David Bau](https:\u002F\u002Fpeople.csail.mit.edu\u002Fdavidbau\u002Fhome\u002F)\u003Csup>2\u003C\u002Fsup>, [Jun-Yan Zhu](https:\u002F\u002Fcs.cmu.edu\u002F~junyanz)\u003Csup>1\u003C\u002Fsup>.\n\u003Cbr> CMU\u003Csup>1\u003C\u002Fsup>, MIT CSAIL\u003Csup>2\u003C\u002Fsup>\n\u003Cbr>In [ICCV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.02774), 2021.\n\n\n**Aug 16 Update** Training code, evaluation code, and dataset are released. Model weights are also updated, please re-run `bash weights\u002Fdownload_weights.sh` if you have downloaded the weights before this update.\n\n\n## Results\nOur method can customize a pre-trained GAN to match input sketches.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_2648f7d9bf1f.jpg\" width=\"800px\"\u002F>\n\n\n\n**Interpolation using our customized models.** Latent space interpolation is smooth with our customized models.\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ctd  align=\"center\">Image 1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_34fa3c0bd8b5.jpg\"  width=240px>\u003C\u002Ftd>\n    \u003Ctd  align=\"center\">Interoplation \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_c1cc3f1384fc.gif\" width=240px>\u003C\u002Ftd>\n    \u003Ctd  align=\"center\">Image 2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_8bd14b9a249a.jpg\" width=240px>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n**Image editing using our customized models.**  Given a real image (a), we project it to the original model's latent space z using [Huh et al.](https:\u002F\u002Fgithub.com\u002Fminyoungg\u002Fpix2latent) (b). (c) We then feed the projected z to the our standing cat model trained on sketches. (d) Finally, we showed edit the image with `add fur` operation using [GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace).\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_dda25c3266a2.jpg\" width=\"800px\"\u002F>\n\n\n**Model interpolation.** We can interpolate between the customized model by interpolating the W-latent space.\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">Model 1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">Interoplation in W-latent space \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_73225d0d6f96.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">Model 2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_92aebd179307.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_543d20c3d5ed.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_29a7a6fa160a.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\nWe observe similar effect by interpolating the model weights directly.\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">Model 1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">Interoplation in the model weight space \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d7dd5185a2ec.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">Model 2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_92aebd179307.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_7e02c4ad7e36.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_29a7a6fa160a.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n**Failure case**. Our method is not capable of generating images to match the Attneave’s cat sketch or the horse sketch by Picasso. We note that Attneave’s cat depicts a complex pose, and Picasso’s sketches are drawn with a distinctive style, both of which make our method struggle.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_05a9987dc141.jpg\" width=\"800px\"\u002F>\n\n\n## Getting Started\n\n### Clone our repo\n```bash\ngit clone git@github.com:PeterWang512\u002FGANSketching.git\ncd GANSketching\n```\n### Install packages\n- Install PyTorch (version >= 1.6.0) ([pytorch.org](http:\u002F\u002Fpytorch.org))\n  ```bash\n  pip install -r requirements.txt\n  ```\n\n### Download model weights\n- Run `bash weights\u002Fdownload_weights.sh`\n\n\n### Generate samples from a customized model\n\nThis command runs the customized model specified by `ckpt`, and generates samples to `save_dir`.\n\n```\n# generates samples from the \"standing cat\" model.\npython generate.py --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fsamples_standing_cat\n\n# generates samples from the cat face model in Figure. 1 of the paper.\npython generate.py --ckpt weights\u002Fby_author_cat_aug.pth --save_dir output\u002Fsamples_teaser_cat\n\n# generates samples from the customized ffhq model.\npython generate.py --ckpt weights\u002Fby_author_face0_aug.pth --save_dir output\u002Fsamples_ffhq_face0 --size 1024 --batch_size 20\n```\n\n### Latent space edits by GANSpace\n\nOur model preserves the latent space editability of the original model. Our models can apply the same edits using the latents reported in Härkönen et.al. ([GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace)).\n\n```\n# add fur to the standing cats\npython ganspace.py --obj cat --comp_id 27 --scalar 50 --layers 2,4 --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fganspace_fur_standing_cat\n\n# close the eyes of the standing cats\npython ganspace.py --obj cat --comp_id 45 --scalar 60 --layers 5,7 --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fganspace_eye_standing_cat\n```\n\n### Colab\nThanks to [Luke Floden](https:\u002F\u002Fgithub.com\u002Fbionboy) for creating a colab to do the quick start above. Colab link: [quickstart_colab.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fpeterwang512\u002FGANSketching\u002Fblob\u002Fmaster\u002Fquickstart_colab.ipynb)\n\n## Model Training\n\nTraining and evaluating on model trained on PhotoSketch inputs requires running [the Precision and Recall metric](https:\u002F\u002Fgithub.com\u002Fkynkaat\u002Fimproved-precision-and-recall-metric). The following command pulls the submodule of the forked Precision and Recall [repo](https:\u002F\u002Fgithub.com\u002FPeterWang512\u002Fprecision_recall).\n```bash\ngit submodule update --init --recursive\n```\n\n### Download Datasets and Pre-trained Models\n\nThe following scripts downloads our sketch data, our evaluation set, [LSUN](https:\u002F\u002Fdl.yf.io\u002Flsun), and pre-trained models from [StyleGAN2](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fstylegan2) and [PhotoSketch](https:\u002F\u002Fgithub.com\u002Fmtli\u002FPhotoSketch).\n```bash\n# Download the sketches\nbash data\u002Fdownload_sketch_data.sh\n\n# Download evaluation set\nbash data\u002Fdownload_eval_data.sh\n\n# Download pretrained models from StyleGAN2 and PhotoSketch\nbash pretrained\u002Fdownload_pretrained_models.sh\n\n# Download LSUN cat, horse, and church dataset\nbash data\u002Fdownload_lsun.sh\n```\n\nTo train FFHQ models with image regularization, please download the [FFHQ dataset](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fffhq-dataset) using this [link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WvlAIvuochQn_L_f9p3OdFdTiSLlnnhv\u002Fview?usp=sharing). This is the zip file of 70,000 images at 1024x1024 resolution. Unzip the files, , rename the `images1024x1024` folder to `ffhq` and place it in `.\u002Fdata\u002Fimage\u002F`.\n\n\n### Training Scripts\n\nThe example training configurations are specified using the scripts in `scripts` folder. Use the following commands to launch trainings.\n\n```bash\n# Train the \"horse riders\" model\nbash scripts\u002Ftrain_photosketch_horse_riders.sh\n\n# Train the cat face model in Figure. 1 of the paper.\nbash scripts\u002Ftrain_teaser_cat.sh\n\n# Train on a single quickdraw sketch\nbash scripts\u002Ftrain_quickdraw_single_horse0.sh\n\n# Train on sketches of faces (1024px)\nbash scripts\u002Ftrain_authorsketch_ffhq0.sh\n```\n\nThe training progress is tracked using `wandb` by default. To disable wandb logging, please add the `--no_wandb` tag to the training script.\n\n### Evaluations\n\nPlease make sure the evaluation set and model weights are downloaded before running the evaluation.\n```bash\n# You may have run these scripts already in the previous sections\nbash weights\u002Fdownload_weights.sh\nbash data\u002Fdownload_eval_data.sh\n```\n\nUse the following script to evaluate the models, the results will be saved in a csv file specified by the ``--output`` flag. ``--models_list`` should contain a list of tuple of model weight paths and evaluation data. Please see `weights\u002Feval_list` for example.\n\n```bash\npython run_metrics.py --models_list weights\u002Feval_list --output metric_results.csv\n```\n\n## Related Works\n* R. Gal, O. Patashnik, H. Maron, A. Bermano, G. Chechik, D. Cohen-Or. [\"StyleGAN-NADA: CLIP-Guided Domain Adaptation of Image Generators.\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.00946). In ArXiv. (concurrent work)\n* D. Bau, S. Liu, T. Wang, J.-Y. Zhu, A. Torralba. [\"Rewriting a Deep Generative Model\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.15646). In ECCV 2020.\n* Y. Wang, A. Gonzalez-Garcia, D. Berga, L. Herranz, F. S. Khan, J. van de Weijer. [\"MineGAN: effective knowledge transfer from GANs to target domains with few images\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F1912.05270). In CVPR 2020.\n* M. Eitz, J. Hays, M. Alexa. [\"How Do Humans Sketch Objects?\"](http:\u002F\u002Fcybertron.cg.tu-berlin.de\u002Feitz\u002Fpdf\u002F2012_siggraph_classifysketch.pdf). In SIGGRAPH 2012.\n\n\n## Acknowledgments\n\nThis repository borrows partially from [SPADE](https:\u002F\u002Fgithub.com\u002FNVlabs\u002FSPADE), [stylegan2-pytorch](https:\u002F\u002Fgithub.com\u002Frosinality\u002Fstylegan2-pytorch), [PhotoSketch](https:\u002F\u002Fgithub.com\u002Fmtli\u002FPhotoSketch), [GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace), and [data-efficient-gans](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Fdata-efficient-gans).\n\n## Reference\n\nIf you find this useful for your research, please cite the following work.\n```\n@inproceedings{wang2021sketch,\n  title={Sketch Your Own GAN},\n  author={Wang, Sheng-Yu and Bau, David and Zhu, Jun-Yan},\n  booktitle={Proceedings of the IEEE International Conference on Computer Vision},\n  year={2021}\n}\n```\n\nFeel free to contact us with any comments or feedback.\n","## 绘制你自己的 GAN\n [**项目**](https:\u002F\u002Fpeterwang512.github.io\u002FGANSketching\u002F) | [**论文**](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.02774) | [**YouTube**](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1smwQ-tSCjM) | [**幻灯片**](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ADtaOLauX3h-mB3tmjdMFs1hcnJNKZwO\u002Fedit)\n\n\n\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_6538514c788b.gif\" width=\"800px\"\u002F>\n\n\n我们的方法接受一张或多张手绘草图，并将现成的 GAN 进行定制，以匹配输入的草图。尽管我们的新模型会改变物体的形状和姿态，但颜色、纹理、背景等其他视觉线索在修改后仍会被忠实地保留。\n\u003Cbr>\u003Cbr>\u003Cbr>\n\n[Sheng-Yu Wang](https:\u002F\u002Fpeterwang512.github.io\u002F)\u003Csup>1\u003C\u002Fsup>, [David Bau](https:\u002F\u002Fpeople.csail.mit.edu\u002Fdavidbau\u002Fhome\u002F)\u003Csup>2\u003C\u002Fsup>, [Jun-Yan Zhu](https:\u002F\u002Fcs.cmu.edu\u002F~junyanz)\u003Csup>1\u003C\u002Fsup>。\n\u003Cbr> CMU\u003Csup>1\u003C\u002Fsup>, MIT CSAIL\u003Csup>2\u003C\u002Fsup>\n\u003Cbr>在 [ICCV](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.02774) 2021 年会议上发表。\n\n\n**8月16日更新** 训练代码、评估代码和数据集已发布。模型权重也已更新，如果您在此更新之前下载过权重，请重新运行 `bash weights\u002Fdownload_weights.sh`。\n\n\n## 结果\n我们的方法可以将预训练的 GAN 定制为与输入草图相匹配。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_2648f7d9bf1f.jpg\" width=\"800px\"\u002F>\n\n\n\n**使用我们定制的模型进行插值。** 使用我们定制的模型进行潜在空间插值时，过程非常平滑。\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ctd  align=\"center\">图像1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_34fa3c0bd8b5.jpg\"  width=240px>\u003C\u002Ftd>\n    \u003Ctd  align=\"center\">插值 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_c1cc3f1384fc.gif\" width=240px>\u003C\u002Ftd>\n    \u003Ctd  align=\"center\">图像2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_8bd14b9a249a.jpg\" width=240px>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n**使用我们定制的模型进行图像编辑。** 给定一张真实图像 (a)，我们使用 [Huh et al.](https:\u002F\u002Fgithub.com\u002Fminyoungg\u002Fpix2latent) 将其投影到原始模型的潜在空间 z 中 (b)。然后，我们将投影得到的 z 输入到我们基于草图训练的站立猫模型中 (c)。最后，我们使用 [GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace) 的 `添加毛发` 操作对图像进行编辑 (d)。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_dda25c3266a2.jpg\" width=\"800px\"\u002F>\n\n\n**模型插值。** 我们可以通过插值 W 潜在空间来实现定制模型之间的过渡。\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">模型1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">W 潜在空间中的插值 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_73225d0d6f96.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">模型2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_92aebd179307.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_543d20c3d5ed.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_29a7a6fa160a.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n我们观察到，直接插值模型权重也能产生类似的效果。\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">模型1 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">模型权重空间中的插值 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d7dd5185a2ec.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">模型2 \u003Cbr> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_92aebd179307.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable cellpadding=\"0\" cellspacing=\"0\" >\n  \u003Ctr>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_d2551ade5a51.png\"  height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_7e02c4ad7e36.gif\" height=90px>\u003C\u002Ftd>\u003C\u002Fcenter>\n    \u003Ccenter>\u003Ctd  align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_29a7a6fa160a.png\" height=90px border=1>\u003C\u002Ftd>\u003C\u002Fcenter>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n**失败案例。** 我们的方法无法生成与 Attneave 的猫草图或毕加索的马草图相匹配的图像。值得注意的是，Attneave 的猫描绘了一个复杂的姿势，而毕加索的草图则具有独特的风格，这两点都使得我们的方法难以处理。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_readme_05a9987dc141.jpg\" width=\"800px\"\u002F>\n\n\n## 快速入门\n\n### 克隆我们的仓库\n```bash\ngit clone git@github.com:PeterWang512\u002FGANSketching.git\ncd GANSketching\n```\n### 安装依赖包\n- 安装 PyTorch（版本 >= 1.6.0）([pytorch.org](http:\u002F\u002Fpytorch.org))\n  ```bash\n  pip install -r requirements.txt\n  ```\n\n### 下载模型权重\n- 运行 `bash weights\u002Fdownload_weights.sh`\n\n\n### 从定制模型生成样本\n\n此命令会运行由 `ckpt` 指定的定制模型，并将生成的样本保存到 `save_dir` 目录中。\n\n```\n# 从“站立猫”模型生成样本。\npython generate.py --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fsamples_standing_cat\n\n# 从论文图1中的猫脸模型生成样本。\npython generate.py --ckpt weights\u002Fby_author_cat_aug.pth --save_dir output\u002Fsamples_teaser_cat\n\n# 从定制的 ffhq 模型生成样本。\npython generate.py --ckpt weights\u002Fby_author_face0_aug.pth --save_dir output\u002Fsamples_ffhq_face0 --size 1024 --batch_size 20\n```\n\n### 使用 GANSpace 进行潜在空间编辑\n\n我们的模型保留了原始模型的潜在空间可编辑性。我们可以使用 Härkönen 等人报告的潜在变量（[GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace)），对我们的模型进行同样的编辑操作。\n\n```\n# 为站立的猫添加毛发\npython ganspace.py --obj cat --comp_id 27 --scalar 50 --layers 2,4 --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fganspace_fur_standing_cat\n\n# 为站立的猫闭上眼睛\npython ganspace.py --obj cat --comp_id 45 --scalar 60 --layers 5,7 --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fganspace_eye_standing_cat\n```\n\n### Colab\n感谢 [Luke Floden](https:\u002F\u002Fgithub.com\u002Fbionboy) 创建了一个 Colab 笔记本，用于快速完成上述入门步骤。Colab 链接：[quickstart_colab.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fpeterwang512\u002FGANSketching\u002Fblob\u002Fmaster\u002Fquickstart_colab.ipynb)\n\n## 模型训练\n\n在 PhotoSketch 数据上训练和评估模型时，需要运行 [精确率与召回率指标](https:\u002F\u002Fgithub.com\u002Fkynkaat\u002Fimproved-precision-and-recall-metric)。以下命令将拉取分叉的精确率与召回率 [repo](https:\u002F\u002Fgithub.com\u002FPeterWang512\u002Fprecision_recall) 的子模块。\n```bash\ngit submodule update --init --recursive\n```\n\n### 下载数据集和预训练模型\n\n以下脚本将下载我们的草图数据、评估集、[LSUN](https:\u002F\u002Fdl.yf.io\u002Flsun) 以及来自 [StyleGAN2](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fstylegan2) 和 [PhotoSketch](https:\u002F\u002Fgithub.com\u002Fmtli\u002FPhotoSketch) 的预训练模型。\n```bash\n# 下载草图数据\nbash data\u002Fdownload_sketch_data.sh\n\n# 下载评估集\nbash data\u002Fdownload_eval_data.sh\n\n# 从 StyleGAN2 和 PhotoSketch 下载预训练模型\nbash pretrained\u002Fdownload_pretrained_models.sh\n\n# 下载 LSUN 猫、马和教堂数据集\nbash data\u002Fdownload_lsun.sh\n```\n\n要使用图像正则化训练 FFHQ 模型，请通过此 [链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1WvlAIvuochQn_L_f9p3OdFdTiSLlnnhv\u002Fview?usp=sharing) 下载 [FFHQ 数据集](https:\u002F\u002Fgithub.com\u002FNVlabs\u002Fffhq-dataset)。这是一个包含 70,000 张 1024x1024 分辨率图像的压缩包。请解压文件，将 `images1024x1024` 文件夹重命名为 `ffhq`，并将其放置在 `.\u002Fdata\u002Fimage\u002F` 目录下。\n\n\n### 训练脚本\n\n示例训练配置通过 `scripts` 文件夹中的脚本指定。使用以下命令启动训练。\n\n```bash\n# 训练“骑马者”模型\nbash scripts\u002Ftrain_photosketch_horse_riders.sh\n\n# 训练论文图 1 中的猫脸模型\nbash scripts\u002Ftrain_teaser_cat.sh\n\n# 使用单个 QuickDraw 草图进行训练\nbash scripts\u002Ftrain_quickdraw_single_horse0.sh\n\n# 使用人脸草图（1024px）进行训练\nbash scripts\u002Ftrain_authorsketch_ffhq0.sh\n```\n\n默认情况下，训练进度会使用 `wandb` 进行跟踪。若要禁用 wandb 日志记录，请在训练脚本中添加 `--no_wandb` 标记。\n\n### 评估\n\n在运行评估之前，请确保已下载评估数据集和模型权重。\n```bash\n# 您可能已在前面的部分中运行过这些脚本\nbash weights\u002Fdownload_weights.sh\nbash data\u002Fdownload_eval_data.sh\n```\n\n使用以下脚本评估模型，结果将保存到由 `--output` 标志指定的 CSV 文件中。`--models_list` 应包含一个元组列表，每个元组对应一个模型权重路径和评估数据。示例请参见 `weights\u002Feval_list`。\n\n```bash\npython run_metrics.py --models_list weights\u002Feval_list --output metric_results.csv\n```\n\n## 相关工作\n* R. Gal, O. Patashnik, H. Maron, A. Bermano, G. Chechik, D. Cohen-Or. [\"StyleGAN-NADA: CLIP 引导的图像生成器领域适应。\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2108.00946). ArXiv 出版。（同时期工作）\n* D. Bau, S. Liu, T. Wang, J.-Y. Zhu, A. Torralba. [\"重写深度生成模型\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2007.15646). ECCV 2020。\n* Y. Wang, A. Gonzalez-Garcia, D. Berga, L. Herranz, F. S. Khan, J. van de Weijer. [\"MineGAN：从 GAN 向目标域的有效知识迁移，即使只有少量图像\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F1912.05270). CVPR 2020。\n* M. Eitz, J. Hays, M. Alexa. [\"人类如何绘制物体草图？\"](http:\u002F\u002Fcybertron.cg.tu-berlin.de\u002Feitz\u002Fpdf\u002F2012_siggraph_classifysketch.pdf). SIGGRAPH 2012。\n\n\n## 致谢\n\n本仓库部分借鉴了 [SPADE](https:\u002F\u002Fgithub.com\u002FNVlabs\u002FSPADE)、[stylegan2-pytorch](https:\u002F\u002Fgithub.com\u002Frosinality\u002Fstylegan2-pytorch)、[PhotoSketch](https:\u002F\u002Fgithub.com\u002Fmtli\u002FPhotoSketch)、[GANSpace](https:\u002F\u002Fgithub.com\u002Fharskish\u002Fganspace) 以及 [data-efficient-gans](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Fdata-efficient-gans) 的代码。\n\n## 参考文献\n\n如果您认为本项目对您的研究有所帮助，请引用以下文献。\n```\n@inproceedings{wang2021sketch,\n  title={Sketch Your Own GAN},\n  author={Wang, Sheng-Yu and Bau, David and Zhu, Jun-Yan},\n  booktitle={IEEE 国际计算机视觉会议论文集},\n  year={2021}\n}\n```\n\n欢迎随时与我们联系，提出任何意见或反馈。","# GANSketching 快速上手指南\n\nGANSketching 是一个允许用户通过手绘草图定制预训练 GAN 模型的开源工具。它能在改变物体形状和姿态的同时，忠实保留颜色、纹理和背景等视觉特征。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS\n*   **Python**: 3.6+\n*   **PyTorch**: 版本 >= 1.6.0\n*   **GPU**: 推荐使用 NVIDIA GPU 以加速推理和训练\n*   **Git**: 用于克隆代码库\n\n## 安装步骤\n\n### 1. 克隆仓库\n首先，将项目代码克隆到本地：\n\n```bash\ngit clone git@github.com:PeterWang512\u002FGANSketching.git\ncd GANSketching\n```\n\n### 2. 安装依赖\n安装所需的 Python 包（包含 PyTorch 及其他依赖）：\n\n```bash\npip install -r requirements.txt\n```\n> **提示**：国内用户若下载缓慢，可指定清华源加速安装：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n### 3. 下载模型权重\n运行脚本下载预训练的模型权重：\n\n```bash\nbash weights\u002Fdownload_weights.sh\n```\n\n## 基本使用\n\n安装完成后，您可以直接使用预训练模型生成图像。以下示例展示如何从定制的“站立猫”模型中生成样本。\n\n### 生成图像样本\n\n运行 `generate.py` 脚本，指定模型检查点路径和输出目录：\n\n```bash\n# 从 \"standing cat\" (站立的猫) 模型生成样本\npython generate.py --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fsamples_standing_cat\n\n# 从论文图 1 中的 \"cat face\" (猫脸) 模型生成样本\npython generate.py --ckpt weights\u002Fby_author_cat_aug.pth --save_dir output\u002Fsamples_teaser_cat\n\n# 从定制的 FFHQ (人脸) 模型生成高分辨率样本\npython generate.py --ckpt weights\u002Fby_author_face0_aug.pth --save_dir output\u002Fsamples_ffhq_face0 --size 1024 --batch_size 20\n```\n\n生成的图片将保存在指定的 `--save_dir` 文件夹中。\n\n### 进阶：潜在空间编辑 (可选)\n\n该模型保留了原始 GAN 的潜在空间可编辑性。您可以结合 GANSpace 对生成的图像进行属性编辑（例如给猫添加毛发）：\n\n```bash\n# 给站立的猫添加毛发\npython ganspace.py --obj cat --comp_id 27 --scalar 50 --layers 2,4 --ckpt weights\u002Fphotosketch_standing_cat_noaug.pth --save_dir output\u002Fganspace_fur_standing_cat\n```\n\n> **提示**：如果您希望快速体验而无需配置本地环境，可以使用官方提供的 Colab 笔记本：[quickstart_colab.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fpeterwang512\u002FGANSketching\u002Fblob\u002Fmaster\u002Fquickstart_colab.ipynb)。","一位独立游戏开发者需要为像素风格 RPG 快速生成大量姿态各异但画风统一的“站立猫”怪物素材，以丰富游戏场景。\n\n### 没有 GANSketching 时\n- **重训成本高昂**：若要改变猫的形态（如从坐姿变站姿），通常需收集数百张新图片并重新训练整个 GAN 模型，耗时数天且算力消耗巨大。\n- **风格难以统一**：手动绘制或拼贴素材容易导致纹理、光照和背景与原游戏资产不协调，破坏整体美术一致性。\n- **编辑灵活性差**：传统图像编辑工具无法在保持原有毛发质感和环境光的同时，精准调整物体的骨架结构和姿态。\n- **创意迭代缓慢**：设计师脑海中独特的怪物构思，因缺乏对应数据集而无法通过 AI 快速验证，只能依赖美工逐帧手绘。\n\n### 使用 GANSketching 后\n- **草图即模型**：开发者只需手绘几张简单的“站立猫”草图，GANSketching 即可在几分钟内定制专属模型，无需任何额外训练数据。\n- **特征完美保留**：新生成的猫虽然姿态改变，但原模型的毛色、纹理细节及背景风格被忠实保留，确保无缝融入游戏场景。\n- **潜在空间可控**：基于定制模型，开发者可在潜空间平滑插值，自动生成从“慵懒站姿”到“警觉站姿”的连续动作序列。\n- **实时创意落地**：结合投影技术，甚至能将真实照片直接转化为符合游戏画风的特定姿态素材，极大加速原型设计流程。\n\nGANSketching 将原本需要数天数据准备与模型训练的门槛，降低为“画一张草图”的即时交互，让非算法专家也能轻松驾驭生成式 AI 进行定制化内容创作。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FPeterWang512_GANSketching_c3304281.png","PeterWang512","Sheng-Yu Wang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FPeterWang512_3de14379.jpg",null,"shengyu2@andrew.cmu.edu","https:\u002F\u002Fgithub.com\u002FPeterWang512",[80,84,88,91,95],{"name":81,"color":82,"percentage":83},"Python","#3572A5",84.3,{"name":85,"color":86,"percentage":87},"Cuda","#3A4E3A",9.6,{"name":89,"color":90,"percentage":10},"Jupyter Notebook","#DA5B0B",{"name":92,"color":93,"percentage":94},"Shell","#89e051",1.9,{"name":96,"color":97,"percentage":98},"C++","#f34b7d",1.2,709,94,"2026-03-05T01:52:13","MIT","未说明","需要 NVIDIA GPU (基于 StyleGAN2 架构)，具体显存和 CUDA 版本未在文中明确，但训练 1024x1024 分辨率模型通常建议 16GB+ 显存",{"notes":106,"python":107,"dependencies":108},"该项目基于 StyleGAN2 和 PhotoSketch。训练前需通过脚本下载预训练模型、草图数据集及 LSUN 数据集。若训练 FFHQ 模型，需单独下载 70,000 张 1024x1024 分辨率的图片。默认使用 wandb 跟踪训练进度，可通过添加 '--no_wandb' 参数禁用。部分评估指标需要初始化 git 子模块。","未说明 (需满足 PyTorch >= 1.6.0)",[109,110,111],"torch>=1.6.0","wandb","git submodule (for precision-recall metrics)",[15,14],[114,115,116,117,118],"computer-vision","computer-graphics","deep-learning","gans","hci","2026-03-27T02:49:30.150509","2026-04-20T19:32:37.769754",[122,127,132,137,142,147],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},45491,"加载 Generator 的 state_dict 时出现 'Unexpected key(s)' 错误或内存不足怎么办？","面部模型仅支持 1024 分辨率。如果遇到内存不足（CUDA out of memory），请尝试减小 batch size，例如添加参数 `--batch_size 5`。如果将分辨率从 1024 改为其他数值（如 800）导致加载状态字典出错，是因为预训练权重不匹配，必须使用 `--size 1024` 运行。若显存不足，只能通过减小 batch size 或升级显卡解决。","https:\u002F\u002Fgithub.com\u002FPeterWang512\u002FGANSketching\u002Fissues\u002F26",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},45492,"运行训练脚本时遇到 TypeError 或 CUDA 扩展编译失败（ninja 错误）如何解决？","这通常是由于 PyTorch CUDA 扩展编译环境问题。首先确保能够正常编译 PyTorch CUDA 扩展（参考 stylegan2-pytorch 相关议题）。解决方法包括：1. 清除缓存：删除 `~\u002F.cache\u002Ftorch_extensions\u002F` 下的所有文件以及代码文件夹中所有的 `__pycache__` 文件夹；2. 检查环境：确保使用的是 Linux 环境（项目主要在 Ubuntu 测试）；3. 版本兼容：尝试使用 PyTorch 1.7.1 配合对应的 cudatoolkit。不要直接复制他人编译好的 `.so` 文件，因为不同机器的编译代码可能不兼容。","https:\u002F\u002Fgithub.com\u002FPeterWang512\u002FGANSketching\u002Fissues\u002F14",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},45493,"如何使用 GANSpace 进一步修改生成模型（例如改变背景）？","GANSpace 是一种用于潜在方向（latent direction）的无监督方法。要实现特定编辑（如将室内背景改为室外草地），你需要手动检查并确定使用哪一层（layers）以及哪个主成分（principle component）。注意，这种方法不能保证一定能找到所需的编辑操作。建议详细阅读 GANSpace 论文及其官方代码库以获取具体操作指南。","https:\u002F\u002Fgithub.com\u002FPeterWang512\u002FGANSketching\u002Fissues\u002F20",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},45494,"训练得到的模型 FID 指标与预训练模型不一致是什么原因？","训练脚本生成的模型 FID 可能与提供的预训练权重（如 photosketch_horse_riders_aug.pth）不同。预训练模型通常是经过大量迭代后选取的最佳结果。若要获得相近的 FID，需要在训练过程中监控指标，并从 `.\u002Fcheckpoints\u002F\u003Cexp_name>\u002F` 目录中找到记录的最佳迭代次数（best iteration）对应的模型权重，而不是直接使用最后一次迭代的模型。","https:\u002F\u002Fgithub.com\u002FPeterWang512\u002FGANSketching\u002Fissues\u002F15",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},45495,"加载编译好的 fused 模块时出现 'Segmentation fault (Core dumped)' 错误怎么办？","该问题通常发生在加载自定义编译的 CUDA 扩展模块时。目前维护者确认项目在 Ubuntu 环境下开发，但具体导致段错误的原因尚在调查中。建议确保你的 CUDA 版本、PyTorch 版本与编译环境完全一致，并尽量使用项目默认的动态编译流程（即让代码自动调用 `load` 函数编译），避免手动指定已编译库的路径，除非你非常清楚底层依赖关系。","https:\u002F\u002Fgithub.com\u002FPeterWang512\u002FGANSketching\u002Fissues\u002F17",{"id":148,"question_zh":149,"answer_zh":150,"source_url":126},45496,"在 Windows 上运行生成脚本时遇到状态字典加载错误是否与系统有关？","虽然错误信息显示为状态字典键值不匹配，但这往往是因为用户试图在非标准分辨率（非 1024）下加载专为 1024 分辨率训练的面部模型权重。无论操作系统是 Windows 还是 Linux，都必须传递 `--size 1024` 参数。如果在 Windows 上因显存限制无法运行 1024 分辨率，需通过 `--batch_size` 参数降低显存占用，而不是更改分辨率。",[]]