ControlNet 개발자로 알려진 Lvmin Zhang이 배경이 투명한 이미지를 생성할 수 있는 「Layer Diffusion」을 개발했습니다. 이미 Layer Diffusion을 간단하게 사용할 수 있는 툴이 공개되어 있으므로, 실제로 PC에 인스톨하여 배경 없는 이미지를 생성해 보겠습니다.
[2402.17113] Transparent Image Layer Diffusion using Latent Transparency
https://arxiv.org/abs/2402.17113
GitHub - layerdiffusion/LayerDiffuse: Transparent Image Layer Diffusion using Latent Transparency
sd -forge-layerdiffuse: [WIP] Layer Diffusion for WebUI (via Forge)
◆ 1:Layer Diffusion의 설치 순서
Layer Diffusion의 개발자인 Zhang 씨는 Stable Diffusion의 고속 실행 유저 인터페이스 「Stable Diffusion WebUI Forge」도 개발하고 있어, Stable Diffusion WebUI Forge로 Layer Diffusion을 사용할 수 있도록 하는 확장 기능「sd-forge-layerdiffuse」도 공개하고 있습니다. 이번에는 Stable Diffusion WebUI Forge에 sd-forge-layerdiffuse를 설치하여 Layer Diffusion을 사용해 보겠습니다.
「Stable Diffusion WebUI Forge」의 설치 방법 및 모델 데이터 추가 방법은 아래 글을 참고하세요.
그래픽카드 변경 없이도 이미지 생성 속도를 높여주는「Stable Diffusion WebUI Forge」설치 과정
Stable Diffusion WebUI Forge 설치가 완료되면 sd-forge-layerdiffuse 설치 작업을 진행합니다. 먼저 Stable Diffusion WebUI Forge의 Extensions 탭에서 Install from URL 탭을 열고 맨 위 입력란에 sd-forge-layerdiffuse 배포 페이지의 URL https://github.com/layerdiffusion/sd-forge-layerdiffuse 를 입력한 다음 Install을 클릭합니다.
잠시 기다리면 화면 하단에 설치 완료 알림이 표시됩니다.
설치 완료 알림이 표시되면 Installed 탭에서 Apply and restart UI를 클릭합니다.
UI가 다시 로드되고 시드값 입력란의 하단에 "LayerDiffuse"라는 메뉴가 추가되면 sd-forge-layerdiffuse 설치가 완료됩니다.
◆ 2 : 배경이 투명한 이미지를 만드는 방법
Stable Diffusion WebUI Forge에 sd-forge-layerdiffuse를 설치했으니, 실제로 배경이 투명한 이미지를 만들어 보겠습니다. 먼저 LayerDiffuse 메뉴를 확장하고 Enable을 선택하고 Method 열에서 Only Generate Transparent Image (Attention Injection)을 선택합니다.
그 후에는 일반 이미지 생성과 마찬가지로 모델을 선택하거나 프롬프트를 입력하여 이미지를 생성하면 됩니다. 이번에는 모델 데이터는 "Juggernaut XL V6"을 사용하여 프롬프트 등은 아래의 설정으로 이미지를 생성해 보겠습니다.
an apple, high quality
Negative prompt: bad, ugly
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 5, Seed: 12345, Size: 1024x1024, Model hash: 1fe6c7ec54, Model: jugged , layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend_image: False, layerdiffusion 1.8.0rc-latest-269-gef35383b
설정을 한 번에 적용하고 싶은 경우는, 위의 텍스트를 모두 카피해 프롬프트 입력 영역에 붙여 넣고, 프롬프트 입력 영역의 오른쪽 옆에 있는 적용 버튼을 클릭하면 OK.
그러면 프롬프트, 샘플러, 스텝 수, 해상도 등의 설정이 자동으로 조정됩니다. 그 후 "Generate"를 클릭하여 이미지 생성을 시작합니다.
이미지의 생성 결과는 이런 느낌. 사과 주위가 잘린 투과 이미지가 생성되었습니다. 덧붙여 sd-forge-layerdiffuse나 모델 데이터의 버전이 다른 경우는, 위의 설정을 통째로 카피해도 다른 이미지가 생성됩니다.
sd-forge-layerdiffuse를 사용하여 이미지를 생성하면 한 번의 생성으로 이미지가 두 장 출력됩니다. 2장 중, 체크무늬 배경의 이미지는 「투과된 부분을 보여주는 이미지」로, 실제 투과 이미지가 아닙니다. 이 체크무늬가 있는 이미지를 저장해도 투과 이미지로서 사용할 수 없으니, 주의하세요.
옆의 다른 이미지가 실제 투과 이미지입니다.
투과 이미지를 생성하면 나중에 저장하여 Photoshop 등의 이미지 편집 소프트웨어로 합성 사진을 만들거나 사용할 수 있습니다.
계속해서, 애니메이션 일러스트풍 이미지 생성이 자랑인 모델 데이터 「anima_pencil-XL 1.0.0」를 사용해 아래의 설정으로 애니메이션 캐릭터풍의 투과 이미지를 생성해 보겠습니다.
girl in dress, high quality
Negative prompt: nsfw, bad, ugly, text, watermark
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 12345, Size: 896x1159, Modelhash: 7 , layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_b_image _resize_mode: Crop and Resize, Version: f0.0.17v1.8.0 rc-latest-269-gef35383b
생성된 결과는 이런 느낌.
이런 느낌으로 사용할 수 있습니다. 별도의 투과처리 없이도 "이미지를 생성하여 그대로 작품에 사용"하는 워크플로를 구축할 수 있습니다.
Layer Diffusion에서는 "배경이 완전히 투명한 이미지"뿐만 아니라 "다른 투명도가 공존하는 이미지"도 만들 수 있습니다. 예를 들어 모델 데이터에 "Juggernaut XL V6"을 사용하여 다음 설정으로 투명한 유리 이미지를 생성해 봅니다.
a cup made of glass, high quality
Negative prompt: bad, ugly
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 5, Seed: 12345, Size: 1024x1024, Model hash: 1fe6c7ec5 abled: True , layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image: False, layerdiffusion_bg_image: False, layerdiffusion_blend , 버전: f0.0.17v1.8.0rc-latest- 269-gef35383b
생성 결과는 이런 느낌.
생성한 유리의 이미지로 합성 사진을 만들면 이런 느낌입니다. 투명도의 차이에 의해 유리의 투명감을 표현할 수 있다는 것을 알 수 있습니다.
◆ 3:구도를 지정해 배경 투과 이미지를 만드는 방법
Layer Diffusion에서는 통상의 이미지 생성과 같이「앉은 포즈의 인물」, 「잠자는 개」등 포즈를 지정해 투과 이미지를 생성할 수 있습니다. 이때,「배경이 될 이미지」를 지정하는 것으로, 배경에 따른 포즈를 취한 상태에서 배경을 투과하는 것이 가능합니다. 예를 들어, 아래의 예에서는 의자 사진을 배경으로 입력하고 "앉은 여성"을 생성하여 의자에 앉히고 그다음 의자와 배경을 삭제하고 있습니다.
배경을 따라 포즈의 이미지를 생성하는 절차는 다음과 같습니다. 먼저 LayerDiffuse 메뉴에서 Enable을 선택하고 Method 열에서 From Background to Blending을 선택합니다.
그런 다음 의자 이미지를 이미지 영역으로 드래그 앤 드롭합니다. 이런 느낌으로 배경 이미지가 등록되면 OK.
그런 다음 일반 이미지 생성과 마찬가지로 모델 데이터를 선택하거나 프롬프트를 입력한 다음 이미지를 생성합니다. 이번에는 애니메이션 일러스트 스타일의 묘사로 의자에 앉아있는 소녀의 투명 이미지를 생성하기 위해, 모델 데이터는 "anima_pencil-XL 1.0.0"을 사용하고, 그 외의 설정은 아래와 같이 하여 이미지를 생성했습니다.
sitting girl in dress, high quality
Negative prompt: nsfw, bad, ugly, text, watermark
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 123456, Size: 896x1152, Model hash animaPencilXL_v100, layerdiffusion_enabled: True, layerdiffusion_method: Only Generate Transparent Image (Attention Injection), layerdiffusion_weight: 1, layerdiffusion_ending_step: 1, layerdiffusion_fg_image_diff: : False, layerdiffusion_resize_mode: Crop and Resize, Version: f0.0.17v1. 8.0rc-latest-269-gef35383b
생성 결과는 이런 느낌. 배경으로 설정한 의자에 여성이 앉아 있습니다.
그런 다음 배경을 삭제하는 작업을 진행합니다. 우선, 「LayerDiffuse」의 메뉴 내의 Method란에서 「From Background and Blending to Foreground」를 선택.
그런 다음 생성된 이미지를 이미지 입력 영역으로 드래그 앤 드롭합니다.
LayerDiffuse 메뉴 안에 배경 이미지와 생성 이미지가 표시되면 OK.
그 후에는 아무것도 설정을 변경하지 않고 "Generate"를 클릭합니다.
이제 배경이 삭제되었습니다. 이 절차를 통해 투명한 이미지를 생성하면 피사체의 포즈와 구도를 어느 정도 제어할 수 있습니다.
'AI · 인공지능 > 이미지 생성 AI' 카테고리의 다른 글
일러스트를 입력하면 제작 과정을 타임랩스 촬영한 것 같이 출력해주는 AI 「Paints-Undo」 (0) | 2024.07.11 |
---|---|
여러 장의 2D 이미지에서 3D 공간을 재현하는 「Toon3D」 (4) | 2024.05.21 |
구글이 한 장의 사진과 음성으로 리얼한 동영상을 생성하는 AI 「VLOGGER」발표 (61) | 2024.03.20 |
그래픽카드 변경 없이도 이미지 생성 속도를 높여주는「Stable Diffusion WebUI Forge」설치 과정 (63) | 2024.03.08 |
Stability AI가 이미지에서 3D 모델을 생성할 수 있는「TripoSR」을 발표 (77) | 2024.03.06 |
사진이나 일러스트가 노래하도록 하거나 말하게 하는 AI 시스템 「EMO」가 등장 (76) | 2024.03.04 |
Stable Diffusion XL이 「SDXL-Lightning」의 데모를 공개 (75) | 2024.02.28 |
Stability AI가 고화질 이미지 생성 AI 「Stable Diffusion 3」를 발표 (85) | 2024.02.26 |