feat: add AODH Image Saver (Metadata), Lora Selector, Checkpoint Selector, and various node improvements

This commit is contained in:
Aodhan Collins
2026-02-06 03:41:15 +00:00
parent 2417dcc090
commit 644ab104d9
54 changed files with 1483 additions and 104 deletions

122
comfyui_metadata_spec.json Normal file
View File

@@ -0,0 +1,122 @@
{
"_description": "Sample metadata structure for ComfyUI-generated images with A1111-compatible format.\n This format allows the app to parse ComfyUI images using the same parser as A1111 images,\n while preserving ComfyUI-specific metadata for advanced features.\n \n A ComfyUI node should embed this metadata in the 'parameters' PNG text chunk.",
"parameters": "masterpiece, best quality, amazing quality, very aesthetic, high resolution, ultra-detailed, 1girl, solo, looking at viewer, smile, long hair, blue eyes, school uniform\nNegative prompt: embedding:Illustrious/lazyneg_1760455, artist name, signature, watermark, blurry, low quality, bad anatomy, text, censored, deformed, bad hand\nSteps: 30, Sampler: euler_ancestral, CFG scale: 6.0, Seed: 927008042550191, Size: 1280x800, Model: illustrij_v20.safetensors, Model hash: a1b2c3d4e5f6, Clip skip: 2, RNG: GPU, Tiling: false, Restore faces: false, Hires upscale: 1.5, Hires steps: 15, Hires upscaler: RealESRGAN_x4plus_anime_6B, Denoising strength: 0.4",
"comfyui": true,
"comfyui_metadata": {
"_description": "Extended metadata specific to ComfyUI workflow",
"workflow_name": "Character Generator",
"workflow_version": "1.0.0",
"generation": {
"checkpoint": "Illustrious/illustrij_v20.safetensors",
"checkpoint_hash": "a1b2c3d4e5f6",
"vae": "sdxl_vae.safetensors",
"clip_skip": 2,
"lora": [
{
"name": "Illustrious/Styles/Noob/jyojifuku_noobai_V1.0.safetensors",
"strength_model": 1.0,
"strength_clip": 1.0
}
]
},
"sampling": {
"sampler": "euler_ancestral",
"scheduler": "karras",
"steps": 30,
"cfg": 6.0,
"seed": 927008042550191,
"batch_size": 1
},
"resolution": {
"width": 1280,
"height": 800,
"upscale_factor": 1.5,
"upscaler": "RealESRGAN_x4plus_anime_6B",
"hires_steps": 15,
"denoise_strength": 0.4
},
"prompt_structure": {
"positive": {
"full": "masterpiece, best quality, amazing quality, very aesthetic, high resolution, ultra-detailed, 1girl, solo, looking at viewer, smile, long hair, blue eyes, school uniform",
"quality_tags": "masterpiece, best quality, amazing quality, very aesthetic, high resolution, ultra-detailed",
"character": {
"name": "sucy_manbavaran",
"description": "1girl, solo, looking at viewer, smile, long hair, blue eyes",
"outfit": "school uniform"
},
"style_tags": ""
},
"negative": {
"full": "embedding:Illustrious/lazyneg_1760455, artist name, signature, watermark, blurry, low quality, bad anatomy, text, censored, deformed, bad hand",
"embeddings": ["Illustrious/lazyneg_1760455"]
}
},
"post_processing": {
"detailers": [
{
"type": "FaceDetailer",
"enabled": true,
"guide_size": 512,
"steps": 20,
"denoise": 0.25
},
{
"type": "HandDetailer",
"enabled": true,
"guide_size": 512,
"steps": 24,
"denoise": 0.35
}
],
"color_match": {
"enabled": true,
"color_space": "LAB",
"luminance_factor": 1.0,
"color_intensity_factor": 1.05
}
},
"workflow": {
"nodes": {
"prompt_node_id": "374",
"prompt_node_type": "ShowText|pysssss",
"prompt_node_title": "Full Prompt",
"seed_node_id": "164",
"sampler_node_id": "169",
"checkpoint_loader_id": "332"
},
"groups": [
"Sampler",
"Character",
"FaceDetailer",
"HandDetailer",
"Upscaler"
]
}
},
"app_metadata": {
"_description": "Optional metadata for this app to enable advanced features",
"tags": ["1girl", "solo", "school uniform", "smile"],
"character": "sucy_manbavaran",
"rating": "safe",
"favorite": false,
"collections": ["Illustrious Characters"],
"custom_fields": {
"artist": "",
"source_url": "",
"notes": ""
}
}
}