ora editor

This commit is contained in:
2026-03-27 23:33:04 -07:00
parent cdc9ca2f92
commit c94988561c
36 changed files with 1564 additions and 125 deletions

View File

@@ -115,14 +115,20 @@ def api_mask_extract():
ora_path = data['ora_path']
comfy_url = data.get('comfy_url', COMFYUI_BASE_URL)
count = min(max(data.get('count', 1), 1), 10)
start_mask_path = data.get('start_mask_path', None)
logger.info(f"[MASK EXTRACT] Subject: {subject}")
logger.info(f"[MASK EXTRACT] Use polygon: {use_polygon}")
logger.info(f"[MASK EXTRACT] ORA path: {ora_path}")
logger.info(f"[MASK EXTRACT] ComfyUI URL: {comfy_url}")
logger.info(f"[MASK EXTRACT] Count: {count}")
logger.info(f"[MASK EXTRACT] Start mask path: {start_mask_path}")
if start_mask_path:
workflow_path = APP_DIR.parent / "image_mask_extraction_with_start.json"
else:
workflow_path = APP_DIR.parent / "image_mask_extraction.json"
workflow_path = APP_DIR.parent / "image_mask_extraction.json"
if not workflow_path.exists():
logger.error(f"[MASK EXTRACT] Workflow file not found: {workflow_path}")
return jsonify({'success': False, 'error': f'Workflow file not found: {workflow_path}'}), 500
@@ -142,6 +148,17 @@ def api_mask_extract():
logger.error(f"[MASK EXTRACT] Error loading base image: {e}")
return jsonify({'success': False, 'error': f'Error loading image: {str(e)}'}), 500
start_mask_img = None
if start_mask_path:
try:
start_mask_img = __import__('PIL').Image.open(start_mask_path).convert('RGBA')
if base_img.size != start_mask_img.size:
start_mask_img = start_mask_img.resize(base_img.size, __import__('PIL').Image.LANCZOS)
logger.info(f"[MASK EXTRACT] Loaded start mask: {start_mask_img.size}")
except Exception as e:
logger.error(f"[MASK EXTRACT] Error loading start mask: {e}")
return jsonify({'success': False, 'error': f'Error loading start mask: {str(e)}'}), 500
polygon_points = None
polygon_color = '#FF0000'
polygon_width = 2
@@ -166,18 +183,33 @@ def api_mask_extract():
prompt_ids = []
for i in range(count):
workflow = comfy_service.prepare_mask_workflow(
base_image=base_img,
subject=subject,
webhook_url=webhook_url,
seed=seeds[i],
batch_id=batch_id,
mask_index=i,
polygon_points=polygon_points,
polygon_color=polygon_color,
polygon_width=polygon_width,
workflow_template=workflow_template
)
if start_mask_img:
workflow = comfy_service.prepare_mask_workflow_with_start(
base_image=base_img,
start_mask_image=start_mask_img,
subject=subject,
webhook_url=webhook_url,
seed=seeds[i],
batch_id=batch_id,
mask_index=i,
polygon_points=polygon_points,
polygon_color=polygon_color,
polygon_width=polygon_width,
workflow_template=workflow_template
)
else:
workflow = comfy_service.prepare_mask_workflow(
base_image=base_img,
subject=subject,
webhook_url=webhook_url,
seed=seeds[i],
batch_id=batch_id,
mask_index=i,
polygon_points=polygon_points,
polygon_color=polygon_color,
polygon_width=polygon_width,
workflow_template=workflow_template
)
logger.info(f"[MASK EXTRACT] Workflow {i} prepared, sending to ComfyUI at http://{comfy_url}")