InstantCharacter: 단일 이미지에서 일관된 문자를 생성하는 오픈 소스 도구

최신 AI 리소스12개월 전에 게시됨 AI 공유 서클
79.3K 00
堆友AI

일반 소개

인스턴트캐릭터는 텐센트 후위안과 인스턴트엑스 팀이 개발한 오픈 소스 프로젝트로, 깃허브에서 호스팅됩니다. 이 프로젝트는 참조 이미지와 텍스트 설명을 사용하여 다양한 장면과 스타일에 대해 일관된 모양의 캐릭터 이미지를 생성합니다. 이 프로젝트는 기존 U-Net 아키텍처의 한계를 극복하여 더 높은 이미지 품질과 유연성을 제공하는 확산 트랜스포머 기술을 기반으로 합니다. 사용자는 복잡한 파라미터 설정 없이 간단한 조작만으로 설명과 일치하는 캐릭터 이미지를 생성할 수 있어 애니메이션, 게임 및 디지털 아트에 널리 사용됩니다. 프로젝트 지원 플럭스.1 모델과 사용자 친화적인 양식화된 생성을 위한 스타일 LoRA 적응 기능을 제공합니다.

InstantCharacter:从单张图片生成一致性角色的开源工具

 

기능 목록

  • 단일 이미지에서 일관된 캐릭터 생성: 하나의 참조 이미지로 다양한 장면, 동작, 시점에 맞는 캐릭터 이미지를 생성할 수 있습니다.
  • 텍스트 기반 생성: "거리에서 기타를 치는 소녀" 등의 텍스트 프롬프트를 사용하여 캐릭터의 움직임, 장면 및 스타일을 조정할 수 있습니다.
  • 스타일 마이그레이션 지원: 지브리 스타일이나 신카이 마코토 스타일 등 다양한 스타일의 LoRA와 호환되어 예술적인 이미지를 생성할 수 있습니다.
  • 고품질 이미지 출력: Flux.1 모델을 기반으로 고해상도의 디테일한 캐릭터 이미지를 생성합니다.
  • 오픈 소스 모델 지원: Flux 및 기타 오픈 소스 텍스트-이미지 모델을 지원하여 개발자가 기능을 자유롭게 확장할 수 있습니다.
  • 경량 어댑터: 확장 가능한 어댑터 모듈을 사용하여 컴퓨팅 리소스 소비를 줄이고 생성 효율성을 개선합니다.
  • 대규모 데이터 세트 최적화: 천만 개의 샘플 데이터 세트를 기반으로 학습하여 역할 일관성 및 텍스트 제어 가능성을 보장합니다.

 

도움말 사용

설치 프로세스

인스턴트캐릭터를 사용하려면 GPU 지원 환경이 필요하며, NVIDIA GPU(최소 48GB VRAM, 24GB에 최적화됨)를 권장합니다. 다음은 자세한 설치 단계입니다:

  1. 환경 준비::
    • Python 3.8 이상을 설치합니다.
    • PyTorch(CUDA 지원)를 설치하는 것이 좋습니다. pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118.
    • 종속성 라이브러리를 설치하려면 다음 명령을 실행합니다:
      pip install transformers accelerate diffusers huggingface_cli
      
    • 대용량 파일 다운로드를 위해 시스템에 Git 및 Git LFS가 설치되어 있는지 확인하세요.
  2. 클론 창고::
    • 터미널을 열고 다음 명령을 실행하여 인스턴트 문자 저장소를 복제합니다:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. 모델 체크포인트 다운로드::
    • 허깅 페이스에서 모델을 다운로드하세요:
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • 허깅 페이스에 액세스할 수 없는 경우 미러링된 주소를 사용할 수 있습니다:
      export HF_ENDPOINT=https://hf-mirror.com
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • 다운로드가 완료되면 폴더 구조에 다음이 포함되어 있는지 확인합니다. checkpointsassetsmodels 등 카탈로그.
  4. 런타임 환경 설정::
    • GPU 드라이버와 CUDA 버전이 PyTorch와 호환되는지 확인하세요.
    • 모델과 코드를 CUDA 지원 장치로 이동하고, CUDA 지원 장치에서 pipe.to("cuda").

사용법

인스턴트캐릭터의 핵심 기능은 참조 이미지와 텍스트 프롬프트에서 문자 이미지를 생성하는 것입니다. 자세한 절차는 다음과 같습니다:

1. 모델 및 어댑터 로드

  • 제공된 pipeline.py 스크립트는 기본 모델과 어댑터를 로드합니다. 샘플 코드는 다음과 같습니다:
    import torch
    from PIL import Image
    from pipeline import InstantCharacterFluxPipeline
    # 设置种子以确保可重复性
    seed = 123456
    # 加载基础模型
    base_model = 'black-forest-labs/FLUX.1-dev'
    ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin'
    image_encoder_path = 'google/siglip-so400m-patch14-384'
    image_encoder_2_path = 'facebook/dinov2-giant'
    # 初始化管道
    pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16)
    pipe.to("cuda")
    pipe.init_adapter(
    image_encoder_path=image_encoder_path,
    image_encoder_2_path=image_encoder_2_path,
    subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024)
    )
    
  • 위의 코드는 Flux.1 모델과 InstantCharacter의 IP 어댑터를 로드하여 모델이 GPU에서 실행되도록 합니다.

2. 참고 사진 준비

  • 문자가 포함된 이미지를 선택합니다(예 assets/girl.jpg), 배경이 단순한지 확인합니다(예: 흰색 배경).
  • 이미지를 로드하고 RGB 형식으로 변환합니다:
    ref_image_path = 'assets/girl.jpg'
    ref_image = Image.open(ref_image_path).convert('RGB')
    

3. 캐릭터 이미지 생성(스타일 마이그레이션 없음)

  • 텍스트 프롬프트를 사용하여 이미지를 생성하고 추론 단계 수 및 부트스트랩 규모와 같은 매개 변수를 설정합니다:
    prompt = "A girl is playing a guitar in street"
    image = pipe(
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter.png")
    
  • subject_scale 역할 일관성을 제어하며, 값이 낮을수록 양식화를 선호합니다(예: 0.6 또는 0.8).

4. 스타일 LoRA를 사용한 스타일 마이그레이션

  • 인스턴트캐릭터는 양식화된 LoRA(예: 지브리 또는 신카이 마코토 스타일)를 지원합니다. LoRA 파일을 로드하고 양식화된 이미지를 생성합니다:
    lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors'
    trigger = 'ghibli style'
    prompt = "A girl is playing a guitar in street"
    image = pipe.with_style_lora(
    lora_file_path=lora_file_path,
    trigger=trigger,
    prompt=prompt,
    num_inference_steps=28,
    guidance_scale=3.5,
    subject_image=ref_image,
    subject_scale=0.9,
    generator=torch.manual_seed(seed)
    ).images[0]
    image.save("flux_instantcharacter_style_ghibli.png")
    
  • 상호 호환성 lora_file_path 노래로 응답 trigger 다양한 스타일 간 전환 가능(예 Makoto_Shinkai_style.safetensors).

5. Gradio 인터페이스 실행(선택 사항)

  • 이 프로젝트는 손쉬운 상호 작용을 위해 Gradio 인터페이스를 제공합니다. 실행 app.py::
    python app.py
    
  • 브라우저를 열어 로컬 주소에 액세스합니다(예 http://127.0.0.1:7860)를 클릭하고 이미지를 업로드한 후 안내 단어를 입력하여 이미지를 생성합니다.

주의

  • 동물 캐릭터 생성은 불안정할 수 있으므로 사람 캐릭터 이미지를 권장합니다.
  • 고해상도 생성에는 더 많은 메모리가 필요하므로 A100 또는 RTX 5000 시리즈 GPU를 권장합니다.
  • 네트워크 문제로 인해 모델 다운로드가 중단될 수 있습니다. --resume-download 매개변수.

 

애플리케이션 시나리오

  1. 애니메이션 및 영화 제작
    • 캐릭터 콘셉트 아트나 스토리보드를 빠르게 생성하여 사전 디자인 주기를 단축할 수 있습니다. 사용자는 캐릭터 스케치를 업로드하고, 장면 설명(예: '숲 속을 달리는 캐릭터')을 입력하고, 애니메이션 미리보기 또는 캐릭터 테스트를 위한 일관된 이미지를 생성할 수 있습니다.
  2. 게임 개발
    • 게임 캐릭터의 멀티뷰, 멀티모션 이미지를 생성합니다. 개발자는 캐릭터 디자인을 업로드하고 다양한 포즈(예: "검을 휘두르는 캐릭터")의 스프라이트를 생성하여 2D 또는 3D 게임 리소스에 사용할 수 있습니다.
  3. 디지털 아트 제작
    • 아티스트는 스타일 LoRA를 사용하여 지브리 스타일로 변형된 사실적인 캐릭터와 같은 예술적인 캐릭터 이미지를 생성하여 일러스트레이션이나 NFT 제작에 사용할 수 있습니다.
  4. 소셜 미디어 콘텐츠
    • 사용자는 셀카를 업로드하여 애니메이션 스타일의 아바타 또는 애니메이션 장면(예: "공상 과학 도시에서 혼자 춤추기")을 생성하여 개인화된 소셜 미디어 콘텐츠를 만들 수 있습니다.

 

QA

  1. 인스턴트캐릭터는 어떤 모델을 지원하나요?
    • 현재 Flux.1 모델이 지원되며 향후 다른 오픈 소스 텍스트-이미지 변환 모델로 확장될 수 있습니다.
  2. 실행에 필요한 비디오 메모리는 어느 정도인가요?
    • 권장 48GB 메모리, 24GB 지원에 최적화. 메모리 요구 사항을 줄이기 위해 양자화 기술이 개발 중입니다.
  3. 모델 다운로드 실패를 해결하는 방법은 무엇인가요?
    • 포옹하는 얼굴 거울 주소를 사용하거나 --resume-download 매개변수를 사용하여 네트워크 안정성을 보장합니다.
  4. 생성된 동물 캐릭터가 불안정한 이유는 무엇인가요?
    • 모델 학습 데이터는 사람 캐릭터에 의해 지배되고 동물의 특징은 최적화되지 않아 사람 캐릭터 이미지를 사용하는 것이 좋습니다.
  5. 상업적으로 이용 가능한가요?
    • 현재 라이선스는 연구용으로만 제공됩니다. 상업적으로 사용하려면 Tencent의 라이선스가 필요합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...