ai
Midjourney Prompt กับ Message Queue Design —

Midjourney Prompt และ Message Queue

Midjourney Prompt สั่ง AI สร้างภาพ ต้องชัดเจน เฉพาะเจาะจง Style Lighting Camera Angle Parameters Message Queue สำหรับ Async Communication ระหว่าง Services
รวมสองหัวข้อ ใช้ Message Queue จัดการ Prompt Queue สำหรับ AI Image Generation ที่ต้อง Process เป็น Batch

Production Queue with Redis
# === Production Message Queue with Redis ===
# pip install redis rq celery
# 1. Celery Task Queue (Production)
# tasks.py
# from celery import Celery
# import time
#
# app = Celery('tasks',
# broker='redis://localhost:6379/0',
# backend='redis://localhost:6379/1',
# )
#
# app.conf.update(
# task_serializer='json',
# accept_content=['json'],
# result_serializer='json',
# timezone='Asia/Bangkok',
# task_acks_late=True, # Acknowledge after processing
# worker_prefetch_multiplier=1, # Process one at a time
# task_reject_on_worker_lost=True,
# task_default_retry_delay=60, # Retry after 60 seconds
# task_max_retries=3,
# )
#
# @app.task(bind=True, max_retries=3)
# def generate_image(self, prompt_data):
# """Generate AI Image from Prompt"""
# try:
# prompt = prompt_data['prompt']
# style = prompt_data.get('style', 'default')
# # Call Midjourney API or Stable Diffusion
# time.sleep(30) # Simulate generation
# return {"status": "completed", "image_url": f"/images/{self.request.id}.png"}
# except Exception as exc:
# self.retry(exc=exc, countdown=60 * (self.request.retries + 1))
#
# # Send task
# result = generate_image.delay({"prompt": "luxury watch", "style": "product"})
# print(f"Task ID: {result.id}")
# print(f"Status: {result.status}")
# print(f"Result: {result.get(timeout=120)}")
# 2. Docker Compose — Redis + Celery
# version: '3.8'
# services:
# redis:
# image: redis:7-alpine
# ports: ["6379:6379"]
#
# celery-worker:
# build: .
# command: celery -A tasks worker --loglevel=info --concurrency=4
# depends_on: [redis]
# environment:
# CELERY_BROKER_URL: redis://redis:6379/0
#
# celery-beat:
# build: .
# command: celery -A tasks beat --loglevel=info
# depends_on: [redis]
#
# flower:
# build: .
# command: celery -A tasks flower --port=5555
# ports: ["5555:5555"]
# depends_on: [redis]
# 3. Monitoring Commands
# celery -A tasks inspect active # Active tasks
# celery -A tasks inspect reserved # Reserved tasks
# celery -A tasks inspect stats # Worker stats
# celery -A tasks purge # Purge all tasks
queue_architecture = {
"Broker": "Redis (Message Storage)",
"Backend": "Redis (Result Storage)",
"Workers": "Celery Workers (Concurrent Processing)",
"Scheduler": "Celery Beat (Periodic Tasks)",
"Monitoring": "Flower (Web Dashboard port 5555)",
"Retry": "Exponential Backoff (60s, 120s, 180s)",
"DLQ": "Dead Letter Queue for failed tasks",
}
print("Production Queue Architecture:")
for component, desc in queue_architecture.items():
print(f" {component}: {desc}")
Best Practices
- Prompt Structure: Subject + Style + Lighting + Camera + Details + Parameters
- Negative Prompts: ใช้ --no ลบสิ่งไม่ต้องการออกจากภาพ
- Idempotent: ทำ Consumer ให้ Idempotent ประมวลผลซ้ำได้ผลเหมือนเดิม
- Dead Letter Queue: ตั้ง DLQ สำหรับ Messages ที่ fail หลาย retry
- Monitoring: ติดตาม Queue Depth, Consumer Lag, Processing Time
- Retry Policy: ใช้ Exponential Backoff สำหรับ Retry
Midjourney Prompt คืออะไร
ข้อความสั่ง Midjourney AI สร้างภาพ Subject Style Parameters --ar --v --q Prompt ดีต้องชัดเจน เฉพาะเจาะจง Style Lighting Camera Angle Color Palette





