parse_models.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  1. import json
  2. import os
  3. raw_data = """
  4. 适用方向
  5. Controlnet 类型
  6. 模型名称
  7. 基础算法类型
  8. 模型版本UUID
  9. 线稿类
  10. Canny(硬边缘)
  11. control_v11p_sd15_canny
  12. 基础算法 1.5
  13. 7d917ec7e55c5805db737d3b493c91ce
  14. t2iadapter_canny_sd14v1
  15. 基础算法 1.5
  16. a2c41c4e97944f3aa71f913bdc45b1ca
  17. t2iadapter_canny_sd15v2
  18. 基础算法 1.5
  19. c04144bcf017232483181cd8607097c2
  20. diffusers_xl_canny_full
  21. 基础算法 XL
  22. 56de5edadb6f2891aff05ff078dc0470
  23. diffusers_xl_canny_mid
  24. 基础算法 XL
  25. efb97e9d8c237573298c3a5a7869b89c
  26. diffusers_xl_canny_small
  27. 基础算法 XL
  28. dccde738064e9748f93b48ec5868968e
  29. kohya_controllllite_xl_canny
  30. 基础算法 XL
  31. 5242e3d18cc18689bd8af11dd2d675c1
  32. kohya_controllllite_xl_canny_anime
  33. 基础算法 XL
  34. 4f3e1cfe79f87496ec69a37826c3afeb
  35. sai_xl_canny_128lora
  36. 基础算法 XL
  37. 63c7f2c6c354336513831aa522d7e0f4
  38. sai_xl_canny_256lora
  39. 基础算法 XL
  40. 5bf551f53651764cad56363e17900d87
  41. t2i-adapter_diffusers_xl_canny
  42. 基础算法 XL
  43. 618390ab2957a422612cb2ba92a2788f
  44. t2i-adapter_xl_canny
  45. 基础算法 XL
  46. 7cd56501c336c1edba78430355c9d081
  47. xinsir_controlnet-canny-sdxl_V2
  48. 基础算法 XL
  49. b6806516962f4e1599a93ac4483c3d23
  50. XLabs-flux-canny-controlnet_v3
  51. 基础算法 F.1
  52. 017997cd6ba44c4dbe8f60e0a26cd0df
  53. InstantX-FLUX.1-dev-Controlnet-Union-Pro
  54. 基础算法 F.1
  55. 13c1e1b96ba64f9cbb2b54f89b5fe873
  56. InstantX-Qwen-Image-Controlnet-Union
  57. Qwen Image
  58. 5b5f21d2b80445598db19e924bd3a409
  59. SoftEdge(软边缘)
  60. control_v11p_sd15_softedge
  61. 基础算法 1.5
  62. 0929722d9047ec6498a50ff5d1081629
  63. sargezt_xl_softedge
  64. 基础算法 XL
  65. dda1a0c480bfab9833d9d9a1e4a71fff
  66. controlnet-sd-xl-1.0-softedge-dexined
  67. 基础算法 XL
  68. 37bddde3d45c11ee9b5e00163e365853
  69. mistoLine_softedge_sdxl_fp16
  70. 基础算法 XL
  71. 4f6726be104a432f8039b018c92ed4bf
  72. mistoLine_rank256
  73. 基础算法 XL
  74. 83286d0e66a845c58f7d23442f9dedf9
  75. XLabs-flux-hed-controlnet_v3
  76. 基础算法 F.1
  77. 6c4d620df3644514903b8189735c6ae9
  78. F.1_mistoline_dev_v1
  79. 基础算法 F.1
  80. 3e6860a3b9444f25ae07d9c1b5d1ba9e
  81. InstantX-FLUX.1-dev-Controlnet-Union-Pro
  82. 基础算法 F.1
  83. 13c1e1b96ba64f9cbb2b54f89b5fe873
  84. InstantX-Qwen-Image-Controlnet-Union
  85. Qwen Image
  86. 5b5f21d2b80445598db19e924bd3a409
  87. MLSD(直线)
  88. control_v11p_sd15_mlsd
  89. 基础算法 1.5
  90. 7168cece6a0d491375aa1753ff3bdc21
  91. Scribble/Sketch(涂鸦/草图)
  92. control_v11p_sd15_scribble
  93. 基础算法 1.5
  94. fe57911f7ba1b84eb27f1e1ecead3367
  95. kohya_controllllite_xl_scribble_anime
  96. 基础算法 XL
  97. 4a399a87f1ffbc26d065a38765d30d24
  98. xinsir_controlnet-scribble-sdxl-1.0
  99. 基础算法 XL
  100. 888cf8985bd6442cba1f2d975b6eb022
  101. xinsir_anime_painter
  102. 基础算法 XL
  103. f936bf22cb8e4dcfa6b0f3b96cdd8eb7
  104. InstantX-Qwen-Image-Controlnet-Union
  105. Qwen Image
  106. 5b5f21d2b80445598db19e924bd3a409
  107. Lineart(线稿)
  108. control_v11p_sd15_lineart
  109. 基础算法 1.5
  110. b06dfbd1a61c35e933d9f8caa8a0e031
  111. control_v11p_sd15s2_lineart_anime
  112. 基础算法 1.5
  113. c263e039c57b8a958ee0a936039af654
  114. t2i-adapter_diffusers_xl_lineart
  115. 基础算法 XL
  116. a0f01da42bf48b0ba02c86b6c26b5699
  117. InstantX-Qwen-Image-Controlnet-Union
  118. Qwen Image
  119. 5b5f21d2b80445598db19e924bd3a409
  120. 空间关系类
  121. Depth(深度图)
  122. control_v11f1p_sd15_depth
  123. 基础算法 1.5
  124. cf63d214734760dcdc108b1bd094921b
  125. t2iadapter_depth_sd15v2
  126. 基础算法 1.5
  127. f08a4a889b56d4099e8a947503cabc14
  128. t2iadapter_depth_sd14v1
  129. 基础算法 1.5
  130. 8b74bf9ea84f592c069b523d9bef9dab
  131. t2iadapter_zoedepth_sd15v1
  132. 基础算法 1.5
  133. fc8b79f97eeceda388b43df12509c311
  134. control_sd15_inpaint_depth_hand_fp16
  135. 基础算法 1.5
  136. 3497061cd45c11ee9b5e00163e365853
  137. t2i-adapter_diffusers_xl_depth_zoe
  138. 基础算法 XL
  139. a35993a2d1cde4a6c800364a68731c67
  140. sai_xl_depth_128lora
  141. 基础算法 XL
  142. 3156f3428afc7122c66b2b950f09d4cd
  143. t2i-adapter_diffusers_xl_depth_midas
  144. 基础算法 XL
  145. c22ec6a7a24eed6b91889ae1a1e94b2e
  146. diffusers_xl_depth_mid
  147. 基础算法 XL
  148. 740d6d428e70d4b40888efa4d9eb642a
  149. xinsir_controlnet_depth_sdxl_1.0
  150. 基础算法 XL
  151. 6349e9dae8814084bd9c1585d335c24c
  152. sai_xl_depth_256lora
  153. 基础算法 XL
  154. 08d0fbb72d7fab601218df26978a46e0
  155. sargezt_xl_depth
  156. 基础算法 XL
  157. feb9ee5779bf2eb3fdd669f2e3e6b1aa
  158. sargezt_xl_depth_zeed
  159. 基础算法 XL
  160. 4216d4b49a6b559d76d181908f866eb8
  161. kohya_controllllite_xl_depth_anime
  162. 基础算法 XL
  163. dea707d52e3a8f243da5579579cb3a3d
  164. kohya_controllllite_xl_depth
  165. 基础算法 XL
  166. 693d7182db5293c0087524580111fd96
  167. sargezt_xl_depth_faid_vidit
  168. 基础算法 XL
  169. 1c6d32d0fb004cf1becc2b526fd83690
  170. diffusers_xl_depth_small
  171. 基础算法 XL
  172. 6a786af31a13776100e9c6a90f99aebf
  173. diffusers_xl_depth_full
  174. 基础算法 XL
  175. 04dcab4b18c7b821e96660d6c19de50b
  176. XLabs-flux-depth-controlnet_v3
  177. 基础算法 F.1
  178. 0cc4e6b8206b44cdab51e30fb8b9c328
  179. InstantX-FLUX.1-dev-Controlnet-Union-Pro
  180. 基础算法 F.1
  181. 13c1e1b96ba64f9cbb2b54f89b5fe873
  182. Flux.1-dev-Controlnet-Depth
  183. 基础算法 F.1
  184. 64dd7a6c714f4512a4500f6a01b016b7
  185. InstantX-Qwen-Image-Controlnet-Union
  186. Qwen Image
  187. 5b5f21d2b80445598db19e924bd3a409
  188. Segment(语义分割)
  189. control_v11p_sd15_seg
  190. 基础算法 1.5
  191. 94571f4bb5136464afc1540a92ae3ee8
  192. Normal(正态)
  193. control_v11p_sd15_normalbae
  194. 基础算法 1.5
  195. 9a85fdca18a8b58b2fb2ff13ab339be4
  196. Flux.1-dev-Controlnet-Surface-Normal
  197. 基础算法 F.1
  198. e51fdccdf3b8417aab246bde40b5f360
  199. 姿态类
  200. OpenPose(姿态)
  201. control_v11p_sd15_openpose
  202. 基础算法 1.5
  203. b46dd34ef9c2fe189446599d62516cbf
  204. t2iadapter_openpose_sd14v1
  205. 基础算法 1.5
  206. 5a8b19a8809e00be4e17517e8ab174ad
  207. control_v11p_sd15_densepose_fp16
  208. 基础算法 1.5
  209. 3b4e0830d45c11ee9b5e00163e365853
  210. control_sd15_animal_openpose_fp16
  211. 基础算法 1.5
  212. 329f0073d45c11ee9b5e00163e365853
  213. control_v2p_sd15_mediapipe_face
  214. 基础算法 1.5
  215. 73de0752a7a8431ba21637cda6723c95
  216. kohya_controllllite_xl_openpose_anime_v2
  217. 基础算法 XL
  218. 4cbbd2483088ef5f0d41bfef0d7141fb
  219. kohya_controllllite_xl_openpose_anime
  220. 基础算法 XL
  221. abb5d55cf94c504f6f8c64abc0b1483f
  222. thibaud_xl_openpose_256lora
  223. 基础算法 XL
  224. 4dd1f4df2a9d3a9db8aeaa9480196d02
  225. t2i-adapter_xl_openpose
  226. 基础算法 XL
  227. 9deac5a5c60abfd03261bd174ddba47d
  228. t2i-adapter_diffusers_xl_openpose
  229. 基础算法 XL
  230. 9cd43e1856040c2436f00802d5b54ee5
  231. thibaud_xl_openpose
  232. 基础算法 XL
  233. 2fe4f992a81c5ccbdf8e9851c8c96ff2
  234. controlnet-densepose-sdxl
  235. 基础算法 XL
  236. 3ae77dfdd45c11ee9b5e00163e365853
  237. xinsir_controlnet-openpose-sdxl-1.0
  238. 基础算法 XL
  239. 23ef8ab803d64288afdb7106b8967a55
  240. F.1-ControlNet-Pose-V1
  241. 基础算法 F.1
  242. 7c6d889cb9c04b78858d8fece80f9f85
  243. InstantX-Qwen-Image-Controlnet-Union
  244. Qwen Image
  245. 5b5f21d2b80445598db19e924bd3a409
  246. 画面参考
  247. Tile/Blur(分块/模糊)
  248. control_v11f1e_sd15_tile
  249. 基础算法 1.5
  250. 37e42c6bdb6fab4c24a662100f20f722
  251. kohya_controllllite_xl_blur_anime
  252. 基础算法 XL
  253. 46a34a643f6855e9b3861515712df5d9
  254. xinsir_controlnet_tile_sdxl_1.0
  255. 基础算法 XL
  256. 0f47ef6d4f4b40afab8b290c98baac0e
  257. kohya_controllllite_xl_blur_anime_beta
  258. 基础算法 XL
  259. 44199bb6dcf4f65e09a4e5e57ebdf9b4
  260. kohya_controllllite_xl_blur
  261. 基础算法 XL
  262. aac5fe593565f0673673731d54ecfab8
  263. TTPLanet_SDXL_Controlnet_Tile_Realistic_v1
  264. 基础算法 XL
  265. 13bfaf39f9214c658507a92cd15fd02d
  266. TTPLanet_SDXL_Controlnet_Tile_Realistic_v2
  267. 基础算法 XL
  268. 163d505651a64d6bac9a907b213dc8b0
  269. Flux.1-dev-Controlnet-Upscaler
  270. 基础算法 F.1
  271. a696b5bdadc740119fd76505b33d6898
  272. Reference(参考)
  273. None
  274. 基础算法 1.5
  275. /
  276. 风格迁移
  277. IP-Adapter
  278. ip-adapter_sd15
  279. 基础算法 1.5
  280. 18801062fe4289dd0a984e69de9f9e7c
  281. ip-adapter_sd15_plus
  282. 基础算法 1.5
  283. ad4bd9b4b05c4ac8faf7f81d9fdcadc8
  284. ip-adapter_sd15_light
  285. 基础算法 1.5
  286. 3a1ddfd0d45c11ee9b5e00163e365853
  287. ip-adapter_sd15_vit-G
  288. 基础算法 1.5
  289. 36f3d2a0d45c11ee9b5e00163e365853
  290. ip-adapter_xl
  291. 基础算法 XL
  292. 8ea2538fdd7dcdea52b2da6b5151f875
  293. ip-adapter-plus_sdxl_vit-h
  294. 基础算法 XL
  295. 38ee73f1d45c11ee9b5e00163e365853
  296. ip-adapter_sdxl_vit-h
  297. 基础算法 XL
  298. 375866e3d45c11ee9b5e00163e365853
  299. InstantX-F.1-dev-IP-Adapter
  300. 基础算法 F.1
  301. c6ed70879cf011ef96d600163e37ec70
  302. F.1-redux-dev
  303. 基础算法 F.1
  304. 8ddf6f3ba8a111efbb1700163e031cf1
  305. T2I-Adapter
  306. t2iadapter_canny_sd15v2
  307. 基础算法 1.5
  308. c04144bcf017232483181cd8607097c2
  309. t2iadapter_depth_sd15v2
  310. 基础算法 1.5
  311. f08a4a889b56d4099e8a947503cabc14
  312. t2iadapter_canny_sd14v1
  313. 基础算法 1.5
  314. a2c41c4e97944f3aa71f913bdc45b1ca
  315. t2iadapter_color_sd14v1
  316. 基础算法 1.5
  317. 8e581a4e7c986950d71f1102accad5d0
  318. t2iadapter_depth_sd14v1
  319. 基础算法 1.5
  320. 8b74bf9ea84f592c069b523d9bef9dab
  321. t2iadapter_keypose_sd14v1
  322. 基础算法 1.5
  323. 181d8d213381458cb6e326760637d4b4
  324. t2iadapter_openpose_sd14v1
  325. 基础算法 1.5
  326. 5a8b19a8809e00be4e17517e8ab174ad
  327. t2iadapter_seg_sd14v1
  328. 基础算法 1.5
  329. 3c680cc8edfbc4479423549e01f21897
  330. t2iadapter_sketch_sd14v1
  331. 基础算法 1.5
  332. 0d19dd02091ec2d01f3cdd99a4f4b442
  333. t2iadapter_sketch_sd15v2
  334. 基础算法 1.5
  335. bd6c5dbb73c2c2e538850c23ab2dcbf5
  336. t2iadapter_style_sd14v1
  337. 基础算法 1.5
  338. e33777a1f374eccd9464623c56a82c91
  339. t2iadapter_zoedepth_sd15v1
  340. 基础算法 1.5
  341. fc8b79f97eeceda388b43df12509c311
  342. Shuffle (随机洗牌)
  343. control_v11e_sd15_shuffle
  344. 基础算法 1.5
  345. 9efba1cc2d469bf4be8fc135689bc8a0
  346. 上色
  347. Recolor(重上色)
  348. ioclab_sd15_recolor
  349. 基础算法 1.5
  350. e0db5b9e227eac932c71498cf7e03a78
  351. sai_xl_recolor_128lora
  352. 基础算法 XL
  353. af92235f1de682ceac136c06450c9a51
  354. sai_xl_recolor_256lora
  355. 基础算法 XL
  356. 03051a3606b4974ec02fc55b079757e7
  357. 局部重绘
  358. Inpaint(局部重绘)
  359. control_v11p_sd15_inpaint
  360. 基础算法 1.5
  361. ebeada0aa92959b4e905ab6980d5d203
  362. segmentation_mask_brushnet_ckpt
  363. 基础算法 1.5
  364. 14aa553bf6534a419a9a465eba900f3a
  365. random_mask_brushnet_cpkt
  366. 基础算法 1.5
  367. de44488f84a74e02a1fac604d790698c
  368. segmentation_mask_brushnet_ckpt_sdxl_v1
  369. 基础算法 XL
  370. a311363995dd4f2fa42ee3fc9582d920
  371. random_mask_brushnet_ckpt_sdxl
  372. 基础算法 XL
  373. 3161fc68c59847b0ad826a9fb18c857f
  374. F.1-dev-Controlnet-Inpainting-Alpha
  375. 基础算法 F.1
  376. 012d2f780c0b44dba829bb223207e608
  377. F.1-dev-Controlnet-Inpainting-Beta
  378. 基础算法 F.1
  379. 31df01fc271d484ca4d496179d69a665
  380. InstantX-Qwen-Image-ControlNet-Inpainting
  381. Qwen Image
  382. 2228ab9234a34aa5abf77caa907c0de1
  383. 换脸
  384. IP-Adapter
  385. ip-adapter_face_id
  386. 基础算法 1.5
  387. 368e6a37d45c11ee9b5e00163e365853
  388. ip-adapter-faceid-portrait_sd15
  389. 基础算法 1.5
  390. 330504bcd45c11ee9b5e00163e365853
  391. ip-adapter-faceid-plusv2_sd15
  392. 基础算法 1.5
  393. 34fb8ef6d45c11ee9b5e00163e365853
  394. ip-adapter-faceid-plus_sd15
  395. 基础算法 1.5
  396. 362a215ad45c11ee9b5e00163e365853
  397. ip-adapter-faceid-portrait-v11_sd15
  398. 基础算法 1.5
  399. 35c50016d45c11ee9b5e00163e365853
  400. ip-adapter-faceid_sdxl
  401. 基础算法 XL
  402. 38879e1ad45c11ee9b5e00163e365853
  403. ip-adapter-faceid-plusv2_sdxl
  404. 基础算法 XL
  405. 3953f672d45c11ee9b5e00163e365853
  406. ip-adapter-plus-face_sdxl_vit-h
  407. 基础算法 XL
  408. 336955e4d45c11ee9b5e00163e365853
  409. Instant ID
  410. ip-adapter_instant_id_sdxl
  411. 基础算法 XL
  412. 3a8267c7d45c11ee9b5e00163e365853
  413. control_instant_id_sdxl
  414. 基础算法 XL
  415. 3560664ad45c11ee9b5e00163e365853
  416. puLID
  417. pulid_flux_v0.9.1
  418. 基础算法 F.1
  419. 405836d1ae2646b4ba2716ed6bd5453a
  420. 其他
  421. 光影
  422. control_v1u_sd15_illumination
  423. 基础算法 1.5
  424. 3109072a5cf6403faba6162003b8f483
  425. control_v1p_sd15_brightness
  426. 基础算法 1.5
  427. 39b8eac0d45c11ee9b5e00163e365853
  428. 二维码
  429. control_v1p_sd15_qrcode_monster
  430. 基础算法 1.5
  431. 1fa6070c35626e760b1473926852cbbc
  432. """
  433. lines = [l.strip() for l in raw_data.split('\n') if l.strip()]
  434. models_by_category = {}
  435. current_category = "General"
  436. current_type = "Misc"
  437. i = 0
  438. while i < len(lines):
  439. line = lines[i]
  440. if line in ["适用方向", "Controlnet 类型", "模型名称", "基础算法类型", "模型版本UUID"]:
  441. i += 1
  442. continue
  443. # Check if this is a top level category (usually ends with 类 or specific words)
  444. if line.endswith("类") or line in ["风格迁移", "上色", "局部重绘", "换脸", "其他", "光影", "二维码", "画面参考"]:
  445. current_category = line
  446. if current_category not in models_by_category:
  447. models_by_category[current_category] = {}
  448. i += 1
  449. continue
  450. # Check if this is a sub-type (usually Chinese translation in parens or standard names like IP-Adapter)
  451. if "(" in line or line in ["IP-Adapter", "Instant ID", "puLID", "T2I-Adapter", "Shuffle (随机洗牌)"]:
  452. current_type = line
  453. if current_category not in models_by_category:
  454. models_by_category[current_category] = {}
  455. if current_type not in models_by_category[current_category]:
  456. models_by_category[current_category][current_type] = []
  457. i += 1
  458. continue
  459. # Model block: 3 lines
  460. if i + 2 < len(lines):
  461. model_name = lines[i]
  462. algo = lines[i+1]
  463. uuid = lines[i+2]
  464. # Verify it's actually an algo block
  465. if algo.startswith("基础算法") or algo == "Qwen Image" or uuid == "/":
  466. if current_category not in models_by_category:
  467. models_by_category[current_category] = {}
  468. if current_type not in models_by_category[current_category]:
  469. models_by_category[current_category][current_type] = []
  470. models_by_category[current_category][current_type].append({
  471. "model_name": model_name,
  472. "base_algorithm": algo,
  473. "uuid": uuid
  474. })
  475. i += 3
  476. continue
  477. # Default case
  478. i += 1
  479. # Generate Markdown
  480. md_lines = ["# LiblibAI ControlNet Models Mapping\\n"]
  481. for category, types in models_by_category.items():
  482. md_lines.append(f"## {category}\\n")
  483. for t, models in types.items():
  484. md_lines.append(f"### {t}")
  485. md_lines.append("| Model Name | Base Algorithm | UUID |")
  486. md_lines.append("| --- | --- | --- |")
  487. for m in models:
  488. md_lines.append(f"| {m['model_name']} | {m['base_algorithm']} | `{m['uuid']}` |")
  489. md_lines.append("\\n")
  490. md_content = "\\n".join(md_lines)
  491. # Write outputs
  492. os.makedirs("/root/Tool_Agent/data", exist_ok=True)
  493. with open("/root/Tool_Agent/data/liblibai_controlnet_models.md", "w", encoding="utf-8") as f:
  494. f.write(md_content)
  495. with open("/root/Tool_Agent/data/liblibai_controlnet_models.json", "w", encoding="utf-8") as f:
  496. json.dump(models_by_category, f, indent=4, ensure_ascii=False)