ข่าว | ระเบียบวิธี | ความสามารถ | เริ่มต้นอย่างรวดเร็ว | ไฟน์จูน | ใบอนุญาต | การอ้างอิง
03-11-2024: เพิ่มการสาธิตการจำลองและ API:
28-10-2567: เราเปิดตัวโค้ดการอนุมานเวอร์ชันใหม่ ปรับการใช้หน่วยความจำและต้นทุนเวลาให้เหมาะสม คุณสามารถดู docs/inference.md สำหรับข้อมูลโดยละเอียด
22-10-2567: ? เราปล่อยโค้ดสำหรับ OmniGen การอนุมาน: docs/inference.md รถไฟ: docs/fine-tuning.md
22-10-2567: ? เราเปิดตัว OmniGen เวอร์ชันแรก น้ำหนักรุ่น: Shitao/OmniGen-v1 HF Demo: ?
OmniGen เป็นโมเดลการสร้างรูปภาพแบบครบวงจรที่สามารถสร้างรูปภาพได้หลากหลายจากพรอมต์หลายโมดัล ออกแบบมาให้เรียบง่าย ยืดหยุ่น และใช้งานง่าย เราจัดเตรียมโค้ดการอนุมานเพื่อให้ทุกคนสามารถสำรวจฟังก์ชันการทำงานของ OmniGen ได้มากขึ้น
โมเดลการสร้างภาพที่มีอยู่มักจะต้องโหลดโมดูลเครือข่ายเพิ่มเติมหลายโมดูล (เช่น ControlNet, IP-Adapter, Reference-Net ฯลฯ) และดำเนินการขั้นตอนล่วงหน้าเพิ่มเติม (เช่น การตรวจจับใบหน้า การประมาณท่าทาง การครอบตัด ฯลฯ) เพื่อสร้างความพึงพอใจ ภาพ. อย่างไรก็ตาม เราเชื่อว่ากระบวนทัศน์การสร้างภาพในอนาคตควรมีความเรียบง่ายและยืดหยุ่นมากขึ้น กล่าวคือ การสร้างภาพต่างๆ โดยตรงผ่านคำสั่งแบบหลายรูปแบบตามต้องการ โดยไม่จำเป็นต้องใช้ปลั๊กอินและการทำงานเพิ่มเติม คล้ายกับวิธีการทำงานของ GPT ในการสร้างภาษา
เนื่องจากทรัพยากรมีจำกัด OmniGen จึงยังมีพื้นที่สำหรับการปรับปรุง เราจะเพิ่มประสิทธิภาพต่อไป และหวังว่าสิ่งนี้จะสร้างแรงบันดาลใจให้กับโมเดลการสร้างภาพที่เป็นสากลมากขึ้น คุณยังสามารถปรับแต่ง OmniGen ได้อย่างง่ายดายโดยไม่ต้องกังวลกับการออกแบบเครือข่ายสำหรับงานเฉพาะ คุณเพียงแค่ต้องเตรียมข้อมูลที่เกี่ยวข้อง จากนั้นจึงเรียกใช้สคริปต์ จินตนาการไม่มีขีดจำกัดอีกต่อไป ทุกคนสามารถสร้างงานสร้างภาพใดๆ ก็ได้ และบางทีเราอาจสามารถบรรลุสิ่งที่น่าสนใจ อัศจรรย์ และสร้างสรรค์ได้
หากคุณมีคำถาม แนวคิด หรืองานที่น่าสนใจที่คุณต้องการให้ OmniGen บรรลุผล โปรดอย่าลังเลที่จะพูดคุยกับเรา: [email protected], [email protected], [email protected] เรายินดีรับข้อเสนอแนะเพื่อช่วยเราปรับปรุงโมเดล
คุณสามารถดูรายละเอียดได้ในเอกสารของเรา
OmniGen เป็นโมเดลการสร้างรูปภาพแบบครบวงจรที่คุณสามารถใช้เพื่อทำงานต่างๆ รวมถึงแต่ไม่จำกัดเพียง การสร้างข้อความเป็นรูปภาพ การสร้างตามหัวเรื่อง การสร้างการรักษาเอกลักษณ์ การแก้ไขรูปภาพ และการสร้างการปรับสภาพรูปภาพ OmniGen ไม่ต้องการปลั๊กอินหรือการดำเนินการเพิ่มเติม เพราะสามารถระบุคุณสมบัติต่างๆ ได้โดยอัตโนมัติ (เช่น วัตถุที่ต้องการ ท่าทางของมนุษย์ การทำแผนที่เชิงลึก) ในภาพที่ป้อนเข้าตามข้อความที่แจ้ง เราแสดงตัวอย่างบางส่วนใน inference.ipynb และใน inference_demo.ipynb เราจะแสดงไปป์ไลน์ที่น่าสนใจเพื่อสร้างและแก้ไขรูปภาพ
นี่คือภาพประกอบความสามารถของ OmniGen:
คุณสามารถควบคุมการสร้างภาพได้อย่างยืดหยุ่นผ่าน OmniGen
การสร้างนิพจน์ที่อ้างอิง: คุณสามารถป้อนรูปภาพได้หลายรูปและใช้ภาษาทั่วไปที่เรียบง่ายเพื่ออ้างถึงวัตถุภายในรูปภาพเหล่านั้น OmniGen สามารถจดจำวัตถุที่จำเป็นในแต่ละภาพได้โดยอัตโนมัติ และสร้างภาพใหม่ตามวัตถุเหล่านั้น ไม่จำเป็นต้องดำเนินการเพิ่มเติม เช่น การครอบตัดรูปภาพหรือการตรวจจับใบหน้า
หากคุณไม่พอใจกับฟังก์ชันบางอย่างหรือต้องการเพิ่มความสามารถใหม่ๆ คุณสามารถลองปรับแต่ง OmniGen ได้
ติดตั้งผ่าน Github:
git clone https://github.com/staoxiao/OmniGen.gitcd OmniGen pip ติดตั้ง -e
นี่คือตัวอย่างบางส่วน:
จาก OmniGen นำเข้า OmniGenPipelinepipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1") # หมายเหตุ: เส้นทางโมเดลในเครื่องของคุณก็เป็นที่ยอมรับเช่นกัน เช่น 'pipe = OmniGenPipeline.from_pretrained(your_local_model_path)' โดยที่ไฟล์ทั้งหมดใน your_local_model_path ควรได้รับการจัดระเบียบเป็น https://huggingface.co/Shitao/OmniGen-v1/tree/main # หมายเหตุ: หากลิงก์ต้นฉบับ https://huggingface.co/Shitao/OmniGen-v1/tree/main ไม่เสถียรเมื่อดาวน์โหลด ขอแนะนำให้ใช้ลิงก์มิเรอร์นี้ https://hf-mirror.com/Shitao/OmniGen -v1/tree/main หรือวิธีอื่นๆ ใน https://hf-mirror.com/ ## Text to Imageimages = pipe(prompt="A curly-haired man in a red shirt is eating tea.", height=1024, ความกว้าง=1024, guide_scale=2.5,seed=0, )images[0].save("example_t2i.png") # บันทึกเอาต์พุต PIL Image## Multi-modal to Image# ในพรอมต์ เราใช้ตัวยึดตำแหน่งเพื่อแสดงรูปภาพ ตัวยึดตำแหน่งรูปภาพควรอยู่ในรูปแบบ <|image_*|># คุณสามารถเพิ่มรูปภาพได้หลายรูปใน input_images โปรดตรวจสอบให้แน่ใจว่าแต่ละภาพมีตัวยึดตำแหน่ง ตัวอย่างเช่น สำหรับรายการ input_images [img1_path, img2_path] พรอมต์จำเป็นต้องมีตัวยึดตำแหน่งสองตัว: <|image_1|>, <|image_2|>.images = pipe (prompt="ชายสวมเสื้อเชิ้ตสีดำกำลังอ่านหนังสือ ผู้ชายคือคนที่ใช่ใน <|image_1|>.",input_images=["./imgs/test_cases/two_man.jpg "],height=1024, width=1024,guidance_scale=2.5, img_guidance_scale=1.6,seed=0)images[0].save("example_ti2i.png") # บันทึกอิมเมจ PIL เอาต์พุต
หากหน่วยความจำไม่เพียงพอ คุณสามารถตั้งค่า offload_model=True
ได้ หากเวลาในการอนุมานยาวเกินไปเมื่อป้อนภาพหลายภาพ คุณสามารถลด max_input_image_size
ได้ สำหรับทรัพยากรที่จำเป็นและวิธีการเรียกใช้ OmniGen อย่างมีประสิทธิภาพ โปรดดูที่ docs/inference.md#requiremented-resources
สำหรับตัวอย่างเพิ่มเติมของการสร้างภาพ คุณสามารถดูที่ inference.ipynb และ inference_demo.ipynb
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับข้อโต้แย้งในการอนุมาน โปรดดูที่ docs/inference.md
เร็วๆ นี้.
เราสร้างการสาธิตออนไลน์ใน Huggingface
สำหรับการสาธิต gradio ในเครื่อง คุณต้องติดตั้ง pip install gradio spaces
จากนั้นคุณจึงจะสามารถเรียกใช้:
pip ติดตั้ง gradio spacespython app.py
เราจัดเตรียมสคริปต์การฝึกอบรม train.py
เพื่อปรับแต่ง OmniGen นี่คือตัวอย่างของเล่นเกี่ยวกับ LoRA finetune:
เร่งการเปิดตัว --num_processes=1 train.py --model_name_or_path Shitao/OmniGen-v1 --batch_size_per_device 2 --condition_dropout_prob 0.01 --lr 1e-3 --use_lora --lora_อันดับ 8 --json_file ./toy_data/toy_subject_data.jsonl --image_path ./toy_data/images --max_input_length_limit 18000 --keep_raw_solution --max_image_size 1024 --gradient_accumulation_steps 1 --ckpt_ทุกๆ 10 --ยุค 200 --log_ทุก 1 --results_dir ./results/toy_finetune_lora
โปรดดูเอกสาร/fine-tuning.mdสำหรับรายละเอียดเพิ่มเติม (เช่น การปรับแต่งแบบเต็ม)
ขอขอบคุณผู้มีส่วนร่วมของเราทุกคนสำหรับความพยายามและยินดีต้อนรับสมาชิกใหม่อย่างอบอุ่นที่จะเข้าร่วม!
Repo นี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT
หากคุณพบว่าพื้นที่เก็บข้อมูลนี้มีประโยชน์ โปรดพิจารณาให้ดาว ⭐ และการอ้างอิง
@article{xiao2024omnigen, title={Omnigen: Unified image generation}, author={Xiao, Shitao and Wang, Yueze and Zhou, Junjie and Yuan, Huaying and Xing, Xingrun and Yan, Ruiran and Wang, Shuting and Huang, Tiejun and Liu, Zheng}, journal={arXiv preprint arXiv:2409.11340}, year={2024} }