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

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
12.3K 00

일반 소개

인스턴트캐릭터는 텐센트 후위안과 인스턴트엑스 팀이 개발한 오픈 소스 프로젝트로, 깃허브에서 호스팅됩니다. 이 프로젝트는 참조 이미지와 텍스트 설명을 사용하여 다양한 장면과 스타일에 대해 일관된 모양의 캐릭터 이미지를 생성합니다. 이 프로젝트는 기존 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의 라이선스가 필요합니다.
© 저작권 정책

관련 문서

댓글 없음

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