easel/ai-avatars 📝🖼️❓ → 🖼️
About
Use one or two face images to create AI avatars

Example Output
Prompt:
"at the Met Gala, dressed in very fancy outfits, captured in a full body shot"
Output

Performance Metrics
23.59s
Prediction Time
23.59s
Total Time
1
Images
All Input Parameters
{ "prompt": "at the Met Gala, dressed in very fancy outfits, captured in a full body shot", "face_image": "https://replicate.delivery/pbxt/MlYeEa5wsgHEWcw9jVYmFXGJQAsZia8polOhuLvjUtKlnSrt/guy.webp", "user_gender": "male", "face_image_b": "https://replicate.delivery/pbxt/NNdXExUtOHwiz9NA5K6l1u2hymcBJ14gyzupGgRP3fgBySOk/image%20%2818%29.png", "user_b_gender": "female", "workflow_type": "HyperRealistic-likeness" }
Input Parameters
- prompt
- A prompt describing the scene to put the user(s) in
- face_image (required)
- The face image to generate avatar from. A front facing selfie works best.
- user_gender
- Gender of the first user
- face_image_b
- Optional second face image for multi-person avatars
- user_b_gender
- Gender of the second user (if using face_image_b)
- workflow_type
- The output style to use
Output Schema
Output
Example Execution Logs
🎯 PREDICT METHOD CALLED - Starting avatar prediction... Running avatar prediction... 📁 Created temporary output directory: /tmp/cog_output_89m04e11 ✅ Loaded face_image: 696602 bytes ✅ Loaded face_image_b: 1576648 bytes 🎯 Using avatar workflow: mm_txt2img_multiplayer_sd35_local_codeformer_replicate_caption 🔗 Making ComfyUI request to 127.0.0.1:7778 📋 Payload keys: ['seed', 'batch_size', 'image1', 'scene_type', 'user_desc', 'prompt', 'generation_key', 'image2', 'user1_desc'] ✅ WebSocket connection established 🎯 Looking for workflow_id: mm_txt2img_multiplayer_sd35_local_codeformer_replicate_caption 📜 Using workflow: mm_txt2img_multiplayer_sd35_local_codeformer_replicate_caption 📋 Workflow has 71 nodes 🔧 Setting parameters from payload... ⚠️ Key seed not in workflow.input_ids, trying anyway ⚠️ Key batch_size not in workflow.input_ids, trying anyway ✅ Setting image1 = <class 'str'> (length: 928804) ⚠️ Key scene_type not in workflow.input_ids, trying anyway ✅ Setting user_desc = <class 'str'> (length: 4) ✅ Setting prompt = <class 'str'> (length: 76) ✅ Setting generation_key = <class 'str'> (length: 20) ✅ Setting image2 = <class 'str'> (length: 2102200) ✅ Setting user1_desc = <class 'str'> (length: 6) 🎲 Using seed: 2952427764 🔄 Calling get_images with workflow... 🎯 Starting get_images with WebSocket: <websocket._core.WebSocket object at 0x7d6898fd5c90> 📋 Converted ComfyUIWorkflow to dict with 71 nodes 🔄 Queuing prompt to 127.0.0.1:7778 with client_id: 65cbf8a5-2e8c-44b5-92ae-a2ed5ec2fb54 🔗 Attempting to queue prompt to 127.0.0.1:7778 with client_id: 65cbf8a5-2e8c-44b5-92ae-a2ed5ec2fb54 📤 Sending prompt data (size: 3048288 bytes) ✅ Successfully queued prompt, got response: {'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'number': 3, 'node_errors': {}} ✅ Successfully queued prompt with ID: 896c9535-bc84-47b7-9d5b-bfa9d3e46e7e 🔄 Starting to receive messages from WebSocket... 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: status 📨 Received message type: status 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: status 📨 Received message type: status 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: execution_start 🚀 Execution started 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: execution_cached 💾 Execution cached 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executed 🔄 Processing executed message 🔄 Executing node: 299005 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executed 🔄 Processing executed message 🔄 Executing node: 299006 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 133 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 198 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 283 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 282 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 281 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 279 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 232 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 278 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 277 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 275 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 233 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 132 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 201 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 121 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 15 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 285 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 274 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 58 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 30 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 252 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 28 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 25 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 29 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 31 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 55 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 43 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 50 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 1, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '50'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 2, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '50'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 3, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '50'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 4, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '50'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 52 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 59 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 64 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 81 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 114 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 100 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 254 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 77 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 75 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 80 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 91 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 93 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 92 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 1, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '92'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 2, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '92'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 3, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '92'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: progress 📊 Progress update: {'value': 4, 'max': 4, 'prompt_id': '896c9535-bc84-47b7-9d5b-bfa9d3e46e7e', 'node': '92'} 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 98 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 102 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 105 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 116 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 191 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 199 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 200 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message 🔄 Executing node: 243 (class: None) 📊 Output data keys: None 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executed 🔄 Processing executed message 🔄 Executing node: 243 (class: None) 📊 Output data keys: ['API_OUT', 'meta'] 📸 Found API_OUT with 1 images 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: execution_success 📨 Received message type: execution_success 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: status 📨 Received message type: status 📡 Waiting for WebSocket message... 📨 Received message type: <class 'str'> 📋 Parsed message type: executing 🔄 Processing executing message ✅ Execution completed 🎯 get_images returning 1 images ✅ Successfully got 1 images from ComfyUI 🎯 Returning response with 1 images 🎯 Returning 1 files from predict [1] /tmp/cog_output_89m04e11/output.1.png (type: <class 'str'>)
Version Details
- Version ID
27ebf241efeded7a50964c7cff8f27c79e1570674be70d8e1df712ae31857d34
- Version Created
- April 30, 2025