[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-LTH14--rcg":3,"tool-LTH14--rcg":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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"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",[27,13,15,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":105,"github_topics":77,"view_count":24,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":107,"updated_at":108,"faqs":109,"releases":144},10085,"LTH14\u002Frcg","rcg","PyTorch implementation of RCG https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.03701","rcg 是一个基于 PyTorch 的开源图像生成框架，源自 NeurIPS 2024 的口头报告论文。它核心致力于解决长期存在的“无条件图像生成”与“类别条件生成”之间的性能差距问题。传统上，不带类别标签的无条件生成在画质和多样性上往往逊色于有条件生成，而 rcg 通过创新的自监督表示生成方法，在 ImageNet 256x256 分辨率下实现了业界领先（SOTA）的无条件生成效果，让模型无需依赖类别标签也能合成高质量图像。\n\n该工具的独特技术亮点在于其“自条件”（self-conditioned）机制，利用预训练的视觉编码器（如 MoCo v3 ViT）提取特征，并在此基础上训练表示扩散模型（RDM），从而桥接了表征学习与图像生成的鸿沟。项目提供了完整的训练脚本、配置文件以及在 V100 等多卡环境下的运行示例，并支持加载预训练权重进行快速评估或微调。\n\nrcg 主要面向人工智能研究人员、计算机视觉开发者以及对生成式模型底层原理感兴趣的工程师。如果你希望深入研究无条件生成技术、复现前沿论文成果，或探索自监督学习在图像合成中的应用潜力，rcg 将是一个极具价值的参考实现。需要注意的是","rcg 是一个基于 PyTorch 的开源图像生成框架，源自 NeurIPS 2024 的口头报告论文。它核心致力于解决长期存在的“无条件图像生成”与“类别条件生成”之间的性能差距问题。传统上，不带类别标签的无条件生成在画质和多样性上往往逊色于有条件生成，而 rcg 通过创新的自监督表示生成方法，在 ImageNet 256x256 分辨率下实现了业界领先（SOTA）的无条件生成效果，让模型无需依赖类别标签也能合成高质量图像。\n\n该工具的独特技术亮点在于其“自条件”（self-conditioned）机制，利用预训练的视觉编码器（如 MoCo v3 ViT）提取特征，并在此基础上训练表示扩散模型（RDM），从而桥接了表征学习与图像生成的鸿沟。项目提供了完整的训练脚本、配置文件以及在 V100 等多卡环境下的运行示例，并支持加载预训练权重进行快速评估或微调。\n\nrcg 主要面向人工智能研究人员、计算机视觉开发者以及对生成式模型底层原理感兴趣的工程师。如果你希望深入研究无条件生成技术、复现前沿论文成果，或探索自监督学习在图像合成中的应用潜力，rcg 将是一个极具价值的参考实现。需要注意的是，使用该工具需要具备一定的深度学习基础及 GPU 计算资源。","# RCG PyTorch Implementation\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_3ae04cc07d5f.png\" width=\"560\">\n\u003C\u002Fp>\n\nThis is a PyTorch\u002FGPU implementation of the paper [Return of Unconditional Generation: A Self-supervised Representation Generation Method](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.03701) (Neurips 2024 Oral Presentation):\n```\n@Article{RCG2023,\n  author  = {Tianhong Li and Dina Katabi and Kaiming He},\n  journal = {arXiv:2312.03701},\n  title   = {Return of Unconditional Generation: A Self-supervised Representation Generation Method},\n  year    = {2023},\n}\n```\n\nRCG is a self-conditioned image generation framework that achieves SOTA unconditional image generation performance on ImageNet 256x256, bridging the \nlong-standing performance gap between unconditional and class-conditional image generation. \n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_3d16483d018b.png\" width=\"560\">\n\u003C\u002Fp>\n\n## Updates\n\n### March 2024\n\n- Update FID evaluation and results to follow [ADM suite](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fguided-diffusion\u002Ftree\u002Fmain\u002Fevaluations) by providing statistics in ```torch-fidelity```.\nThe modified ```torch-fidelity``` could be installed via \n\n```\npip install -e git+https:\u002F\u002Fgithub.com\u002FLTH14\u002Ftorch-fidelity.git@master#egg=torch-fidelity\n```\n\nTo provide statistics, set ```fid_statistics_file``` to your statistics file in ```torch_fidelity.calculate_metrics``` in the engine files.\n\n- Update an ADM checkpoint trained for 400 epochs (same as the original paper).\n- Include training scripts and pre-trained checkpoint (400 epochs) for DiT-XL with RCG.\n- Update Arxiv.\n\n## Preparation\n\n### Dataset\nDownload [ImageNet](http:\u002F\u002Fimage-net.org\u002Fdownload) dataset, and place it in your `IMAGENET_DIR`.\nPrepare the ImageNet validation set for FID evaluation against validation set:\n```\npython prepare_imgnet_val.py --data_path ${IMAGENET_DIR} --output_dir imagenet-val\n```\nTo evaluate FID against the validation set, do ```pip install torch-fidelity``` which install the original ```torch-fidelity``` package.\n### Installation\n\nDownload the code\n```\ngit clone https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg.git\ncd rcg\n```\n\nA suitable [conda](https:\u002F\u002Fconda.io\u002F) environment named `rcg` can be created and activated with:\n\n```\nconda env create -f environment.yaml\nconda activate rcg\n```\n\nUse [this link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13S_unB87n6KKuuMdyMnyExW0G1kplTbP\u002Fview?usp=sharing)\nto download the pre-trained VQGAN tokenzier as ```vqgan_jax_strongaug.ckpt```.\n\nUse [this link](https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fmoco-v3\u002Fvit-b-300ep\u002Fvit-b-300ep.pth.tar) \nto download the pre-trained moco v3 ViT-B encoder and name it as ```pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar```.\n\nUse [this link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Foa2-FqhwIFYjcAAbY9sXyO-1Vwwx-_9\u002Fview?usp=sharing)\nto download the pre-trained moco v3 ViT-L encoder and name it as ```pretrained_enc_ckpts\u002Fmocov3\u002Fvitl.pth.tar```.\n\n## Usage\n\n### RDM\n\nTo train the Moco v3 ViT-B representation diffusion model using 4 V100 GPUs:\n```\npython -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 \\\nmain_rdm.py \\\n--config config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml \\\n--batch_size 128 --input_size 256 \\\n--epochs 200 \\\n--blr 1e-6 --weight_decay 0.01 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\nTo continue a previously interrupted training session, set ```--resume``` to the ```OUTPUT_DIR``` where ```checkpoint-last.pth``` is stored.\n\nThe following table provides the pre-trained weights of the \nMoco v3 ViT-B\u002FViT-L RDM used in the paper:\n\u003Ctable>\u003Ctbody>\n\u003C!-- START TABLE -->\n\u003C!-- TABLE HEADER -->\n\u003Cth valign=\"bottom\">\u003C\u002Fth>\n\u003Cth valign=\"bottom\">Moco v3 ViT-B\u003C\u002Fth>\n\u003Cth valign=\"bottom\">Moco v3 ViT-L\u003C\u002Fth>\n\u003C!-- TABLE BODY -->\n\u003Ctr>\u003Ctd align=\"left\">Class-unconditional RDM\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1gdsvzKLmmBWuF4Ymy4rQ_T1t6dDHnTEA\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml\">config\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1E5E3i9LRpSy0tVF7NA0bGXEh4CrjHAXz\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitl_simplemlp_l12_w1536.yaml\">config\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">Class-conditional RDM\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1roanmVfg-UaddVehstQErvByqi0OYs2R\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536_classcond.yaml\">config\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1lZmXOcdHE97Qmn2azNAo2tNVX7dtTAkY\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitl_simplemlp_l12_w1536_classcond.yaml\">config\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\n### Pixel Generator: MAGE\nTo train a MAGE-B conditioned on Moco v3 ViT-B representations, using 64 V100 GPUs for 200 epochs:\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=8 --node_rank=0 \\\nmain_mage.py \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar --rep_drop_prob 0.1 \\\n--use_rep --rep_dim 256 --pretrained_enc_withproj --pretrained_enc_proj_dim 256 \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} --pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--rdm_steps 250 --eta 1.0 --temp 6.0 --num_iter 20 --num_images 50000 --cfg 0.0 \\\n--batch_size 64 --input_size 256 \\\n--model mage_vit_base_patch16 \\\n--mask_ratio_min 0.5 --mask_ratio_max 1.0 --mask_ratio_mu 0.75 --mask_ratio_std 0.25 \\\n--epochs 200 \\\n--warmup_epochs 10 \\\n--blr 1.5e-4 --weight_decay 0.05 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\nTo train a MAGE-L conditioned on Moco v3 ViT-L representations, \nchange ```RDM_CFG_PATH``` and ```RDM_CKPT_PATH``` for Moco v3 ViT-L RDM, as well as the following arguments: \n```\n--pretrained_enc_arch mocov3_vit_large --pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitl.pth.tar --temp 11.0 --model mage_vit_large_patch16\n```\n**Resume**: set ```--resume``` to the ```OUTPUT_DIR``` where ```checkpoint-last.pth``` is stored.\n\n**Evaluation**: set ```--resume``` to the pre-trained MAGE checkpoint and\ninclude the ```--evaluate``` flag in the above script.\n\n**Pre-trained Models**:\n\u003Ctable>\u003Ctbody>\n\u003C!-- START TABLE -->\n\u003C!-- TABLE HEADER -->\n\u003Cth valign=\"bottom\">\u003C\u002Fth>\n\u003Cth valign=\"bottom\">Rep. Cond. MAGE-B\u003C\u002Fth>\n\u003Cth valign=\"bottom\">Rep. Cond. MAGE-L\u003C\u002Fth>\n\u003C!-- TABLE BODY -->\n\u003Ctr>\u003Ctd align=\"left\">Checkpoint\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iZY0ujWp5GVochTLj0U6j4HgVTOyWPUI\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1nQh9xCqjQCd78zKwn2L9eLfLyVosb1hp\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">Class-unconditional Generation (w\u002Fo CFG) \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.98, IS=177.8\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.44, IS=186.9\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">Class-unconditional Generation (w\u002F CFG) \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.19, IS=214.9 (cfg=1.0)\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.15, IS=253.4 (cfg=6.0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">Class-conditional Generation (w\u002Fo CFG) \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.50, IS=194.9\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.99, IS=215.5\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">Class-conditional Generation (w\u002F CFG) \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.18, IS=242.6 (cfg=1.0)\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.25, IS=300.7 (cfg=6.0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\n**Visualization**: use ```viz_rcg.ipynb``` to visualize generation results.\n\nClass-unconditional generation examples:\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_72fe0eca84e9.jpg\" width=\"800\">\n\u003C\u002Fp>\n\nClass-conditional generation examples:\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_d8e29b77229a.jpg\" width=\"800\">\n\u003C\u002Fp>\n\n### Pixel Generator: DiT\n\nTo train a DiT-L conditioned on Moco v3 ViT-B representations, using 128 V100 GPUs for 400 epochs:\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=16 --node_rank=0 \\\nmain_dit.py \\\n--rep_cond --rep_dim 256 \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} \\\n--pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--batch_size 16 --image_size 256 --dit_model DiT-L\u002F2 --num-sampling-steps ddim25 \\\n--epochs 400  \\\n--lr 1e-4 --weight_decay 0.0 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**Note**: sometimes ```batch_size=16``` causes out of memory for DiT-XL. Changing it to 12 or 14 has a negligible effect on performance.\n\n**Resume**: set ```--resume``` to the ```OUTPUT_DIR``` where ```checkpoint-last.pth``` is stored.\n\n**Evaluation**: set ```--resume``` to the pre-trained DiT checkpoint and\ninclude the ```--evaluate``` flag in the above script. Set ```--num-sampling-steps 250``` for better generation performance.\n\n**Pre-trained DiT-XL\u002F2** (400 epochs) conditioned on Moco v3 ViT-B representations can be downloaded [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1DgtdT0WELTWv9P6II_OA2AHOEiHCj-nK\u002Fview?usp=sharing) (FID=4.89, IS=143.2).\n\n\n### Pixel Generator: ADM\n\nTo train an ADM conditioned on Moco v3 ViT-B representations, using 128 V100 GPUs for 100 epochs:\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=16 --node_rank=0 \\\nmain_adm.py \\\n--rep_cond --rep_dim 256 \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} \\\n--pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--batch_size 2 --image_size 256 \\\n--epochs 100  \\\n--lr 1e-4 --weight_decay 0.0 \\\n--attention_resolutions 32,16,8 --diffusion_steps 1000 \\\n--learn_sigma --noise_schedule linear \\\n--num_channels 256 --num_head_channels 64 --num_res_blocks 2 --resblock_updown \\\n--use_scale_shift_norm \\\n--gen_timestep_respacing ddim25 --use_ddim \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**Resume**: set ```--resume``` to the ```OUTPUT_DIR``` where ```checkpoint-last.pth``` is stored.\n\n**Evaluation**: set ```--resume``` to the pre-trained ADM checkpoint and\ninclude the ```--evaluate``` flag in the above script. Set ```--gen_timestep_respacing 250``` and disable ```--use_ddim``` for better generation performance.\n\n**Pre-trained ADM** (400 epochs) conditioned on Moco v3 ViT-B representations can be downloaded [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1fjZYJ11uphaAEbQrSPzZ_KJY3l1Cy2LI\u002Fview?usp=sharing) (FID=6.24, IS=136.9).\n\n### Pixel Generator: LDM\n\nUse [this link](https:\u002F\u002Fommer-lab.com\u002Ffiles\u002Flatent-diffusion\u002Fvq-f8.zip) \nto download the tokenizer and name it as `vqgan-ckpts\u002Fldm_vqgan_f8_16384\u002Fcheckpoints\u002Flast.ckpt`.\n\nTo train an LDM-8 conditioned on Moco v3 ViT-B representations, using 64 V100 GPUs for 40 epochs:\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=8 --node_rank=0 \\\nmain_ldm.py \\\n--config config\u002Fldm\u002Fcin-ldm-vq-f8-repcond.yaml \\\n--batch_size 4 \\\n--epochs 40 \\\n--blr 2.5e-7 --weight_decay 0.01 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**Resume**: set ```--resume``` to the ```OUTPUT_DIR``` where ```checkpoint-last.pth``` is stored.\n\n**Evaluation**: set ```--resume``` to the pre-trained LDM checkpoint and\ninclude the ```--evaluate``` flag in the above script.\n\n**Pre-trained LDM** (40 epochs) conditioned on Moco v3 ViT-B representations can be downloaded [here](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1-qNGz5biWs9KwsjAMyR_GyciaWmF9axW\u002Fview?usp=sharing) (FID=11.30, IS=101.9).\n\n## Contact\n\nIf you have any questions, feel free to contact me through email (tianhong@mit.edu). Enjoy!\n","# RCG PyTorch 实现\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_3ae04cc07d5f.png\" width=\"560\">\n\u003C\u002Fp>\n\n这是论文《无条件生成的回归：一种自监督表征生成方法》（NeurIPS 2024 口头报告）的 PyTorch\u002FGPU 实现：\n```\n@Article{RCG2023,\n  author  = {李天宏、迪娜·卡塔比、何恺明},\n  journal = {arXiv:2312.03701},\n  title   = {无条件生成的回归：一种自监督表征生成方法},\n  year    = {2023},\n}\n```\n\nRCG 是一个自条件化的图像生成框架，在 ImageNet 256x256 数据集上实现了当前最优的无条件图像生成性能，从而弥合了长期以来无条件生成与类别条件生成之间的性能差距。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_3d16483d018b.png\" width=\"560\">\n\u003C\u002Fp>\n\n## 更新内容\n\n### 2024年3月\n\n- 更新 FID 评估和结果，以遵循 [ADM 套件](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fguided-diffusion\u002Ftree\u002Fmain\u002Fevaluations)，通过提供 ```torch-fidelity``` 中的统计信息。\n修改后的 ```torch-fidelity``` 可以通过以下命令安装：\n\n```\npip install -e git+https:\u002F\u002Fgithub.com\u002FLTH14\u002Ftorch-fidelity.git@master#egg=torch-fidelity\n```\n\n为了提供统计信息，请在引擎文件中的 ```torch_fidelity.calculate_metrics``` 中将 ```fid_statistics_file``` 设置为您的统计文件。\n\n- 更新了一个训练了 400 个 epoch 的 ADM 检查点（与原论文相同）。\n- 包含使用 RCG 的 DiT-XL 的训练脚本和预训练检查点（400 个 epoch）。\n- 更新 ArXiv。\n\n## 准备工作\n\n### 数据集\n下载 [ImageNet](http:\u002F\u002Fimage-net.org\u002Fdownload) 数据集，并将其放置在您的 `IMAGENET_DIR` 目录中。准备 ImageNet 验证集，以便与验证集进行 FID 评估：\n```\npython prepare_imgnet_val.py --data_path ${IMAGENET_DIR} --output_dir imagenet-val\n```\n要对验证集进行 FID 评估，需要运行 ```pip install torch-fidelity``` 来安装原始的 ```torch-fidelity``` 包。\n### 安装\n\n下载代码\n```\ngit clone https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg.git\ncd rcg\n```\n\n可以创建并激活一个名为 `rcg` 的合适的 [conda](https:\u002F\u002Fconda.io\u002F) 环境，命令如下：\n\n```\nconda env create -f environment.yaml\nconda activate rcg\n```\n\n使用 [此链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13S_unB87n6KKuuMdyMnyExW0G1kplTbP\u002Fview?usp=sharing)\n下载预训练的 VQGAN 分词器，命名为 ```vqgan_jax_strongaug.ckpt```。\n\n使用 [此链接](https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fmoco-v3\u002Fvit-b-300ep\u002Fvit-b-300ep.pth.tar) \n下载预训练的 MoCo v3 ViT-B 编码器，并将其命名为 ```pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar```。\n\n使用 [此链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Foa2-FqhwIFYjcAAbY9sXyO-1Vwwx-_9\u002Fview?usp=sharing)\n下载预训练的 MoCo v3 ViT-L 编码器，并将其命名为 ```pretrained_enc_ckpts\u002Fmocov3\u002Fvitl.pth.tar```。\n\n## 使用方法\n\n### RDM\n\n使用 4 张 V100 GPU 训练 MoCo v3 ViT-B 表征扩散模型：\n```\npython -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 \\\nmain_rdm.py \\\n--config config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml \\\n--batch_size 128 --input_size 256 \\\n--epochs 200 \\\n--blr 1e-6 --weight_decay 0.01 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n要继续之前中断的训练会话，需将 ```--resume``` 设置为存储有 ```checkpoint-last.pth``` 的 ```OUTPUT_DIR```。\n\n下表提供了论文中使用的 MoCo v3 ViT-B\u002FViT-L RDM 的预训练权重：\n\u003Ctable>\u003Ctbody>\n\u003C!-- START TABLE -->\n\u003C!-- TABLE HEADER -->\n\u003Cth valign=\"bottom\">\u003C\u002Fth>\n\u003Cth valign=\"bottom\">MoCo v3 ViT-B\u003C\u002Fth>\n\u003Cth valign=\"bottom\">MoCo v3 ViT-L\u003C\u002Fth>\n\u003C!-- TABLE BODY -->\n\u003Ctr>\u003Ctd align=\"left\">无条件 RDM\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1gdsvzKLmmBWuF4Ymy4rQ_T1t6dDHnTEA\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml\">配置\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1E5E3i9LRpSy0tVF7NA0bGXEh4CrjHAXz\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitl_simplemlp_l12_w1536.yaml\">配置\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">类别条件 RDM\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1roanmVfg-UaddVehstQErvByqi0OYs2R\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536_classcond.yaml\">配置\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1lZmXOcdHE97Qmn2azNAo2tNVX7dtTAkY\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa> \u002F \u003Ca href=\"config\u002Frdm\u002Fmocov3vitl_simplemlp_l12_w1536_classcond.yaml\">配置\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\n### 像素生成器：MAGE\n要训练一个基于 Moco v3 ViT-B 表征的 MAGE-B 模型，使用 64 张 V100 GPU 进行 200 个 epoch 的训练：\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=8 --node_rank=0 \\\nmain_mage.py \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar --rep_drop_prob 0.1 \\\n--use_rep --rep_dim 256 --pretrained_enc_withproj --pretrained_enc_proj_dim 256 \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} --pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--rdm_steps 250 --eta 1.0 --temp 6.0 --num_iter 20 --num_images 50000 --cfg 0.0 \\\n--batch_size 64 --input_size 256 \\\n--model mage_vit_base_patch16 \\\n--mask_ratio_min 0.5 --mask_ratio_max 1.0 --mask_ratio_mu 0.75 --mask_ratio_std 0.25 \\\n--epochs 200 \\\n--warmup_epochs 10 \\\n--blr 1.5e-4 --weight_decay 0.05 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n要训练一个基于 Moco v3 ViT-L 表征的 MAGE-L 模型，\n请将 ```RDM_CFG_PATH``` 和 ```RDM_CKPT_PATH``` 更改为 Moco v3 ViT-L RDM 的路径，并修改以下参数：\n```\n--pretrained_enc_arch mocov3_vit_large --pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitl.pth.tar --temp 11.0 --model mage_vit_large_patch16\n```\n**恢复训练**：将 ```--resume``` 设置为存储有 ```checkpoint-last.pth``` 的 ```OUTPUT_DIR```。\n\n**评估**：将 ```--resume``` 设置为预训练的 MAGE 检查点，并在上述脚本中加入 ```--evaluate``` 标志。\n\n**预训练模型**：\n\u003Ctable>\u003Ctbody>\n\u003C!-- START TABLE -->\n\u003C!-- TABLE HEADER -->\n\u003Cth valign=\"bottom\">\u003C\u002Fth>\n\u003Cth valign=\"bottom\">表征条件 MAGE-B\u003C\u002Fth>\n\u003Cth valign=\"bottom\">表征条件 MAGE-L\u003C\u002Fth>\n\u003C!-- TABLE BODY -->\n\u003Ctr>\u003Ctd align=\"left\">检查点\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1iZY0ujWp5GVochTLj0U6j4HgVTOyWPUI\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ca href=\"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1nQh9xCqjQCd78zKwn2L9eLfLyVosb1hp\u002Fview?usp=sharing\">Google Drive\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">无类别条件生成（无 CFG） \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.98, IS=177.8\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.44, IS=186.9\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">无类别条件生成（有 CFG） \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.19, IS=214.9 (cfg=1.0)\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.15, IS=253.4 (cfg=6.0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">有类别条件生成（无 CFG） \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.50, IS=194.9\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.99, IS=215.5\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\u003Ctd align=\"left\">有类别条件生成（有 CFG） \u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=3.18, IS=242.6 (cfg=1.0)\u003C\u002Ftd>\n\u003Ctd align=\"center\">FID=2.25, IS=300.7 (cfg=6.0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\n**可视化**：使用 ```viz_rcg.ipynb``` 可视化生成结果。\n\n无类别条件生成示例：\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_72fe0eca84e9.jpg\" width=\"800\">\n\u003C\u002Fp>\n\n有类别条件生成示例：\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_readme_d8e29b77229a.jpg\" width=\"800\">\n\u003C\u002Fp>\n\n### 像素生成器：DiT\n\n要训练一个基于 Moco v3 ViT-B 表征的 DiT-L 模型，使用 128 张 V100 GPU 进行 400 个 epoch 的训练：\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=16 --node_rank=0 \\\nmain_dit.py \\\n--rep_cond --rep_dim 256 \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} \\\n--pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--batch_size 16 --image_size 256 --dit_model DiT-L\u002F2 --num-sampling-steps ddim25 \\\n--epochs 400  \\\n--lr 1e-4 --weight_decay 0.0 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**注意**：有时 ```batch_size=16``` 会导致 DiT-XL 内存不足。将其改为 12 或 14 对性能几乎没有影响。\n\n**恢复训练**：将 ```--resume``` 设置为存储有 ```checkpoint-last.pth``` 的 ```OUTPUT_DIR```。\n\n**评估**：将 ```--resume``` 设置为预训练的 DiT 检查点，并在上述脚本中加入 ```--evaluate``` 标志。为了获得更好的生成效果，可将 ```--num-sampling-steps 250```。\n\n**预训练的 DiT-XL\u002F2**（400 个 epoch）基于 Moco v3 ViT-B 表征，可在此下载 [这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1DgtdT0WELTWv9P6II_OA2AHOEiHCj-nK\u002Fview?usp=sharing)（FID=4.89, IS=143.2）。\n\n### 像素生成器：ADM\n\n要训练一个基于 Moco v3 ViT-B 表征的 ADM 模型，使用 128 张 V100 GPU 进行 100 个 epoch 的训练：\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=16 --node_rank=0 \\\nmain_adm.py \\\n--rep_cond --rep_dim 256 \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} \\\n--pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--batch_size 2 --image_size 256 \\\n--epochs 100  \\\n--lr 1e-4 --weight_decay 0.0 \\\n--attention_resolutions 32,16,8 --diffusion_steps 1000 \\\n--learn_sigma --noise_schedule linear \\\n--num_channels 256 --num_head_channels 64 --num_res_blocks 2 --resblock_updown \\\n--use_scale_shift_norm \\\n--gen_timestep_respacing ddim25 --use_ddim \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**恢复训练**：将 ```--resume``` 设置为存储有 ```checkpoint-last.pth``` 的 ```OUTPUT_DIR```。\n\n**评估**：将 ```--resume``` 设置为预训练的 ADM 检查点，并在上述脚本中加入 ```--evaluate``` 标志。为了获得更好的生成效果，可将 ```--gen_timestep_respacing 250``` 并禁用 ```--use_ddim```。\n\n**预训练的 ADM**（400 个 epoch）基于 Moco v3 ViT-B 表征，可在此下载 [这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1fjZYJ11uphaAEbQrSPzZ_KJY3l1Cy2LI\u002Fview?usp=sharing)（FID=6.24, IS=136.9）。\n\n### 像素生成器：LDM\n\n请使用 [此链接](https:\u002F\u002Fommer-lab.com\u002Ffiles\u002Flatent-diffusion\u002Fvq-f8.zip) 下载分词器，并将其命名为 `vqgan-ckpts\u002Fldm_vqgan_f8_16384\u002Fcheckpoints\u002Flast.ckpt`。\n\n要训练一个基于 Moco v3 ViT-B 表征的 LDM-8 模型，使用 64 张 V100 GPU 进行 40 个 epoch 的训练：\n```\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=8 --node_rank=0 \\\nmain_ldm.py \\\n--config config\u002Fldm\u002Fcin-ldm-vq-f8-repcond.yaml \\\n--batch_size 4 \\\n--epochs 40 \\\n--blr 2.5e-7 --weight_decay 0.01 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n**恢复训练**：将 ```--resume``` 设置为存储有 ```checkpoint-last.pth``` 的 ```OUTPUT_DIR```。\n\n**评估**：将 ```--resume``` 设置为预训练的 LDM 检查点，并在上述脚本中加入 ```--evaluate``` 标志。\n\n**预训练的 LDM**（40 个 epoch）基于 Moco v3 ViT-B 表征，可在此下载 [这里](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1-qNGz5biWs9KwsjAMyR_GyciaWmF9axW\u002Fview?usp=sharing)（FID=11.30, IS=101.9）。\n\n## 联系方式\n\n如有任何问题，请随时通过电子邮件（tianhong@mit.edu）与我联系。祝您使用愉快！","# RCG 快速上手指南\n\nRCG (Return of Unconditional Generation) 是一个基于自条件机制的图像生成框架，在 ImageNet 256x256 上实现了最先进的无条件图像生成性能。本项目基于 PyTorch 实现。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐 Ubuntu)\n- **GPU**: 支持 CUDA 的 NVIDIA GPU (训练示例中使用了 V100，建议显存充足)\n- **Python**: 3.8+ (通过 conda 环境管理)\n- **依赖管理**: Conda\n\n### 前置依赖与数据准备\n在开始安装前，请准备好 ImageNet 数据集并下载必要的预训练权重。\n\n1. **下载 ImageNet 数据集**\n   将数据集放置在指定目录（下文称为 `${IMAGENET_DIR}`）。\n   准备验证集用于 FID 评估：\n   ```bash\n   python prepare_imgnet_val.py --data_path ${IMAGENET_DIR} --output_dir imagenet-val\n   ```\n   *注：评估需安装 `torch-fidelity` (`pip install torch-fidelity`)。若需复现论文最新结果，建议使用修改版：*\n   ```bash\n   pip install -e git+https:\u002F\u002Fgithub.com\u002FLTH14\u002Ftorch-fidelity.git@master#egg=torch-fidelity\n   ```\n\n2. **下载预训练权重**\n   请在项目根目录下创建相应文件夹并下载以下文件：\n   \n   - **VQGAN Tokenizer**:\n     下载并重命名为 `vqgan_jax_strongaug.ckpt`\n     [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F13S_unB87n6KKuuMdyMnyExW0G1kplTbP\u002Fview?usp=sharing)\n   \n   - **MoCo v3 ViT-B Encoder**:\n     存放路径：`pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar`\n     [官方链接](https:\u002F\u002Fdl.fbaipublicfiles.com\u002Fmoco-v3\u002Fvit-b-300ep\u002Fvit-b-300ep.pth.tar)\n   \n   - **MoCo v3 ViT-L Encoder**:\n     存放路径：`pretrained_enc_ckpts\u002Fmocov3\u002Fvitl.pth.tar`\n     [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1Foa2-FqhwIFYjcAAbY9sXyO-1Vwwx-_9\u002Fview?usp=sharing)\n\n   *(可选) 如需直接训练 LDM，还需下载其专用的 tokenizer 并放置于 `vqgan-ckpts\u002Fldm_vqgan_f8_16384\u002Fcheckpoints\u002Flast.ckpt`。*\n\n## 2. 安装步骤\n\n克隆代码库并配置 Conda 环境：\n\n```bash\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg.git\ncd rcg\n\n# 2. 创建并激活 conda 环境\nconda env create -f environment.yaml\nconda activate rcg\n```\n\n## 3. 基本使用\n\nRCG 的核心流程分为两步：首先训练\u002F加载 **RDM** (表示扩散模型)，然后训练 **Pixel Generator** (如 MAGE, DiT, ADM 等)。以下以训练 **MAGE-B** (基于 ViT-B 表示) 为例展示最简流程。\n\n### 第一步：训练或准备 RDM\n你需要先有一个训练好的 RDM 模型。若使用论文提供的预训练权重，请下载 [Moco v3 ViT-B Class-unconditional RDM](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1gdsvzKLmmBWuF4Ymy4rQ_T1t6dDHnTEA\u002Fview?usp=sharing) 并记录其配置文件路径和权重路径。\n\n若需从头训练 RDM (4 张 V100 GPU):\n```bash\npython -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 \\\nmain_rdm.py \\\n--config config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml \\\n--batch_size 128 --input_size 256 \\\n--epochs 200 \\\n--blr 1e-6 --weight_decay 0.01 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n*恢复训练请添加 `--resume ${OUTPUT_DIR}`。*\n\n### 第二步：训练 Pixel Generator (MAGE)\n使用 64 张 V100 GPU 训练 MAGE-B (实际使用时可根据显存调整 `--nproc_per_node` 和 `--batch_size`)：\n\n```bash\n# 设置变量 (请替换为实际路径)\nRDM_CFG_PATH=\"config\u002Frdm\u002Fmocov3vitb_simplemlp_l12_w1536.yaml\"\nRDM_CKPT_PATH=\"\u002Fpath\u002Fto\u002Fdownloaded\u002Frdm_checkpoint.pth\"\nOUTPUT_DIR=\".\u002Foutputs\u002Fmage_b\"\n\npython -m torch.distributed.launch --nproc_per_node=8 --nnodes=8 --node_rank=0 \\\nmain_mage.py \\\n--pretrained_enc_arch mocov3_vit_base \\\n--pretrained_enc_path pretrained_enc_ckpts\u002Fmocov3\u002Fvitb.pth.tar --rep_drop_prob 0.1 \\\n--use_rep --rep_dim 256 --pretrained_enc_withproj --pretrained_enc_proj_dim 256 \\\n--pretrained_rdm_cfg ${RDM_CFG_PATH} --pretrained_rdm_ckpt ${RDM_CKPT_PATH} \\\n--rdm_steps 250 --eta 1.0 --temp 6.0 --num_iter 20 --num_images 50000 --cfg 0.0 \\\n--batch_size 64 --input_size 256 \\\n--model mage_vit_base_patch16 \\\n--mask_ratio_min 0.5 --mask_ratio_max 1.0 --mask_ratio_mu 0.75 --mask_ratio_std 0.25 \\\n--epochs 200 \\\n--warmup_epochs 10 \\\n--blr 1.5e-4 --weight_decay 0.05 \\\n--output_dir ${OUTPUT_DIR} \\\n--data_path ${IMAGENET_DIR} \\\n--dist_url tcp:\u002F\u002F${MASTER_SERVER_ADDRESS}:2214\n```\n\n### 评估与可视化\n- **评估**: 在上述命令中加入 `--evaluate` 标志，并将 `--resume` 指向预训练好的 MAGE checkpoint 即可计算 FID\u002FIS。\n- **可视化**: 使用提供的 Jupyter Notebook 查看生成结果：\n  ```bash\n  jupyter notebook viz_rcg.ipynb\n  ```\n\n*注：对于 DiT、ADM 或 LDM 等其他生成器，请参考 README 中对应的 `main_dit.py`, `main_adm.py`, `main_ldm.py` 脚本及参数说明。*","某计算机视觉团队正在为电商平台的“智能商品图生成”项目构建底层模型，需要在不依赖人工标注类别标签的情况下，训练出能生成高质量、多样化商品背景图的模型。\n\n### 没有 rcg 时\n- **生成质量受限**：传统的无条件生成模型（如早期 Diffusion）在 ImageNet 等复杂数据集上，生成的图像模糊或缺乏细节，无法达到商业级清晰度。\n- **过度依赖标签**：为了获得高质量图像，团队被迫使用“类条件生成”，但这需要昂贵且耗时的人工数据清洗与分类标注工作。\n- **表征能力不足**：现有的自监督方法难以捕捉图像的高层语义特征，导致生成的商品背景与前景物体风格割裂，缺乏真实感。\n- **训练成本高昂**：为了弥补性能差距，不得不大幅增加模型参数量和训练时长，导致 GPU 资源消耗巨大且收敛缓慢。\n\n### 使用 rcg 后\n- **画质显著提升**：rcg 利用自条件机制，在无条件设置下实现了 SOTA 级别的生成效果，输出的 256x256 图像纹理清晰，直接满足商用需求。\n- **免除标注负担**：团队不再需要维护庞大的类别标签体系，rcg 通过自监督学习自动提取特征，大幅降低了数据预处理的人力成本。\n- **语义一致性增强**：基于 Moco v3 ViT 编码器的表征扩散模型，能更好地理解图像全局结构，生成的背景图与商品主体融合自然，逻辑合理。\n- **训练效率优化**：rcg  bridging 了有无条件生成的性能鸿沟，使得团队可以用更小的模型规模和更少的训练轮次（如 400 epochs）获得优异结果，节省了大量算力。\n\nrcg 通过自监督表征生成技术，让团队在零标签成本下获得了媲美甚至超越有监督模型的图像生成能力，极大加速了创意素材的自动化生产流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLTH14_rcg_3d16483d.png","LTH14","Tianhong Li","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FLTH14_2ccccfb3.jpg","I'm a postdoc at MIT. My recent research interests are generative models and representation learning.",null,"tianhong@mit.edu","http:\u002F\u002Fwww.tianhongli.me\u002F","https:\u002F\u002Fgithub.com\u002FLTH14",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",61.6,{"name":87,"color":88,"percentage":89},"Jupyter Notebook","#DA5B0B",38.4,938,43,"2026-04-19T01:30:41","MIT",4,"Linux","必需 NVIDIA GPU。训练示例基于 V100，不同模型需求差异大：RDM 需 4 卡，MAGE 需 64 卡，DiT\u002FADM 需 128 卡。显存方面，DiT-XL 在 batch_size=16 时可能溢出，建议调小至 12-14。未明确具体 CUDA 版本，但需支持 PyTorch GPU 运行。","未说明（鉴于大规模分布式训练需求，建议 64GB+）",{"notes":99,"python":100,"dependencies":101},"1. 必须使用 conda 根据提供的 environment.yaml 文件创建名为 'rcg' 的环境。\n2. 需手动下载多个预训练权重文件（包括 VQGAN tokenizer、MoCo v3 ViT-B\u002FL 编码器、以及各生成模型的检查点）并放置于指定目录。\n3. 评估指标 FID 的计算需要安装特定的修改版 torch-fidelity。\n4. 训练脚本依赖 torch.distributed.launch 进行多卡或多节点分布式训练，主要测试硬件为 NVIDIA V100。","未说明（通过 conda environment.yaml 创建环境，通常对应 Python 3.8+）",[102,103,104],"torch","torch-fidelity (修改版)","conda",[15,106],"其他","2026-03-27T02:49:30.150509","2026-04-20T19:33:11.690226",[110,115,120,125,130,135,140],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},45296,"RCG 的训练流程包含哪些部分？使用了哪些损失函数？SSL Encoder 在训练中是否始终冻结？","RCG 的训练主要分为两部分：\n1. RDM 训练：冻结 SSL Encoder，计算编码器输出的表示与 RDM 去噪后的表示之间的 MSE 损失。\n2. 像素生成训练：冻结 SSL Encoder，计算真实分布与预测分布之间的 vb_loss 和 MSE 损失。\n此外，RDM 的损失计算并非简单的 L2 损失，而是采用了类似 LDM 的实现（p_losses 函数），包含 `loss = loss_simple \u002F torch.exp(logvar_t) + logvar_t` 的操作。由于 original_elbo_weight=0，因此不包含 vlb 损失。在整个过程中，SSL Encoder 始终保持冻结状态。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F30",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},45297,"在多 GPU 上运行正常，但在单 GPU 测试时遇到 BatchNorm1d 报错（running_mean 元素数量不匹配），如何解决？","该问题通常是由依赖包版本不兼容引起的。请确保安装并使用 `timm==0.3.2` 版本。升级或降级到其他版本可能会导致模型结构定义或参数初始化不一致，从而引发 BatchNorm1d 的维度错误。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F9",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},45298,"加载自定义训练的 VQGAN 检查点到 MAGE 像素生成器时出现尺寸不匹配（size mismatch）错误，原因是什么？","这是因为 MAGE 项目中修改过的 VQGAN 代码结构与原始 VQGAN（如 Taming Transformers 中的实现）不一致，特别是 Encoder 和 Decoder 的网络结构（例如 MAGE 移除了 Attention 层）。\n解决方案：\n1. 不要直接使用 MAGE 目录下的 VQGAN 文件加载外部预训练的 VQGAN 权重。\n2. 建议将 MAGE 项目中的 VQGAN 模型定义文件替换为原始 VQGAN 的实现文件。\n3. 如果不需要 VQGAN 的损失部分，可以在训练完成后从检查点中移除相关权重，但必须保证模型架构定义与权重完全匹配。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F32",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},45299,"项目中报告的 FID 分数是如何计算的？是基于全部训练集还是部分数据？","FID 的计算通常是随机生成 50,000 张图像（FID-50k），然后与训练集中的参考图像进行对比。参考图像可以是整个训练集（如一百万张），也可以是训练集中随机抽取的 50,000 张。对于特定数据集（如 TinyImageNet），如果没有标准的 reference batch，用户可以自行计算统计量或使用一个文件夹存储参考批次（reference batch）来进行评估。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F31",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},45300,"如何判断 RDM 模型是否收敛？正常的训练损失曲线应该是怎样的？","如果在 ImageNet 上训练，正常的训练损失曲线应呈现特定趋势（参考官方提供的损失图），其中 1000 步（1k steps）对应 ImageNet 的 1 个 epoch。\n如果发现训练损失异常低，可能的原因包括：\n1. 预训练的 MoCo-v3 模型是在 ImageNet 上训练的，如果您的数据分布与 ImageNet 差异过大（例如医疗影像数据），可能无法提取有意义的特征表示。\n2. 输入数据的数值范围未遵循 ImageNet 的标准化要求。\n请检查数据预处理步骤，确保使用了正确的均值和标准差进行归一化。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F15",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},45301,"如果想增大批大小（Batch Size）以充分利用显存，需要如何调整超参数（如 epochs, 学习率等）？","当增大全局批大小（Global Batch Size）时：\n1. 学习率（blr）：代码会自动根据批大小调整学习率，因此在 128 到 1024 的范围内，通常可以保持其他参数不变。\n2. 训练轮数（epochs）：建议增加训练 epochs，以保持总的训练迭代次数（total training iterations）与默认配置相当。\n例如，如果将批大小从 4 增加到 16 或更大，只要总迭代次数相近，性能表现通常会相似。","https:\u002F\u002Fgithub.com\u002FLTH14\u002Frcg\u002Fissues\u002F36",{"id":141,"question_zh":142,"answer_zh":143,"source_url":114},45302,"在使用自定义数据集训练 SSL（如 MoCo v3）时，应该如何设置数据归一化和增强策略？","如果使用自定义数据集训练 SSL 模型：\n1. 归一化：不要直接使用 ImageNet 的均值和标准差。应计算您自己数据集的均值（mean）和标准差（std），并在训练和推理时使用相同的统计值。\n2. 数据增强：MoCo v3 默认使用颜色抖动（color jittering）和灰度转换。对于某些特定数据集，可能需要调整颜色抖动的强度（jittering scale）或者直接移除该增强操作，以避免破坏数据特征。",[]]