8.8 KiB
MetaMan Project Context Bootstrap
Project Overview
MetaMan is a comprehensive ComfyUI custom node system for universal metadata management across AI image generation platforms. Built in August 2025, it solves the critical interoperability problem between different AI image generation services.
Core Concept & Architecture
- Universal Metadata Standard: Custom "meta" PNG chunk containing JSON-structured metadata
- Template-Driven System: YAML-based service definitions for easy platform extension
- Cross-Platform Workflow Generation: Convert ANY platform's metadata into working ComfyUI workflows that recreate identical images
- Bidirectional Conversion: Translate metadata between platforms while preserving generation capability
User Requirements Implemented
Original User Stories (All ✅ Completed):
A. Rewrite Metadata on A1111/Civitai Workflow Standards - Converts any source to A1111/Civitai-compatible formats
B. Generate new PNG with A1111/Civitai Standards from existing - Creates new images with embedded target-format metadata
C. Extract Metadata for use in existing workflow - Universal extraction with service-specific conversions
D. Extract Metadata and create/update text file - Multiple export formats (JSON, TXT, parameters)
E. Output Metadata as string - All nodes return formatted metadata strings
F. Create dependency list with download URLs - Automated model dependency resolution via Civitai/HuggingFace APIs
Key Design Decisions:
- Single Service Selection: User chooses target service rather than storing multiple formats per image
- Custom "meta" PNG Chunk: Universal format with all discrete data elements from all services
- Template-Based Extensibility: Service support via YAML templates, no code changes needed
- Workflow Embedding: Save workflows as JSON files or embed back into original images
Technical Architecture
Core Components:
metaman.py(renamed from metamann.py): MetaManUniversalNode - primary metadata extraction & conversionspecialized_nodes.py: MetaManWorkflowSaver & MetaManDependencyResolver nodesmetadata_parser.py: Universal parser for all platform formats with service auto-detectionapi_integration.py: Model repository APIs (Civitai, HuggingFace) with rate limiting
Template System:
templates/universal_schema.yaml: Defines 60+ metadata fields across all platformstemplates/services/: Platform-specific conversion templates:automatic1111.yaml- A1111 parameter formatcomfyui.yaml- ComfyUI workflow + prompt formatcivitai.yaml- Enhanced A1111 with resource trackingforge.yaml- Forge extensions and advanced samplingtensor.ai.yaml- JSON-based metadataleonardo.ai.yaml- Leonardo.AI preset system
Supported Platforms:
✅ Automatic1111 (A1111) - Full parameter format support
✅ ComfyUI - Complete workflow preservation
✅ Civitai - Enhanced resource tracking with model IDs
✅ Forge - A1111-compatible with extensions
✅ Tensor.AI - JSON-based metadata format
✅ Leonardo.AI - Style and preset management
🔄 SeaArt.AI - Planned
🔄 Midjourney - Planned
Key Terminology & Concepts
Workflow Types:
- Simplified Workflow: Functional workflows generated from any platform metadata that recreate identical images
- Complex Workflow Preservation: Full-fidelity preservation of ComfyUI node graphs and custom arrangements
Metadata Formats:
- Universal Format: MetaMan's comprehensive JSON schema covering all platforms
- Service-Specific Format: Platform-native metadata (A1111 parameters, ComfyUI workflow JSON, etc.)
- PNG Chunks: Text metadata embedded in PNG files (parameters, workflow, meta)
Dependencies:
- Model Dependencies: Checkpoints, LoRAs, embeddings, VAE, ControlNet models
- Dependency Resolution: Multi-platform search with confidence scoring
- Download URLs: Direct links to model files with source platform info
Project Structure
MetaMan/
├── Core Nodes
│ ├── __init__.py # Package entry point
│ ├── metaman.py # Universal metadata node
│ └── specialized_nodes.py # Workflow saver & dependency resolver
├── Utilities
│ ├── metadata_parser.py # Universal format parser
│ ├── api_integration.py # Model repository APIs
│ └── validation.py # Testing framework
├── Templates
│ ├── universal_schema.yaml # Universal metadata definition
│ └── services/ # Platform-specific templates (6 services)
├── Documentation
│ ├── README.md # Main documentation with badges
│ ├── SETUP.md # Installation & configuration
│ ├── CONTRIBUTING.md # Community contribution guidelines
│ └── CHANGELOG.md # Version history
├── Testing & Project Management
│ ├── test_installation.py # Installation verification
│ ├── validation.py # Template and functionality testing
│ ├── requirements.txt # Python dependencies
│ ├── LICENSE # MIT License
│ └── .gitignore # Git ignore rules
Current Status (August 2025)
- ✅ Complete codebase ready for deployment
- ✅ All user stories implemented and tested
- ✅ Documentation complete with setup guides
- ✅ Git repository prepared for public release
- 🚀 Ready for GitHub deployment - just needs repo creation and push
Technical Specifications
Dependencies:
- Pillow >= 9.0.0 (image processing)
- PyYAML >= 6.0.0 (template processing)
- piexif >= 1.1.3 (EXIF metadata)
- requests >= 2.28.0 (API integration)
- jsonschema >= 4.17.0 (validation)
- torch (provided by ComfyUI)
Node Interface:
MetaMan Universal Node Operations:
extract_universal- Extract to universal formatconvert_to_service- Convert to specific service formatsave_workflow- Save workflow datagenerate_dependencies- Find model dependenciesexport_metadata- Export in various formats
Input/Output Types:
- Input: IMAGE, operation selection, service selection, optional parameters
- Output: IMAGE, universal_metadata (STRING), service_metadata (STRING), dependencies (STRING)
Key Research & Terminology
Platform-Specific Details:
- A1111 Format: Text-based parameters in PNG tEXt chunks, Latin-1 encoding
- ComfyUI Format: JSON workflow graphs with node connections and execution data
- Civitai Extensions: A1111 format + resource tracking with SHA256 hashes and model IDs
- PNG Chunks: tEXt (Latin-1), iTXt (UTF-8), custom "meta" chunk proposal
Model Repository APIs:
- Civitai API: REST endpoints for model search, hash matching, download URLs
- HuggingFace API: Git-based model repositories with commit hashes
- Search Priority: Civitai → HuggingFace → Archives → Other sources
- Rate Limiting: Respect platform limits (1-2 seconds between requests)
Sampler/Scheduler Mappings:
Complex mappings between platform naming conventions (e.g., A1111's "DPM++ 2M Karras" = ComfyUI's "dpmpp_2m" + "karras" scheduler)
Important Clarifications Made
Workflow Conversion Capabilities:
- ✅ ANY platform → ComfyUI workflow generation (creates identical images)
- ✅ ComfyUI → ANY platform parameter conversion (simplified but equivalent)
- ⚠️ Complex ComfyUI workflows lose node structure when converted to linear platforms
- 🎯 Image reproduction is identical across all conversion types
Compatibility Matrix Meanings:
- Simplified Workflow ✅ = Can generate functional workflow that recreates exact image
- Complex Workflow Preservation ✅ = Can preserve original node arrangements and custom routing
- Basic Parameters ✅ = Standard generation parameters (prompt, steps, seed, etc.)
File Locations
- Project:
/Users/pxl8d/Projects/MetaMan/ - ComfyUI Target:
/Users/pxl8d/Art/ComfyUI/custom_nodes/ - Git Status: Initialized repository ready for remote push
Next Steps
- Create GitHub repository (suggested name:
ComfyUI-MetaMan) - Push codebase to public repository
- Share with ComfyUI community
- Consider ComfyUI-Manager integration
- Community feedback and platform additions
Research Terms & Context Covered
- A1111/Civitai metadata standards and PNG chunk formats
- ComfyUI workflow architecture and node-based systems
- Cross-platform compatibility challenges in AI image generation
- Model dependency tracking and resolution systems
- PNG metadata embedding techniques and encoding standards
- API rate limiting and repository search strategies
- Template-driven software architecture for extensibility