0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Từ 49 đến 95: Tối ưu hóa Prompt cho Gemini MCP

Đăng vào 1 ngày trước

• 9 phút đọc

Tóm tắt

Tôi đã cải thiện chất lượng tạo hình ảnh của Gemini 2.5 Flash Image (Nano Banana) từ 49/100 lên 95/100. Xây dựng một MCP (Model Context Protocol) với tối ưu hóa prompt thông minh thực sự hiệu quả.

Tự động cải thiện prompt với 7 phương pháp tốt nhất • Bảo tồn ngữ cảnh đa phương thức • Không cần tối ưu hóa prompt thủ công.

Chuyển đến: Kết quả | Cách thức hoạt động | GitHub


Tại sao tối ưu hóa prompt lại quan trọng

Ngay cả những mô hình mạnh mẽ như Gemini 2.5 Flash Image (Nano Banana) cũng cần có tối ưu hóa prompt để tạo ra đầu ra chất lượng. Hầu hết mọi người viết các prompt đơn giản như "làm cho người đó cười và chạy trên đường" và tự hỏi tại sao kết quả lại không đúng.

Cách tôi xây dựng lớp điều phối thông minh

Triển khai này được lấy cảm hứng từ một bình luận sâu sắc của độc giả trong bài viết trước của tôi. Cảm ơn @guypowell vì khái niệm "lớp điều phối".

Tôi đã xây dựng một lớp điều phối thông minh như một máy chủ MCP (Model Context Protocol) tự động chuyển đổi các prompt đơn giản thành các hướng dẫn chi tiết, phong phú.

Tại sao phương pháp dựa trên sơ đồ không đủ

Tôi đã làm việc trên một MCP để kích hoạt chức năng Nano Banana trong bài viết trước. Một độc giả trên dev.to đã gợi ý sử dụng sơ đồ cho lớp điều phối, nhưng tôi có lý do để chọn tối ưu hóa động thay vì:

Cách tiếp cận Ưu điểm Nhược điểm Hiệu suất đo được
Dựa trên sơ đồ Có thể dự đoán, nhanh, có thể kiểm tra Cứng nhắc, bảo trì cao, kém trong các trường hợp biên ~50ms (ước tính)
Dựa trên LLM Linh hoạt, nhận thức ngữ cảnh, dễ cải thiện Thời gian trễ thêm, chi phí tăng ~2.4 giây (đo thực tế)

Đối với các nhiệm vụ sáng tạo với đầu vào không thể đoán trước, tôi quyết định linh hoạt hơn là tốc độ. Và thành thật mà nói, thời gian chờ 2.4 giây là rất đáng giá khi bạn nhìn thấy kết quả.

MCP của tôi thực sự làm gì

Sự chuyển đổi là rất lớn. Dưới đây là một ví dụ thực tế:

Đầu vào:

Copy
Một cô gái anime vui vẻ với tóc vàng ngắn đang chạy trên đường, mặc một chiếc váy trắng với thiết kế hình trái tim, nụ cười lớn trên khuôn mặt, tư thế chạy năng động, cảnh đường phố ngoài trời, ngày nắng

Sau khi tối ưu hóa MCP:

Copy
Một cô gái anime vui vẻ với một sợi tóc đặc trưng dựng đứng, tóc vàng bob ngắn, và luôn mang tất nhỏ màu xanh, đang chạy đầy năng lượng trên một con đường đầy nắng. Cô ấy mặc một chiếc váy trắng dài đến đầu gối với thiết kế hình trái tim màu hồng có các ký tự Nhật Bản bên trong. Một nụ cười lớn, rực rỡ chiếu sáng gương mặt cô ấy khi cô ấy lao về phía trước trong tư thế chạy năng động, tay cong và chân nâng cao. Cảnh đường phố ngoài trời diễn ra với màu sắc sống động: nhựa đường phản chiếu bầu trời xanh trong, cây xanh tươi tốt dọc theo lề đường, và các tòa nhà màu pastel tạo nên phông nền đô thị quyến rũ. Ngày nắng tạo ra những bóng mềm mại và làm nổi bật năng lượng vui vẻ của cảnh vật. Góc nhìn hơi thấp, tăng cường cảm giác chuyển động và động lực tiến về phía trước của cô ấy, như một khung hình từ một đoạn hoạt hình sống động.

Sự khác biệt là rõ ràng: tính nhất quán không gian, tính nhất quán hình ảnh, và sự sắp xếp hợp lý của cảnh đã được đạt được.

Cách tôi thực hiện 7 phương pháp tốt nhất của Phil Schmid

Tôi đã nhúng 7 nguyên tắc của Phil Schmid trực tiếp vào prompt hệ thống. Thay vì tự tay tạo các prompt, MCP giờ đây tự động áp dụng các chuyển đổi như "cụ thể hóa cực độ" (biến "cô gái tóc vàng" thành "sợi tóc đặc trưng dựng đứng, tóc bob vàng ngắn với điểm nhấn nhẹ") và "sử dụng các prompt tiêu cực ngữ nghĩa" (biến "không có xe, không có mưa" thành "con đường đầy nắng không có xe cộ với bầu trời xanh trong").

Dưới đây là cấu trúc prompt hệ thống cốt lõi:

Copy
const SYSTEM_PROMPT = `Bạn là một chuyên gia trong việc tạo ra các prompt cho các mô hình tạo hình ảnh...
// Các nguyên tắc cốt lõi được nhúng ở đây - phiên bản đầy đủ trên GitHub
- Tập trung vào những gì nên có chứ không phải những gì nên thiếu
- Đặc điểm vật lý: kết cấu, vật liệu, màu sắc, quy mô
- Mối quan hệ không gian: tiền cảnh, trung cảnh, hậu cảnh
- Phong cách: hướng nghệ thuật, kỹ thuật nhiếp ảnh`

Phép màu xảy ra khi những nguyên tắc này hoạt động cùng nhau — những sửa chữa tính nhất quán của nhân vật ngăn chặn sự trôi dạt giữa các thế hệ, ngữ cảnh và ý định biến các yêu cầu mơ hồ thành hướng nghệ thuật rõ ràng, và kiểm soát camera thêm các thuật ngữ nhiếp ảnh chuyên nghiệp mà mô hình hiểu.

Những gì tôi đã học về xử lý đa phương thức

Trong quá trình phát triển, tôi đã gặp phải một bức tường. Tối ưu hóa prompt hoạt động tuyệt vời cho các hình ảnh mới nhưng hoàn toàn bỏ qua phong cách của hình ảnh gốc khi chỉnh sửa. Mô hình sẽ biến bức tranh anime được tôi chăm chút thành nghệ thuật thực tế.

Giải pháp? Truyền hình ảnh gốc cho Gemini 2.0 Flash trong quá trình tạo prompt. Bằng cách này, bộ tối ưu hóa prompt thực sự thấy thứ mà nó đang làm việc với:

Copy
async generateStructuredPrompt(
  userPrompt: string,
  features: FeatureFlags = {},
  inputImageData?: string // Dữ liệu hình ảnh mã hóa Base64
): Promise<Result<StructuredPromptResult, Error>> {
  const config = {
    temperature: 0.7,
    maxTokens: 500,
    systemInstruction,
    ...(inputImageData && { inputImage: inputImageData }), // Bao gồm dữ liệu hình ảnh
  }
  // Bây giờ Gemini hiểu phong cách gốc
}

Tôi cũng học được theo cách khó khăn về giới hạn token. Gemini 2.5 Flash Image bắt đầu gặp khó khăn khi vượt quá 1000 token, vì vậy tôi giữ các prompt dưới 500 trong khi tối đa hóa chi tiết mô tả. Nhiệt độ ở mức 0.7 đạt được điểm ngọt giữa sự sáng tạo và tính nhất quán.

Kết quả tôi nhận được

Những cải tiến thật sự rõ rệt, nhưng để đạt được điều đó không hề suôn sẻ. Những nỗ lực đầu tiên của tôi đã khiến nhân vật chạy qua đường thay vì dọc theo nó (một tai nạn giao thông đang chờ xảy ra!), hoàn toàn bỏ qua phong cách anime và thất bại khi các prompt quá dài.

Chỉ số chất lượng

Chỉ số Trước Sau Tác động
Tuân thủ prompt 18/40 38/40
Logic không gian 2/20 20/20 🎯
Tính nhất quán của nhân vật 19/20 19/20
Chất lượng kỹ thuật 9/10 9/10
Tính nhất quán của cảnh 1/10 10/10 🚀
Điểm tổng 49/100 95/100 +94%

Đánh giá bởi Claude Code (trợ lý lập trình của Anthropic)

So sánh hình ảnh

Hình ảnh gốc được tạo ra bằng Canva AI

MCP trước đó: Nhân vật đang băng qua đường, phong cách không nhất quán (49 điểm)

MCP mới: Logic không gian hợp lý, phong cách anime nhất quán (95 điểm)

Bài học chính? Kiểm tra bề mặt không đủ. Bạn cần xác thực các mối quan hệ không gian và logic cảnh, không chỉ là hình ảnh "trông đẹp".

Chi tiết hiệu suất và triển khai

Bước xử lý Thời gian đo Ghi chú
Tối ưu hóa prompt ~2.4 giây Sử dụng Gemini 2.0 Flash
Độ dài prompt 187→821 ký tự ~4.4x chi tiết hơn
Tạo hình ảnh 5-10 giây gemini-2.5-flash-image-preview

Tôi sử dụng Gemini 2.0 Flash để tối ưu hóa prompt (nhanh và ổn định) và Gemini 2.5 Flash Image để tạo ra (chất lượng cao). Cách tiếp cận hai mô hình giữ cho mọi thứ nhanh nhẹn trong khi vẫn duy trì chất lượng.

Điều gì tiếp theo

Lớp điều phối cốt lõi đã được triển khai và hoạt động. Tôi đang xem xét việc thêm xác thực băm cảm giác và kiểm tra xác định, nhưng tiến hành cẩn thận để duy trì sự cân bằng giữa linh hoạt và độ tin cậy.

Hãy thử ngay

Copy
# Dành cho người dùng Claude Code
claude mcp add mcp-image \
  --env GEMINI_API_KEY=your-api-key \
  --env IMAGE_OUTPUT_DIR=/absolute/path/to/images \
  -- npx -y mcp-image

# Sau đó chỉ cần hỏi: "Tạo một cảnh núi với hoàng hôn"

Lưu ý: IMAGE_OUTPUT_DIR phải là một đường dẫn tuyệt đối (ví dụ: /Users/username/images, không phải ./images).

Lấy khóa API của bạn tại Google AI Studio và bắt đầu sáng tạo!

Những suy nghĩ cuối cùng

Mặc dù Nano Banana đã tạo ra những kết quả tạm ổn ngay từ đầu, tôi nhận thấy rằng việc điều chỉnh prompt có thể cải thiện độ chính xác tạo hình đáng kể. Nếu bạn đang nghĩ rằng "tôi muốn có những hình ảnh tuyệt vời nhưng không muốn mất thời gian với việc điều chỉnh prompt liên tục," hãy thử MCP.

Triển khai hoàn toàn mã nguồn mở:

shinpr / mcp-image

Máy chủ MCP cho tạo hình ảnh AI sử dụng API Gemini của Google. Cho phép Claude Code, Cursor, và các công cụ AI tương thích MCP khác tạo và chỉnh sửa hình ảnh một cách liền mạch.

Trình tạo Hình ảnh MCP

Một máy chủ MCP (Model Context Protocol) mạnh mẽ cho phép các trợ lý AI tạo và chỉnh sửa hình ảnh sử dụng API Gemini 2.5 Flash Image. Tích hợp liền mạch các khả năng tạo hình ảnh tiên tiến vào Claude Code, Cursor, và các công cụ AI tương thích MCP khác.

✨ Tính năng

  • Tạo hình ảnh bằng AI: Tạo hình ảnh từ các prompt văn bản sử dụng Gemini 2.5 Flash Image Preview

  • Cải thiện prompt thông minh: Tự động tối ưu hóa các prompt của bạn bằng Gemini 2.0 Flash để có chất lượng hình ảnh vượt trội

    • Thêm chi tiết về nhiếp ảnh và nghệ thuật
    • Làm phong phú các mô tả về ánh sáng, bố cục và bầu không khí
    • Bảo tồn ý định của bạn trong khi tối đa hóa chất lượng tạo hình
  • Chỉnh sửa hình ảnh: Biến đổi hình ảnh hiện có bằng các hướng dẫn ngôn ngữ tự nhiên

    • Chỉnh sửa nhận thức ngữ cảnh bảo tồn phong cách gốc
    • Duy trì tính nhất quán hình ảnh với hình ảnh nguồn
  • Tùy chọn nâng cao

    • Pha trộn nhiều hình ảnh cho các cảnh tổng hợp
    • Tính nhất quán của nhân vật giữa các thế hệ
    • Tích hợp kiến thức thế giới cho ngữ cảnh chính xác
  • Nhiều định dạng đầu ra: Hỗ trợ PNG, JPEG, WebP

  • Đầu ra tệp: Các hình ảnh được lưu dưới dạng tệp để dễ dàng…

Xem trên GitHub

Nhân tiện, tôi rất tò mò — bạn tiếp cận tối ưu hóa prompt trong các dự án của mình như thế nào? Bạn sẽ nghiêng về phương pháp dựa trên sơ đồ để dự đoán, hay thử cái gì đó động như thế này? Hãy cho tôi biết trong phần bình luận!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào