| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645 |
- import json
- import os
- raw_data = """
- 适用方向
- Controlnet 类型
- 模型名称
- 基础算法类型
- 模型版本UUID
- 线稿类
- Canny(硬边缘)
- control_v11p_sd15_canny
- 基础算法 1.5
- 7d917ec7e55c5805db737d3b493c91ce
- t2iadapter_canny_sd14v1
- 基础算法 1.5
- a2c41c4e97944f3aa71f913bdc45b1ca
- t2iadapter_canny_sd15v2
- 基础算法 1.5
- c04144bcf017232483181cd8607097c2
- diffusers_xl_canny_full
- 基础算法 XL
- 56de5edadb6f2891aff05ff078dc0470
- diffusers_xl_canny_mid
- 基础算法 XL
- efb97e9d8c237573298c3a5a7869b89c
- diffusers_xl_canny_small
- 基础算法 XL
- dccde738064e9748f93b48ec5868968e
- kohya_controllllite_xl_canny
- 基础算法 XL
- 5242e3d18cc18689bd8af11dd2d675c1
- kohya_controllllite_xl_canny_anime
- 基础算法 XL
- 4f3e1cfe79f87496ec69a37826c3afeb
- sai_xl_canny_128lora
- 基础算法 XL
- 63c7f2c6c354336513831aa522d7e0f4
- sai_xl_canny_256lora
- 基础算法 XL
- 5bf551f53651764cad56363e17900d87
- t2i-adapter_diffusers_xl_canny
- 基础算法 XL
- 618390ab2957a422612cb2ba92a2788f
- t2i-adapter_xl_canny
- 基础算法 XL
- 7cd56501c336c1edba78430355c9d081
- xinsir_controlnet-canny-sdxl_V2
- 基础算法 XL
- b6806516962f4e1599a93ac4483c3d23
- XLabs-flux-canny-controlnet_v3
- 基础算法 F.1
- 017997cd6ba44c4dbe8f60e0a26cd0df
- InstantX-FLUX.1-dev-Controlnet-Union-Pro
- 基础算法 F.1
- 13c1e1b96ba64f9cbb2b54f89b5fe873
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- SoftEdge(软边缘)
- control_v11p_sd15_softedge
- 基础算法 1.5
- 0929722d9047ec6498a50ff5d1081629
- sargezt_xl_softedge
- 基础算法 XL
- dda1a0c480bfab9833d9d9a1e4a71fff
- controlnet-sd-xl-1.0-softedge-dexined
- 基础算法 XL
- 37bddde3d45c11ee9b5e00163e365853
- mistoLine_softedge_sdxl_fp16
- 基础算法 XL
- 4f6726be104a432f8039b018c92ed4bf
- mistoLine_rank256
- 基础算法 XL
- 83286d0e66a845c58f7d23442f9dedf9
- XLabs-flux-hed-controlnet_v3
- 基础算法 F.1
- 6c4d620df3644514903b8189735c6ae9
- F.1_mistoline_dev_v1
- 基础算法 F.1
- 3e6860a3b9444f25ae07d9c1b5d1ba9e
- InstantX-FLUX.1-dev-Controlnet-Union-Pro
- 基础算法 F.1
- 13c1e1b96ba64f9cbb2b54f89b5fe873
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- MLSD(直线)
- control_v11p_sd15_mlsd
- 基础算法 1.5
- 7168cece6a0d491375aa1753ff3bdc21
- Scribble/Sketch(涂鸦/草图)
- control_v11p_sd15_scribble
- 基础算法 1.5
- fe57911f7ba1b84eb27f1e1ecead3367
- kohya_controllllite_xl_scribble_anime
- 基础算法 XL
- 4a399a87f1ffbc26d065a38765d30d24
- xinsir_controlnet-scribble-sdxl-1.0
- 基础算法 XL
- 888cf8985bd6442cba1f2d975b6eb022
- xinsir_anime_painter
- 基础算法 XL
- f936bf22cb8e4dcfa6b0f3b96cdd8eb7
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- Lineart(线稿)
- control_v11p_sd15_lineart
- 基础算法 1.5
- b06dfbd1a61c35e933d9f8caa8a0e031
- control_v11p_sd15s2_lineart_anime
- 基础算法 1.5
- c263e039c57b8a958ee0a936039af654
- t2i-adapter_diffusers_xl_lineart
- 基础算法 XL
- a0f01da42bf48b0ba02c86b6c26b5699
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- 空间关系类
- Depth(深度图)
- control_v11f1p_sd15_depth
- 基础算法 1.5
- cf63d214734760dcdc108b1bd094921b
- t2iadapter_depth_sd15v2
- 基础算法 1.5
- f08a4a889b56d4099e8a947503cabc14
- t2iadapter_depth_sd14v1
- 基础算法 1.5
- 8b74bf9ea84f592c069b523d9bef9dab
- t2iadapter_zoedepth_sd15v1
- 基础算法 1.5
- fc8b79f97eeceda388b43df12509c311
- control_sd15_inpaint_depth_hand_fp16
- 基础算法 1.5
- 3497061cd45c11ee9b5e00163e365853
- t2i-adapter_diffusers_xl_depth_zoe
- 基础算法 XL
- a35993a2d1cde4a6c800364a68731c67
- sai_xl_depth_128lora
- 基础算法 XL
- 3156f3428afc7122c66b2b950f09d4cd
- t2i-adapter_diffusers_xl_depth_midas
- 基础算法 XL
- c22ec6a7a24eed6b91889ae1a1e94b2e
- diffusers_xl_depth_mid
- 基础算法 XL
- 740d6d428e70d4b40888efa4d9eb642a
- xinsir_controlnet_depth_sdxl_1.0
- 基础算法 XL
- 6349e9dae8814084bd9c1585d335c24c
- sai_xl_depth_256lora
- 基础算法 XL
- 08d0fbb72d7fab601218df26978a46e0
- sargezt_xl_depth
- 基础算法 XL
- feb9ee5779bf2eb3fdd669f2e3e6b1aa
- sargezt_xl_depth_zeed
- 基础算法 XL
- 4216d4b49a6b559d76d181908f866eb8
- kohya_controllllite_xl_depth_anime
- 基础算法 XL
- dea707d52e3a8f243da5579579cb3a3d
- kohya_controllllite_xl_depth
- 基础算法 XL
- 693d7182db5293c0087524580111fd96
- sargezt_xl_depth_faid_vidit
- 基础算法 XL
- 1c6d32d0fb004cf1becc2b526fd83690
- diffusers_xl_depth_small
- 基础算法 XL
- 6a786af31a13776100e9c6a90f99aebf
- diffusers_xl_depth_full
- 基础算法 XL
- 04dcab4b18c7b821e96660d6c19de50b
- XLabs-flux-depth-controlnet_v3
- 基础算法 F.1
- 0cc4e6b8206b44cdab51e30fb8b9c328
- InstantX-FLUX.1-dev-Controlnet-Union-Pro
- 基础算法 F.1
- 13c1e1b96ba64f9cbb2b54f89b5fe873
- Flux.1-dev-Controlnet-Depth
- 基础算法 F.1
- 64dd7a6c714f4512a4500f6a01b016b7
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- Segment(语义分割)
- control_v11p_sd15_seg
- 基础算法 1.5
- 94571f4bb5136464afc1540a92ae3ee8
- Normal(正态)
- control_v11p_sd15_normalbae
- 基础算法 1.5
- 9a85fdca18a8b58b2fb2ff13ab339be4
- Flux.1-dev-Controlnet-Surface-Normal
- 基础算法 F.1
- e51fdccdf3b8417aab246bde40b5f360
- 姿态类
- OpenPose(姿态)
- control_v11p_sd15_openpose
- 基础算法 1.5
- b46dd34ef9c2fe189446599d62516cbf
- t2iadapter_openpose_sd14v1
- 基础算法 1.5
- 5a8b19a8809e00be4e17517e8ab174ad
- control_v11p_sd15_densepose_fp16
- 基础算法 1.5
- 3b4e0830d45c11ee9b5e00163e365853
- control_sd15_animal_openpose_fp16
- 基础算法 1.5
- 329f0073d45c11ee9b5e00163e365853
- control_v2p_sd15_mediapipe_face
- 基础算法 1.5
- 73de0752a7a8431ba21637cda6723c95
- kohya_controllllite_xl_openpose_anime_v2
- 基础算法 XL
- 4cbbd2483088ef5f0d41bfef0d7141fb
- kohya_controllllite_xl_openpose_anime
- 基础算法 XL
- abb5d55cf94c504f6f8c64abc0b1483f
- thibaud_xl_openpose_256lora
- 基础算法 XL
- 4dd1f4df2a9d3a9db8aeaa9480196d02
- t2i-adapter_xl_openpose
- 基础算法 XL
- 9deac5a5c60abfd03261bd174ddba47d
- t2i-adapter_diffusers_xl_openpose
- 基础算法 XL
- 9cd43e1856040c2436f00802d5b54ee5
- thibaud_xl_openpose
- 基础算法 XL
- 2fe4f992a81c5ccbdf8e9851c8c96ff2
- controlnet-densepose-sdxl
- 基础算法 XL
- 3ae77dfdd45c11ee9b5e00163e365853
- xinsir_controlnet-openpose-sdxl-1.0
- 基础算法 XL
- 23ef8ab803d64288afdb7106b8967a55
- F.1-ControlNet-Pose-V1
- 基础算法 F.1
- 7c6d889cb9c04b78858d8fece80f9f85
- InstantX-Qwen-Image-Controlnet-Union
- Qwen Image
- 5b5f21d2b80445598db19e924bd3a409
- 画面参考
- Tile/Blur(分块/模糊)
- control_v11f1e_sd15_tile
- 基础算法 1.5
- 37e42c6bdb6fab4c24a662100f20f722
- kohya_controllllite_xl_blur_anime
- 基础算法 XL
- 46a34a643f6855e9b3861515712df5d9
- xinsir_controlnet_tile_sdxl_1.0
- 基础算法 XL
- 0f47ef6d4f4b40afab8b290c98baac0e
- kohya_controllllite_xl_blur_anime_beta
- 基础算法 XL
- 44199bb6dcf4f65e09a4e5e57ebdf9b4
- kohya_controllllite_xl_blur
- 基础算法 XL
- aac5fe593565f0673673731d54ecfab8
- TTPLanet_SDXL_Controlnet_Tile_Realistic_v1
- 基础算法 XL
- 13bfaf39f9214c658507a92cd15fd02d
- TTPLanet_SDXL_Controlnet_Tile_Realistic_v2
- 基础算法 XL
- 163d505651a64d6bac9a907b213dc8b0
- Flux.1-dev-Controlnet-Upscaler
- 基础算法 F.1
- a696b5bdadc740119fd76505b33d6898
- Reference(参考)
- None
- 基础算法 1.5
- /
- 风格迁移
- IP-Adapter
- ip-adapter_sd15
- 基础算法 1.5
- 18801062fe4289dd0a984e69de9f9e7c
- ip-adapter_sd15_plus
- 基础算法 1.5
- ad4bd9b4b05c4ac8faf7f81d9fdcadc8
- ip-adapter_sd15_light
- 基础算法 1.5
- 3a1ddfd0d45c11ee9b5e00163e365853
- ip-adapter_sd15_vit-G
- 基础算法 1.5
- 36f3d2a0d45c11ee9b5e00163e365853
- ip-adapter_xl
- 基础算法 XL
- 8ea2538fdd7dcdea52b2da6b5151f875
- ip-adapter-plus_sdxl_vit-h
- 基础算法 XL
- 38ee73f1d45c11ee9b5e00163e365853
- ip-adapter_sdxl_vit-h
- 基础算法 XL
- 375866e3d45c11ee9b5e00163e365853
- InstantX-F.1-dev-IP-Adapter
- 基础算法 F.1
- c6ed70879cf011ef96d600163e37ec70
- F.1-redux-dev
- 基础算法 F.1
- 8ddf6f3ba8a111efbb1700163e031cf1
- T2I-Adapter
- t2iadapter_canny_sd15v2
- 基础算法 1.5
- c04144bcf017232483181cd8607097c2
- t2iadapter_depth_sd15v2
- 基础算法 1.5
- f08a4a889b56d4099e8a947503cabc14
- t2iadapter_canny_sd14v1
- 基础算法 1.5
- a2c41c4e97944f3aa71f913bdc45b1ca
- t2iadapter_color_sd14v1
- 基础算法 1.5
- 8e581a4e7c986950d71f1102accad5d0
- t2iadapter_depth_sd14v1
- 基础算法 1.5
- 8b74bf9ea84f592c069b523d9bef9dab
- t2iadapter_keypose_sd14v1
- 基础算法 1.5
- 181d8d213381458cb6e326760637d4b4
- t2iadapter_openpose_sd14v1
- 基础算法 1.5
- 5a8b19a8809e00be4e17517e8ab174ad
- t2iadapter_seg_sd14v1
- 基础算法 1.5
- 3c680cc8edfbc4479423549e01f21897
- t2iadapter_sketch_sd14v1
- 基础算法 1.5
- 0d19dd02091ec2d01f3cdd99a4f4b442
- t2iadapter_sketch_sd15v2
- 基础算法 1.5
- bd6c5dbb73c2c2e538850c23ab2dcbf5
- t2iadapter_style_sd14v1
- 基础算法 1.5
- e33777a1f374eccd9464623c56a82c91
- t2iadapter_zoedepth_sd15v1
- 基础算法 1.5
- fc8b79f97eeceda388b43df12509c311
- Shuffle (随机洗牌)
- control_v11e_sd15_shuffle
- 基础算法 1.5
- 9efba1cc2d469bf4be8fc135689bc8a0
- 上色
- Recolor(重上色)
- ioclab_sd15_recolor
- 基础算法 1.5
- e0db5b9e227eac932c71498cf7e03a78
- sai_xl_recolor_128lora
- 基础算法 XL
- af92235f1de682ceac136c06450c9a51
- sai_xl_recolor_256lora
- 基础算法 XL
- 03051a3606b4974ec02fc55b079757e7
- 局部重绘
- Inpaint(局部重绘)
- control_v11p_sd15_inpaint
- 基础算法 1.5
- ebeada0aa92959b4e905ab6980d5d203
- segmentation_mask_brushnet_ckpt
- 基础算法 1.5
- 14aa553bf6534a419a9a465eba900f3a
- random_mask_brushnet_cpkt
- 基础算法 1.5
- de44488f84a74e02a1fac604d790698c
- segmentation_mask_brushnet_ckpt_sdxl_v1
- 基础算法 XL
- a311363995dd4f2fa42ee3fc9582d920
- random_mask_brushnet_ckpt_sdxl
- 基础算法 XL
- 3161fc68c59847b0ad826a9fb18c857f
- F.1-dev-Controlnet-Inpainting-Alpha
- 基础算法 F.1
- 012d2f780c0b44dba829bb223207e608
- F.1-dev-Controlnet-Inpainting-Beta
- 基础算法 F.1
- 31df01fc271d484ca4d496179d69a665
- InstantX-Qwen-Image-ControlNet-Inpainting
- Qwen Image
- 2228ab9234a34aa5abf77caa907c0de1
- 换脸
- IP-Adapter
- ip-adapter_face_id
- 基础算法 1.5
- 368e6a37d45c11ee9b5e00163e365853
- ip-adapter-faceid-portrait_sd15
- 基础算法 1.5
- 330504bcd45c11ee9b5e00163e365853
- ip-adapter-faceid-plusv2_sd15
- 基础算法 1.5
- 34fb8ef6d45c11ee9b5e00163e365853
- ip-adapter-faceid-plus_sd15
- 基础算法 1.5
- 362a215ad45c11ee9b5e00163e365853
- ip-adapter-faceid-portrait-v11_sd15
- 基础算法 1.5
- 35c50016d45c11ee9b5e00163e365853
- ip-adapter-faceid_sdxl
- 基础算法 XL
- 38879e1ad45c11ee9b5e00163e365853
- ip-adapter-faceid-plusv2_sdxl
- 基础算法 XL
- 3953f672d45c11ee9b5e00163e365853
- ip-adapter-plus-face_sdxl_vit-h
- 基础算法 XL
- 336955e4d45c11ee9b5e00163e365853
- Instant ID
- ip-adapter_instant_id_sdxl
- 基础算法 XL
- 3a8267c7d45c11ee9b5e00163e365853
- control_instant_id_sdxl
- 基础算法 XL
- 3560664ad45c11ee9b5e00163e365853
- puLID
- pulid_flux_v0.9.1
- 基础算法 F.1
- 405836d1ae2646b4ba2716ed6bd5453a
- 其他
- 光影
- control_v1u_sd15_illumination
- 基础算法 1.5
- 3109072a5cf6403faba6162003b8f483
- control_v1p_sd15_brightness
- 基础算法 1.5
- 39b8eac0d45c11ee9b5e00163e365853
- 二维码
- control_v1p_sd15_qrcode_monster
- 基础算法 1.5
- 1fa6070c35626e760b1473926852cbbc
- """
- lines = [l.strip() for l in raw_data.split('\n') if l.strip()]
- models_by_category = {}
- current_category = "General"
- current_type = "Misc"
- i = 0
- while i < len(lines):
- line = lines[i]
- if line in ["适用方向", "Controlnet 类型", "模型名称", "基础算法类型", "模型版本UUID"]:
- i += 1
- continue
-
- # Check if this is a top level category (usually ends with 类 or specific words)
- if line.endswith("类") or line in ["风格迁移", "上色", "局部重绘", "换脸", "其他", "光影", "二维码", "画面参考"]:
- current_category = line
- if current_category not in models_by_category:
- models_by_category[current_category] = {}
- i += 1
- continue
-
- # Check if this is a sub-type (usually Chinese translation in parens or standard names like IP-Adapter)
- if "(" in line or line in ["IP-Adapter", "Instant ID", "puLID", "T2I-Adapter", "Shuffle (随机洗牌)"]:
- current_type = line
- if current_category not in models_by_category:
- models_by_category[current_category] = {}
- if current_type not in models_by_category[current_category]:
- models_by_category[current_category][current_type] = []
- i += 1
- continue
-
- # Model block: 3 lines
- if i + 2 < len(lines):
- model_name = lines[i]
- algo = lines[i+1]
- uuid = lines[i+2]
-
- # Verify it's actually an algo block
- if algo.startswith("基础算法") or algo == "Qwen Image" or uuid == "/":
- if current_category not in models_by_category:
- models_by_category[current_category] = {}
- if current_type not in models_by_category[current_category]:
- models_by_category[current_category][current_type] = []
-
- models_by_category[current_category][current_type].append({
- "model_name": model_name,
- "base_algorithm": algo,
- "uuid": uuid
- })
- i += 3
- continue
-
- # Default case
- i += 1
-
- # Generate Markdown
- md_lines = ["# LiblibAI ControlNet Models Mapping\\n"]
- for category, types in models_by_category.items():
- md_lines.append(f"## {category}\\n")
- for t, models in types.items():
- md_lines.append(f"### {t}")
- md_lines.append("| Model Name | Base Algorithm | UUID |")
- md_lines.append("| --- | --- | --- |")
- for m in models:
- md_lines.append(f"| {m['model_name']} | {m['base_algorithm']} | `{m['uuid']}` |")
- md_lines.append("\\n")
- md_content = "\\n".join(md_lines)
- # Write outputs
- os.makedirs("/root/Tool_Agent/data", exist_ok=True)
- with open("/root/Tool_Agent/data/liblibai_controlnet_models.md", "w", encoding="utf-8") as f:
- f.write(md_content)
-
- with open("/root/Tool_Agent/data/liblibai_controlnet_models.json", "w", encoding="utf-8") as f:
- json.dump(models_by_category, f, indent=4, ensure_ascii=False)
|