[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-dailenson--SDT":3,"tool-dailenson--SDT":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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":10,"env_os":91,"env_gpu":91,"env_ram":91,"env_deps":92,"category_tags":98,"github_topics":100,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":143},5196,"dailenson\u002FSDT","SDT","This repository is the official implementation of Disentangling Writer and Character Styles for Handwriting Generation (CVPR 2023)","SDT 是一款专注于手写生成的开源 AI 模型，其核心能力是根据指定的文本内容和书写风格，生成逼真的在线手写轨迹。它主要解决了传统方法在模仿真人笔迹时的痛点：过往技术往往只捕捉书写者的整体风格，却忽略了同一个人在书写不同字符时细微的风格波动，导致生成的字迹显得机械且缺乏自然感。\n\n针对这一难题，SDT 创新性地提出了“风格解耦”理念。它利用先进的 Transformer 架构，将“书写者个人风格”与“单字字符风格”从样本中分离开来分别建模。这种精细化的处理方式，使得 SDT 不仅能还原个人的整体笔触习惯，还能精准复现字与字之间自然的风格不一致性，从而大幅提升了仿真的逼真度。此外，该项目还扩展了离线到离线的生成框架，特别优化了中文手写的生成质量。\n\nSDT 非常适合计算机视觉领域的研究人员、手写识别算法开发者以及需要高质量合成手写数据的设计师使用。对于希望探索生成式模型在细粒度风格控制上应用的研究者，或需要构建多样化手写数据集的团队来说，SDT 提供了一个基于 CVPR 2023 论文的高质量基准实现。项目代码结构清晰，支持自定义风格合成，是深入理解手写生成前沿技术的理想工具。","![MIT LICENSE](https:\u002F\u002Fshields.io\u002Fbadge\u002Flicense-MIT-green)\n![python 3.8](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.8-brightgreen)\n# 🔥 Disentangling Writer and Character Styles for Handwriting Generation\n\n \u003Cp align='center'>\n  \u003Cb>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.14736\">ArXiv\u003C\u002Fa>\n    |\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fblob\u002Fmaster\u002Fstatic\u002FPoster_SDT.pdf\">Poster\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FmKbYLEwa4dI\">Video\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fcvpr2023.thecvf.com\u002Fvirtual\u002F2023\u002Fposter\u002F20954\">Project\u003C\u002Fa>\n  \u003C\u002Fb>\n\u003C\u002Fp> \n\n## 📢 Introduction\n- The proposed style-disentangled Transformer (SDT) generates online handwritings with conditional content and style. \n- Existing RNN-based methods mainly focus on capturing a person’s overall writing style, neglecting subtle style inconsistencies between characters written by the same person. In light of this, SDT disentangles the writer-wise and character-wise style representations from individual handwriting samples for enhancing imitation performance. \n- We extend SDT and introduce an offline-to-offline framework for improving the generation quality of offline Chinese handwritings.\n\n\u003Cdiv style=\"display: flex; flex-direction: column; align-items: center; \">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_36291a0c45b6.jpg\" style=\"width: 100%;\">\n\u003C\u002Fdiv>\n\u003Cp align=\"center\" style=\"margin-bottom: 10px;\">\nOverview of our SDT\n\u003C\u002Fp>\n\n\u003Cdiv style=\"display: flex; justify-content: center;\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_77943dfc1e77.gif\" style=\"width: 33.33%;\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_c5e3e9a67963.gif\" style=\"width: 33.33%;\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_aaf634fc2fdf.gif\" style=\"width: 33.33%;\">\n\u003C\u002Fdiv>\n\u003Cp align=\"center\">\nThree samples of online characters with writing orders\n\u003C\u002Fp>\n\n## 📅 News\n- [2025\u002F06\u002F26] 🎉🎉🎉 [DiffBrush](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FDiffBrush), a novel state-of-the-art approach for full-line text generation, is accepted to ICCV 2025.\n- [2024\u002F11\u002F26] 🎉🎉🎉 Release of the implementations of Content Score and Style Score. \n- [2024\u002F07\u002F01] 🎉🎉🎉 A new state-of-the-art method for handwritten text generation, named [One-DM](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FOne-DM), is accepted by ECCV 2024. \n- [2024\u002F01\u002F07] Add a tutorial and code for synthesizing handwriting with user-customized styles, more information can be found [here](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F43).\n- [2023\u002F12\u002F15] 🎉🎉🎉 This work is reported by a top [bilibili](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV19w411t7vD\u002F?buvid=XX73A437799B0DCC93D6D21690FA9CAE696EC&from_spmid=default-value&is_story_h5=false&mid=Xr0IfLrZqLFnTCriRB2HcQ%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=2f9e186f-d693-4b61-80c6-372942bec32b&share_source=WEIXIN&share_source=weixin&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1720580374&unique_k=OqWsKIV&up_id=19319172) video blogger with 2.7 million followers and received nearly one million views.\n- [2023\u002F10\u002F10] The [author](https:\u002F\u002Fscholar.google.com.hk\u002Fcitations?user=a2SwkisAAAAJ&hl=zh-CN) is invited to give a [talk](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kQ4y1W7a7\u002F?spm_id_from=333.999.0.0&vd_source=cbc77ced94dbf77f5ecef4e0afa94a33) (in Chinese) by CSIG (China Society of Image and Graphics).\n- [2023\u002F06\u002F14] This work is reported by [Synced](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FEX_Loj4PvIztQH5zrl2FNw) (机器之心).\n- [2023\u002F04\u002F12] Initial release of the datasets, pre-trained models, training and testing codes.\n- [2023\u002F02\u002F28] 🎉🎉🎉 Our SDT is accepted by CVPR 2023.\n\n## 📺 Handwriting generation results\n- **Online Chinese handwriting generation**\n![online Chinese](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_8db3b25e1113.jpg)\n\n- **Applications to various scripts**\n![other scripts](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_68993ff4af2a.jpg)\n- **Extension on offline Chinese handwriting generation**\n![offline Chinese](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_14239b48b9ca.jpg)\n\n\n## 🔨 Requirements\n```\nconda create -n sdt python=3.8 -y\nconda activate sdt\n# install all dependencies\nconda env create -f environment.yml\n```\n\n## 📂 Folder Structure\n  ```\n  SDT\u002F\n  │\n  ├── train.py - main script to start training\n  ├── test.py - generate characters via trained model\n  ├── evaluate.py - evaluation of generated samples\n  │\n  ├── configs\u002F*.yml - holds configuration for training\n  ├── parse_config.py - class to handle config file\n  │\n  ├── data_loader\u002F - anything about data loading goes here\n  │   └── loader.py\n  │\n  ├── model_zoo\u002F - pre-trained content encoder model\n  │\n  ├── data\u002F - default directory for storing experimental datasets\n  │\n  ├── model\u002F - networks, models and losses\n  │   ├── encoder.py\n  │   ├── gmm.py\n  │   ├── loss.py\n  │   ├── model.py\n  │   └── transformer.py\n  │\n  ├── saved\u002F\n  │   ├── models\u002F - trained models are saved here\n  │   ├── tborad\u002F - tensorboard visualization\n  │   └── samples\u002F - visualization samples in the training process\n  │\n  ├── trainer\u002F - trainers\n  │   └── trainer.py\n  │  \n  └── utils\u002F - small utility functions\n      ├── util.py\n      └── logger.py - set log dir for tensorboard and logging output\n  ```\n\n## 💿 Datasets\n\nWe provide Chinese, Japanese and English datasets in [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F17Ju2chVwlNvoX7HCKrhJOqySK-Y-hU8K?usp=share_link) | [Baidu Netdisk](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA) PW:xu9u. Please download these datasets, uzip them and move the extracted files to \u002Fdata.\n\n## 🍔 Pre-trained model\n\n| Model|Google Drive|Baidu Netdisk|\n|---------------|---------|-----------------------------------------|\n|Well-trained SDT|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1LendizOwcNXlyY946ThS8HQ4wJX--YL7?usp=sharing) | [Baidu Netdisk](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA?pwd=xu9u)\n|Content encoder|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1N-MGRnXEZmxAW-98Hz2f-o80oHrNaN_a?usp=share_link) | [Baidu Netdisk](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA?pwd=xu9u)\n|Content Score|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-2ciY6yfI4l1bVUD661EzEW5PInZb_62?usp=sharing)|[Baidu Netdisk]( https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1cs8qWOhwISZz7w1dAYMQ3g?pwd=s8e8)\n|Style Score|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-2ciY6yfI4l1bVUD661EzEW5PInZb_62?usp=sharing) | [Baidu Netdisk]( https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1cs8qWOhwISZz7w1dAYMQ3g?pwd=s8e8)\n\n**Note**:\nPlease download these weights, and move them to \u002Fmodel_zoo.\n\n## 🚀 Training & Test\n**Training**\n- To train the SDT on the Chinese dataset, run this command:\n```\npython train.py --cfg configs\u002FCHINESE_CASIA.yml --log Chinese_log\n```\n\n- To train the SDT on the Japanese dataset, run this command:\n```\npython train.py --cfg configs\u002FJapanese_TUATHANDS.yml --log Japanese_log\n```\n\n- To train the SDT on the English dataset, run this command:\n```\npython train.py --cfg configs\u002FEnglish_CASIA.yml --log English_log\n```\n\n**Qualitative Test**\n- To generate **online Chinese handwritings** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FChinese\n```\n- To generate **offline Chinese handwriting images** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FChinese\n```\n\n- To generate **online Japanese handwritings** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FJapanese\n```\n- To generate **offline Japanese handwriting images** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FJapanese\n```\n- To generate **online English handwritings** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FEnglish\n```\n- To generate **offline English handwriting images** with our SDT, run this command:\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FEnglish\n```\n\n**Quantitative Evaluation**\n- To evaluate the generated handwritings, you need to set `data_path` to the path of the generated handwritings (e.g., Generated\u002FChinese), and run this command:\n```\npython evaluate.py --data_path Generated\u002FChinese --metric DTW\n```\n- To calculate the Content Score of generated handwritings, you need to set `data_path` to the path of the generated handwritings (e.g., Generated\u002FChinese), and run this command:\n```\npython evaluate.py --data_path Generated\u002FChinese --metric Content_score --pretrained_model model_zoo\u002Fchinese_content_iter30k_acc95.pth\n```\n- To calculate the Style Score of generated handwritings, you need to set `data_path` to the path of the generated handwriting images (e.g., Generated_img\u002FChinese), and run this command:\n```\npython evaluate.py --data_path Generated_img\u002FChinese --metric Style_score --pretrained_model models_zoo\u002Fchinese_style_iter60k_acc999.pth\n```\n## 🏰 Practical Application\nWe are delighted to discover that **[P0etry-rain](https:\u002F\u002Fgithub.com\u002FP0etry-rain)** has proposed a pipeline that involves initially converting the generated results by our SDT to TTF format, followed by the development of software to enable flexible adjustments in spacing between paragraphs, lines, and characters. Below, we present TTF files, software interface and the printed results. More details can be seen in [#78](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F78#issue-2247810028).\n- **TTF File**\n![SVG](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_4bb4d9c03857.png)\n\n- **Software Interface**\n![Interface](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_ec0cb420ecd2.png)\n\n- **Printed Results**\n![Result](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_fae81991d6cc.png)\n\n\n\n## ❤️ Citation\nIf you find our work inspiring or use our codebase in your research, please cite our work:\n```\n@inproceedings{dai2023disentangling,\n  title={Disentangling Writer and Character Styles for Handwriting Generation},\n  author={Dai, Gang and Zhang, Yifan and Wang, Qingfeng and Du, Qing and Yu, Zhuliang and Liu, Zhuoman and Huang, Shuangping},\n  booktitle={Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition,\n  pages={5977--5986},\n  year={2023}\n}\n```\n\n## ⭐ StarGraph\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_37d9f455af9b.png)](https:\u002F\u002Fstar-history.com\u002F#dailenson\u002FSDT&Timeline)\n\n\n","![MIT 许可证](https:\u002F\u002Fshields.io\u002Fbadge\u002Flicense-MIT-green)\n![python 3.8](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.8-brightgreen)\n# 🔥 解耦书写者与字符风格的笔迹生成\n\n \u003Cp align='center'>\n  \u003Cb>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.14736\">ArXiv\u003C\u002Fa>\n    |\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fblob\u002Fmaster\u002Fstatic\u002FPoster_SDT.pdf\">海报\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FmKbYLEwa4dI\">视频\u003C\u002Fa>\n    | \n    \u003Ca href=\"https:\u002F\u002Fcvpr2023.thecvf.com\u002Fvirtual\u002F2023\u002Fposter\u002F20954\">项目\u003C\u002Fa>\n  \u003C\u002Fb>\n\u003C\u002Fp> \n\n## 📢 引言\n- 提出的风格解耦Transformer（SDT）能够根据给定的内容和风格条件生成在线手写文本。\n- 现有的基于RNN的方法主要关注于捕捉个人的整体书写风格，而忽略了同一个人书写的不同字符之间存在的细微风格差异。针对这一问题，SDT从单个手写样本中分离出书写者特有和字符特有的风格表示，从而提升模仿效果。\n- 我们扩展了SDT，并引入了一种离线到离线的框架，以提高离线中文手写文本的生成质量。\n\n\u003Cdiv style=\"display: flex; flex-direction: column; align-items: center; \">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_36291a0c45b6.jpg\" style=\"width: 100%;\">\n\u003C\u002Fdiv>\n\u003Cp align=\"center\" style=\"margin-bottom: 10px;\">\n我们的SDT概览\n\u003C\u002Fp>\n\n\u003Cdiv style=\"display: flex; justify-content: center;\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_77943dfc1e77.gif\" style=\"width: 33.33%;\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_c5e3e9a67963.gif\" style=\"width: 33.33%;\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_aaf634fc2fdf.gif\" style=\"width: 33.33%;\">\n\u003C\u002Fdiv>\n\u003Cp align=\"center\">\n带有书写顺序的三种在线字符示例\n\u003C\u002Fp>\n\n## 📅 最新消息\n- [2025\u002F06\u002F26] 🎉🎉🎉 [DiffBrush](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FDiffBrush)，一种用于整行文本生成的新型最先进方法，已被ICCV 2025接收。\n- [2024\u002F11\u002F26] 🎉🎉🎉 发布内容得分和风格得分的实现代码。\n- [2024\u002F07\u002F01] 🎉🎉🎉 一种名为[One-DM](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FOne-DM)的手写文本生成最新方法已被ECCV 2024接收。\n- [2024\u002F01\u002F07] 添加了使用用户自定义风格合成手写的教程和代码，更多信息请参见[这里](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F43)。\n- [2023\u002F12\u002F15] 🎉🎉🎉 本工作被一位拥有270万粉丝的顶级[bilibili](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV19w411t7vD\u002F?buvid=XX73A437799B0DCC93D6D21690FA9CAE696EC&from_spmid=default-value&is_story_h5=false&mid=Xr0IfLrZqLFnTCriRB2HcQ%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=android&share_plat=android&share_session_id=2f9e186f-d693-4b61-80c6-372942bec32b&share_source=WEIXIN&share_source=weixin&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1720580374&unique_k=OqWsKIV&up_id=19319172)视频博主报道，获得了近百万次观看。\n- [2023\u002F10\u002F10] 该[作者](https:\u002F\u002Fscholar.google.com.hk\u002Fcitations?user=a2SwkisAAAAJ&hl=zh-CN)受邀为CSIG（中国图像图形学学会）进行了一场[讲座](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kQ4y1W7a7\u002F?spm_id_from=333.999.0.0&vd_source=cbc77ced94dbf77f5ecef4e0afa94a33)（中文）。\n- [2023\u002F06\u002F14] 本工作被[Synced](https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FEX_Loj4PvIztQH5zrl2FNw)（机器之心）报道。\n- [2023\u002F04\u002F12] 初次发布数据集、预训练模型以及训练和测试代码。\n- [2023\u002F02\u002F28] 🎉🎉🎉 我们的SDT被CVPR 2023接收。\n\n## 📺 手写生成结果\n- **在线中文手写生成**\n![在线中文](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_8db3b25e1113.jpg)\n\n- **应用于多种文字系统**\n![其他文字系统](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_68993ff4af2a.jpg)\n- **扩展至离线中文手写生成**\n![离线中文](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_14239b48b9ca.jpg)\n\n\n## 🔨 需求\n```\nconda create -n sdt python=3.8 -y\nconda activate sdt\n# 安装所有依赖\nconda env create -f environment.yml\n```\n\n## 📂 文件夹结构\n  ```\n  SDT\u002F\n  │\n  ├── train.py - 启动训练的主要脚本\n  ├── test.py - 使用训练好的模型生成字符\n  ├── evaluate.py - 对生成样本进行评估\n  │\n  ├── configs\u002F*.yml - 存放训练配置文件\n  ├── parse_config.py - 处理配置文件的类\n  │\n  ├── data_loader\u002F - 数据加载相关操作在此处进行\n  │   └── loader.py\n  │\n  ├── model_zoo\u002F - 预训练的内容编码器模型\n  │\n  ├── data\u002F - 默认存储实验数据集的目录\n  │\n  ├── model\u002F - 网络、模型和损失函数\n  │   ├── encoder.py\n  │   ├── gmm.py\n  │   ├── loss.py\n  │   ├── model.py\n  │   └── transformer.py\n  │\n  ├── saved\u002F\n  │   ├── models\u002F - 训练好的模型保存于此\n  │   ├── tborad\u002F - TensorBoard可视化\n  │   └── samples\u002F - 训练过程中的可视化样本\n  │\n  ├── trainer\u002F - 训练器\n  │   └── trainer.py\n  │  \n  └── utils\u002F - 小型实用工具函数\n      ├── util.py\n      └── logger.py - 设置TensorBoard日志目录及日志输出\n  ```\n\n## 💿 数据集\n\n我们提供了中文、日文和英文数据集，可在[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F17Ju2chVwlNvoX7HCKrhJOqySK-Y-hU8K?usp=share_link) | [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA)下载，提取码：xu9u。请下载这些数据集，解压后将文件移动到\u002Fdata目录下。\n\n## 🍔 预训练模型\n\n| 模型|Google Drive|百度网盘|\n|---------------|---------|-----------------------------------------|\n|训练良好的SDT|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1LendizOwcNXlyY946ThS8HQ4wJX--YL7?usp=sharing) | [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA?pwd=xu9u)\n|内容编码器|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1N-MGRnXEZmxAW-98Hz2f-o80oHrNaN_a?usp=share_link) | [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA?pwd=xu9u)\n|内容得分|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-2ciY6yfI4l1bVUD661EzEW5PInZb_62?usp=sharing)|[百度网盘]( https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1cs8qWOhwISZz7w1dAYMQ3g?pwd=s8e8)\n|风格得分|[Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1-2ciY6yfI4l1bVUD661EzEW5PInZb_62?usp=sharing) | [百度网盘]( https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1cs8qWOhwISZz7w1dAYMQ3g?pwd=s8e8)\n\n**注意**：\n请下载这些权重，并将其移动到\u002Fmodel_zoo目录下。\n\n## 🚀 训练与测试\n**训练**\n- 若要在中文数据集上训练 SDT，请运行以下命令：\n```\npython train.py --cfg configs\u002FCHINESE_CASIA.yml --log Chinese_log\n```\n\n- 若要在日语数据集上训练 SDT，请运行以下命令：\n```\npython train.py --cfg configs\u002FJapanese_TUATHANDS.yml --log Japanese_log\n```\n\n- 若要在英文数据集上训练 SDT，请运行以下命令：\n```\npython train.py --cfg configs\u002FEnglish_CASIA.yml --log English_log\n```\n\n**定性测试**\n- 若要使用我们的 SDT 生成 **在线中文手写体**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FChinese\n```\n- 若要使用我们的 SDT 生成 **离线中文手写图像**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FChinese\n```\n\n- 若要使用我们的 SDT 生成 **在线日本手写体**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FJapanese\n```\n- 若要使用我们的 SDT 生成 **离线日本手写图像**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FJapanese\n```\n- 若要使用我们的 SDT 生成 **在线英文手写体**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FEnglish\n```\n- 若要使用我们的 SDT 生成 **离线英文手写图像**，请运行以下命令：\n```\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FEnglish\n```\n\n**定量评估**\n- 若要评估生成的手写体，需将 `data_path` 设置为生成手写体的路径（例如 Generated\u002FChinese），并运行以下命令：\n```\npython evaluate.py --data_path Generated\u002FChinese --metric DTW\n```\n- 若要计算生成手写体的内容得分，需将 `data_path` 设置为生成手写体的路径（例如 Generated\u002FChinese），并运行以下命令：\n```\npython evaluate.py --data_path Generated\u002FChinese --metric Content_score --pretrained_model model_zoo\u002Fchinese_content_iter30k_acc95.pth\n```\n- 若要计算生成手写体的风格得分，需将 `data_path` 设置为生成手写图像的路径（例如 Generated_img\u002FChinese），并运行以下命令：\n```\npython evaluate.py --data_path Generated_img\u002FChinese --metric Style_score --pretrained_model models_zoo\u002Fchinese_style_iter60k_acc999.pth\n```\n## 🏰 实际应用\n我们很高兴地发现，**[P0etry-rain](https:\u002F\u002Fgithub.com\u002FP0etry-rain)** 提出了一种流程：首先将我们 SDT 生成的结果转换为 TTF 格式，然后开发软件以实现段落、行和字符间距的灵活调整。以下是 TTF 文件、软件界面及打印结果。更多详情请参见 [#78](https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F78#issue-2247810028)。\n- **TTF 文件**\n![SVG](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_4bb4d9c03857.png)\n\n- **软件界面**\n![界面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_ec0cb420ecd2.png)\n\n- **打印结果**\n![结果](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_fae81991d6cc.png)\n\n\n\n## ❤️ 引用\n如果您认为我们的工作富有启发性，或在您的研究中使用了我们的代码库，请引用我们的工作：\n```\n@inproceedings{dai2023disentangling,\n  title={Disentangling Writer and Character Styles for Handwriting Generation},\n  author={Dai, Gang and Zhang, Yifan and Wang, Qingfeng and Du, Qing and Yu, Zhuliang and Liu, Zhuoman and Huang, Shuangping},\n  booktitle={Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition,\n  pages={5977--5986},\n  year={2023}\n}\n```\n\n## ⭐ 星级图\n[![星级历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_readme_37d9f455af9b.png)](https:\u002F\u002Fstar-history.com\u002F#dailenson\u002FSDT&Timeline)","# SDT 手写生成工具快速上手指南\n\nSDT (Style-Disentangled Transformer) 是一个用于在线和离线手写生成的开源项目。它通过将“书写者风格”与“字符风格”解耦，能够生成具有特定内容和风格的高质量手写文本（支持中文、日文、英文）。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux \u002F macOS \u002F Windows (推荐 Linux)\n*   **Python 版本**: 3.8\n*   **包管理工具**: Conda (推荐)\n*   **硬件**: 建议使用 NVIDIA GPU 进行训练和推理\n\n## 2. 安装步骤\n\n### 2.1 创建虚拟环境\n使用 Conda 创建名为 `sdt` 的 Python 3.8 环境并激活：\n\n```bash\nconda create -n sdt python=3.8 -y\nconda activate sdt\n```\n\n### 2.2 安装依赖\n在项目根目录下，通过 `environment.yml` 文件一键安装所有所需依赖：\n\n```bash\nconda env create -f environment.yml\n```\n\n### 2.3 下载数据集与预训练模型\n项目提供百度网盘加速链接，国内用户推荐优先使用。\n\n**数据集下载：**\n*   **来源**: [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA) (提取码: `xu9u`)\n*   **操作**: 下载中文、日文或英文数据集，解压后将文件夹移动至项目根目录下的 `\u002Fdata` 文件夹中。\n\n**预训练模型下载：**\n*   **来源**: \n    *   [百度网盘 - 主模型](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1RNQSRhBAEFPe2kFXsHZfLA?pwd=xu9u)\n    *   [百度网盘 - 评估模型 (Content\u002FStyle Score)](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1cs8qWOhwISZz7w1dAYMQ3g?pwd=s8e8)\n*   **操作**: 下载所需的 `.pth` 权重文件，并将它们移动至项目根目录下的 `\u002Fmodel_zoo` 文件夹中。\n\n## 3. 基本使用\n\n### 3.1 训练模型 (可选)\n如果您希望从头训练模型，可以使用以下命令（以中文数据集为例）：\n\n```bash\npython train.py --cfg configs\u002FCHINESE_CASIA.yml --log Chinese_log\n```\n*注：日文和英文训练只需替换 `--cfg` 参数为对应的配置文件（如 `configs\u002FJapanese_TUATHANDS.yml`）。*\n\n### 3.2 生成手写文本 (推理)\n使用下载好的预训练模型生成手写样本。以下是最常用的**在线中文手写生成**示例：\n\n```bash\npython test.py --pretrained_model checkpoint_path --store_type online --sample_size 500 --dir Generated\u002FChinese\n```\n\n**参数说明：**\n*   `--pretrained_model`: 替换为您的实际模型路径（例如 `model_zoo\u002Fyour_model.pth`）。\n*   `--store_type`: \n    *   `online`: 生成在线手写轨迹数据（包含笔顺信息）。\n    *   `offline`: 生成离线手写图像。\n*   `--sample_size`: 生成样本的数量。\n*   `--dir`: 输出结果保存的目录。\n\n**其他语言示例（生成离线图像）：**\n```bash\n# 生成离线中文图像\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FChinese\n\n# 生成离线英文图像\npython test.py --pretrained_model checkpoint_path --store_type offline --sample_size 500 --dir Generated_img\u002FEnglish\n```\n\n### 3.3 质量评估 (可选)\n生成完成后，可使用内置脚本计算 DTW 距离、内容分数 (Content Score) 或风格分数 (Style Score)：\n\n```bash\n# 计算 DTW 指标\npython evaluate.py --data_path Generated\u002FChinese --metric DTW\n\n# 计算内容分数 (需指定内容编码器模型)\npython evaluate.py --data_path Generated\u002FChinese --metric Content_score --pretrained_model model_zoo\u002Fchinese_content_iter30k_acc95.pth\n\n# 计算风格分数 (需指定风格编码器模型)\npython evaluate.py --data_path Generated_img\u002FChinese --metric Style_score --pretrained_model models_zoo\u002Fchinese_style_iter60k_acc999.pth\n```","某数字档案馆正在构建“历史名人手迹复刻系统”，旨在利用 AI 技术还原已故书法家的笔迹，用于制作高仿真的教育课件和展览素材。\n\n### 没有 SDT 时\n- **风格僵化单一**：传统 RNN 模型只能捕捉书写者整体的平均风格，导致生成的每个字都像同一个模子刻出来的，缺乏真人书写时随性的细微变化。\n- **字形结构失真**：在处理复杂汉字（如“懿”、“爨”）时，模型难以区分是个人习惯还是字符本身的结构要求，常出现笔画粘连或结构崩塌。\n- **神韵缺失**：生成的字迹虽然轮廓相似，但缺乏运笔的轻重缓急和连贯性，看起来更像是一幅静止的贴图，而非动态书写的结果。\n- **定制成本高昂**：若需模拟特定人物在书写不同内容时的状态差异，需要针对每种情况重新收集大量数据并训练新模型，效率极低。\n\n### 使用 SDT 后\n- **风格解耦自然**：SDT 成功将“书写者风格”与“字符固有风格”分离，生成的文字既保留了名人的独特笔锋，又展现了单字间自然的风格波动，栩栩如生。\n- **复杂字形精准**：模型能精准识别字符本身的结构约束，即使在生僻字上也能保持笔画清晰、结构严谨，完美复现原帖的神韵。\n- **动态笔触逼真**：支持在线手写生成，能够输出带有书写顺序和速度变化的轨迹数据，让静态字迹拥有了真实的“书写过程”。\n- **小样本高效定制**：仅需少量目标人物的手写样本，即可通过解耦表示快速合成任意文本内容，大幅降低了数据采集和模型训练门槛。\n\nSDT 通过深度解耦技术与字符风格，让 AI 手迹生成从“形似”跨越到了“神似”，真正实现了高保真的数字化复原。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdailenson_SDT_8db3b25e.jpg","dailenson","Gang Dai","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdailenson_131ff9ff.jpg","Talk is cheap. Show me the code.","Guangdong University of Technology","Guangzhou, China","daigang@gdut.edu.cn",null,"https:\u002F\u002Feedaigang.cn","https:\u002F\u002Fgithub.com\u002Fdailenson",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,1363,111,"2026-04-07T11:39:45","MIT","未说明",{"notes":93,"python":94,"dependencies":95},"项目通过 conda 环境管理依赖，需运行 'conda env create -f environment.yml' 安装所有依赖。需手动下载数据集和预训练模型（包含内容编码器、风格评分器等）并放置于指定目录（\u002Fdata 和 \u002Fmodel_zoo）。支持中文、日文和英文的手写生成（在线及离线模式）。","3.8",[96,97],"conda","environment.yml 中定义的依赖包",[14,15,35,99],"其他",[101,102,103,104,105,106,107,108,109],"deep-learning","handwriting-generation","transformer","generative-models","multimodal","pytorch-implementation","computer-vision","contrastive-learning","gmm","2026-03-27T02:49:30.150509","2026-04-08T01:47:47.771055",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},23553,"加载预训练模型时速度非常慢，甚至只调用 CPU，如何解决？","1. Windows 用户需在 test.py 中将 `num_workers` 设置为 0。\n2. 确认加载的模型文件是否正确：不要加载内容编码器参数（如 checkpoint-iter199999.pth），应加载训练好的 SDT 生成模型参数（谷歌网盘中按语言分类的文件）。\n3. 性能参考：RTX 3060 Laptop 推演约需 46 分钟，单张 A100 约需 15 分钟。可通过命令行输入 `nvidia-smi` 查看显卡是否正在运行。","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F17",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},23554,"如何使用自己的图片进行字体生成测试？图片需要如何处理？","可以直接使用提供的脚本，但需确保样式图片是 64*64 大小的 jpg 文件。命令示例：\n`python predict.py --pretrained_model model_zoo\u002Fcheckpoint-iter199999.pth --style_sample_size 20`\n\n如果需要手动处理数据，步骤如下：\n1. 在干净纸上写下约 15 个字并拍照。\n2. 裁剪图像并将每个字 resize 为 64×64 大小。\n3. 参考代码将图片转为灰度并归一化：\n```python\nimg = cv2.imread(img_dir)\nimg = cv2.resize(img, (64, 64))\nimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\nimg = img \u002F 255.0\n```","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F18",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},23555,"如何制作并训练自己的数据集？","若要生成自己的字体，请按以下步骤准备数据：\n1. 在较为干净的纸上写下 15 个字，然后逐个字拍照。\n2. 裁剪图像，将每个字 resize 成 64×64 的大小。\n3. 具体数据处理样例可参考论文补充材料 A.5 章节图 11(a)。\n注意：输入数据需包含坐标信息（coords）、字符 ID、作者 ID 及图像列表，单纯替换图片可能无法改变风格效果，需确保数据格式与模型输入一致。","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F9",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},23556,"项目能否直接生成 TTF 字体文件？或者如何将生成的 PNG 转为 TTF？","项目本身主要生成 PNG 图片，若需转换为 TTF 字体文件，可使用以下方法：\n1. 使用在线工具：搜索“图片转 ttf 在线工具”，导入生成的图片即可导出 TTF。\n2. 使用开源脚本：参考 GitHub 项目 `luguoyixiazi\u002Fpng2ttf`，这是一个简单的 Python 转换工具。","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F63",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},23557,"运行时提示 FileNotFoundError，明明文件在指定路径却找不到怎么办？","这通常是因为程序当前的工作目录（Working Directory）与文件所在路径不一致导致的（例如在 C 盘运行脚本，但配置文件在 E 盘）。\n解决方案：\n1. 最粗暴有效的方法是将代码或配置文件中涉及的路径全部改为绝对路径。\n2. 确保在执行 python 命令前，终端的工作目录已切换到项目根目录。","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F51",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},23558,"生成的字体一直是草书或角度固定不变，如何调整以获得更好的效果？","生成效果受输入样式图片影响较大，建议尝试以下调整：\n1. 将输入的字体笔画调细，效果会有所改善。\n2. 参考成功案例的绘制方式：使用 Windows 自带画图工具，默认画笔，画布设置为 300*300 进行绘制，可复现较理想的效果。\n3. 确保使用的 style_samples 压缩包是正确的官方样本或高质量手写样本。","https:\u002F\u002Fgithub.com\u002Fdailenson\u002FSDT\u002Fissues\u002F80",[]]