ขยายเนื้อหาของรูปภาพโดยใช้การวาดภาพนอกกรอบด้วย Imagen


หน้านี้อธิบายวิธีใช้ การวาดภาพนอกกรอบ โดยใช้ Imagen เพื่อ ขยายเนื้อหาของรูปภาพให้เกินขอบเขตเดิม โดยใช้ Firebase AI Logic SDK

การวาดภาพนอกกรอบเป็นการ แก้ไขตามมาสก์ประเภทหนึ่ง มาสก์คือการซ้อนทับแบบดิจิทัลที่กำหนดพื้นที่เฉพาะที่คุณต้องการแก้ไข

วิธีการทำงาน: คุณระบุรูปภาพต้นฉบับและ รูปภาพที่มาสก์ที่เกี่ยวข้อง ซึ่งระบบสร้างขึ้นโดยอัตโนมัติหรือคุณเป็นผู้ระบุเอง ซึ่ง กำหนดมาสก์ของพื้นที่ใหม่ที่ขยายออก นอกจากนี้ คุณยังระบุพรอมต์ข้อความเพื่ออธิบายสิ่งที่คุณต้องการในพื้นที่ที่ขยายออกได้ หรือโมเดลจะตัดสินใจอย่างชาญฉลาดว่าจะให้ฉากที่มีอยู่ดำเนินต่อไปอย่างสมเหตุสมผลอย่างไร โมเดลจะสร้างเนื้อหาใหม่และเติมพื้นที่ที่มาสก์

เช่น คุณสามารถเปลี่ยนอัตราส่วนกว้างยาวของรูปภาพหรือเพิ่มบริบทพื้นหลัง ได้

ไปที่โค้ด

ก่อนเริ่มต้น

ใช้ได้เฉพาะเมื่อใช้ Vertex AI Gemini API เป็น ผู้ให้บริการ API ของคุณ

หากยังไม่ได้ดำเนินการ โปรดทำตาม คู่มือเริ่มต้นใช้งาน ซึ่ง อธิบายวิธีตั้งค่าโปรเจ็กต์ Firebase, เชื่อมต่อแอปกับ Firebase, เพิ่ม SDK, เริ่มต้นบริการแบ็กเอนด์สำหรับผู้ให้บริการ API ที่คุณเลือก และ สร้างอินสแตนซ์ ImagenModel

โมเดลที่รองรับความสามารถนี้

Imagen มีฟีเจอร์การแก้ไขรูปภาพผ่านโมเดล capability ดังนี้

  • imagen-3.0-capability-001

โปรดทราบว่าโมเดล Imagen ไม่รองรับสถานที่ตั้ง global ไม่

ขยายเนื้อหาของรูปภาพ

ก่อนลองใช้ตัวอย่างนี้ โปรดทำตามส่วน ก่อนเริ่มต้น ของคู่มือนี้ เพื่อตั้งค่าโปรเจ็กต์และแอป

ตัวอย่างต่อไปนี้แสดงวิธีขยายรูปภาพให้เกินขอบเขตเดิม โดยใช้มาสก์ที่กำหนดไว้ในรูปภาพที่คุณระบุ คุณระบุรูปภาพต้นฉบับ พรอมต์ข้อความ และรูปภาพที่มาสก์ โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับรูปภาพต้นฉบับและรูปภาพที่มาสก์

  • รูปภาพที่มาสก์ต้องมีขนาดพิกเซลเท่ากับขนาดเป้าหมายของรูปภาพที่วาดภาพนอกกรอบขั้นสุดท้าย

  • รูปภาพต้นฉบับต้องมีระยะขอบเพิ่มเติมเพื่อให้มีขนาดพิกเซลตรงกับรูปภาพที่มาสก์

การระบุพรอมต์ข้อความเป็นตัวเลือก หากคุณต้องการให้โมเดลตัดสินใจอย่างชาญฉลาดว่าจะให้ฉากที่มีอยู่ดำเนินต่อไปอย่างสมเหตุสมผลอย่างไร หากต้องการเนื้อหาเฉพาะในพื้นที่ที่ขยายออก คุณต้องระบุเนื้อหานั้นในพรอมต์ข้อความ

Swift

โมเดล Imagen ไม่รองรับการแก้ไขรูปภาพด้วย Swift โปรดกลับมาดูอีกครั้งในปีนี้

Kotlin

หากต้องการขยายรูปภาพ ให้ใช้ editImage() และตั้งค่าการกำหนดค่าการแก้ไขให้ใช้ ImagenEditMode.OUTPAINT
โปรดทราบว่าคุณสามารถใช้ outpaintImage() แทน editImage() ได้ และไม่จำเป็นต้องระบุโหมดการแก้ไข

ดูโค้ดตัวอย่างสำหรับการวาดภาพนอกกรอบได้ใน คู่มือเริ่มต้นฉบับย่อ

Java

หากต้องการขยายรูปภาพ ให้ใช้ editImage() และตั้งค่าการกำหนดค่าการแก้ไขให้ใช้ ImagenEditMode.OUTPAINT
โปรดทราบว่าคุณสามารถใช้ outpaintImage() แทน editImage() ได้ และไม่จำเป็นต้องระบุโหมดการแก้ไข

ดูโค้ดตัวอย่างสำหรับการวาดภาพนอกกรอบได้ใน คู่มือเริ่มต้นฉบับย่อ

Web

โมเดล Imagen ไม่รองรับการแก้ไขรูปภาพสำหรับเว็บแอป โปรดกลับมาดูอีกครั้งในปีนี้

Dart

หากต้องการขยายรูปภาพ ให้ใช้ editImage() และตั้งค่าการกำหนดค่าการแก้ไขให้ใช้ ImagenEditMode.OUTPAINT

ดูโค้ดตัวอย่างสำหรับการวาดภาพนอกกรอบได้ใน คู่มือเริ่มต้นฉบับย่อ

Unity

โมเดล Imagen ไม่รองรับการแก้ไขรูปภาพสำหรับ Unity โปรดกลับมาดูอีกครั้งในปีนี้

แนวทางปฏิบัติแนะนำและข้อจำกัด

เราขอแนะนำให้ขยายมาสก์เมื่อแก้ไขรูปภาพ การทำเช่นนี้จะช่วยให้ขอบเขตของการแก้ไขเรียบเนียนขึ้น และดูสมจริงยิ่งขึ้น โดยทั่วไป เราขอแนะนำให้ใช้ค่าการขยาย 1% หรือ 2% (0.01 หรือ 0.02)


แสดงความคิดเห็น เกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic