[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hzwer--ICCV2019-LearningToPaint":3,"tool-hzwer--ICCV2019-LearningToPaint":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 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":74,"owner_email":74,"owner_twitter":72,"owner_website":76,"owner_url":77,"languages":78,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":10,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":100,"github_topics":101,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":107,"updated_at":108,"faqs":109,"releases":145},5177,"hzwer\u002FICCV2019-LearningToPaint","ICCV2019-LearningToPaint","ICCV2019 - Learning to Paint With Model-based Deep Reinforcement Learning","ICCV2019-LearningToPaint 是一个基于深度强化学习的开源项目，旨在教会机器像人类画家一样，仅用少量笔触就能创作出精彩的画作。它主要解决了传统图像生成方法难以模拟真实绘画过程、缺乏艺术笔触感的问题，让 AI 能够自主规划每一笔的位置与颜色，将纹理丰富的图片分解为连贯的绘画步骤。\n\n该项目特别适合对计算机视觉、强化学习感兴趣的研究人员和开发者使用，同时也为数字艺术创作者提供了探索 AI 辅助绘画的新思路。普通用户也可通过 Colab 在线体验其生成效果，感受从空白画布到完整作品的动态过程。\n\n其核心技术亮点在于采用了“基于模型的深度强化学习”框架，并引入了可微分的神经渲染器（Neural Renderer），使智能体能在无需人类画家经验或笔触追踪数据的情况下进行自我训练。系统支持多种笔触类型（如三角形、圆形、贝塞尔曲线等），并允许用户自定义训练环境与代理模型，具备高度的灵活性与可扩展性。","# ICCV2019-Learning to Paint\n\n## [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1903.04411) | [YouTube](https:\u002F\u002Fyoutu.be\u002FYmOgKZ5oipk) | [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Freinforcementlearning\u002Fcomments\u002Fb5lpfl\u002Flearning_to_paint_with_modelbased_deep\u002F) | [Slide(中文)](https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1itHk_yI8847wx-meH9k0v_8dNZS2dD0p\u002Fedit?usp=sharing&ouid=101528516762521089540&rtpof=true&sd=true) | [DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fhzwer\u002FICCV2019-LearningToPaint) | [Replicate](https:\u002F\u002Freplicate.ai\u002Fhzwer\u002Ficcv2019-learningtopaint)\n[Zhewei Huang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=zJEkaG8AAAAJ&hl=zh-CN&oi=sra), Wen Heng, [Shuchang Zhou](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=zYI0rysAAAAJ&hl=zh-CN&oi=sra)\n\n## Abstract\n\nWe show how to teach machines to paint like human painters, who can use a\nsmall number of strokes to create fantastic paintings. By employing a neural\nrenderer in model-based Deep Reinforcement Learning (DRL), our agents learn to\ndetermine the position and color of each stroke and make long-term plans to\ndecompose texture-rich images into strokes. Experiments demonstrate that\nexcellent visual effects can be achieved using hundreds of strokes. The\ntraining process does not require the experience of human painters or stroke\ntracking data. \n\n**You can easily use [colaboratory](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhzwer\u002FLearningToPaint\u002Fblob\u002Fmaster\u002FLearningToPaint.ipynb) to have a try.**\n\n![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_c8ef61a14c67.gif)![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_1f83038baf23.gif)![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_61f20316b1d1.gif)\n![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_b6d229afad8c.gif)![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_fa014052f526.gif)![Demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_2b4155c2b568.gif)\n\n### Dependencies\n* [PyTorch](http:\u002F\u002Fpytorch.org\u002F) 1.1.0 \n* [tensorboardX](https:\u002F\u002Fgithub.com\u002Flanpa\u002Ftensorboard-pytorch\u002Ftree\u002Fmaster\u002FtensorboardX)\n* [opencv-python](https:\u002F\u002Fpypi.org\u002Fproject\u002Fopencv-python\u002F) 3.4.0\n```\npip3 install torch==1.1.0\npip3 install tensorboardX\npip3 install opencv-python\n```\n\n## Testing\nMake sure there are renderer.pkl and actor.pkl before testing.\n\nYou can download a trained neural renderer and a CelebA actor for test: [renderer.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4) and [actor.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR)\n\n```\n$ wget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4\" -O renderer.pkl\n$ wget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR\" -O actor.pkl\n$ python3 baseline\u002Ftest.py --max_step=100 --actor=actor.pkl --renderer=renderer.pkl --img=image\u002Ftest.png --divide=4\n$ ffmpeg -r 10 -f image2 -i output\u002Fgenerated%d.png -s 512x512 -c:v libx264 -pix_fmt yuv420p video.mp4 -q:v 0 -q:a 0\n(make a painting process video)\n```\n\nWe also provide with some other neural renderers and agents, you can use them instead of renderer.pkl to train the agent:\n\n[triangle.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1YefdnTuKlvowCCo1zxHTwVJ2GlBme_eE) --- [actor_triangle.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1k8cgh3tF7hKFk-IOZrgsUwlTVE3CbcPF);\n\n[round.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1kI4yXQ7IrNTfjFs2VL7IBBL_JJwkW6rl) --- [actor_round.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1ewDErUhPeGsEcH8E5a2QAcUBECeaUTZe);\n\n[bezierwotrans.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1XUdti00mPRh1-1iU66Uqg4qyMKk4OL19) --- [actor_notrans.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1VBtesw2rHmYu2AeJ22XvTCuzuqkY8hZh)\n\nWe also provide 百度网盘 source. 链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1GELBQCeYojPOBZIwGOKNmA 提取码: aq8n \n## Training\n\n### Datasets\nDownload the [CelebA](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FCelebA.html) dataset and put the aligned images in data\u002Fimg_align_celeba\u002F\\*\\*\\*\\*\\*\\*.jpg\n\n### Neural Renderer\nTo create a differentiable painting environment, we need train the neural renderer firstly. \n\n```\n$ python3 baseline\u002Ftrain_renderer.py\n$ tensorboard --logdir train_log --port=6006\n(The training process will be shown at http:\u002F\u002F127.0.0.1:6006)\n```\n\n### Paint Agent\nAfter the neural renderer looks good enough, we can begin training the agent.\n```\n$ cd baseline\n$ python3 train.py --max_step=40 --debug --batch_size=96\n(A step contains 5 strokes in default.)\n$ tensorboard --logdir train_log --port=6006\n```\n\n## Resources\n[量子位报道](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F64097633)\n\n[Learning to Paint：一个绘画 AI](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F61761901)\n\n[旷视研究院推出基于深度强化学习的绘画智能体](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F80732065)\n\n* Our ICCV poster\n  \u003Cdiv>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_bb5394e71182.png\" width=\"800\">\n  \u003C\u002Fdiv>\n* [Our ICCV rebuttal for reviewers](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1bEBS-uxmVEc7WVuX35NCodxDu17s_d8m\u002Fview?usp=sharing)\n## Contributors\n- [hzwer](https:\u002F\u002Fgithub.com\u002Fhzwer)\n- [ak9250](https:\u002F\u002Fgithub.com\u002Fak9250)\n\nAlso many thanks to [ctmakro](https:\u002F\u002Fgithub.com\u002Fctmakro\u002Frl-painter) for inspiring this work. He also explored using greedy algorithm to generate paintings - [opencv_playground](https:\u002F\u002Fgithub.com\u002Fctmakro\u002Fopencv_playground).\n\nIf you find this repository useful for your research, please cite the following paper:\n```\n@inproceedings{huang2019learning,\n  title={Learning to paint with model-based deep reinforcement learning},\n  author={Huang, Zhewei and Heng, Wen and Zhou, Shuchang},\n  booktitle={Proceedings of the IEEE International Conference on Computer Vision (ICCV)},\n  year={2019}\n}\n```\n","# ICCV2019-学习绘画\n\n## [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F1903.04411) | [YouTube](https:\u002F\u002Fyoutu.be\u002FYmOgKZ5oipk) | [Reddit](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Freinforcementlearning\u002Fcomments\u002Fb5lpfl\u002Flearning_to_paint_with_modelbased_deep\u002F) | [幻灯片（中文）](https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1itHk_yI8847wx-meH9k0v_8dNZS2dD0p\u002Fedit?usp=sharing&ouid=101528516762521089540&rtpof=true&sd=true) | [DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fhzwer\u002FICCV2019-LearningToPaint) | [Replicate](https:\u002F\u002Freplicate.ai\u002Fhzwer\u002Ficcv2019-learningtopaint)\n[Zhewei Huang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=zJEkaG8AAAAJ&hl=zh-CN&oi=sra), Wen Heng, [Shuchang Zhou](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=zYI0rysAAAAJ&hl=zh-CN&oi=sra)\n\n## 摘要\n\n我们展示了如何教会机器像人类画家一样绘画——那些仅用少量笔触就能创作出精彩画作的艺术家。通过在基于模型的深度强化学习（DRL）中引入神经渲染器，我们的智能体能够学会决定每笔的位置和颜色，并制定长期计划，将纹理丰富的图像分解为一系列笔触。实验表明，仅需数百笔即可达到出色的视觉效果。训练过程中无需人类画家的经验或笔触追踪数据。\n\n**您可以通过[Colaboratory](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhzwer\u002FLearningToPaint\u002Fblob\u002Fmaster\u002FLearningToPaint.ipynb)轻松尝试。**\n\n![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_c8ef61a14c67.gif)![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_1f83038baf23.gif)![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_61f20316b1d1.gif)\n![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_b6d229afad8c.gif)![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_fa014052f526.gif)![演示](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_2b4155c2b568.gif)\n\n### 依赖项\n* [PyTorch](http:\u002F\u002Fpytorch.org\u002F) 1.1.0 \n* [tensorboardX](https:\u002F\u002Fgithub.com\u002Flanpa\u002Ftensorboard-pytorch\u002Ftree\u002Fmaster\u002FtensorboardX)\n* [opencv-python](https:\u002F\u002Fpypi.org\u002Fproject\u002Fopencv-python\u002F) 3.4.0\n```\npip3 install torch==1.1.0\npip3 install tensorboardX\npip3 install opencv-python\n```\n\n## 测试\n测试前请确保存在renderer.pkl和actor.pkl。\n\n您可以下载一个训练好的神经渲染器和CelebA智能体用于测试：[renderer.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4) 和 [actor.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR)\n\n```\n$ wget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4\" -O renderer.pkl\n$ wget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR\" -O actor.pkl\n$ python3 baseline\u002Ftest.py --max_step=100 --actor=actor.pkl --renderer=renderer.pkl --img=image\u002Ftest.png --divide=4\n$ ffmpeg -r 10 -f image2 -i output\u002Fgenerated%d.png -s 512x512 -c:v libx264 -pix_fmt yuv420p video.mp4 -q:v 0 -q:a 0\n(制作绘画过程视频)\n```\n\n我们还提供了其他神经渲染器和智能体，您可以使用它们代替renderer.pkl来训练智能体：\n\n[triangle.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1YefdnTuKlvowCCo1zxHTwVJ2GlBme_eE) --- [actor_triangle.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1k8cgh3tF7hKFk-IOZrgsUwlTVE3CbcPF);\n\n[round.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1kI4yXQ7IrNTfjFs2VL7IBBL_JJwkW6rl) --- [actor_round.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1ewDErUhPeGsEcH8E5a2QAcUBECeaUTZe);\n\n[bezierwotrans.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1XUdti00mPRh1-1iU66Uqg4qyMKk4OL19) --- [actor_notrans.pkl](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1VBtesw2rHmYu2AeJ22XvTCuzuqkY8hZh)\n\n我们还提供百度网盘资源。链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1GELBQCeYojPOBZIwGOKNmA 提取码: aq8n \n## 训练\n\n### 数据集\n下载[CelebA](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FCelebA.html)数据集，并将对齐后的图像放入data\u002Fimg_align_celeba\u002F\\*\\*\\*\\*\\*\\*.jpg目录下。\n\n### 神经渲染器\n为了创建可微分的绘画环境，我们需要首先训练神经渲染器。\n\n```\n$ python3 baseline\u002Ftrain_renderer.py\n$ tensorboard --logdir train_log --port=6006\n(训练过程将在http:\u002F\u002F127.0.0.1:6006上显示)\n```\n\n### 绘画智能体\n当神经渲染器表现足够好后，我们可以开始训练智能体。\n```\n$ cd baseline\n$ python3 train.py --max_step=40 --debug --batch_size=96\n(默认情况下，一步包含5笔。)\n$ tensorboard --logdir train_log --port=6006\n```\n\n## 资源\n[量子位报道](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F64097633)\n\n[学习绘画：一个绘画AI](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F61761901)\n\n[旷视研究院推出基于深度强化学习的绘画智能体](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F80732065)\n\n* 我们的ICCV海报\n  \u003Cdiv>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_readme_bb5394e71182.png\" width=\"800\">\n  \u003C\u002Fdiv>\n* [我们针对审稿人的ICCV反驳意见](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1bEBS-uxmVEc7WVuX35NCodxDu17s_d8m\u002Fview?usp=sharing)\n## 贡献者\n- [hzwer](https:\u002F\u002Fgithub.com\u002Fhzwer)\n- [ak9250](https:\u002F\u002Fgithub.com\u002Fak9250)\n\n同时非常感谢[ctmakro](https:\u002F\u002Fgithub.com\u002Fctmakro\u002Frl-painter)对本工作的启发。他还探索了使用贪心算法生成绘画作品——[opencv_playground](https:\u002F\u002Fgithub.com\u002Fctmakro\u002Fopencv_playground)。\n\n如果您认为本仓库对您的研究有所帮助，请引用以下论文：\n```\n@inproceedings{huang2019learning,\n  title={Learning to paint with model-based deep reinforcement learning},\n  author={Huang, Zhewei and Heng, Wen and Zhou, Shuchang},\n  booktitle={Proceedings of the IEEE International Conference on Computer Vision (ICCV)},\n  year={2019}\n}\n```","# ICCV2019-LearningToPaint 快速上手指南\n\n本项目旨在通过基于模型的深度强化学习（DRL），教会机器像人类画家一样，用少量笔触创作出精彩的画作。代理（Agent）能够自主决定每笔的位置和颜色，并将纹理丰富的图像分解为笔触序列。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux \u002F macOS (Windows 需自行配置 PyTorch 环境)\n- **Python**: 推荐 Python 3.6+\n- **GPU**: 推荐使用 NVIDIA GPU 加速训练和推理（可选，CPU 亦可运行但较慢）\n\n### 前置依赖\n本项目依赖以下核心库：\n- PyTorch 1.1.0\n- tensorboardX\n- opencv-python 3.4.0\n\n> **提示**：国内开发者建议使用清华或阿里镜像源加速安装。\n\n## 安装步骤\n\n### 1. 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fhzwer\u002FLearningToPaint.git\ncd LearningToPaint\n```\n\n### 2. 安装依赖\n使用 pip 安装指定版本的依赖包：\n\n```bash\npip3 install torch==1.1.0 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip3 install tensorboardX -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip3 install opencv-python==3.4.0 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 下载预训练模型（测试用）\n在测试前，需要下载预训练的神经渲染器（renderer）和代理模型（actor）。\n\n**方式一：直接下载 (Google Drive)**\n```bash\nwget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4\" -O renderer.pkl\nwget \"https:\u002F\u002Fdrive.google.com\u002Fuc?export=download&id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR\" -O actor.pkl\n```\n\n**方式二：百度网盘 (国内推荐)**\n- 链接: https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1GELBQCeYojPOBZIwGOKNmA\n- 提取码: `aq8n`\n- 下载后将 `renderer.pkl` 和 `actor.pkl` 放置于项目根目录。\n\n## 基本使用\n\n### 快速体验 (Colab)\n如果你不想配置本地环境，可以直接在 Google Colab 上运行：\n[打开 Colab 笔记本](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fhzwer\u002FLearningToPaint\u002Fblob\u002Fmaster\u002FLearningToPaint.ipynb)\n\n### 本地测试推理\n确保当前目录下存在 `renderer.pkl` 和 `actor.pkl`，并准备一张测试图片（例如放入 `image\u002Ftest.png`）。\n\n运行以下命令生成绘画过程：\n\n```bash\npython3 baseline\u002Ftest.py --max_step=100 --actor=actor.pkl --renderer=renderer.pkl --img=image\u002Ftest.png --divide=4\n```\n\n生成的图片将保存在 `output\u002F` 目录下。你可以使用 ffmpeg 将其合成为视频：\n\n```bash\nffmpeg -r 10 -f image2 -i output\u002Fgenerated%d.png -s 512x512 -c:v libx264 -pix_fmt yuv420p video.mp4 -q:v 0 -q:a 0\n```\n\n### 其他可用模型\n项目还提供了不同笔触类型的模型（三角形、圆形、贝塞尔曲线），替换上述 `.pkl` 文件即可尝试不同风格：\n- **三角形**: `triangle.pkl` + `actor_triangle.pkl`\n- **圆形**: `round.pkl` + `actor_round.pkl`\n- **贝塞尔 (无变换)**: `bezierwotrans.pkl` + `actor_notrans.pkl`\n\n---\n*注：如需从头训练模型，请参照原文档 \"Training\" 章节准备 CelebA 数据集并运行 `train_renderer.py` 及 `train.py`。*","一位数字艺术创作者希望将高清照片快速转化为具有手绘笔触质感的艺术画作，用于社交媒体内容创作或个性化装饰画生成。\n\n### 没有 ICCV2019-LearningToPaint 时\n- 依赖传统滤镜或风格迁移算法，生成的图像往往缺乏真实的“笔触感”，画面显得平滑且机械，无法模拟人类画家层层叠加的绘画逻辑。\n- 若要获得高质量的手绘效果，必须聘请专业画师手工临摹，不仅成本高昂，且单幅作品耗时数天，无法满足批量生产需求。\n- 现有的自动化方案难以控制笔触的数量和顺序，无法生成展示“绘画过程”的动态视频，限制了内容在短视频平台的传播潜力。\n- 训练自定义风格模型通常需要大量带有笔触轨迹标注的数据集，这类数据极难获取且标注成本极高，导致个人开发者望而却步。\n\n### 使用 ICCV2019-LearningToPaint 后\n- 利用基于模型的深度强化学习，ICCV2019-LearningToPaint 能自主规划长短期策略，仅用数百个笔触即可将复杂纹理图像分解为生动的油画或水彩风格，笔触自然且富有艺术感。\n- 无需任何人类画家的经验数据或笔触跟踪标注，系统即可通过神经渲染器自我进化，大幅降低了定制化艺术风格模型的技术门槛和时间成本。\n- 能够按步骤输出每一笔的绘制状态，轻松合成从空白画布到成品的全过程动画，为创作者提供了极具视觉冲击力的短视频素材。\n- 支持多种笔触类型（如三角形、圆形、贝塞尔曲线）的灵活切换，用户可根据目标风格选择预训练模型，快速实现不同艺术流派的转换。\n\nICCV2019-LearningToPaint 的核心价值在于让机器真正学会了像人类画家一样思考与运笔，以极低的数据成本实现了高质量、可解释的艺术创作自动化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhzwer_ICCV2019-LearningToPaint_14165fa9.png","hzwer","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhzwer_afcaad10.jpg",null,"@stepfun-ai","https:\u002F\u002Fscholar.google.com.hk\u002Fcitations?user=zJEkaG8AAAAJ&hl=zh-CN&oi=ao","https:\u002F\u002Fgithub.com\u002Fhzwer",[79,83],{"name":80,"color":81,"percentage":82},"Python","#3572A5",89.9,{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",10.1,2296,311,"2026-04-06T03:53:44","MIT","未说明","未说明 (基于 PyTorch 和深度强化学习，通常建议使用 NVIDIA GPU)",{"notes":94,"python":95,"dependencies":96},"测试前需手动下载预训练模型文件（renderer.pkl 和 actor.pkl）。训练阶段需要先训练神经渲染器（Neural Renderer），然后再训练绘画智能体（Paint Agent）。生成过程视频需要安装 ffmpeg。项目提供了 Google Drive 和百度网盘的模型下载链接。","3.x (通过 pip3 和 python3 命令推断)",[97,98,99],"torch==1.1.0","tensorboardX","opencv-python==3.4.0",[14,15],[102,103,104,105,106],"deep-learning","reinforcement-learning","computer-vision","pytorch","painting","2026-03-27T02:49:30.150509","2026-04-08T01:49:11.617985",[110,115,120,125,130,135,140],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},23470,"Critic（评论家）网络的输入和输出分别是什么？","Critic 的输入包含当前画布状态（Canvas）、目标图像（Target Image）以及当前步数（#Step）。其输出是在状态 s 下执行动作 a 后的预期奖励（expected reward），其中包含了单步奖励。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F40",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},23471,"为什么需要训练神经渲染器（Neural Renderer），传统的渲染器（如 stroke_gen.py）有什么问题？","传统渲染器（stroke_gen.py）无法在训练过程中推导梯度，因为像素位置和像素值的离散性需要在求导时进行连续近似。而神经渲染器解决了这个问题，使得反向传播成为可能。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F27",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},23472,"代码中的 'divide' 参数和将画布分割的策略是在训练阶段使用的吗？","不是。'divide' 参数并未在论文中提及，它只是一个在推理（inference）阶段引入的人工策略，用于让演示效果看起来更好。在训练过程中并不使用画布分割。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F58",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},23473,"更新策略时的价值损失（Value Loss）计算公式应该是怎样的？","公式本质上是正确的：V_loss ≈ target_q - cur_q ≈ (self.critic(St+1) + reward(St+1)) * discount - self.critic(St)。虽然在代码实现中 evaluate 函数将单步奖励分离出来导致形式上略有不同，但在强化学习理论中，gan_reward 和 critic 应整体看作一个 Q 值。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F49",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},23474,"在这个项目中，Episode（回合）、图像数量、每回合步数之间的关系是怎样的？","这与标准的 Gym 环境有所不同。项目不统计 Episode 的数量，而是关注训练迭代次数（training iterations）。具体流程是：首先从数据集（如 CelebA）中选择一张目标图像，Actor 在每个步骤决定在画布上绘制 5 个笔触，环境反馈状态。步数（steps）控制绘制该目标图像的总步数，而不是以传统的“回合结束”为界限。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F42",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},23475,"运行 train.py 时遇到内存溢出（Run out of memory\u002FKilled）怎么办？","这通常是因为加载大量图像数据导致 RAM 耗尽。即使有较大的虚拟内存，进程也可能被系统杀死。建议尝试减小 batch_size（例如从 96 调小），或者检查数据加载逻辑是否一次性加载了过多图片到内存中。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F23",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},23476,"运行训练脚本时出现关于 torch.tensor 的 UserWarning 警告，需要修复吗？","这是一个关于张量构建方式的警告。建议使用 sourceTensor.clone().detach() 或 sourceTensor.clone().detach().requires_grad_(True) 来替代直接使用 torch.tensor(sourceTensor)，以避免不必要的梯度追踪问题，但这通常不会导致程序中断。如果程序被中断（如 ^C），通常是用户手动停止或内存不足导致的。","https:\u002F\u002Fgithub.com\u002Fhzwer\u002FICCV2019-LearningToPaint\u002Fissues\u002F4",[]]