diff --git a/__init__.py b/__init__.py index fcbcee3..09f7f05 100644 --- a/__init__.py +++ b/__init__.py @@ -69,5 +69,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { "PreviewPrompt": "Preview Prompt", } -__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS'] +WEB_DIRECTORY = "./nodejs" + +__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY'] diff --git a/assets/zh/animal_datas.jsonl b/assets/zh/animal_datas.jsonl index f97a653..adf01ca 100644 --- a/assets/zh/animal_datas.jsonl +++ b/assets/zh/animal_datas.jsonl @@ -1234,6 +1234,207 @@ {"text":"黑松"} {"text":"黑色棒子"} +{"text":"红鲫鱼(金鲫鱼)"} +{"text":"草金鱼(燕尾草金)"} +{"text":"琉金金鱼"} +{"text":"狮头金鱼"} +{"text":"龙睛金鱼(墨龙睛、红龙睛)"} +{"text":"水泡金鱼(红水泡、蓝水泡)"} +{"text":"珍珠鳞金鱼(五花珍珠鳞)"} +{"text":"鹤顶红金鱼"} +{"text":"绒球金鱼(红绒球、五花绒球)"} +{"text":"虎头金鱼(红虎头、兰虎头)"} +{"text":"红白锦鲤"} +{"text":"大正三色锦鲤"} +{"text":"昭和三色锦鲤"} +{"text":"丹顶锦鲤(丹顶红白、丹顶三色)"} +{"text":"写鲤(白写、绯写)"} +{"text":"别光锦鲤(白别光、赤别光)"} +{"text":"浅黄锦鲤(绀青浅黄、鸣海浅黄)"} +{"text":"衣锦鲤(蓝衣锦鲤、墨衣锦鲤)"} +{"text":"黄金锦鲤(山吹黄金、白金锦鲤)"} +{"text":"花纹皮光鲤(菊水锦鲤、锦水锦鲤)"} +{"text":"红绿灯鱼"} +{"text":"宝莲灯鱼"} +{"text":"黑莲灯鱼(黑日光灯)"} +{"text":"日光灯鱼(日光灯脂鲤)"} +{"text":"红鼻剪刀鱼"} +{"text":"大勾扯旗鱼"} +{"text":"小勾扯旗鱼"} +{"text":"玫瑰扯旗鱼"} +{"text":"刚果扯旗鱼"} +{"text":"帝王灯鱼"} +{"text":"红尾玻璃鱼"} +{"text":"玻璃扯旗鱼"} +{"text":"银屏灯鱼"} +{"text":"头尾灯鱼"} +{"text":"柠檬灯鱼"} +{"text":"绿晶灯鱼"} +{"text":"霓虹燕子灯鱼"} +{"text":"钻石灯鱼"} +{"text":"喷火灯鱼"} +{"text":"蓝眼灯鱼"} +{"text":"红灯管鱼"} +{"text":"蓝灯管鱼"} +{"text":"金丝灯鱼(唐鱼)"} +{"text":"拐棍灯鱼"} +{"text":"企鹅灯鱼"} +{"text":"圆点燕子灯鱼"} +{"text":"红翅珍珠灯鱼"} +{"text":"三线灯鱼"} +{"text":"黑裙鱼(黑扯旗鱼)"} +{"text":"彩裙鱼(人工染色品种)"} +{"text":"斑马鱼(蓝斑马、红斑马)"} +{"text":"红斑马鱼"} +{"text":"蓝斑马鱼"} +{"text":"长鳍斑马鱼"} +{"text":"豹纹斑马鱼"} +{"text":"樱桃鲫(红玫瑰鲫)"} +{"text":"黄金鲫(人工改良鲫)"} +{"text":"蓝曼龙鱼"} +{"text":"黄曼龙鱼"} +{"text":"珍珠马甲鱼"} +{"text":"丽丽鱼(红丽丽、蓝丽丽)"} +{"text":"三点丽丽鱼"} +{"text":"泰国鲫(双线鲫、红鳍鲫)"} +{"text":"银鲨(黑鳍袋唇鱼)"} +{"text":"彩虹鲨(红鳍鲨)"} +{"text":"普通神仙鱼(燕鱼,灰神仙)"} +{"text":"黑神仙鱼(墨燕)"} +{"text":"白神仙鱼(白燕)"} +{"text":"金头神仙鱼"} +{"text":"熊猫神仙鱼"} +{"text":"钻石神仙鱼"} +{"text":"三色神仙鱼"} +{"text":"红眼神仙鱼"} +{"text":"埃及神仙鱼"} +{"text":"秘鲁神仙鱼"} +{"text":"血鹦鹉鱼(红财神、金刚鹦鹉)"} +{"text":"金刚鹦鹉鱼"} +{"text":"麒麟鹦鹉鱼"} +{"text":"黄鹦鹉鱼"} +{"text":"罗汉鱼(珍珠罗汉、金花罗汉)"} +{"text":"金花罗汉鱼"} +{"text":"珍珠罗汉鱼"} +{"text":"鸿运当头罗汉鱼"} +{"text":"红马罗汉鱼"} +{"text":"德萨罗汉鱼"} +{"text":"蓝宝石鱼(兰玉鲷)"} +{"text":"红宝石鱼(红尾鲃)"} +{"text":"红尾皇冠鱼"} +{"text":"玉面皇冠鱼(红尾玉面)"} +{"text":"菠萝鱼(金菠萝、红菠萝)"} +{"text":"金菠萝鱼"} +{"text":"红菠萝鱼"} +{"text":"地图鱼(黑地图、白地图)"} +{"text":"黑地图鱼"} +{"text":"白地图鱼"} +{"text":"十间鱼(非洲十间)"} +{"text":"非洲王子鱼"} +{"text":"雪中红慈鲷"} +{"text":"阿里鱼(阿里单色鲷)"} +{"text":"维纳斯慈鲷"} +{"text":"清道夫鱼(国王异型)"} +{"text":"黄金大胡子(黄鳍异型)"} +{"text":"蓝眼大胡子"} +{"text":"迷彩大胡子"} +{"text":"熊猫鼠鱼"} +{"text":"咖啡鼠鱼"} +{"text":"三间鼠鱼"} +{"text":"青苔鼠鱼"} +{"text":"金苔鼠鱼"} +{"text":"白鼠鱼"} +{"text":"花椒鼠鱼"} +{"text":"珍珠鼠鱼"} +{"text":"红头鼠鱼"} +{"text":"豹鼠鱼"} +{"text":"月光鼠鱼"} +{"text":"红尾鲶鱼(狗仔鲸)"} +{"text":"招财猫鱼(红尾鸭嘴)"} +{"text":"成吉思汗鲨(长丝鲶)"} +{"text":"玻璃猫鱼(幽灵猫鱼)"} +{"text":"反游猫鱼"} +{"text":"银龙鱼"} +{"text":"红龙鱼(辣椒红龙、血红龙)"} +{"text":"辣椒红龙鱼"} +{"text":"血红龙鱼"} +{"text":"金龙鱼(过背金龙、高背金龙)"} +{"text":"过背金龙鱼"} +{"text":"高背金龙鱼"} +{"text":"孔雀鱼(马赛克孔雀、礼服孔雀)"} +{"text":"马赛克孔雀鱼"} +{"text":"礼服孔雀鱼"} +{"text":"草尾孔雀鱼"} +{"text":"剑尾孔雀鱼"} +{"text":"月光鱼(红月光、蓝月光)"} +{"text":"红月光鱼"} +{"text":"蓝月光鱼"} +{"text":"玛丽鱼(黑玛丽、金玛丽)"} +{"text":"黑玛丽鱼"} +{"text":"金玛丽鱼"} +{"text":"红箭鱼(剑尾鱼)"} +{"text":"米奇鱼(剑尾鱼人工品种)"} +{"text":"三间雀鲷"} +{"text":"四间雀鲷"} +{"text":"蓝魔雀鲷(蓝宝石蓝魔)"} +{"text":"黄尾蓝魔雀鲷"} +{"text":"三点白雀鲷"} +{"text":"两点白雀鲷"} +{"text":"豆娘鱼(条纹豆娘鱼)"} +{"text":"六线豆娘鱼"} +{"text":"五线豆娘鱼"} +{"text":"霓虹雀鲷(紫背雀鲷)"} +{"text":"红尾雀鲷"} +{"text":"黑斑雀鲷"} +{"text":"白尾雀鲷"} +{"text":"蓝星雀鲷"} +{"text":"黄肚雀鲷"} +{"text":"黑鳍雀鲷"} +{"text":"橙尾雀鲷"} +{"text":"灰雀鲷"} +{"text":"红海豆娘鱼"} +{"text":"太平洋豆娘鱼"} +{"text":"蓝带雀鲷"} +{"text":"黄斑雀鲷"} +{"text":"红胸雀鲷"} +{"text":"白胸雀鲷"} +{"text":"黑边雀鲷"} +{"text":"三线雀鲷"} +{"text":"四线豆娘鱼"} +{"text":"七线豆娘鱼"} +{"text":"金豆娘鱼"} +{"text":"紫雀鲷"} +{"text":"三间火箭蝶鱼"} +{"text":"黄金蝶鱼"} +{"text":"人字蝶鱼(扬幡蝴蝶鱼)"} +{"text":"黑白关刀蝶鱼(长吻蝶鱼)"} +{"text":"月光蝶鱼"} +{"text":"网纹蝶鱼"} +{"text":"红海黄金蝶鱼"} +{"text":"蓝纹蝶鱼"} +{"text":"八线蝶鱼"} +{"text":"冬瓜蝶鱼"} +{"text":"女王神仙鱼"} +{"text":"蓝面神仙鱼"} +{"text":"马鞍神仙鱼"} +{"text":"法国神仙鱼"} +{"text":"皇帝神仙鱼"} +{"text":"蓝环神仙鱼"} +{"text":"火焰神仙鱼"} +{"text":"珊瑚美人神仙鱼"} +{"text":"六间神仙鱼"} +{"text":"红薄荷神仙鱼"} +{"text":"六角恐龙鱼(墨西哥钝口螈)"} +{"text":"肺鱼(非洲肺鱼、澳洲肺鱼)"} +{"text":"泰国斗鱼(马尾斗鱼、半月斗鱼)"} +{"text":"半月斗鱼"} +{"text":"狮王斗鱼"} +{"text":"将军斗鱼"} +{"text":"圆尾斗鱼(中国斗鱼)"} +{"text":"叉尾斗鱼(中国斗鱼)"} +{"text":"狗头鱼(潜水艇鱼,淡水)"} +{"text":"牛角鱼(海水)"} + {"text":"无毛猫"} {"text":"短毛猫"} {"text":"长毛猫"} @@ -2700,3 +2901,214 @@ {"text":"朱鹮"} {"text":"金雕"} {"text":"雉鹑"} + +{"text":"奶白(奶呼呼的白色猫咪)"} +{"text":"橘胖(橘色且圆润的猫)"} +{"text":"黑煤球(通体黑亮的短毛猫)"} +{"text":"灰雾(浅灰色长毛猫,像薄雾)"} +{"text":"玳瑁糖(玳瑁花纹,带点甜感)"} +{"text":"三花酱(三花色猫咪,显软萌)"} +{"text":"银渐层(对应银渐层品种,也泛指银白渐变毛)"} +{"text":"金豆豆(金渐层猫咪,像小金子)"} +{"text":"虎斑块(带明显虎斑纹的猫)"} +{"text":"雪斑(白色底毛带浅灰斑点)"} +{"text":"墨玉(黑色长毛猫,毛发亮如玉石)"} +{"text":"奶油卷(奶油色长毛猫,毛发蓬松)"} +{"text":"麻薯(浅棕或浅灰的蓬松猫,像麻薯)"} +{"text":"煤球卷(黑色长毛猫,毛发卷曲)"} +{"text":"橘斑(橘色底毛带深色斑点)"} +{"text":"灰绒(灰色短毛猫,毛发柔软)"} +{"text":"白团子(白色短毛猫,圆滚滚像团子)"} +{"text":"黑加白(黑白双色猫咪,如奶牛猫)"} +{"text":"金虎斑(金色底毛带虎斑纹)"} +{"text":"雾白(白色长毛猫,毛发轻盈如雾)"} + +{"text":"圆滚滚(体型圆润的猫)"} +{"text":"小短腿(曼赤肯等短腿品种,或腿短的猫)"} +{"text":"大脸包(脸部饱满的猫,如加菲猫)"} +{"text":"毛球儿(毛发蓬松、团起来像球的猫)"} +{"text":"小尖脸(脸部较尖的猫,如暹罗猫)"} +{"text":"胖墩儿(体型偏胖、憨厚的猫)"} +{"text":"长尾仔(尾巴修长的猫)"} +{"text":"短尾宝(短尾猫,如日本短尾猫)"} +{"text":"软毛怪(毛发柔软、摸起来很舒服的猫)"} +{"text":"绒绒球(毛发短而密、像小绒球的猫)"} +{"text":"大毛霸(长毛猫,毛发旺盛)"} +{"text":"小细条(体型纤瘦的猫)"} +{"text":"圆脸宝(脸型圆润的猫)"} +{"text":"塌鼻儿(扁鼻子猫,如波斯猫)"} +{"text":"立耳君(立耳品种的猫,如美短)"} +{"text":"折耳宝(折耳品种的猫,温柔感)"} +{"text":"大眼仔(眼睛超大的猫)"} +{"text":"小眯眼(眼睛偏小、笑起来眯成缝的猫)"} +{"text":"壮壮(体型结实的猫)"} +{"text":"轻毛球(体型轻盈、毛发蓬松的猫)"} + +{"text":"乖宝(性格温顺、听话的猫)"} +{"text":"闹闹(活泼好动、爱折腾的猫)"} +{"text":"黏人精(总黏着主人的猫)"} +{"text":"高冷君(不爱亲近人、傲娇的猫)"} +{"text":"怂怂(胆子小、容易受惊的猫)"} +{"text":"闯祸精(爱打翻东西、搞破坏的猫)"} +{"text":"懒蛋儿(总爱睡觉、不爱动的猫)"} +{"text":"好奇鬼(对一切事物都好奇的猫)"} +{"text":"乖乖(性格安静、不吵闹的猫)"} +{"text":"调皮蛋(爱蹦跳、玩闹的猫)"} +{"text":"黏黏(喜欢蹭人、贴人的猫)"} +{"text":"傲娇鬼(想要摸却躲开,又偷偷靠近的猫)"} +{"text":"睡神(一天大部分时间都在睡觉的猫)"} +{"text":"疯批仔(偶尔精力爆发、疯狂跑酷的猫)"} +{"text":"温柔妹(性格柔软、说话(叫)都轻声的猫)"} +{"text":"霸道哥(占着沙发、不让人靠近的猫)"} +{"text":"胆小鬼(听到大声音就躲起来的猫)"} +{"text":"机灵鬼(反应快、会看主人脸色的猫)"} +{"text":"安静宝(不吵不闹、默默待着的猫)"} +{"text":"调皮鬼(爱扒拉东西、藏小玩具的猫)"} + +{"text":"奶糕(像奶糕一样软萌的猫)"} +{"text":"团子(圆滚滚、像糯米团子的猫)"} +{"text":"糖豆(小巧可爱、像一颗糖的猫)"} +{"text":"布丁(软乎乎、颜色偏暖的猫)"} +{"text":"泡芙(毛发蓬松、像泡芙一样的猫)"} +{"text":"奶昔(浅色系、温柔可爱的猫)"} +{"text":"小年糕(白色或浅灰、软萌的猫)"} +{"text":"芋圆(颜色偏紫 / 棕、圆滚滚的猫)"} +{"text":"奶包(像奶做的小包子,软嫩的猫)"} +{"text":"蜜豆(颜色偏红棕、小巧可爱的猫)"} +{"text":"雪团(白色、像雪球一样的猫)"} +{"text":"软糖(性格软、外形萌的猫)"} +{"text":"小奶猫(即使长大,也像幼猫一样萌的猫)"} +{"text":"甜筒(颜色分层、像甜筒一样的猫)"} +{"text":"麻团(浅棕带点杂色、圆滚滚的猫)"} +{"text":"奶酥(毛发柔软、像奶酥一样的猫)"} +{"text":"小糯米(白色、小巧玲珑的猫)"} +{"text":"糖霜(白色毛发带点浅黄,像撒了糖霜的猫)"} +{"text":"萌宝(天生自带萌感的猫)"} +{"text":"小甜心(让人看了就开心的可爱猫)"} + +{"text":"云舒(像云朵一样舒展、温柔的猫)"} +{"text":"星子(眼睛像星星一样亮的猫)"} +{"text":"月白(白色毛发,像月光一样干净的猫)"} +{"text":"墨染(黑色毛发,像被墨染过的猫)"} +{"text":"清和(性格温和、让人觉得清爽的猫)"} +{"text":"知夏(夏天出生,或性格活泼如夏的猫)"} +{"text":"听雪(冬天出生,或白色毛发的猫)"} +{"text":"风眠(喜欢在窗边吹风、睡觉的猫)"} +{"text":"雾散(浅灰色毛发,像雾慢慢散开的猫)"} +{"text":"星眠(眼睛亮、爱睡觉的猫)"} +{"text":"云岫(长毛猫,毛发像山间云气一样的猫)"} +{"text":"疏影(身形纤瘦、像树影一样灵动的猫)"} +{"text":"清欢(性格安静、带来简单快乐的猫)"} +{"text":"砚墨(黑色短毛猫,像砚台里的墨一样的猫)"} +{"text":"枕月(喜欢在月光下睡觉的猫)"} +{"text":"听风(对风吹动敏感、爱追风的猫)"} +{"text":"汀兰(浅蓝 / 浅紫毛发,像水边兰花的猫)"} +{"text":"星垂(眼睛低垂时像星星落下的猫)"} +{"text":"云深(长毛猫,毛发蓬松像深处的云)"} +{"text":"月眠(白色猫,喜欢在月下蜷缩睡觉)"} + + +{"text":"煤球(通体黑亮的短毛狗,如黑柴、拉布拉多)"} +{"text":"奶白(毛发雪白柔软的狗,如萨摩耶、比熊)"} +{"text":"橘酱(橘色毛发的狗,如金毛、橘色田园犬)"} +{"text":"灰雾(浅灰色毛发的狗,如银狐、灰色贵宾)"} +{"text":"奶茶(浅棕带奶白的渐变色狗,如奶茶色柯基)"} +{"text":"墨黑(纯黑长毛狗,如黑色阿拉斯加、藏獒)"} +{"text":"奶油卷(奶油色蓬松长毛狗,如马尔济斯、西施)"} +{"text":"虎斑(带虎纹斑点的狗,如虎斑法斗、比特犬)"} +{"text":"雪团(白色短毛圆胖狗,如白色法斗、巴哥)"} +{"text":"棕墩(深棕色短腿狗,如柯基、腊肠)"} +{"text":"银霜(银灰色毛发的狗,如银渐层贵宾、喜乐蒂)"} +{"text":"花斑(黑白 / 棕白杂色狗,如边牧、斑点狗)"} +{"text":"金豆(金色短毛小狗,如迷你金毛、金巴)"} +{"text":"黑加白(黑白分明的狗,如边牧、比格)"} +{"text":"绒毛球(毛发浓密蓬松的小狗,如博美、泰迪)"} +{"text":"浅棕糖(浅棕色毛发的狗,如浅棕柴犬、可卡)"} +{"text":"雪绒(白色长毛狗,如萨摩耶、阿拉斯加)"} +{"text":"墨玉(黑色亮毛狗,如黑色拉布拉多、杜宾)"} +{"text":"黄米糕(浅黄色短毛狗,如中华田园犬、柴犬)"} +{"text":"灰绒(灰色短毛狗,如灰色法斗、英斗)"} + +{"text":"黏黏(总贴主人、爱蹭人的狗,如金毛、拉布拉多)"} +{"text":"闹闹(活泼爱跑、爱拆家的狗,如二哈、边牧)"} +{"text":"乖宝(温顺听话、不吵闹的狗,如比熊、马尔济斯)"} +{"text":"高冷君(不爱粘人、爱独处的狗,如柴犬、杜宾)"} +{"text":"怂怂(胆子小、怕陌生人的狗,如吉娃娃、小鹿犬)"} +{"text":"吃货(看到食物就兴奋的狗,如金毛、柯基)"} +{"text":"懒蛋儿(爱睡觉、不爱动的狗,如巴哥、英斗)"} +{"text":"好奇鬼(对一切都感兴趣、爱探索的狗,如比格、边牧)"} +{"text":"护主宝(会保护主人、警惕性高的狗,如德牧、罗威纳)"} +{"text":"调皮蛋(爱扒东西、爱咬玩具的狗,如泰迪、博美)"} +{"text":"温顺妹(性格柔软、叫声轻柔的狗,如西施、约克夏)"} +{"text":"霸道哥(占地盘、护玩具的狗,如阿拉斯加、斗牛犬)"} +{"text":"睡神(一天大半时间睡觉的狗,如巴哥、法斗)"} +{"text":"疯跑仔(精力旺盛、爱跑酷的狗,如二哈、萨摩耶)"} +{"text":"机灵鬼(反应快、会看脸色的狗,如边牧、贵宾)"} +{"text":"胆小鬼(怕打雷、怕大声音的狗,如吉娃娃、博美)"} +{"text":"暖心宝(会安慰主人、贴贴撒娇的狗,如金毛、拉布拉多)"} +{"text":"调皮鬼(爱搞小破坏、爱躲猫猫的狗,如柯基、比格)"} +{"text":"安静君(默默待在主人身边的狗,如马尔济斯、西施)"} +{"text":"热情仔(见人就摇尾巴、爱互动的狗,如萨摩耶、金毛)"} + +{"text":"奶糕(软萌小巧的狗,如茶杯犬、迷你泰迪)"} +{"text":"团子(圆滚滚的狗,如柯基、法斗)"} +{"text":"糖豆(像糖果一样可爱的小狗,如吉娃娃、约克夏)"} +{"text":"布丁(暖色系软乎乎的狗,如金毛、比熊)"} +{"text":"泡芙(毛发蓬松的狗,如博美、萨摩耶)"} +{"text":"奶昔(浅色系温柔的狗,如奶白色贵宾、比熊)"} +{"text":"小年糕(白色 / 浅棕的软萌狗,如马尔济斯、西施)"} +{"text":"芋圆(圆胖带点棕的狗,如柯基、腊肠)"} +{"text":"奶包(像奶做的小包子,软嫩的狗,如比熊、泰迪)"} +{"text":"蜜豆(浅棕可爱的小狗,如迷你可卡、柴犬幼犬)"} +{"text":"雪团(白色圆胖的狗,如萨摩耶、白色法斗)"} +{"text":"软糖(性格软、外形萌的狗,如比熊、约克夏)"} +{"text":"小奶狗(即使长大也像幼犬一样萌的狗,如泰迪、博美)"} +{"text":"甜筒(毛色分层的狗,如白棕相间的边牧、柯基)"} +{"text":"麻团(浅棕带杂色的圆胖狗,如田园犬、柯基)"} +{"text":"奶酥(毛发柔软的狗,如比熊、马尔济斯)"} +{"text":"小糯米(白色小巧的狗,如吉娃娃、迷你贵宾)"} +{"text":"糖霜(白色带浅黄的狗,如奶油色金毛、萨摩耶)"} +{"text":"萌宝(天生自带萌感的狗,如比熊、博美)"} +{"text":"小甜心(让人看了就开心的狗,如金毛、拉布拉多)"} + +{"text":"风仔(跑得快、爱追风的狗,如二哈、边牧)"} +{"text":"闪电(反应快、动作敏捷的狗,如灵缇、惠比特)"} +{"text":"勇士(勇敢护主的狗,如德牧、罗威纳)"} +{"text":"阳光(性格开朗、充满活力的狗,如金毛、萨摩耶)"} +{"text":"冲哥(爱往前冲、精力旺盛的狗,如阿拉斯加、二哈)"} +{"text":"敏捷仔(擅长跳跃、灵活的狗,如边牧、柯基)"} +{"text":"元气宝(每天活力满满的狗,如博美、泰迪)"} +{"text":"悍将(体型壮、有气势的狗,如藏獒、高加索)"} +{"text":"跳跳(爱蹦跳、爱玩耍的狗,如比格、可卡)"} +{"text":"飒姐(气质干练的狗,如杜宾、德牧)"} +{"text":"奔奔(爱奔跑、不爱宅的狗,如萨摩耶、拉布拉多)"} +{"text":"灵动宝(动作轻巧、反应快的狗,如贵宾、约克夏)"} +{"text":"壮壮(体型结实的狗,如金毛、阿拉斯加)"} +{"text":"活力豆(一刻不停歇的狗,如边牧、比格)"} +{"text":"帅仔(外形帅气的狗,如杜宾、柴犬)"} +{"text":"元气妹(活泼可爱的母狗,如比熊、博美)"} +{"text":"疾风(跑起来像风的狗,如灵缇、格力犬)"} +{"text":"勇宝(不怕生、勇敢的狗,如德牧、比特犬)"} +{"text":"活力哥(爱互动、爱运动的狗,如金毛、萨摩耶)"} +{"text":"敏捷君(擅长训练、动作标准的狗,如边牧、德牧)"} + +{"text":"云舒(毛发蓬松、性格温和的狗,如萨摩耶、比熊)"} +{"text":"星子(眼睛明亮像星星的狗,如边牧、金毛)"} +{"text":"月白(白色毛发、干净温柔的狗,如马尔济斯、萨摩耶)"} +{"text":"墨染(黑色毛发、气质沉稳的狗,如黑色拉布拉多、杜宾)"} +{"text":"清和(性格温和、让人清爽的狗,如金毛、拉布拉多)"} +{"text":"知夏(夏天出生、活泼如夏的狗,如萨摩耶、边牧)"} +{"text":"听雪(冬天出生、白色毛发的狗,如萨摩耶、阿拉斯加)"} +{"text":"风眠(喜欢在窗边吹风睡觉的狗,如柴犬、贵宾)"} +{"text":"雾散(浅灰色毛发的狗,如银狐、灰色贵宾)"} +{"text":"星眠(眼睛亮、爱睡觉的狗,如巴哥、法斗)"} +{"text":"云岫(长毛狗,毛发像山间云气的狗,如阿拉斯加、藏獒)"} +{"text":"疏影(身形纤瘦、灵动的狗,如灵缇、惠比特)"} +{"text":"清欢(性格安静、带来简单快乐的狗,如比熊、马尔济斯)"} +{"text":"砚墨(黑色短毛狗,像砚台墨的狗,如黑色法斗、杜宾)"} +{"text":"枕月(喜欢在月下休息的狗,如金毛、拉布拉多)"} +{"text":"听风(对风吹敏感、爱追风的狗,如二哈、萨摩耶)"} +{"text":"汀兰(浅蓝 / 浅灰毛发的狗,如灰色贵宾、银狐)"} +{"text":"星垂(眼睛低垂像星星落下的狗,如比熊、约克夏)"} +{"text":"云深(长毛蓬松的狗,如阿拉斯加、萨摩耶)"} +{"text":"月眠(白色狗,喜欢在月下蜷缩的狗,如比熊、马尔济斯)"} diff --git a/nodejs/prompt_combine.js b/nodejs/prompt_combine.js new file mode 100644 index 0000000..ca12c80 --- /dev/null +++ b/nodejs/prompt_combine.js @@ -0,0 +1,59 @@ +import { app } from "../../../scripts/app.js"; +import { ComfyWidgets } from "../../../scripts/widgets.js"; + +// Displays input text on a node + +app.registerExtension({ + name: "PromptWrapper.nodes.CombinePrompt", + async beforeRegisterNodeDef(nodeType, nodeData, app) { + if (nodeData.name === "CombinePrompt") { + + const onExecuted = nodeType.prototype.onExecuted; + nodeType.prototype.onExecuted = function (message) { + onExecuted?.apply(this, arguments); + + if (this.widgets) { + const pos = this.widgets.findIndex((w) => w.name === "text"); + if (pos !== -1) { + for (let i = pos; i < this.widgets.length; i++) { + this.widgets[i].onRemove?.(); + } + this.widgets.length = pos; + } + } + + const w = ComfyWidgets["STRING"](this, "result", ["STRING", { multiline: true }], app).widget; + w.inputEl.readOnly = true; + w.inputEl.style.opacity = 0.6; + w.value = message.text; + + this.onResize?.(this.size); + }; + } + + if (nodeData.name === "MultiCombinePrompt") { + + const onExecuted = nodeType.prototype.onExecuted; + nodeType.prototype.onExecuted = function (message) { + onExecuted?.apply(this, arguments); + + if (this.widgets) { + const pos = this.widgets.findIndex((w) => w.name === "text"); + if (pos !== -1) { + for (let i = pos; i < this.widgets.length; i++) { + this.widgets[i].onRemove?.(); + } + this.widgets.length = pos; + } + } + + const w = ComfyWidgets["STRING"](this, "result", ["STRING", { multiline: true }], app).widget; + w.inputEl.readOnly = true; + w.inputEl.style.opacity = 0.6; + w.value = message.text; + + this.onResize?.(this.size); + }; + } + }, +}); diff --git a/nodejs/prompt_preview.js b/nodejs/prompt_preview.js new file mode 100644 index 0000000..d061b54 --- /dev/null +++ b/nodejs/prompt_preview.js @@ -0,0 +1,76 @@ +import { app } from "../../../scripts/app.js"; +import { ComfyWidgets } from "../../../scripts/widgets.js"; + +// Displays input text on a node + +app.registerExtension({ + name: "PromptWrapper.nodes.PreviewPrompt", + async beforeRegisterNodeDef(nodeType, nodeData, app) { + if (nodeData.name === "PreviewPrompt") { + function update(text) { + if (this.widgets) { + // On older frontend versions there is a hidden converted-widget + const isConvertedWidget = +!!this.inputs?.[0].widget; + for (let i = isConvertedWidget; i < this.widgets.length; i++) { + this.widgets[i].onRemove?.(); + } + this.widgets.length = isConvertedWidget; + } + + const v = [...text]; + if (!v[0]) { + v.shift(); + } + for (let list of v) { + // Force list to be an array, not sure why sometimes it is/isn't + if (!(list instanceof Array)) list = [list]; + for (const l of list) { + const w = ComfyWidgets["STRING"](this, "text_" + this.widgets?.length ?? 0, ["STRING", { multiline: true }], app).widget; + w.inputEl.readOnly = true; + w.inputEl.style.opacity = 0.6; + w.value = l; + } + } + + requestAnimationFrame(() => { + const sz = this.computeSize(); + if (sz[0] < this.size[0]) { + sz[0] = this.size[0]; + } + if (sz[1] < this.size[1]) { + sz[1] = this.size[1]; + } + this.onResize?.(sz); + app.graph.setDirtyCanvas(true, false); + }); + } + + // When the node is executed we will be sent the input text, display this in the widget + const onExecuted = nodeType.prototype.onExecuted; + nodeType.prototype.onExecuted = function (message) { + onExecuted?.apply(this, arguments); + update.call(this, message.text); + }; + + const VALUES = Symbol(); + const configure = nodeType.prototype.configure; + nodeType.prototype.configure = function () { + // Store unmodified widget values as they get removed on configure by new frontend + this[VALUES] = arguments[0]?.widgets_values; + return configure?.apply(this, arguments); + }; + + const onConfigure = nodeType.prototype.onConfigure; + nodeType.prototype.onConfigure = function () { + onConfigure?.apply(this, arguments); + const widgets_values = this[VALUES]; + if (widgets_values?.length) { + // In newer frontend there seems to be a delay in creating the initial widget + requestAnimationFrame(() => { + update.call(this, widgets_values.slice(+(widgets_values.length > 1 && this.inputs?.[0].widget))); + }); + } + }; + } + }, +}); diff --git a/nodes/prompt_preview.py b/nodes/prompt_preview.py index 48ef0a2..9075c8d 100644 --- a/nodes/prompt_preview.py +++ b/nodes/prompt_preview.py @@ -27,6 +27,6 @@ class PreviewPrompt: def preview(self, text, unique_id=None, extra_pnginfo=None): - return {"ui": {"text": text}, "result": (text,)} + return {"ui": {"text": (text,)}, "result": (text,)}