[Tip] 생각보다 트랙션 나오는 슬랙 이모지 사이트 👨💻
슬랙 이모지 만들기 AI와 함께 라면 어렵지 않아요 👋
여러분 다들 슬랙 사용하시나요?
슬랙(Slack)은 글로벌 1위 기업용 메신저로 22년도 기준 100대 기업 중 77 곳이 슬랙을 사용하고 있습니다.
사실 슬랙의 첫 시작은 게임(tiny spec)이었는데, 나중에 메신저로 피벗해서 큰 성공을 거두었습니다.
엔터테인먼트 기업으로 시작한 슬랙에 "일하는데 꼭 진지해야 되나?"라는 의구심에서 탄생한 슬랙 메신저의 정체성을 이루는 요소가 있습니다.
바로 이모지(Emoji) 입니다.
저희 회사 뿐만 아니라 다양한 스타트업, AI 커뮤니티의 슬랙을 보면 이모지를 정말 잘 사용하고 있는데요.
소통을 캐주얼하게 해준다는 점에서 큰 효과를 주는 것 같습니다.
그런데 남들 모두가 사용하는 이모지, 스타트업은 그런 거 안 좋아하잖아요.
차별화(?)를 위해 슬랙 이모지를 직접 만들거나 아니면 다른 홈페이지에서 가지고 오곤 합니다.
그래서 그런지 슬랙 이모지 사이트... 접속량이 꽤 있습니다. 세 개의 사이트를 살펴보면요.
월간 방문 횟수 260K (23.09 기준)
월간 방문 횟수 845K (23.09 기준)
월간 방문 횟수 34K (23.09 기준)
오... 단순한데 많은 사람들의 관심을 이끌어 내었습니다.
그리고 이러한 관심을 잘 간파한 우리 오픈 소스 진영 내 한 개발자가 이모지의 창의성을 극대화한 서비스를 하나 들고 옵니다.
바로 https://emojis.sh/ 입니다.
우선 서비스 개발자의 말부터 들어 봅시다.
https://twitter.com/pondorasti/status/1709776270014443895
런칭 24시간만에 160,000 개의 이모지 생성, 31,000명 방문...
현재 420,000 개의 이모지가 생성된 것으로 나오니 대략 80,000명이 방문했을 것으로 예측됩니다.
(물론 서비스 운영해보신 분들은 아시겠지만 열성 유저가 저 이모지의 대부분을 만들었을 수도 있습니다)
그런데 특이한 것이 보이죠?
바로 600개의 깃헙 스타입니다. 바로 오픈 소스로 홈페이지를 공유한 것인데요.
홈페이지를 봐야겠습니다.
홈페이지는 정말 단순합니다. 이모지로 만들고 싶은 내용 입력 후 생성.
과정은 텍스트 필터링, 입력값에 어울리는 '이모지스러운' 이미지 생성, 배경 제거 의 순으로 진행되는 것으로 보입니다.
그리고 오른쪽 상단에는 깃헙 로고가 있는데 클릭하면 위 홈페이지의 전체 코드가 담긴 repo 로 연결됩니다.
이렇게 글로벌 레벨에서는 오픈 소스 생태계가 생각보다 정말 활발히 운영되고 있습니다.
그래서 저도 하나 공유를 드려볼까 하는데요. 슬랙 이모지 한 번 직접 만들어 봅시다.
저는 전 세계 3위, AI 분야 1위의 기업 가치를 자랑하는 오픈 AI 의 CEO 샘 알트먼이 참 대단한 사람이다 라고 생각합니다. 오픈 소스에 대척점에 서기는 했지만, Y Combinator 의 성공적인 운영에 이어 새로운 패러다임을 이끌어 나가고 있다는 점에서 존경스럽습니다.
그런 점에서 멋진 사람의 '따봉'이 좀 더 있어 보이는 것 같아(개인적인 생각) 저희 팀의 슬랙 이모지로도 알트먼의 따봉👍을 사용하기 시작했습니다.
이런 샘 알트먼 이모지를 만들기 위해선,
Colab 을 킵니다. 그리고 라이브러리를 다운 받습니다.
!pip install -U git+https://github.com/huggingface/diffusers.git
!pip install -U transformers accelerate xformers safetensorsStable Diffusion XL 을 세팅합니다. iOS emoji 의 파인튜닝 모델과 함께요.
import torch
from diffusers import AutoencoderKL, DDIMScheduler, StableDiffusionXLPipeline
# Set Scheduler
ddim = DDIMScheduler(
num_train_timesteps=1000,
beta_start=0.00085,
beta_end=0.012,
beta_schedule="scaled_linear",
clip_sample=False,
set_alpha_to_one=False,
steps_offset=1,
)
# Set Decoder
vae = AutoencoderKL.from_pretrained(
"madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16
)
model_id = "stabilityai/stable-diffusion-xl-base-1.0"
# Set Stable Diffusion
pipe = StableDiffusionXLPipeline.from_pretrained(
model_id,
vae=vae,
scheduler=ddim,
torch_dtype=torch.float16,
variant="fp16",
use_safetensors=True
).to("cuda")
# For efficient memory
pipe.enable_model_cpu_offload()
pipe.enable_xformers_memory_efficient_attention()
# IMPORTANT!!! Set LoRA of iOS emoji
pipe.load_lora_weights("camenduru/ios-emoji-xl", weight_name="ios_emoji_xl_v2_lora.safetensors")
pipe.fuse_lora(lora_scale=0.6)입력값을 넣어 생성합니다.
prompt = "A TOK emoji of Sam Altman"
negative_prompt = "ugly, deformed, noisy, blurry, distorted, grainy, text, cropped"
generator = torch.Generator("cuda").manual_seed(42)
image = pipe(prompt=prompt, negative_prompt=negative_prompt, num_inference_steps=40, generator=generator)
image = image.images[0]그 결과는 바로 다음과 같습니다.
좋은데 샘 알트먼이라고 하기에는 조금 애매합니다.
이럴 때는 IP-Adapter 를 사용해 참고할 만한 이미지를 일부 반영해 이미지를 생성해줍니다.
저는 샘 알트먼의 프로필 이미지를 참고하도록 사용했습니다.
from ip_adapter import IPAdapterXL
image_encoder_path = "/content/h94/sdxl_models/image_encoder"
ip_ckpt = "/content/h94/sdxl_models/ip-adapter_sdxl.bin"
ip_model = IPAdapterXL(pipe, image_encoder_path, ip_ckpt, device="cuda")코드를 간략히 보면 이미지를 반영하는 image encoder 와 이미지를 생성하는 스테이블 디퓨전 모델에 반영되는 weight 값이 설정 되어야 함을 알 수 있습니다.
images = ip_model.generate(pil_image=profile_image, num_samples=1, num_inference_steps=50, seed=164710062023, prompt="A TOK emoji of a man with thumb up", negative_prompt="low quality, blurry, mutated", guidance_scale=7.5, scale=0.75)profile_image 에 위 샘 알트먼의 프로필 이미지를 입력하고 기존과 동일하게 입력하여 이미지를 만들면 됩니다. 저는 '따봉을 주는' 샘 알트먼의 이모지가 필요했기 때문에 입력 값에 'with thumb up" 을 집어넣어 주었습니다.
그래서 나온 결과는 바로
위 이미지를 배경만 제거하면 슬랙 이모지에 사용할 수 있는 이미지가 만들어 지게 됩니다. 시도해 볼만 한가요?
당장은 코드 작업이 좀 불편한 분들이 계실 수도 있어서 저도,
Vercel 로 빠르게 웹페이지 배포 후 공개 (돈 많이 나갈 예정)
특정 부위 묘사 잘하는 AI 모델 자체 개발 (새벽 남는 시간 데이터셋 모으는 중)
을 고민해 보고 있습니다.
스모어톡과 함께 이미지 AI를 기업 내에 도입하고 싶은 분들은 커피챗, 미팅 등으로 편하게 연락주세요 :)
이정민 (스모어톡, tonylee@smoretalk.io)
프롬프트 엔지니어링이 필요 없는 가장 쉬운 검색형 이미지 생성 서비스
댓글
로그인 후 댓글을 남길 수 있습니다.
정말 잘 읽었습니다! IPadapter의 활용을 슬랙에서부터 자연스러운 흐름으로 이어져서 읽기 흥미로웠네요! 아 혹시 시드값을 고정한 이유가 있으실까요?
감사합니다! 제가 보통 시드 값을 고정했던 것은 이미지 생성 시 원하는 이미지를 다시 생성하기 위해서 또는 다시 유사한 이미지가 생성 되는 것을 방지하기 위해서였습니다.
제품화시키시면 단기간에 엄청난 부를 이루실수 있겠어요! (EPIK 처럼요.)
우선 창업가로서 시도도 안 해보고 (돈과 시간이 적게 들 경우에 한해) 안된다고 하는 것은 지양해야 할 태도이기는 한데, 경쟁 서비스가 무료인 것과 프로필 사진처럼 바이럴성(멋지고 예뻐진 나를 사람들에게 알리는 홍보효과, 난 사진만 공유하면 다른 준비 필요 없음)이 있는 것은 아니라서 부를 이루기보다는 브랜딩 및 홍보에 되게 유용할 것 같기는 합니다 ㅎㅎ Josh 님의 글과 답글 바탕으로 한 번 시간 날 때 공유해보겠습니다 ㅎㅎ