网易首页 > 网易号 > 正文 申请入驻

批量生成小红书风格知识卡片,附Python代码!

0
分享至

大家好,我是Ai学习的老章

大模型生成知识卡片,我之前介绍过多次

比如我最近在用的banner

还有很多很多。。。

前文详细介绍过具体方法

今天再给大家分享一个我刚刚测试好的批量生成语录类知识卡片的方法

其实更多的是提供思路,整个过程很多细节可以再琢磨一下。

1、生成模版.svg

事实上,我生成了6个模板

  1. 默认粉紫渐变风格(default) - 柔和的粉紫色渐变背景,优雅简约

  2. 极简禅风(minimalist_zen) - 极简主义设计,注重留白和平衡

  3. 现代几何风格(modern_geometric) - 深色背景配合几何元素,现代感强

  4. 自然灵感(nature_inspired) - 自然色调和有机元素,清新自然

  5. 古典优雅(classic_elegant) - 复古纸张质感,传统典雅

  6. 科技数字风(tech_digital) - 深色背景配合科技元素,未来感

2、生成语录.json

这一步也是交给大模型,生成100条就对应100张卡片

3、批量生成脚本.py

其实就是把json中每条中英文语录、作者塞进svg模板

#quote_card_generator.py import json import re import os from pathlib import Path import argparse # 可用的模板列表 TEMPLATE_OPTIONS = {     "default": "默认粉紫渐变风格",     "minimalist_zen": "极简禅风",     "modern_geometric": "现代几何风格",     "nature_inspired": "自然灵感",     "classic_elegant": "古典优雅",     "tech_digital": "科技数字风" } def process_quote(text):     """处理输入的文本,转换为 JSON 格式"""     # 预期格式:中文名言 | English quote - 作者名 | Author name     pattern = r"(.*?)\s*\|\s*(.*?)\s*-\s*(.*?)\s*\|\s*(.*)"     match = re.match(pattern, text)          ifnot match:         raise ValueError("输入格式不正确。请使用格式:中文名言 | English quote - 作者名 | Author name")          quote_cn, quote_en, author_cn, author_en = match.groups()          return {         "quote": {             "cn": quote_cn.strip(),             "en": quote_en.strip()         },         "author": {             "cn": author_cn.strip(),             "en": author_en.strip()         }     } def list_templates():     """列出所有可用的模板"""     print("可用的引言卡片模板:")     print("-" * 40)     for key, desc in TEMPLATE_OPTIONS.items():         print(f"- {key}: {desc}")     print("-" * 40) def generate_svg(data, template_name="default"):     """根据 JSON 数据和模板名称生成 SVG"""     # 模板目录     templates_dir = Path(__file__).parent / "templates"          # 确保模板存在,否则使用默认模板     template_path = templates_dir / f"{template_name}.svg"     ifnot template_path.exists():         print(f"警告:模板 '{template_name}' 不存在,将使用默认模板。")         template_path = templates_dir / "default.svg"          # 读取 SVG 模板     with open(template_path, "r", encoding="utf-8") as f:         svg_template = f.read()          # 根据文本长度动态调整字体大小     # 中文引言字体大小 - 较长的引言会使用较小的字体     quote_cn_size = min(60, 1000 / (len(data["quote"]["cn"]) / 2 + 5))     # 英文引言字体大小     quote_en_size = min(40, 1000 / (len(data["quote"]["en"]) / 2 + 5))          # 替换模板中的占位符     svg = svg_template.replace("{{QUOTE_CN}}", data["quote"]["cn"])     svg = svg.replace("{{QUOTE_EN}}", data["quote"]["en"])     svg = svg.replace("{{AUTHOR_CN}}", data["author"]["cn"])     svg = svg.replace("{{AUTHOR_EN}}", data["author"]["en"])     svg = svg.replace("{{QUOTE_CN_SIZE}}", str(quote_cn_size))     svg = svg.replace("{{QUOTE_EN_SIZE}}", str(quote_en_size))          return svg def main():     parser = argparse.ArgumentParser(description="生成优雅的名人名言卡片")     parser.add_argument("quote", nargs="?", help="格式:中文名言 | English quote - 作者名 | Author name")     parser.add_argument("--template", "-t", default="default", help="卡片模板名称")     parser.add_argument("--output", "-o", default="quote_card.svg", help="输出文件名")     parser.add_argument("--list", "-l", action="store_true", help="列出所有可用的模板")          args = parser.parse_args()          # 如果使用了 --list 参数,列出所有模板并退出     if args.list:         list_templates()         return          # 如果没有提供引言,提示用户输入必要参数并退出     ifnot args.quote:         parser.print_help()         print("\n请提供引言参数,或使用 --list 查看可用模板。")         return          try:         # 处理输入文本         data = process_quote(args.quote)           # 生成 SVG         svg_content = generate_svg(data, args.template)                  # 保存 SVG 文件         with open(args.output, "w", encoding="utf-8") as f:             f.write(svg_content)                  print(f"成功生成 SVG 文件:{args.output}")         print(f"使用模板:{args.template}")         print("JSON 格式的数据:")         print(json.dumps(data, ensure_ascii=False, indent=2))              except Exception as e:         print(f"错误:{str(e)}") if __name__ == "__main__":     main()

使用方法:python quote_card_generator.py --template minimalist_zen --limit 5

不指定template就是用default模板,不指定limit就是全部生成

4、svg转为png

不赘述,前文讲过

方便起见,你可以把文章的脚本修改成文件夹批量执行,也可以直接在命令行中批量跑

for file in /Users/zhangbeihai/Desktop/cards/generated_cards/*.svg; do   /Users/zhangbeihai/Desktop/svg2png.sh "$file" done

制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
春节租女友回家过年,谁知见面竟是我的女上司,吓得我拔腿就想跑

春节租女友回家过年,谁知见面竟是我的女上司,吓得我拔腿就想跑

卡西莫多的故事
2026-03-19 09:50:44
死刑犯临刑前三停五口喝水,总指挥:暂停行刑,这是19年前的暗号

死刑犯临刑前三停五口喝水,总指挥:暂停行刑,这是19年前的暗号

星宇共鸣
2026-05-18 13:21:51
加维:我梦想在决赛中倒钩进制胜球,且对手是阿根廷

加维:我梦想在决赛中倒钩进制胜球,且对手是阿根廷

懂球帝
2026-07-10 02:12:06
今晚西班牙VS比利时预测,有3好3坏消息,盘口让0.75,西班牙难赢

今晚西班牙VS比利时预测,有3好3坏消息,盘口让0.75,西班牙难赢

江启
2026-07-10 12:27:02
保密期限终到期,中央首长透露:毛岸英真相,可以向外界公开!

保密期限终到期,中央首长透露:毛岸英真相,可以向外界公开!

铜臭的历史味
2026-06-30 03:23:17
突发!江苏紧急下发通知,9日下午至10日全面暂停线下教学

突发!江苏紧急下发通知,9日下午至10日全面暂停线下教学

爱下厨的阿酾
2026-07-10 09:38:56
俄乌战场僵持不下!泽连斯基一步昏招,亲手送出了乌克兰半壁江山

俄乌战场僵持不下!泽连斯基一步昏招,亲手送出了乌克兰半壁江山

魅力乌克兰
2026-07-10 12:50:45
海军中尉、飞行员石少勇同志壮烈牺牲,年仅25岁,被评定为烈士

海军中尉、飞行员石少勇同志壮烈牺牲,年仅25岁,被评定为烈士

上观新闻
2026-07-08 06:53:29
对于今天周五A股,我只说4句话:第一,4036点或许只是个开始?

对于今天周五A股,我只说4句话:第一,4036点或许只是个开始?

趋势清风侠
2026-07-10 07:50:32
台媒曝:小S拒绝担任大S子女共同监护人。S妈悲叹:要露宿街头了。具俊晔放弃继承权,汪小菲接盘房贷。

台媒曝:小S拒绝担任大S子女共同监护人。S妈悲叹:要露宿街头了。具俊晔放弃继承权,汪小菲接盘房贷。

正直小墨
2026-07-09 20:42:26
老婆去世两年,岳父做主娶小姨子,27岁她坐床边:今晚,叫我名字

老婆去世两年,岳父做主娶小姨子,27岁她坐床边:今晚,叫我名字

真实人物采访
2026-07-10 12:55:05
米体:米兰15岁天才阿克拉姆-贾迪德无意大利护照

米体:米兰15岁天才阿克拉姆-贾迪德无意大利护照

懂球帝
2026-07-10 07:10:15
官方:奇瑞成为伯恩茅斯训练服胸前赞助商,签约三年

官方:奇瑞成为伯恩茅斯训练服胸前赞助商,签约三年

懂球帝
2026-07-09 22:08:22
注意!10月1日起,没有绿卡,有合法身份也不行!这些人将失去白卡福利

注意!10月1日起,没有绿卡,有合法身份也不行!这些人将失去白卡福利

华人生活网
2026-07-10 03:27:59
韩国股市涨到熔断

韩国股市涨到熔断

每日经济新闻
2026-07-10 12:31:06
把女性尿液注射到青蛙体内,如果它数小时内产出数百枚卵,就说明她怀孕了

把女性尿液注射到青蛙体内,如果它数小时内产出数百枚卵,就说明她怀孕了

果壳
2026-07-09 23:30:27
舒马赫妻子科琳娜,照顾丈夫12年,花费超20亿,如今终于等到奇迹

舒马赫妻子科琳娜,照顾丈夫12年,花费超20亿,如今终于等到奇迹

寒士之言本尊
2026-01-28 16:12:08
岚图追光S实车露面,车长超5米,最高700km续航,还带全铝底盘

岚图追光S实车露面,车长超5米,最高700km续航,还带全铝底盘

闻车品百魅
2026-07-10 11:36:15
随着法国2-0摩洛哥 世界杯诞生3个意想不到和2个事实 姆巴佩伤退

随着法国2-0摩洛哥 世界杯诞生3个意想不到和2个事实 姆巴佩伤退

侃球熊弟
2026-07-10 06:36:05
两名消控室值班员被建议移交公安机关处理

两名消控室值班员被建议移交公安机关处理

靠山屯闲话
2026-07-09 10:36:01
2026-07-10 13:32:49
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3464文章数 11172关注度
往期回顾 全部

科技要闻

GPT-5.6中档模型封神,最贵版尴尬翻车

头条要闻

男子寻母熬成人父:我妈在露天的花坛被风吹日晒了28年

头条要闻

男子寻母熬成人父:我妈在露天的花坛被风吹日晒了28年

体育要闻

法国VS摩洛哥:谁才是臭外地的?

娱乐要闻

S妈回应大S遗产卡余额不足42万

财经要闻

一年狂敛22亿,巨额财富成特朗普负资产

汽车要闻

悦己更悦人 阿维塔07L加长了更加上了豪华

态度原创

数码
游戏
手机
本地
公开课

数码要闻

三星显示首度参展BW,发布游戏笔记本电脑OLED品牌OBLYX

索尼PS第一方《声名狼藉2》线上停服!白金奖杯绝版

手机要闻

iPhone Ultra平整度看齐OPPO Find N6:折痕近乎无感

本地新闻

重庆人有自己的避暑桃花源 | 夏天就去「酉」风的地方!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版