[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-willisma--SiT":3,"tool-willisma--SiT":64},[4,17,26,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,2,"2026-04-03T11:11:01",[13,14,15],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":23,"last_commit_at":32,"category_tags":33,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,34,35,36,15,37,38,13,39],"数据工具","视频","插件","其他","语言模型","音频",{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,38,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[38,14,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":81,"owner_twitter":81,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":10,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":109,"github_topics":81,"view_count":23,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":110,"updated_at":111,"faqs":112,"releases":142},2165,"willisma\u002FSiT","SiT","Official PyTorch Implementation of \"SiT: Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers\"","SiT（Scalable Interpolant Transformers）是一个基于 PyTorch 实现的先进生成式 AI 模型，旨在探索和优化基于流（Flow）与扩散（Diffusion）的图像生成技术。它建立在著名的扩散变换器（DiT）架构之上，但通过引入更灵活的“插值框架”，解决了传统扩散模型在连接数据分布时灵活性不足的问题。\n\nSiT 的核心优势在于其模块化设计，允许研究人员独立调整时间学习方式、插值路径选择以及采样策略（确定性或随机性）。实验表明，在保持相同骨干网络、参数量和计算成本的前提下，SiT 在 ImageNet 256x256 条件生成任务上的表现全面超越了现有的 DiT 模型，其最优配置下的 FID 分数低至 2.06，标志着生成图像质量的显著提升。\n\n该工具主要适合 AI 研究人员和深度学习开发者使用。项目仓库提供了完整的模型定义、预训练权重以及基于 PyTorch DDP 的训练和采样脚本，支持用户在本地或云端快速复现论文结果，甚至基于自定义数据进行新模型的训练。对于希望深入理解生成模型底层动力学机制，或需要高性能图像生成基线的团队来说，SiT 是一个极具","SiT（Scalable Interpolant Transformers）是一个基于 PyTorch 实现的先进生成式 AI 模型，旨在探索和优化基于流（Flow）与扩散（Diffusion）的图像生成技术。它建立在著名的扩散变换器（DiT）架构之上，但通过引入更灵活的“插值框架”，解决了传统扩散模型在连接数据分布时灵活性不足的问题。\n\nSiT 的核心优势在于其模块化设计，允许研究人员独立调整时间学习方式、插值路径选择以及采样策略（确定性或随机性）。实验表明，在保持相同骨干网络、参数量和计算成本的前提下，SiT 在 ImageNet 256x256 条件生成任务上的表现全面超越了现有的 DiT 模型，其最优配置下的 FID 分数低至 2.06，标志着生成图像质量的显著提升。\n\n该工具主要适合 AI 研究人员和深度学习开发者使用。项目仓库提供了完整的模型定义、预训练权重以及基于 PyTorch DDP 的训练和采样脚本，支持用户在本地或云端快速复现论文结果，甚至基于自定义数据进行新模型的训练。对于希望深入理解生成模型底层动力学机制，或需要高性能图像生成基线的团队来说，SiT 是一个极具价值的开源选择。","## Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers (SiT)\u003Cbr>\u003Csub>Official PyTorch Implementation\u003C\u002Fsub>\n\n### [Paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.08740.pdf) | [Project Page](https:\u002F\u002Fscalable-interpolant.github.io\u002F) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](http:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fwillisma\u002FSiT\u002Fblob\u002Fmain\u002Frun_SiT.ipynb)\n\n![SiT samples](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwillisma_SiT_readme_44195430346d.png)\n\nThis repo contains PyTorch model definitions, pre-trained weights and training\u002Fsampling code for our paper exploring \ninterpolant models with scalable transformers (SiTs). \n\n> [**Exploring Flow and Diffusion-based Generative Models with Scalable Interpolant Transformers**](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.08740.pdf)\u003Cbr>\n> [Nanye Ma](https:\u002F\u002Fwillisma.github.io), [Mark Goldstein](https:\u002F\u002Fmarikgoldstein.github.io\u002F), [Michael Albergo](http:\u002F\u002Fmalbergo.me\u002F), [Nicholas Boffi](https:\u002F\u002Fnmboffi.github.io\u002F), [Eric Vanden-Eijnden](https:\u002F\u002Fwp.nyu.edu\u002Fcourantinstituteofmathematicalsciences-eve2\u002F), [Saining Xie](https:\u002F\u002Fwww.sainingxie.com)\n> \u003Cbr>New York University\u003Cbr>\n\nWe present Scalable Interpolant Transformers (SiT), a family of generative models built on the backbone of Diffusion Transformers (DiT). The interpolant framework, which allows for connecting two distributions in a more flexible way than standard diffusion models, makes possible a modular study of various design choices impacting generative models built on dynamical transport: using discrete vs. continuous time learning, deciding the model to learn, choosing the interpolant connecting the distributions, and deploying a deterministic or stochastic sampler. By carefully introducing the above ingredients, SiT surpasses DiT uniformly across model sizes on the conditional ImageNet 256x256 benchmark using the exact same backbone, number of parameters, and GFLOPs. By exploring various diffusion coefficients, which can be tuned separately from learning, SiT achieves an FID-50K score of 2.06.\n\nThis repository contains:\n\n* 🪐 A simple PyTorch [implementation](models.py) of SiT\n* ⚡️ Pre-trained class-conditional SiT models trained on ImageNet 256x256\n* 🛸 A SiT [training script](train.py) using PyTorch DDP\n\n## Setup\n\nFirst, download and set up the repo:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT.git\ncd SiT\n```\n\nWe provide an [`environment.yml`](environment.yml) file that can be used to create a Conda environment. If you only want \nto run pre-trained models locally on CPU, you can remove the `cudatoolkit` and `pytorch-cuda` requirements from the file.\n\n```bash\nconda env create -f environment.yml\nconda activate SiT\n```\n\n\n## Sampling [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fblob\u002Fmain\u002Frun_SiT.ipynb)\n![More SiT samples](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwillisma_SiT_readme_535015229293.png)\n\n**Pre-trained SiT checkpoints.** You can sample from our pre-trained SiT models with [`sample.py`](sample.py). Weights for our pre-trained SiT model will be \nautomatically downloaded depending on the model you use. The script has various arguments to adjust sampler configurations (ODE & SDE), sampling steps, change the classifier-free guidance scale, etc. For example, to sample from\nour 256x256 SiT-XL model with default ODE setting, you can use:\n\n```bash\npython sample.py ODE --image-size 256 --seed 1\n```\n\nFor convenience, our pre-trained SiT models can be downloaded directly here as well:\n\n| SiT Model     | Image Resolution | FID-50K | Inception Score | Gflops | \n|---------------|------------------|---------|-----------------|--------|\n| [XL\u002F2](https:\u002F\u002Fwww.dl.dropboxusercontent.com\u002Fscl\u002Ffi\u002Fas9oeomcbub47de5g4be0\u002FSiT-XL-2-256.pt?rlkey=uxzxmpicu46coq3msb17b9ofa&dl=0) | 256x256          | 2.06    | 270.27         | 119    |\n\u003C!-- | [XL\u002F2](https:\u002F\u002Fdl.fbaipublicfiles.com\u002FSiT\u002Fmodels\u002FSiT-XL-2-512x512.pt) | 512x512          | 2.62    |   252.21       | 525    | -->\n\n\n**Custom SiT checkpoints.** If you've trained a new SiT model with [`train.py`](train.py) (see [below](#training-SiT)), you can add the `--ckpt`\nargument to use your own checkpoint instead. For example, to sample from the EMA weights of a custom \n256x256 SiT-L\u002F4 model with ODE sampler, run:\n\n```bash\npython sample.py ODE --model SiT-L\u002F4 --image-size 256 --ckpt \u002Fpath\u002Fto\u002Fmodel.pt\n```\n\n### Advanced sampler settings\n\n|     |          |          |                         |\n|-----|----------|----------|--------------------------|\n| ODE | `--atol` | `float` |  Absolute error tolerance |\n|     | `--rtol` | `float` | Relative error tolenrace |   \n|     | `--sampling-method` | `str` | Sampling methods (refer to [`torchdiffeq`](https:\u002F\u002Fgithub.com\u002Frtqichen\u002Ftorchdiffeq) ) |\n\n|     |          |          |                         |\n|-----|----------|----------|--------------------------|\n| SDE | `--diffusion-form` | `str` | Form of SDE's diffusion coefficient (refer to Tab. 2 in [paper]()) |\n|     | `--diffusion-norm` | `float` | Magnitude of SDE's diffusion coefficient |\n|     | `--last-step` | `str` | Form of SDE's last step |\n|     |               |       | None - Single SDE integration step |\n|     |               |       | \"Mean\" - SDE integration step without diffusion coefficient |\n|     |               |       | \"Tweedie\" - [Tweedie's denoising](https:\u002F\u002Fefron.ckirby.su.domains\u002Fpapers\u002F2011TweediesFormula.pdf) step | \n|     |               |       | \"Euler\" - Single ODE integration step\n|     | `--sampling-method` | `str` | Sampling methods |\n|     |               |       | \"Euler\" - First order integration | \n|     |               |       | \"Heun\" - Second order integration | \n\nThere are some more options; refer to [`train_utils.py`](train_utils.py) for details.\n\n## Training SiT\n\nWe provide a training script for SiT in [`train.py`](train.py). To launch SiT-XL\u002F2 (256x256) training with `N` GPUs on \none node:\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain\n```\n\n**Logging.** To enable `wandb`, firstly set `WANDB_KEY`, `ENTITY`, and `PROJECT` as environment variables:\n\n```bash\nexport WANDB_KEY=\"key\"\nexport ENTITY=\"entity name\"\nexport PROJECT=\"project name\"\n```\n\nThen in training command add the `--wandb` flag:\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --wandb\n```\n\n**Interpolant settings.** We also support different choices of interpolant and model predictions. For example, to launch SiT-XL\u002F2 (256x256) with `Linear` interpolant and `noise` prediction: \n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --path-type Linear --prediction noise\n```\n\n**Resume training.** To resume training from custom checkpoint:\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-L\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --ckpt \u002Fpath\u002Fto\u002Fmodel.pt\n```\n\n**Caution.** Resuming training will automatically restore both model, EMA, and optimizer states and training configs to be the same as in the checkpoint.\n\n## Evaluation (FID, Inception Score, etc.)\n\nWe include a [`sample_ddp.py`](sample_ddp.py) script which samples a large number of images from a SiT model in parallel. This script \ngenerates a folder of samples as well as a `.npz` file which can be directly used with [ADM's TensorFlow\nevaluation suite](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fguided-diffusion\u002Ftree\u002Fmain\u002Fevaluations) to compute FID, Inception Score and\nother metrics. For example, to sample 50K images from our pre-trained SiT-XL\u002F2 model over `N` GPUs under default ODE sampler settings, run:\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N sample_ddp.py ODE --model SiT-XL\u002F2 --num-fid-samples 50000\n```\n\n**Likelihood.** Likelihood evaluation is supported. To calculate likelihood, you can add the `--likelihood` flag to ODE sampler:\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N sample_ddp.py ODE --model SiT-XL\u002F2 --likelihood\n```\n\nNotice that only under ODE sampler likelihood can be calculated; see [`sample_ddp.py`](sample_ddp.py) for more details and settings. \n\n### Enhancements\nTraining (and sampling) could likely be speed-up significantly by:\n- [ ] using [Flash Attention](https:\u002F\u002Fgithub.com\u002FHazyResearch\u002Fflash-attention) in the SiT model\n- [ ] using `torch.compile` in PyTorch 2.0\n\nBasic features that would be nice to add:\n- [ ] Monitor FID and other metrics\n- [ ] AMP\u002Fbfloat16 support\n\nPrecision in likelihood calculation could likely be improved by:\n- [ ] Uniform \u002F Gaussian Dequantization\n\n\n## Differences from JAX\n\nOur models were originally trained in JAX on TPUs. The weights in this repo are ported directly from the JAX models. \nThere may be minor differences in results stemming from sampling on different platforms (TPU vs. GPU). We observed that sampling on TPU performs marginally worse than GPU (2.15 FID \nversus 2.06 in the paper).\n\n\n## License\nThis project is under the MIT license. See [LICENSE](LICENSE.txt) for details.\n\n\n","## 使用可扩展插值 Transformer（SiT）探索流模型与扩散模型\u003Cbr>\u003Csub>官方 PyTorch 实现\u003C\u002Fsub>\n\n### [论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.08740.pdf) | [项目页面](https:\u002F\u002Fscalable-interpolant.github.io\u002F) | [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](http:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fwillisma\u002FSiT\u002Fblob\u002Fmain\u002Frun_SiT.ipynb)\n\n![SiT 样本](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwillisma_SiT_readme_44195430346d.png)\n\n此仓库包含我们用于探索基于可扩展 Transformer 的插值模型（SiT）的论文的 PyTorch 模型定义、预训练权重以及训练和采样代码。\n\n> [**使用可扩展插值 Transformer 探索流模型与扩散模型**](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.08740.pdf)\u003Cbr>\n> [Nanye Ma](https:\u002F\u002Fwillisma.github.io), [Mark Goldstein](https:\u002F\u002Fmarikgoldstein.github.io\u002F), [Michael Albergo](http:\u002F\u002Fmalbergo.me\u002F), [Nicholas Boffi](https:\u002F\u002Fnmboffi.github.io\u002F), [Eric Vanden-Eijnden](https:\u002F\u002Fwp.nyu.edu\u002Fcourantinstituteofmathematicalsciences-eve2\u002F), [Saining Xie](https:\u002F\u002Fwww.sainingxie.com)\n> \u003Cbr>纽约大学\u003Cbr>\n\n我们提出了可扩展插值 Transformer（SiT），这是一类基于扩散 Transformer（DiT）骨干构建的生成模型。插值框架允许以比标准扩散模型更灵活的方式连接两个分布，从而可以模块化地研究影响基于动力传输的生成模型的各种设计选择：采用离散或连续时间学习、决定要学习的模型、选择连接两个分布的插值路径，以及部署确定性或随机采样器。通过精心引入上述要素，SiT 在条件 ImageNet 256×256 基准上，使用完全相同的骨干网络、参数量和 GFLOPs，在不同模型规模下均优于 DiT。通过探索可独立于学习进行调优的扩散系数，SiT 达到了 FID-50K 得分为 2.06 的优异表现。\n\n本仓库包含：\n\n* 🪐 SiT 的简单 PyTorch [实现](models.py)\n* ⚡️ 在 ImageNet 256×256 上训练的类条件 SiT 预训练模型\n* 🛸 使用 PyTorch DDP 的 SiT [训练脚本](train.py)\n\n## 设置\n\n首先，克隆并设置仓库：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT.git\ncd SiT\n```\n\n我们提供了一个 [`environment.yml`](environment.yml) 文件，可用于创建 Conda 环境。如果您只想在本地 CPU 上运行预训练模型，可以从该文件中移除 `cudatoolkit` 和 `pytorch-cuda` 依赖项。\n\n```bash\nconda env create -f environment.yml\nconda activate SiT\n```\n\n\n## 采样 [![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fblob\u002Fmain\u002Frun_SiT.ipynb)\n![更多 SiT 样本](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwillisma_SiT_readme_535015229293.png)\n\n**预训练的 SiT 检查点。** 您可以使用 [`sample.py`](sample.py) 从我们的预训练 SiT 模型中采样。根据您使用的模型，我们的预训练 SiT 模型权重将自动下载。该脚本提供了多种参数来调整采样器配置（ODE & SDE）、采样步数、更改无分类器指导尺度等。例如，要使用默认 ODE 设置从我们的 256×256 SiT-XL 模型中采样，可以运行：\n\n```bash\npython sample.py ODE --image-size 256 --seed 1\n```\n\n为方便起见，我们的预训练 SiT 模型也可在此直接下载：\n\n| SiT 模型     | 图像分辨率 | FID-50K | Inception 分数 | Gflops | \n|---------------|------------------|---------|-----------------|--------|\n| [XL\u002F2](https:\u002F\u002Fwww.dl.dropboxusercontent.com\u002Fscl\u002Ffi\u002Fas9oeomcbub47de5g4be0\u002FSiT-XL-2-256.pt?rlkey=uxzxmpicu46coq3msb17b9ofa&dl=0) | 256×256          | 2.06    | 270.27         | 119    |\n\u003C!-- | [XL\u002F2](https:\u002F\u002Fdl.fbaipublicfiles.com\u002FSiT\u002Fmodels\u002FSiT-XL-2-512x512.pt) | 512×512          | 2.62    |   252.21       | 525    | -->\n\n\n**自定义 SiT 检查点。** 如果您已使用 [`train.py`](train.py) 训练了新的 SiT 模型（见下方 [训练 SiT](#training-SiT)），则可以添加 `--ckpt` 参数来使用您自己的检查点。例如，要使用 EMA 权重从一个自定义的 256×256 SiT-L\u002F4 模型中进行 ODE 采样，可以运行：\n\n```bash\npython sample.py ODE --model SiT-L\u002F4 --image-size 256 --ckpt \u002Fpath\u002Fto\u002Fmodel.pt\n```\n\n### 高级采样器设置\n\n|     |          |          |                         |\n|-----|----------|----------|--------------------------|\n| ODE | `--atol` | `float` | 绝对误差容忍度 |\n|     | `--rtol` | `float` | 相对误差容忍度 |   \n|     | `--sampling-method` | `str` | 采样方法（参考 [`torchdiffeq`](https:\u002F\u002Fgithub.com\u002Frtqichen\u002Ftorchdiffeq)） |\n\n|     |          |          |                         |\n|-----|----------|----------|--------------------------|\n| SDE | `--diffusion-form` | `str` | SDE 扩散系数的形式（参考论文中的表 2） |\n|     | `--diffusion-norm` | `float` | SDE 扩散系数的大小 |\n|     | `--last-step` | `str` | SDE 最后一步的形式 |\n|     |               |       | None - 单步 SDE 积分 |\n|     |               |       | \"Mean\" - 不含扩散系数的 SDE 积分步骤 |\n|     |               |       | \"Tweedie\" - [Tweedie 去噪步骤](https:\u002F\u002Fefron.ckirby.su.domains\u002Fpapers\u002F2011TweediesFormula.pdf) |\n|     |               |       | \"Euler\" - 单步 ODE 积分 |\n|     | `--sampling-method` | `str` | 采样方法 |\n|     |               |       | \"Euler\" - 一阶积分 | \n|     |               |       | \"Heun\" - 二阶积分 | \n\n还有更多选项；详情请参阅 [`train_utils.py`](train_utils.py)。\n\n## 训练 SiT\n\n我们在 [`train.py`](train.py) 中提供了 SiT 的训练脚本。要在单节点上使用 `N` 张 GPU 来启动 SiT-XL\u002F2 (256x256) 的训练：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain\n```\n\n**日志记录。** 要启用 `wandb`，首先需要将 `WANDB_KEY`、`ENTITY` 和 `PROJECT` 设置为环境变量：\n\n```bash\nexport WANDB_KEY=\"key\"\nexport ENTITY=\"entity name\"\nexport PROJECT=\"project name\"\n```\n\n然后在训练命令中添加 `--wandb` 标志：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --wandb\n```\n\n**插值器设置。** 我们还支持不同的插值器和模型预测方式选择。例如，要以 `Linear` 插值器和 `noise` 预测方式启动 SiT-XL\u002F2 (256x256) 的训练：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --path-type Linear --prediction noise\n```\n\n**恢复训练。** 要从自定义检查点恢复训练：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-L\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain --ckpt \u002Fpath\u002Fto\u002Fmodel.pt\n```\n\n**注意。** 恢复训练会自动恢复模型、EMA 和优化器的状态以及训练配置，使其与检查点中的状态完全一致。\n\n## 评估（FID、Inception Score 等）\n\n我们包含了一个 [`sample_ddp.py`](sample_ddp.py) 脚本，该脚本可以并行地从 SiT 模型中采样大量图像。此脚本会生成一个包含样本的文件夹以及一个 `.npz` 文件，可以直接与 [ADM 的 TensorFlow 评估套件](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fguided-diffusion\u002Ftree\u002Fmain\u002Fevaluations) 一起使用，以计算 FID、Inception Score 等指标。例如，在默认的 ODE 采样器设置下，要在 `N` 张 GPU 上从我们预训练的 SiT-XL\u002F2 模型中采样 50,000 张图像，可以运行以下命令：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N sample_ddp.py ODE --model SiT-XL\u002F2 --num-fid-samples 50000\n```\n\n**似然性。** 支持似然性评估。要计算似然性，可以在 ODE 采样器中添加 `--likelihood` 标志：\n\n```bash\ntorchrun --nnodes=1 --nproc_per_node=N sample_ddp.py ODE --model SiT-XL\u002F2 --likelihood\n```\n\n请注意，只有在 ODE 采样器下才能计算似然性；更多细节和设置请参阅 [`sample_ddp.py`](sample_ddp.py)。\n\n### 改进方向\n通过以下方式，训练（和采样）的速度有望显著提升：\n- [ ] 在 SiT 模型中使用 [Flash Attention](https:\u002F\u002Fgithub.com\u002FHazyResearch\u002Fflash-attention)\n- [ ] 在 PyTorch 2.0 中使用 `torch.compile`\n\n还有一些不错的基础功能待添加：\n- [ ] 监控 FID 和其他指标\n- [ ] AMP\u002Fbfloat16 支持\n\n似然性计算的精度可以通过以下方式进一步提高：\n- [ ] 均匀分布 \u002F 高斯去量化\n\n## 与 JAX 的差异\n我们的模型最初是在 JAX 中使用 TPU 训练的。本仓库中的权重直接从 JAX 模型移植而来。由于在不同平台（TPU vs. GPU）上进行采样，结果可能会存在细微差异。我们观察到，在 TPU 上采样的效果略逊于 GPU（论文中分别为 2.15 和 2.06 的 FID 分数）。\n\n\n## 许可证\n本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE.txt)。","# SiT 快速上手指南\n\nSiT (Scalable Interpolant Transformers) 是一种基于扩散 Transformer (DiT) 架构的生成模型家族。它通过灵活的插值框架连接分布，支持离散\u002F连续时间学习及确定性\u002F随机采样，在 ImageNet 256x256 基准测试中表现优异。\n\n## 环境准备\n\n*   **系统要求**: Linux 或 macOS (Windows 需自行配置 PyTorch CUDA 环境)。\n*   **硬件建议**: 推荐使用 NVIDIA GPU 进行训练和高效采样；仅运行预训练模型可使用 CPU。\n*   **前置依赖**:\n    *   Python 3.8+\n    *   Conda (推荐用于环境管理)\n    *   PyTorch (含 CUDA 支持，如需 GPU 加速)\n    *   `torchdiffeq` (用于 ODE\u002FSDE 采样)\n\n> **注意**：国内用户若下载 Conda 包或 PyPI 包较慢，可配置清华源或阿里源加速。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT.git\n    cd SiT\n    ```\n\n2.  **创建 Conda 环境**\n    项目提供了 `environment.yml` 文件。\n    *   **GPU 版本**（默认）：\n        ```bash\n        conda env create -f environment.yml\n        ```\n    *   **仅 CPU 版本**：请先编辑 `environment.yml`，移除 `cudatoolkit` 和 `pytorch-cuda` 相关行，然后执行上述命令。\n\n3.  **激活环境**\n    ```bash\n    conda activate SiT\n    ```\n\n## 基本使用\n\n### 1. 快速采样 (使用预训练模型)\n\n无需手动下载权重，脚本会自动根据模型配置下载预训练参数。以下命令使用默认的 ODE 设置从 SiT-XL\u002F2 模型生成 256x256 图像：\n\n```bash\npython sample.py ODE --image-size 256 --seed 1\n```\n\n*   生成的图片将保存在当前目录。\n*   可通过添加 `--cfg-scale` 调整无分类器引导比例，或修改 `--steps` 调整采样步数。\n\n### 2. 自定义模型采样\n\n如果您训练了自己的模型或使用特定检查点，可通过 `--ckpt` 指定路径：\n\n```bash\npython sample.py ODE --model SiT-L\u002F4 --image-size 256 --ckpt \u002Fpath\u002Fto\u002Fyour_model.pt\n```\n\n### 3. 开始训练 (可选)\n\n在单节点多卡环境下启动训练（以 ImageNet 数据集为例）：\n\n```bash\n# N 替换为实际 GPU 数量，\u002Fpath\u002Fto\u002Fimagenet\u002Ftrain 替换为数据路径\ntorchrun --nnodes=1 --nproc_per_node=N train.py --model SiT-XL\u002F2 --data-path \u002Fpath\u002Fto\u002Fimagenet\u002Ftrain\n```\n\n*   **启用 WandB 日志**：先设置环境变量 `export WANDB_KEY=\"...\"` 等，然后在命令后添加 `--wandb` 标志。\n*   **断点续训**：添加 `--ckpt \u002Fpath\u002Fto\u002Fcheckpoint.pt` 即可自动恢复模型、EMA 及优化器状态。","某游戏工作室的美术团队正急需为一款科幻题材手游批量生成高分辨率、风格统一的武器概念图，以加速前期原型设计。\n\n### 没有 SiT 时\n- **生成质量瓶颈**：使用传统扩散模型（如标准 DiT）时，生成的武器纹理细节模糊，金属光泽和复杂结构经常失真，难以直接用于提案。\n- **算力与效果难平衡**：为了提升图像清晰度不得不增大模型参数量，导致推理成本激增，且在小尺寸模型上无论如何调优，FID 分数始终无法突破 3.0 的门槛。\n- **采样过程不可控**：缺乏灵活的插值机制，只能在固定的随机噪声路径上采样，难以通过确定性采样（ODE）精确复现满意的构图或微调生成结果。\n- **训练效率低下**：尝试改进时间步策略或插值路径时，需要大幅修改底层代码架构，实验迭代周期长达数周。\n\n### 使用 SiT 后\n- **画质显著跃升**：依托 SiT 的可扩展插值 Transformer 架构，在相同参数量和计算量（GFLOPs）下，ImageNet 256x256 基准测试的 FID 分数降至 2.06，生成的武器细节锐利、光影真实。\n- **灵活的策略调优**：利用其模块化设计，团队无需重新训练即可独立调整扩散系数和采样器（切换 ODE\u002FSDE），快速找到最适合机械质感的生成路径。\n- **高效复用骨干网络**：直接沿用现有的 DiT 骨干网络架构进行升级，零成本获得性能增益，大幅降低了显存占用和推理延迟。\n- **确定性创作流**：通过确定性采样器固定随机种子，美术师能精准控制生成结果，轻松对特定设计元素进行微调而非盲目重抽。\n\nSiT 通过引入灵活的插值框架，在保持原有计算成本不变的前提下，彻底打破了生成模型在画质上限与采样可控性之间的权衡困境。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwillisma_SiT_47dc87ed.png","willisma","Willis Ma","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fwillisma_f884711b.jpg","CS PhD @ NYU Courant | CS & Math @ NYU","NYU",null,"https:\u002F\u002Fgithub.com\u002Fwillisma",[84,88],{"name":85,"color":86,"percentage":87},"Python","#3572A5",92.7,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",7.3,1141,73,"2026-04-05T10:54:54","MIT","Linux, macOS, Windows","训练必需 NVIDIA GPU (使用 PyTorch DDP)，推理支持 CPU。具体显存大小未说明，但需根据模型尺寸 (如 SiT-XL) 适配；依赖环境文件中的 cudatoolkit\u002Fpytorch-cuda 版本。","未说明",{"notes":100,"python":101,"dependencies":102},"项目提供 environment.yml 用于创建 Conda 环境。若仅在 CPU 上运行预训练模型进行推理，可从环境文件中移除 cudatoolkit 和 pytorch-cuda 依赖。训练脚本基于 torchrun (PyTorch DDP)。原始模型在 JAX\u002FTPU 上训练，本仓库权重已移植至 PyTorch\u002FGPU，不同平台采样结果可能有细微差异。支持 ODE 和 SDE 多种采样器配置。","由 environment.yml 定义 (具体版本未直接列出，通常配合 Conda 环境)",[103,104,105,106,107,108],"pytorch","cudatoolkit","pytorch-cuda","torchdiffeq","wandb","numpy",[14],"2026-03-27T02:49:30.150509","2026-04-06T06:52:15.660809",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},9989,"如何在训练过程中解决显存溢出（OOM）错误？","OOM 错误通常由带梯度机制的采样引起。建议采取以下措施：\n1. 监控 `nvidia-smi` 中的 GPU 利用率以识别瓶颈。\n2. 检查训练配置，如批量大小（batch size）和 DDP 后端设置。\n3. 考虑在 Transformer 块中添加梯度检查点包装器（gradient checkpoint wrapper），这可以在一定程度上减少显存消耗。\n4. 参考社区提交的修复方案（如 PR #43），该修复针对采样时的梯度计算进行了优化。","https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fissues\u002F11",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},9990,"为什么复现的 FID 指标与论文报告的值不一致？","FID 指标对许多微小的实现细节非常敏感，常见原因包括：\n1. **精度问题**：论文报告的指标是基于 fp32 生成的，使用 fp16 可能导致性能下降。\n2. **图像预处理流程**：ImageNet-256 的 FID 计算需要先将生成图像调整到 256 分辨率，然后再调整到 299 分辨率输入评估模型。错误的缩放顺序会导致结果偏差。\n3. **CFG 尺度**：较大的 CFG scale（如 4.0）虽然能提升视觉质量，但可能导致分布偏离 ImageNet（包含许多低质量图像），从而使 FID 变差。建议使用较低的 CFG（如 1.5）或仅在前三通道应用 CFG。","https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fissues\u002F14",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},9991,"连续时间步（Continuous Timesteps）下的时间嵌入（Timestep Embeddings）是否存在设计缺陷？","是的，直接使用源自离散时间步模型（如 DDPM\u002FGLIDE）的默认 `max_period` 参数（通常为 10000）可能不适合 SiT 的 [0, 1] 连续时间范围，导致频谱覆盖不足。\n改进建议：\n1. 调整 `max_period` 参数以适应连续时间。\n2. 或者像 Flux 模型那样，将时间范围从 [0, 1] 缩放至 [0, 1000] 再进行嵌入，实验表明这种缩放能带来轻微的 FID 提升（约降低 2 个点）。","https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fissues\u002F24",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},9992,"ODE 模式下的函数评估次数（NFE）如何指定？是否有自研的二阶 Heun ODE 求解器？","代码中目前无法直接指定 NFE，因为 `num-sampling-steps` 参数传递给 `odeint` 仅用于创建估计路径，并不直接控制 ODE 的求解步数。\n关于求解器：维护者计划发布自研的二阶 Heun ODE 求解器。在性能方面，400K B\u002F2 模型上使用 Heun 求解器与 SDE Heun 版本（扩散范数设为零）相比，FID 差异预计小于 0.1。","https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fissues\u002F21",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},9993,"SiT-XL\u002F2 模型的预训练权重（Checkpoints）是否公开？","作者有计划发布 SiT-XL\u002F2 的 256x256 和 512x512 模型权重。此前提供的 Dropbox 链接曾因流量过大而受限，请关注项目主页或 Issue 区的最新公告以获取有效的下载链接。","https:\u002F\u002Fgithub.com\u002Fwillisma\u002FSiT\u002Fissues\u002F2",{"id":139,"question_zh":140,"answer_zh":141,"source_url":122},9994,"SDE 求解器中的扩散项系数应该是 sqrt(w*dt) 还是 sqrt(2*w*dt)？","论文理论推导中使用的是 `sqrt(w*dt)`，但在该代码库的实现中采用了 `sqrt(2*w*dt)`。\n根据用户复现经验：\n- 使用 `sqrt(w*dt)` 配合特定的 preserve step 函数可能在某些设置下得到不同的 FID 结果。\n- 代码库默认的 `sqrt(2*w*dt)` 实现是经过验证的。如果尝试复现论文结果，需确保整个采样循环（包括均值步和随机步）与代码库逻辑一致，特别是注意 `sde_step_fn` 和 `sde_preserve_step_fn` 的具体实现差异。",[]]