image generation function implementation

This commit is contained in:
Desktop
2025-11-12 04:32:42 +05:00
parent 854e4b2d0d
commit 19b4c9faa3
6 changed files with 607 additions and 5 deletions

View File

@@ -514,6 +514,51 @@ class ImagesViewSet(SiteSectorModelViewSet):
'results': grouped_data
}, status=status.HTTP_200_OK)
@action(detail=False, methods=['post'], url_path='generate_images', url_name='generate_images')
def generate_images(self, request):
"""Generate images from prompts - queues Celery task for sequential processing"""
from igny8_core.ai.tasks import process_image_generation_queue
account = getattr(request, 'account', None)
image_ids = request.data.get('ids', [])
content_id = request.data.get('content_id')
if not image_ids:
return Response({
'error': 'No image IDs provided',
'type': 'ValidationError'
}, status=status.HTTP_400_BAD_REQUEST)
account_id = account.id if account else None
# Queue Celery task
try:
if hasattr(process_image_generation_queue, 'delay'):
task = process_image_generation_queue.delay(
image_ids=image_ids,
account_id=account_id,
content_id=content_id
)
return Response({
'success': True,
'task_id': str(task.id),
'message': 'Image generation started'
}, status=status.HTTP_200_OK)
else:
# Fallback to synchronous execution (for testing)
result = process_image_generation_queue(
image_ids=image_ids,
account_id=account_id,
content_id=content_id
)
return Response(result, status=status.HTTP_200_OK)
except Exception as e:
logger.error(f"[generate_images] Error: {str(e)}", exc_info=True)
return Response({
'error': str(e),
'type': 'ExecutionError'
}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class ContentViewSet(SiteSectorModelViewSet):
"""
ViewSet for managing task content