Intro

이번 포스트는 2025년 1월에 발표된 Technical Report ACE++: Instruction-Based Image Creation and Editing via Context-Aware Content Filling을 소개하려고 합니다.

해당 Technical Report는 알리바바의 Vision Intelligence Lab에서 발표한 논문으로, 이미지 편집을 보다 효율적으로 처리하기 위해 기존의 ACE 모델의 개선된 버전인 ACE++ 라는 모델을 발표하였고 오픈소스로 공개하였습니다.

이번 포스트에서는 해당 논문의 아이디어와 이 기술을 어떻게 활용할 수 있을지에 대해 소개해드리려고 합니다.


Abstract

ACE++는 다양한 이미지 생성과 편집 작업을 수행하는 지시문(Instruction) 기반 확산 모델입니다.

FLUX.1-Fill-dev가 제안한 인페인팅(inpainting) 입력 방식을 확장해, ACE에서 사용하던 LCU(Long-context Condition Unit)를 개선하여 모든 편집·생성 작업에 적용 가능하도록 만들었습니다.

또한, 기존 text-to-image diffusion 모델(ex: FLUX.1-dev)을 빠르게 활용하기 위해 2단계 학습 과정을 제안하였습니다.

  • 1단계 (Pretraining)

    • 모델이 처음부터 모든 작업을 학습하면 시간이 오래 걸리고 비용이 많이 듭니다.
    • 따라서 먼저 기존의 강력한 text-to-image 모델(ex: FLUX.1-dev)을 기반으로 간단한 작업부터 학습합니다.
    • 논문에서 ‘0-참조(0-ref) 태스크’라는 개념이 나오는데, 기존 이미지 없이 단순히 텍스트만 보고 이미지를 생성하는 기본 작업을 말합니다.
    • 예를 들어, ‘바닷가에서 서핑하는 사람’이라는 텍스트만 주어지면, 기본 모델이 이를 기반으로 이미지를 생성하도록 합니다.
  • 2단계 (Finetuning)

    • 이제 기본적인 이미지 생성 능력이 확보되었으므로, ‘특정 스타일 유지’ 또는 ‘부분 수정’ 같은 더 복잡한 지시문 을 이해하도록 모델을 세분화합니다.
    • 이 단계에서는 N-참조(N-ref) 태스크가 추가됩니다. 즉, 특정 스타일의 샘플(reference), 편집하고자 하는 이미지, 편집할 영역의 마스크 등이 포함될 수 있습니다.
    • 예를 들어, 기존에 주어진 인물 사진을 기반으로 “같은 사람이 정장을 입고 서 있는 모습을 생성”하는 등의 작업을 수행합니다.


Background

Background

확산 모델 (Diffusion Models)의 비약적 발전

  • 이미지 생성 분야에서 확산 모델은 큰 진전을 이루었습니다. Stable Diffusion, FLUX 등 오픈소스 T2I 모델이 등장하면서 고품질/고해상도 이미지 생성이 쉬워졌으며 지속적으로 새로운 연구 및 응용 서비스가 활발히 개발되고 있습니다.

text-to-image (T2I) 모델의 대중화

  • 텍스트로부터 이미지를 생성하는 기술은 이제 예술, 광고, 교육, 소셜 미디어 등 다양한 분야에서 폭넓게 활용되고 있습니다. 하지만 단순 텍스트 지시만으로는 부분 편집 (inpainting), 특정 스타일 유지, 여러 이미지 참조 합성 등과 같은 복잡한 작업을 수행하는 데 한계가 있습니다.


Problem Statement

  1. 복합적 이미지 편집 요구 증가
    • 실제 서비스 환경에서는 단순 이미지 생성을 넘어선 복잡한 편집 작업이 필요합니다.
    • 특정 영역 수정, 동일 인물/오브젝트의 일관성 유지 등 세밀한 제어가 요구됩니다.
    • 예를 들어 이미지 속 인물의 의상 변경, 특정 로고 합성, 동일 캐릭터로 새로운 장면 생성 등의 작업이 필요합니다.
  2. 모델 운영의 비효율성
    • 각각의 편집/생성 기능마다 별도의 모델이나 플러그인이 필요한 현재 구조는 비효율적입니다.
    • 인물 보정, 배경 수정, 스타일 변환 등 여러 모델을 개별적으로 운영하면서 리소스와 유지 비용이 증가합니다.
  3. 통합된 범용 모델의 부재
    • 현재 대부분의 모델들은 inpainting이나 style transfer와 같은 특정 작업에만 특화되어 있습니다.
    • 다양한 편집/생성 작업을 하나의 파이프라인에서 처리할 수 있는 범용 모델이 부족한 상황입니다.

이러한 문제들을 해결하기 위해 ACE++는 기존 text-to-image 모델의 강점을 활용하면서 편집용 마스크, 참조 이미지 등 다양한 입력을 자연스럽게 처리하고 단일 모델로 여러 이미지 편집/생성 작업을 통합적으로 수행할 수 있도록 설계되었습니다.

즉, ACE++는 편집 도구만 준비되어 있다면 하나의 모델로 다양한 workflow를 수행할 수 있게 해주는 모델이라고 이해할 수 있습니다.


METHOD

LCU++: 개선된 입력 형식

  • 기존 ACE의 LCU(Long-Context Condition Unit)는 여러 조건(이미지, 마스크, 노이즈 등)을 “토큰 시퀀스”로 붙여 모델에 입력했습니다.
  • ACE++에서는 이를 개선하여, “이미지·마스크·노이즈”를 채널(Channel)로 붙이는 방식(LCU++)을 채택했습니다.
    • 예를 들어, 편집할 이미지와 그 마스크, 그리고 확산 과정을 위한 노이즈 정보를 하나의 “3채널(혹은 그 이상) 이미지”처럼 취급하는 식입니다.
    • 이렇게 하면, 기존 text-to-image 모델이 사용하던 “이미지를 토큰화”하는 방식과 자연스럽게 연결되고, 추가된 부분을 따로 크게 수정하지 않아도 모델이 조건부 입력을 처리할 수 있습니다.


모델 구조

  1. Transformer 기반
    • 이미지 생성은 기본적으로 Latent Diffusion을 사용하는 확산 프로세스 형태이며, Transformer 블록으로 확장된 형태입니다.
    • 텍스트 입력(지시문)은 텍스트 임베딩으로 변환되고,
    • LCU++ 입력(이미지·마스크·노이즈)을 채널 결합 형태로 모델 받아들여, 이를 토큰(token) 시퀀스로 변환합니다.
  2. 하나의 Attention 흐름에 모든 조건이 함께 들어감
    • 본래 text-to-image 모델은 텍스트 임베딩과 노이즈(이미지를 복원할 때 필요한 잠재 표현)만 처리했습니다.
    • ACE++는 여기에 참조 이미지와 마스크 정보를 추가적으로 넣어도, Transformer가 모두 한 번에 주목(attention)하여 해석하도록 설계되어 있습니다.
    • 이를 통해 “어떤 영역을 어떻게 수정할지” 또는 “어떤 이미지를 참고할지” 같은 정보를 통합적으로 고려하게 됩니다.

3.출력(이미지 생성) 과정

  • Diffusion(확산) 단계에서 노이즈를 점진적으로 제거(역으로 복원)하며 최종 이미지를 만들어냅니다.
  • 이때, 모델이 텍스트(명령어)와 참조 이미지, 마스크 등을 모두 반영해, 원하는 결과물(편집된 이미지나 완전 새 이미지)을 생성하게 됩니다.


동작 방식(훈련부터 추론까지)

  1. 훈련(Training)
    • 두 단계로 진행되는 학습 방식을 채택합니다. (1단계) 우선 text-to-image 모델로부터 “기본적인 이미지 생성 능력”을 빠르게 빌려오고(간단한 0-참조 태스크 위주), (2단계) 참조 이미지나 마스크가 필요한 복잡한 작업(N-참조 태스크)을 추가해서 모델이 “편집, 스타일 전환, 부분 수정” 등을 학습하도록 합니다.
    • 이 과정에서 모델은 “주어진 참조 이미지를 그대로 재현”하는 능력과 “목표 이미지를 새로 생성”하는 능력을 동시에 익혀, 맥락(Context)을 인지하는 법을 배웁니다.
  2. 추론(Inference)
    • 학습이 끝나면, 유저가 텍스트 지시문(예: “이 컵에 로고를 박아줘”)과 함께 참조 이미지, 마스크 등을 주면, 모델이 이를 한 번에 받아들여 자연스럽게 해당 부분만 수정하거나, 완전히 새로운 장면을 생성합니다.
    • “인물 일관성”이 필요한 경우(같은 얼굴 유지 등), 모델이 단계별로 노이즈를 제거하면서 참조 이미지를 바탕으로 얼굴 특성을 유지합니다.


Use Cases

ACE++은 아래와 같이 총 5가지 태스크를 수행할 수 있습니다.

Subject-Driven Generation

  • 하나의 특정 ‘대상(Subject)’(예: 캐릭터, 마스코트, 브랜드 로고 등)을 중심으로, 새로운 이미지나 장면을 생성하는 태스크입니다.
  • 활용예시
    • 캐릭터 IP 확장: 게임·애니메이션에 등장하는 캐릭터를 여러 장소나 상황에서 재현해 굿즈(피규어, 포스터 등)를 디자인할 때.
    • 브랜드 마케팅: 로고나 마스코트를 다양한 상황(행사·이벤트·상품)에 배치해 광고용 이미지를 빠르게 대량 생성할 때.

Portrait-Consistency Generation

  • 특정 인물(인물사진, 배우, 모델 등)을 다른 상황(옷차림, 배경, 포즈 등)으로 배치해도, 얼굴 특징이나 인물 정체성을 유지하도록 이미지를 생성하는 기능입니다.
  • 활용 예시
    • 영화/드라마 후속편 기획: 동일 배우가 다른 시대적 배경이나 세계관에서 어떤 모습을 할지 시각화해보는 작업.
    • 팬아트/굿즈 디자인: 유명 연예인·아이돌을 다양한 콘셉트로 그려서 팬 상품을 만드는 경우.
    • 게임 캐릭터 커스터마이징: 플레이어 아바타(실제 인물 기반) 유지하면서 무기·의상·배경만 바꿔보는 식의 시나리오.

Flexible instruction

  • 입력 이미지의 특징을 이해하고 프롬프트 명령에 맞게 편집하능 기능입니다.
  • 활용 예시 • 동작 수정: 사진에서 취한 포즈를 다르게 변경 • 색상 변경: 빨간색 옷을 입은 사람의 옷을 주황색으로 변경

Local Editing

  • text instruction을 기반으로 이미 존재하는 이미지에서 특정 ‘영역’(마스크 처리된 부위)만 선택적으로 수정·보정·추가·삭제하는 기능입니다.
  • 활용 예시
    • 부분 편집: 이미지의 특정 부분에 효과를 추가하거나 변경

Local Reference Editing

  • 기존 이미지에서 특정 부분을 편집하되, 다른 참조 이미지의 일부 속성이나 특징(예: 색상·패턴·로고·의상 등)을 가져와 해당 영역에 적용하는 기능입니다.
  • 활용 예시
    • 의상·패션 디자인: “새로 나온 패션 브랜드 로고를 기존 티셔츠 디자인에 붙여보기” 같은 시나리오에서 매우 유용.
    • 광고: 특정 배경의 원하는 위치에 광고 대상이 되는 제품을 자연스럽게 추가하여 광고 이미지를 빠르게 대량 생성할 때.


Conclusion

지금까지 ACE++ 모델의 아이디어와 이 기술을 어떻게 활용할 수 있을지에 대해 알아보았습니다. 해당 모델은 기존 LORA 모델과 동일하게 사용할 수 있어 기존의 Flux Fill and Redux 워크플로우를 사용하던 분들을 바로 해당 모델을 테스트해 볼 수 있습니다.

개인적으로 테스트해본 결과 아직 수정이 완벽이 되지는 않지만 하나의 모델로 여러 태스크를 수행할 수 있다는 점에서 잠재성이 뛰어나다고 생각합니다. ACE++의 결과물이 서비스에 사용할 수준으로 컨트롤이 된다면 혁신적인 Instruction 기반 에디터를 만들어 볼 수 있을 것 같습니다.

keep going

Project Page: https://ali-vilab.github.io/ACE_plus_page
Code: https://github.com/ali-vilab/ACE_plus
Download: https://huggingface.co/ali-vilab/ACE_Plus/tree/main
ComfyUI usecase: https://www.youtube.com/watch?v=raETNJBkazA&t=1s

Updated:

Leave a comment