뉴스 | 방법론 | 기능 | 빠른 시작 | 미세 조정 | 라이센스 | 소환
2024-11-03: 복제 데모 및 API 추가:
2024-10-28: 메모리 사용량과 시간 비용을 최적화하는 새로운 버전의 추론 코드를 출시합니다. 자세한 내용은 docs/inference.md를 참조하세요.
2024-10-22: ? OmniGen의 코드를 공개합니다. 추론: docs/inference.md 학습: docs/fine-tuning.md
2024-10-22: ? OmniGen의 첫 번째 버전을 출시합니다. 모델 무게: Shitao/OmniGen-v1 HF 데모: ?
OmniGen은 다중 모드 프롬프트에서 광범위한 이미지를 생성할 수 있는 통합 이미지 생성 모델입니다. 간단하고 유연하며 사용하기 쉽도록 설계되었습니다. 누구나 OmniGen의 더 많은 기능을 탐색할 수 있도록 추론 코드를 제공합니다.
기존 이미지 생성 모델은 만족스러운 결과를 생성하기 위해 여러 추가 네트워크 모듈(예: ControlNet, IP-Adapter, Reference-Net 등)을 로드하고 추가 전처리 단계(예: 얼굴 감지, 포즈 추정, 자르기 등)를 수행해야 하는 경우가 많습니다. 영상. 그러나 우리는 미래의 이미지 생성 패러다임이 더 간단하고 유연해야 한다고 믿습니다. 즉, GPT가 언어 생성에서 작동하는 방식과 유사하게 추가 플러그인 및 작업 없이 임의의 다중 모드 명령을 통해 직접 다양한 이미지를 생성해야 한다고 믿습니다.
제한된 리소스로 인해 OmniGen에는 여전히 개선의 여지가 있습니다. 우리는 이를 계속해서 최적화할 것이며 보다 보편적인 이미지 생성 모델에 영감을 주기를 바랍니다. 또한 특정 작업을 위한 네트워크 설계에 대해 걱정하지 않고도 OmniGen을 쉽게 미세 조정할 수 있습니다. 해당 데이터를 준비한 다음 스크립트를 실행하면 됩니다. 상상력은 더 이상 제한되지 않습니다. 누구나 이미지 생성 작업을 구성할 수 있으며 아마도 매우 흥미롭고 훌륭하며 창의적인 일을 달성할 수 있습니다.
OmniGen이 수행하기를 원하는 질문, 아이디어 또는 흥미로운 작업이 있으면 언제든지 우리와 논의하십시오: [email protected], [email protected], [email protected]. 모델 개선에 도움이 되는 피드백을 환영합니다.
우리 논문에서 자세한 내용을 볼 수 있습니다.
OmniGen은 텍스트-이미지 생성, 주제 중심 생성, ID 보존 생성, 이미지 편집, 이미지 조건 생성을 포함하되 이에 국한되지 않는 다양한 작업을 수행하는 데 사용할 수 있는 통합 이미지 생성 모델입니다. OmniGen은 추가 플러그인이나 작업이 필요하지 않으며 텍스트 프롬프트에 따라 입력 이미지의 특징(예: 필수 개체, 인간 자세, 깊이 매핑)을 자동으로 식별할 수 있습니다. inference.ipynb에 몇 가지 예가 나와 있습니다. 그리고 inference_demo.ipynb에서는 이미지를 생성하고 수정하는 흥미로운 파이프라인을 보여줍니다.
다음은 OmniGen의 기능을 보여주는 그림입니다.
OmniGen을 통해 이미지 생성을 유연하게 제어할 수 있습니다.
참조 표현 생성: 여러 이미지를 입력하고 간단하고 일반적인 언어를 사용하여 해당 이미지 내의 개체를 참조할 수 있습니다. OmniGen은 각 이미지에서 필요한 개체를 자동으로 인식하고 이를 기반으로 새로운 이미지를 생성할 수 있습니다. 이미지 자르기, 얼굴 인식 등의 추가 작업이 필요하지 않습니다.
특정 기능이 완전히 만족스럽지 않거나 새로운 기능을 추가하려는 경우 OmniGen을 미세 조정해 볼 수 있습니다.
Github를 통해 설치:
자식 클론 https://github.com/staoxiao/OmniGen.gitcd OmniGen pip 설치 -e .
다음은 몇 가지 예입니다.
OmniGen에서 import 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 = 파이프(prompt="빨간 셔츠를 입은 곱슬머리의 남자가 차를 마시고 있습니다.", height=1024, 너비=1024,guide_scale=2.5,시드=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 = 파이프라는 두 개의 자리 표시자가 있어야 합니다. (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에서 온라인 데모를 구축합니다.
로컬 그라디오 데모의 경우 pip install gradio spaces
설치한 후 다음을 실행할 수 있습니다.
pip 설치 그라디오 공간python app.py
우리는 OmniGen을 미세 조정하기 위한 훈련 스크립트 train.py
제공합니다. 다음은 LoRA 미세 조정에 대한 장난감 예입니다.
출시 가속화 --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_every 1 --results_dir ./results/toy_finetune_lora
자세한 내용(예: 전체 미세 조정)은 docs/fine-tuning.md를 참조하세요.
모든 기여자 여러분의 노고에 감사드리며, 새로운 회원이 합류하는 것을 따뜻하게 환영합니다!
이 리포지토리는 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} }