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


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

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

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

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

ข้ามไปยังโค้ด

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

ใช้ได้เมื่อใช้ Vertex AI Gemini API เป็นผู้ให้บริการ API เท่านั้น

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

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

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

  • imagen-3.0-capability-001

โปรดทราบว่าโมเดล Imagen global ไม่รองรับตำแหน่ง

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

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

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

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

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

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

Swift

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

Kotlin

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

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

Java

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

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

Web

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

Dart

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

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

Unity

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

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

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


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