Claude 绘图
用 Python(只依赖 numpy + Pillow,系统自带的 python3 就能跑)按笔、墨、颜料、纸的物理规律「画」图,不调用任何生图模型。
- 构图可控:每一笔都是算出来的,构图、留白、点睛色的位置都精确可控。
- 结果可复现:固定随机种子,每次画出同一幅画。
- 适合做动画:可以输出分阶段快照,做成「一幅画被逐步画出来」的动画;生图模型只能给一整张画。
画风与范例(质量基准)
| 画风 | 库 | 范例 | 耗时 |
|---|---|---|---|
| 水墨 | lib/inkpaint.py · Painting | examples/bawansiqian.py 八万四千法门;examples/moon_river.py 月印万川(烘云托月、孤舟、芦苇) | 约 4 秒 |
| 水彩 | lib/watercolor.py · Watercolor | examples/watercolor_autumn.py 秋日湖畔(秋树罩染、湖面倒影、红色小舟);examples/watercolor_washes.py 水彩底纹(大片定向晕染、干边、回流水渍、颗粒、飞溅,中间留白,给讲解片当背景、上面叠界面卡片) | 约 15 秒 / 4 秒 |
| 剪纸拼贴 | lib/papercut.py · Collage | examples/papercut_balloons.py 热气球小镇(条纹热气球、笑脸太阳、纸云、小房子) | 约 30 秒 |
| 韩国彩铅 | lib/colorpencil.py · ColorPencil | examples/colorpencil_dessert.py 午后甜点(草莓蛋糕、红茶、草莓) | 约 17 秒 |
| 日本动漫 | lib/anime.py · Anime | examples/anime_summer.py 夏空(积雨云、乡间公路、电线杆、草帽女孩背影) | 约 30 秒 |
| 编辑风手绘 | lib/editorial.py · Editorial | examples/editorial_ideas.py 灵感生长(浇水长出灯泡的概念插画) | 约 11 秒 |
| 油画厚涂 | lib/oilpaint.py · OilPainting | examples/oil_wheatfield.py 麦田星空(旋转的星空、麦田、柏树、乌鸦) | 约 2 秒 |
| 浮世绘木版画 | lib/ukiyoe.py · Ukiyoe | examples/ukiyoe_fuji.py 富士曙(晕色天空、富士、云带、青海波、帆船、崖松) | 约 7 秒 |
| 像素风 | lib/pixelart.py · PixelArt | examples/pixel_rainy_cafe.py 雨夜咖啡店(霓虹、路灯、雨、倒影、猫) | 约 0.1 秒 |
| 黏土定格 | lib/clay.py · Clay | examples/clay_lighthouse.py 灯塔岛(手指抹开的天空、条纹灯塔、喷水的鲸鱼、搓条浪花、小帆船) | 约 6 秒 |
| 蓝晒 | lib/cyanotype.py · Cyanotype | examples/cyanotype_botanicals.py 蓝晒植物(蕨叶、银杏、蒲公英、飘散的种子、白色手写标注) | 约 6 秒 |
| 十字绣 | lib/stitch.py · Stitch | examples/stitch_sampler.py 家(H♥ME 字母、缎面绣爱心、小屋、苹果树、松树、花边、缝上的布标) | 约 20 秒 |
| 复古仪器面板 | lib/panel.py · Panel | examples/panel_radio.py Aurora 64 收音机(柚木机壳、喇叭布、背光刻度窗、琴键、魔眼管、拨杆、旋钮) | 约 7 秒 |
| 贴纸拼贴 · 小票 | lib/sticker.py · Sticker | examples/sticker_market.py 周末市集(热敏小票、模切贴纸:酸种面包/传家番茄/郁金香花束/咖啡豆、贴纸大字、波浪边促销贴、麻绳吊牌、和纸胶带、「已付」橡皮章) | 约 3 秒 |
| 实验笔记本 · 贴纸 | lib/notebook.py · Notebook | examples/notebook_brewing.py 咖啡萃取实验(线圈方格笔记本、铅笔表格与折线图、排线标出最佳区间、荧光笔、没闭合的红笔圈、便利贴结论、模切贴纸、标签机日期、桌上的六棱铅笔) | 约 3 秒 |
| 黑板板书 | lib/chalk.py · Chalkboard | examples/chalk_lesson.py 为什么天空是蓝的(墨绿石板、半擦掉的上节课残影与板擦痕、越往下越厚的粉笔灰;白黄粉蓝粉笔写的标题、太阳→大气层→眼睛示意图、长短波浪线、手写 ∝ 与圈出的 1/λ⁴、光谱条与散射曲线、带缺口的「小结」框;木框和粉笔槽里的粉笔、板擦) | 约 5 秒 |
| 赛博朋克 | lib/cyberpunk.py · Cyberpunk | examples/cyberpunk_neon_street.py 霓虹不夜城 · Neon District(雨夜街道峡谷、真玻璃管霓虹竖招牌(坏管与闪烁管)、背光灯箱、过街天桥「不夜城」、全息海月水母广告、电线、飞车光轨、井盖蒸汽、透明伞背影、湿路面与水洼倒影、胶片颗粒与一道撕裂扫描线) | 约 10 秒 |
| 卡通手绘(逐帧手绘) | lib/cartoon.py · Cartoon | examples/cartoon_toaster.py 早安吐司(薄荷绿吐司机笑着弹出两片举手的吐司、「叮!」爆炸框、盘子上打瞌睡的化黄油、窗外日出、墙上 7 点的钟;左侧 ①按下拉杆 ②电热丝烧红 3 分钟 ③弹起来 的图解;蓝铅笔稿留底、毛笔线、错位平涂、赛璐璐阴影、蜡笔天空与烤边、网点橱柜、抖线) | 约 4 秒 |
| 等轴 2.5D | lib/isometric.py · Isometric | examples/isometric_weather_island.py 岛上的气象站(漂浮的分层底座、一格一格的倒角地砖与台地、带双道浪花的海;观测场里的百叶箱、雨量筒、带风杯和风向标的风杆;看守小屋与卫星天线、太阳能板、石板路、栈桥小船、风袋、浮标、开花灌木;探空气球和平底云;四张悬浮数据卡用细引线指向各自仪器,地面上一个指北针) | 约 5 秒 |
| 单线画 | lib/lineart.py · LineArt | examples/lineart_paper_plane.py 从这扇窗到那扇窗(一根不断开的金线:圆树、小屋、从窗口穿墙飞出的纸飞机航迹与顶部翻圈、飞镖形纸飞机穿墙飞进对面小屋的窗;窗子亮起是全画唯一的点睛色;字距拉开的衬线标题) | 约 6 秒 |
| 柔光 3D | lib/soft3d.py · Soft3D | examples/soft3d_rise.py 浮出(糖果色小球海里顶出鼓鼓的软字 rise:被挤开的球堆在字脚、几颗骑在字肩上、几颗滚落,i 的点是一颗黄球;天光穹顶、柔光箱主光、粉色轮廓光、环境光遮蔽、软阴影、次表面色调、景深) | 约 46 秒 |
| 形变动画 | lib/morph.py · Morph | examples/morph_water_cycle.py 一滴水的旅程(一条 256 点轮廓线依次变成水滴→云→雪花→雪山→河→海浪,六块纯色背景随之切换;洋葱皮残影、挤压拉伸、虚线运动轨迹、中间帧标出对应点、缓动曲线时间轴) | 约 1 秒 |
| 报刊拼贴 | lib/newscollage.py · NewsCollage | examples/newscollage_curiosity.py 好奇心周刊 · 拆开看看(牛皮纸底、手撕旧报纸(程序生成的假文字栏)、被剪刀剪开并掀起上半的网点印刷闹钟照片、飞出的齿轮 / 发条 / 红色网点摆轮 / 螺丝各自剪下并配打字标签和引线、大红纸圆、勒索信拼贴字「拆开看看?」和 WHAT MAKES IT TICK、刊头、黑色邮戳、红色「附零件图」印章、美纹纸胶带) | 约 3 秒 |
| 弥散玻璃 | lib/aurora.py · Aurora | examples/aurora_morning.py 晨间计划(日出色弥散渐变与极光光带、光泽小球;磨砂玻璃卡片层叠:晨间计划时间线(3/5 完成,进行中那一行是玻璃叠玻璃)、专注倒计时圆环、光泽太阳躲在玻璃云后的天气卡、勿扰开关与白噪音滑块、近 7 天专注柱状图、9:00 站会提醒胶囊) | 约 2 秒 |
| 包豪斯几何 | lib/bauhaus.py · Bauhaus | examples/bauhaus_form_colour.py 形与色 · Form & Colour(奶油色纸上的丝网印刷讲座海报:黄三角、红方、蓝圆站在粗黑地线上,60° 弧、直角框、挖空的圆心和半径,下面大字角数 3 / 4 / 0;「形与色」大标题、挖空字的黑条论点「角越尖,色越亮」;构成网格、套准十字、裁切线、色标条、铅笔版号) | 约 2 秒 |
| 复古 Synthwave | lib/synthwave.py · Synthwave | examples/synthwave_coastline.py 海岸线 1987(横条切口的渐变落日沉入海面、倒影碎成一条条光带、线框小岛与线框山脉、霓虹网格地面、霓虹边线的海岸公路、灭点处亮灯的小城、带落日轮廓光的棕榈剪影、驶向城市的尾灯、镀铬大字 COASTLINE 与霓虹手写 Last Sunset、录像机 PLAY 与日期屏显、色度渗色、跟踪噪带和扫描线) | 约 4 秒 |
| 拼豆 | lib/perler.py · Perler | examples/perler_strawberry_coaster.py 草莓杯垫(方格图纸上的草莓图样与图例,铅笔勾掉已摆的颜色;透明方钉板上摆到一半:草莓摆完、天蓝底色一行行往下铺,镊子夹着下一颗悬在空钉上,旁边散豆;九格分色收纳盒;熨平的圆杯垫:豆子熔成一片蜡质平面、孔缩小、外沿扇贝形,压着揭下的熨烫纸) | 约 9 秒 |
| 岩画(凿刻砂岩) | lib/petroglyph.py · Petroglyph | examples/petroglyph_migration.py 迁徙季(带沙漠漆的砂岩岩面:一群大角羊朝同一方向往上走,一串偶蹄印通向同心圆水源,弓手和举投矛器的猎人等在后面;新月和一个月的计日刻痕、螺旋太阳、岩檐下一大一小两只手印;新、中、旧三档凿痕,几乎被漆盖回的旧符号;渗漆的裂缝、鲜橙色剥落疤、壳状地衣;左上低角度侧光) | 约 10 秒 |
| 古埃及墓室壁画 | lib/tomb.py · TombPainting | examples/tomb_harvest.py 尼罗河丰收(底比斯墓室的一面墙,三栏讲一件事:犁地播种(并轭的牛、扶犁人、撒种人、挥锄人),割二粒小麦(弯腰的割麦人、拾穗的女人、挂水囊的无花果树),书吏点数粮袋(蹲坐的书吏、堆成 5-4-3 的 12 袋粮和上方的象形数字 12、用量斗倒粮的人);按身份放大的庄园总管、伪象形文字栏、凯凯尔饰带、墙脚的尼罗河;剥落处露出红格和红稿,灰泥脱落、裂缝、潮痕、烟熏) | 约 4 秒 |
| 罗马马赛克 | lib/mosaic.py · Mosaic | examples/mosaic_harbor.py 港口渔获 · The Day's Catch(赭红起稿的灰浆床上铺约一万六千块石子与玻璃:黑白奔浪纹边框、火焰灯塔、船首画眼的渔船和鼓起的方帆、挑在杆上的渔网、把鱼从网里拖走的章鱼、游鱼和海鸥;燕尾铭牌 CAPTVRA · DIEI / ET POLYPVS FVR「今日渔获——以及章鱼小偷」;人物沿轮廓一排排铺,背景平铺并留光环;脱落处露出石子方坑,沉降裂缝,灰缝积灰) | 约 12 秒 |
| 彩色玻璃花窗 | lib/stainedglass.py · StainedGlass | examples/stainedglass_seasons.py 四季之窗 · Window of the Seasons(石墙上四扇哥特尖拱窗,同一棵树的春夏秋冬:春花与燕子、夏天的苹果和一窝雏鸟、秋天金红树冠和离开的雁阵、冬天积雪的枝和知更鸟,太阳高度随季节变;VER / AESTAS / AVTVMNVS / HIEMS 银染题字带;铅条与焊点、横铁条、一处补过的裂片,窗侧斜面和窗台上的彩色光) | 约 4 秒 |
| 泥金手抄本 | lib/illuminated.py · Illuminated | examples/illuminated_starchart.py 星辰之书 · Liber Stellarum(暗色书桌上摊开的天文书。左页「行星的次序」:打磨贴金方框里的玫瑰色 Q 首字母,字腔里是夜空和观星塔;鹅毛笔哥特体伪拉丁正文、朱红标题、长出常春藤花枝的条形边框、一幅诸天圆图。右页「怎样量一颗星的高度」:蓝色首字母 O 配红色花笔卷须,按纬度 48° 投影的尺规星盘,规尺瞄向页边的贴金星。羊皮纸毛孔、针孔与打格线、背面透字、破洞、狐斑、金箔剥落露出红色底料) | 约 9 秒 |
| 达·芬奇手稿 | lib/codex.py · Codex | examples/codex_ornithopter.py 扑翼机(裱在卡纸上、缺一角的泛黄帘纹纸;一串飞鸟画出一次振翅,红粉笔鸢翼写生和一根大羽毛;中间是蝙蝠翼扑翼机仰视图:右翼用左手「\」排线画完,左翼只起了头、露着铅笔稿;尖笔圆规画的比例圆,曲柄、灯笼齿轮、冠齿轮、滑轮的传动分解图,腕关节特写,划掉的废稿;右到左的镜像伪文笔记、墨点、霉斑、水渍) | 约 8 秒 |
| 剪影 | lib/silhouette.py · Silhouette | examples/silhouette_family.py 剪影小像(木版印花条纹墙纸上,挂镜线铜钩的绞丝绳吊着三幅椭圆金框剪影:中间是戴鸵鸟羽毛宽檐帽、螺旋垂卷的女主人,右边一艘满帆回家的双桅横帆船,左边坐在流苏垫子上望着她的猫;单独剪下的羽枝、睫毛、胡须和缆绳,剪空的猫眼和蕾丝孔;薄金粉、铁胆墨圆体题签、玻璃背面的金线圈、凸面玻璃反光、棱顶磨出红色底漆的旧金框) | 约 3 秒 |
| 凸版印刷海报 | lib/letterpress.py · Letterpress | examples/letterpress_circus.py 马戏团来了(1890 年代红黑两色马戏团海报:左栏每行木活字排满版心——THE GRAND TRAVELLING、带投影的红色大字 CIRCUS、宋体黑木活字「马戏团来了」、星号节目单;右边木刻:走钢丝的舞者端着平衡杆,下面戴非斯帽的大象踩在条纹鼓上扬鼻致意,40 FT. 尺寸线;红版色块与黑版轮廓错开几像素;三折折痕裂墨、贴上的日期条 SATURDAY · MAY 17、钉孔锈斑、泛黄与霉斑) | 约 6 秒 |
| 苏联构成主义 | lib/constructivism.py · Constructivism | examples/constructivism_radio.py 无线电 · РАДИО(虚构的 1920 年代无线电爱好者杂志封面,红黑两版:仰拍的双曲面网格广播塔印成网点、叠在红色圆盘上,塔尖射出红色楔形和越传越细的黑色波前,送进剪刀剪下的网点照片——带号角喇叭的电子管收音机;黑色斜条里反白 СЛУШАЙТЕ ВЕСЬ МИР(收听全世界),粗体压缩西里尔大字 РАДИО,三个编号标注;对折两次的折痕裂墨、霉斑、水渍潮线、图钉锈孔) | 约 6 秒 |
| 装饰艺术(Art Deco) | lib/artdeco.py · ArtDeco | examples/artdeco_express.py 夜行快车 · Night Express(1930 年代喷枪流线型铁路海报:午夜蓝长渐变天空、满月外一圈交替射线、探照灯;雾中远城和阶梯退台高楼,钟楼的钟停在 11:40;河面把城市和月亮反射成横向波纹;栗红流线型列车从城里驶上拱桥迎面而来,金色速度线收拢在车鼻上,头灯照亮铁轨;Deco 金字 NIGHT EXPRESS、阶梯角双金线边框;全画没有一根描边,形体全靠明暗) | 约 12 秒 |
| 黄金时代漫画 | lib/comic.py · ComicCover | examples/comic_rocket.py 火箭小队 No. 3(1940 年前后的报摊漫画封面:朝灭点挤出的立体刊名 ROCKET SQUAD、价格框和黄色旁白框;暮色天空分档网点、大月亮;红色火箭起飞,June 舰长指着月亮喊「NEXT STOP -- THE MOON!」,后座小狗 Pip 戴着护目镜;没赶上的机修工 Sparky 吊在绳梯上喊「HEY!! WAIT FOR ME!!」;拟声字 WHOOOSH!;毛笔墨线与羽状排线、Ben-Day 网点、三色版错位、泛黄新闻纸、书脊裂纹和生锈订书钉) | 约 5 秒 |
| 波普丝网 | lib/popart.py · PopSilkscreen | examples/popart_cat_moods.py 猫的六种心情(白底漆帆布用胶带隔出 3×2 六格,同一只虎斑猫按顺序讲一件小事:歪头好奇 → 馋得吐舌头 → 吃到了眯眼笑 → 被抓包瞪圆眼 → 压耳哈气 → 歪头睡着;每格先手涂一套撞色、描得很松,再刮印同一块照相黑版,中间调成 45° 粗网点;六格放版的位置、角度和墨量各不相同:糊版、缺墨、横刮、印了两次留灰影、干版露底) | 约 3 秒 |
| ASCII 字符画(行式打印机) | lib/lineprinter.py · LinePrinter | examples/lineprinter_launch.py 发射记录(桌上一整张 1970 年代 132 列绿条连续纸,两侧导孔、微孔撕线;左边整幅火箭发射的字符画:尖拱头锥、. : + % # 侧光箭身、叠打 #@ 的滚转标记、从喷口往下变宽的尾焰亮柱扎进翻滚的烟云,旁边是桁架勤务塔、塔吊、远处水塔、清晨太阳和人字形鸟群;右栏是事件日志、高度-时间打印机绘图和通道状态表;鼓式打印机的上下跳字、弱锤淡列、色带渐淡;读的人用红圆珠笔打勾、圈点、写了 on plan) | 约 2.3 秒 |
| 低多边形(1999 年代 3D) | lib/lowpoly.py · LowPoly | examples/lowpoly_canyon.py 峡谷飞行 · Canyon Run(一帧虚构的 1999 年飞行游戏:小特技飞机在沙漠峡谷的右弯处压坡度,对准九个金环里的第五个,第六个挂在天然石拱下;阶梯状分层岩壁、起伏小面的河、十字插片杜松、雾里化开的方山;半透明螺旋桨盘、金环闪光、镜头光晕;384×216 帧缓冲、15 位色 4×4 有序抖动、无平滑放大 5 倍;HUD:金环计数 04/09、单圈时间、阶梯速度条、赛道小地图) | 约 0.2 秒 |
| 喷漆模板涂鸦 | lib/stencil.py · Stencil | examples/stencil_kite.py 放风筝 · Hold On(木纹模板清水混凝土墙:木纹、浆棱、对拉螺栓孔、锈水雨痕、返潮泛碱、发丝裂缝;三张卡纸模板白 → 灰 → 黑喷出的小孩:毛线帽、羽绒服、往前飘的条纹围巾,身子后仰攥着线轮;徒手喷的风筝线连到左上角的红色菱形风筝;同一张小模板转着角度喷的燕子和树叶;带桥的 HOLD ON 模板字;清晰核心、外溢雾化、飞沫、滴痕;滚筒灰漆盖掉的旧签名、被水枪冲淡的粉色签名) | 约 6 秒 |
| 刺绣徽章 | lib/patch.py · Patch | examples/patch_camping.py 三晚露营(牛仔夹克后背,过肩缝压着双道明线,一晚一枚徽章:第一晚是热切缎面边的拱形异形章——日落分层天空、远山、湖面倒影、亮灯的帐篷;第二晚是金色锁边圆章——雪峰、松林、营火与火星、弯月,缎面字 HIGH CAMP / NIGHT 2,上方弧形条章 THREE NIGHTS OUT;第三晚是正在手缝的指南针章,针和线还留在牛仔布上;一条刺子绣虚线把三枚徽章串成路线) | 约 6 秒 |
| 蓝图工程图 | lib/blueprint.py · Blueprint | examples/blueprint_lighthouse.py 灯塔剖面 · Halvard Rock Light(1911 年一套灯塔施工图,描图布上墨后晒成蓝图:南立面的花岗岩砌层和背光一侧的明暗线;A–A 剖面里越往上越薄的石墙、绕空心中柱盘上去的悬挑石阶、值守室的钟表机构;+6.50 平面和指北针;详图 1 讲灯焰、棱镜和透镜怎样送出一束平行光;总说明、比例尺、修改栏、中英文标题栏;折成六折、朝外那格褪色、碱性水渍、图钉孔,工地工程师用红蜡笔圈出楼梯批注) | 约 5 秒 |
| 儿童蜡笔画 | lib/crayon.py · Crayon | examples/crayon_picnic.py 我的周末(六岁小孩在糙纸上用蜡笔画的一家人野餐:戴墨镜的笑脸太阳、四种颜色写的歪扭标题「我的周末!」、风筝和彩虹,天空绕着东西涂、越往下越稀;冒卷烟的小房子和苹果树;爸爸、妈妈和我手拉手站在红格子野餐布后面,小狗扑向皮球;郁金香、蝴蝶和签名「朵朵 6岁」;纸上还躺着一根用秃的红蜡笔、一截断了的蓝蜡笔和蜡屑) | 约 8 秒 |
| 绿屏终端 CRT(荧光字符画) | lib/crt.py · CRTTerminal | examples/crt_weather.py 今天带伞吗 · Bring an Umbrella?(80 年代米色机壳的视频终端上敲了一条 forecast 命令,回来一屏绿色 P1 荧光字符画:一整天从左到右画成一条——清晨的太阳、积云、14:00–17:30 在小镇上下雨的雷暴云(闪电、带余辉的雨丝)、雨后碎云、夜里的月牙和灯塔光;下面同一条时间轴上的扫描线气温曲线、八分块雨量柱和反白的「umbrella? YES」;双倍高标题、方框线、烧着旧字的状态栏;扫描线、光晕、桶形畸变,机壳斜面映着绿光) | 约 7 秒 |
| 热成像 | lib/thermal.py · Thermal | examples/thermal_kitchen.py 厨房里的温度 · Kitchen Heat Map(晚饭时分厨房的热像仪画面:汤锅的蒸汽卷进抽油烟机,抛光锅盖因发射率低读数低一档;水壶喷出一道蒸汽;烤箱门封漏热,把手上的湿抹布比室温还凉;刚出炉的面包冒热气;冰箱门没关,冷气顺着抽屉淌到地砖上铺成冷舌;猫踩过冷坑又回到暖砖上,留下一串越早越淡的暖脚印;点测温、区域框、沿脚印的线剖面,读数全从画面上读出来;480×270 传感器、噪声与竖条纹、铁红色板) | 约 2 秒 |
| 代尔夫特蓝瓷砖 | lib/delft.py · DelftTile | examples/delft_canal.py 运河小镇 · 一阵风 De Windvlaag(一面锡釉砖墙:中间 11 × 7 块砖连成一幅砖画,四周是四角带角饰、圆框里画小图的单块砖。一阵西风吹过运河小镇:风车在转,平底帆船顺风驶来,烟、床单和衬衫都往右扬,郁金香一齐弯腰,一个人的帽子被吹到河面上,小狗腾空扑过去;藤蔓边框和卷轴题字 DE WINDVLAAG;每块砖单独画、单独烧,线条在砖缝处错开;开片、铁斑、崩瓷,云上一块窗户倒影在砖缝处断开错位) | 约 6 秒 |
| 洞穴壁画(赭石颜料) | lib/cave.py · CavePainting | examples/cave_hunt.py 篝火旁的岩洞(只靠篝火和石油灯照亮的石灰岩洞壁讲一次狩猎:野牛画在岩壁天然的鼓包上,背插两支矛,转身对着两个红色猎人;马、雄鹿和母鹿往反方向跑,上方一匹只起了炭稿的马;火堆上方四只吹喷手印,墙脚一排掌印红点;地上放着三堆研磨赭石和炭条的石板、一根吹颜料的骨管;钟乳石帘、钙华薄膜、零星掉色、熊爪抓痕、熏黑的顶壁) | 约 7 秒 |
| 1-bit 早期画图软件 | lib/macpaint.py · MacPaint | examples/macpaint_garden.py 窗台花园 · Windowsill Garden(一台 1984 年式黑白画图软件的整屏:菜单栏、工具栏、图案板、条纹标题栏窗口;画布上一扇窗,格子布窗帘画好左边再翻转复制出右边,窗外是图案分带的天空和山坡小屋;窗台上种子袋和三盆向日葵讲 40 天:发芽、长叶、开花,喷壶还对着第 2 天那盆滴水;黑猫盯着一只被选框行军蚁框住的白蝴蝶;Shadow 样式标题 watch it grow!;全画只有黑白两值,色调全靠 8×8 图案) | 约 0.4 秒 |
| 古希腊黑绘陶瓶 | lib/blackfigure.py · BlackFigure | examples/blackfigure_games.py 赛跑与赛车 · Games on a Vase(博物馆展台上一只阿提卡黑绘颈柄双耳瓶,旁边展板把两圈饰带展开成平面:上圈四马战车赛,正面是领先的两辆,转到瓶背才看得见折返柱、落后的第三辆、奖品三足鼎和裁判;下圈短跑,背面是终点柱和摆着奖品的桌子;棕榈叶莲花链、舌纹、回纹、放射纹、古希腊字母题字;赤陶橙底、黑釉剪影、刻线、加红加白,黑釉上一条柔光箱反光;加白剥落、钙质结壳、缺口和修补) | 约 7 秒 |
| 铅笔素描 | lib/graphite.py · Graphite | examples/graphite_bicycle.py 老街角的自行车 · The Bread Run(素描纸上的石墨写生:女式城市自行车靠在老街转角的灰泥墙上,前筐里一根法棍和一束纸包的郁金香;阴影里的侧墙挂着只画了面包的铁艺招牌,左边一扇深门洞,麻雀在啄面包屑;起形辅助线、轮廓、侧锋铺调、分层排线、纸擦笔、橡皮提亮一步步做完;只有中间画完,越往纸边越只剩线稿;页边铅笔笔记、2H–8B 试笔色阶和一枚石墨指纹) | 约 11 秒 |
| X 光片 | lib/xray.py · XRay | examples/xray_luggage.py 行李安检 · Security Check(双能 X 光安检机俯视图:传送带上的硬壳拉杆箱,箱壳轮廓发亮、铝拉杆是两层套管;箱里一把折叠伞、一个旅行吹风机(电机、双重螺旋电热丝)、一台仰面躺着的相机、钥匙和硬币、叠好的衣服、一瓶水,还有一副脊柱里穿着钢销的石膏恐龙骨架玩具;侧栏是同一只包的材料伪彩视图和 1 号物体放大,操作员结论:1 是玩具放行,2 超过 100 ml 要取出;Zeff 和毫升数都是从画面上量出来的) | 约 2 秒 |
| 1930 年代黑白橡皮管动画 | lib/rubberhose.py · RubberHose | examples/rubberhose_morning.py 早晨的闹钟(7 点整的小卧室:双铃闹钟蹦上床头柜摇铃,一只鞋踮着脚,挥着白手套指着床,「RRRING!」在头顶蹦跳;戴条纹睡帽的枕头还在打呼,举起手套「再睡五分钟」;窗外的太阳在两座山之间打哈欠伸懒腰,阳光落在地毯上,一双拖鞋已经跳起舞;灰色水粉背景、描线上色的赛璐璐、饼切眼、橡皮管四肢,拍成老胶片:柔焦、颗粒、片门晃动、圆角片门、划痕、灰尘和片门里的一根头发) | 约 3 秒 |
| 黑白麻胶版画(linocut) | lib/linocut.py · Linocut | examples/linocut_snowy_village.py 雪夜归途 · Homeward, First Snow(两块版的麻胶版画:V 口刀刻出的风雪流线、刻出来的满月和断续光环、两缕炊烟;雪坡的黑色等高线、山脚积雪的云杉林、五座积雪木屋;一个人提着灯笼、拖着一雪橇劈柴走回家,脚印和雪橇辙从画外进来,那家的门敞着、暖光洒在雪上,小狗跑出来迎他;灯黄套色版只印亮窗、门前的光和灯笼,略微错版;实地发花、残刀印、压印,页边铅笔版次 7/30、题名、签名和一枚钢印) | 约 9 秒 |
| VHS 家庭录像 | lib/vhs.py · VHSCamcorder | examples/vhs_birthday.py 吹蜡烛 · Blow Out the Candles(一家人生日录像里的一帧:70 年代客厅的圆环墙纸、胡桃木护墙板、兔耳天线电视、牛油果绿丝绒沙发、长毛地毯;彩带、HAPPY BIRTHDAY 三角小旗、戴派对帽的泰迪熊;茶几上的蛋糕四根蜡烛刚吹灭冒着烟、两根还亮着,过生日的孩子戴着尖帽从背后凑近、离镜头太近而虚焦;白平衡停在「室外」拍钨丝灯、烛焰过曝和 CCD 竖向拖影、点阵 OSD;录像带的色度渗色、跟踪噪带、磁头切换噪声、掉磁白点) | 约 6 秒 |
| 扁平矢量 | lib/flatvector.py · FlatVector | examples/flatvector_night_camp.py 山间夜营(七色限定色板,无描边的大块几何形一层层叠起来,层与层之间一道柔和投影,加极细颗粒;夜蓝天空里一轮带橙色光芒的月亮,紫色雪山分出亮面和折线暗面,品红、橙色两种山丘带,黄沙地;下午插在山顶的小旗下,一条虚线小路走之字形下山、穿过山丘,尽头是戴头灯走最后一段路的小小背包客;营地已经亮了:橙色 A 字帐篷门口透出光,篝火的光在沙地上铺成一圈圈平涂光环;几何松树、圆冠树、两朵平底云、一颗流星) | 约 1 秒 |
| 绘本角色动画 | lib/storybook.py · Storybook | examples/storybook_acorn.py 小橡果的秋天(真动画 + 旅程总图:米色纸上,枝头打盹的小橡果被晃醒、拉长掉下、落地压扁再弹起,追着一片红橡叶滚下山坡,山坡、小花、远山随它经过一笔笔画出来;跳上漂在小河上的橡叶,撞岸后空翻上岸,钻进土里发芽长成一棵还戴着橡果帽的小橡树;最后「hello, little oak」按笔顺写出来,彩纸屑飞起。总图把六个关键姿态多次曝光在铅笔运动弧上;加 --gif out.gif 出 15 fps 的真动画) | 约 1 秒(总图)/ 约 3 秒(151 帧动图) |
| 圆珠笔涂鸦 | lib/ballpoint.py · Ballpoint | examples/ballpoint_board_game.py 蛇梯棋大冒险 · Snakes & Ladders, Round 7(午休时在复印纸上用蓝、红、黑三支圆珠笔画的 8×8 蛇梯棋,彩铅一行行涂成彩虹色格子;一局正在进行:骰子刚从页边弹过来、掷出 4,蜗牛从 10 跳四格到 14(红笔虚线弧标出 1-2-3-4),正顺着长梯子爬到 38(红圈、虚线箭头、+24!),小云从 47 被绿蛇滑下去,晕乎乎地喊 nooo~,骰子怪在 51 捂着脸;页边是彩旗、太阳、井字棋、纸飞机、星星串、山坡小房子、花盆,吐槽小纸条「who drew this snake so LONG?!」、记分卡、把 three 划掉改成 four、红笔结论 slow snail, fast ladder!;右下角还有上一页购物单压过来的无墨压痕) | 约 4 秒 |
| 描图纸叠层 | lib/overlay.py · Overlay | examples/overlay_city_map.py 海港步行图 · Larkhaven on Foot(暖白灯箱上,定位钉挂着一张黑线灰调的海边小城底图:递归切出的街区、沿街一圈房屋和分户墙、深色地标、海岸与防波堤、铁路、城堡山和岬角的等高线;三张单色叠片对着套准十字落下——蓝片(沿岸一圈圈水线、河、港湾、渡轮航线、2 路电车)、黄片(公园、集市广场、海滩)、品红片(六站步行路线,坐渡轮去灯塔);不同叠片的油墨正片叠底:植物园的池塘叠成绿、路线压过公园成红、压过海面成紫;描图纸背光下的纤维云纹、卷角、打孔、绘图胶带,旁边一张透明胶片上的图例卡) | 约 7 秒 |
| 粉彩界面 · Pastel UI | lib/pastel_ui.py · PastelUI | examples/pastel_moodtracker.py 心情轨迹 · Mood Tracker(圆角几何风格的应用界面:渐变的柔和背景,带有磨砂玻璃效果的卡片,钝角形状的图标;每日心情条、周视图日历、简单的统计图表;柔和的粉彩配色、微妙的阴影、细线描边;顶部的搜索结果栏和底部导航按钮) | 约 3 秒 |
| 磁带拼贴 · Cassette Collage | lib/cassette.py · CassetteCollage | examples/cassette_mixtape.py 混音带 · For Estelle(手撕纸艺拼贴:棕色牛皮纸背景,一张手撕的宝丽来照片(逆光人影、拍立得边框),一段撕下的乐谱、歌名手写标签、裁剪的字母贴纸、落叶和干花;撕纸边缘、翘起的纸角、透明胶带反光、铅笔速写歌词片段、回形针、图钉;组成一个复古混音带的封面) | 约 4 秒 |
快速开始
在项目根目录运行任何一个示例:
python examples/moon_river.py
执行后会在当前目录生成对应的 PNG 图片(例如 moon_river.png)。
安装
本仓库不依赖任何第三方机器学习库或云端生图 API。图像完全由 Python 代码用 numpy 和 Pillow 逐像素生成。
推荐的运行环境:
- macOS(自带
python3) - Linux(
python3) - Windows(需安装 Python)
如果系统缺少 numpy 或 Pillow,可以用 pip 安装:
python3 -m pip install numpy Pillow
如果你习惯使用虚拟环境:
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
python3 -m pip install numpy Pillow
python examples/storybook_acorn.py
授权
MIT License