easel/ai-avatars 📝🖼️❓ → 🖼️

⭐ Official ▶️ 22.7K runs 📅 Apr 2025 ⚙️ Cog 0.14.7 ⚖️ License
avatar-generation image-consistent-character-generation image-to-image

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

Example 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 Type: stringDefault: standing in a modern office space
A prompt describing the scene to put the user(s) in
face_image (required) Type: string
The face image to generate avatar from. A front facing selfie works best.
user_gender Default: female
Gender of the first user
face_image_b Type: string
Optional second face image for multi-person avatars
user_b_gender Default: female
Gender of the second user (if using face_image_b)
workflow_type Default: Realistic
The output style to use
Output Schema

Output

Type: stringFormat: uri

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
Run on Replicate →