Archivo del sitio

[GIMP] Renace el plugin: Resynthetizer

Esta es una de esas “historias tristes” que tienen un final feliz, El Plugin Resynthetizer que tantas esperanzas forjó dentro de GIMP (desde hace más de 8 años) pero que perdió a su desarrollador y estuvo abandonado desde 2002, ha ganado un nuevo desarrollador.

¿Qué es el plugin Resynthetizer?

Más de 4 años antes que a Adobe Photoshop se le **ocurriera** crear el plugin “Healing Brush” o el “Tampón curador”, el profesor Paul Francis Harrison a partir de un proyecto de investigación desarrolla el plugin, como una forma de “matemáticamente descubrir las zonas aledañas a un conjunto de píxeles y ecualizarlas”, dicho de otro modo, permite re-emplazar selectivamente una parte de la imagen por otras, o sintetizar texturas y apariencias a partir de otras selecciones.

Este plugin incluso se proyectó para incluirlo en el core de Gimp, pero el abandono del proyecto y de sus mantenedores causó que se le perdiera interés.

El “nuevo y mejorado” Resynthetizer

Lloyd Konneker ha sido el encargado de “resucitar” el plugin, le hacambiado el nombre a las versiones e incorporado un par de opciones nuevas, lo ha re-escrito el código en C puro, re-escrito toda la API de Python+Script-FU que hace uso del mismo y otras tantas mejoras, correcciones de bugs y demás.

Pueden obtener el código fuente del plugin acá > https://github.com/bootchk/resynthesizer

Obteniendo, compilando, instalando

Para obtener el plugin lo mejor es tener instalado el cliente de GIT, los binarios de compilación (en Debian: build-essential) y los paquetes devel de GIMP 2.0; para ello instalamos:

aptitude install git-core build-essential libgimp2.0-dev

Luego, descargamos el fuente:

git clone https://github.com/bootchk/resynthesizer.git

Y procedemos a compilar el paquete:

cd resynthetizer
./autogen.sh
./configure --prefix=/usr
make CFLAGS=-03
make install

Esto instalará el plugin en /usr/lib/gimp/2.0/plug-ins/

Usando Resynthetizer

Encontré un video de la *vieja* versión de Resynthetizer:

[vimeo http://vimeo.com/10532622]

La actual versión incorpora:

  • Resynthetizer Engine: nueva versión del motor de resynthetizer
  • Resynthetizer GUI: para gestionar el plugin

Y una serie de nuevos “Filtros” de script-fu que usan el engine resynthetizer:

  • Filtros > Mejoras [enhance] > Enlarge & Sharpen
  • Filtros > Mejoras [enhance] > Heal Selection (como el “patch plugin” de Photoshop)
  • Filtros > Mejoras [enhance] > Heal Transparency (corrige fallos de patch plugin alrededor de transparencias)
  • Filtros > Mejoras [enhance] > Sharpen by Synthesis
  • Filtros > Mejoras [enhance] > Uncrop
  • Filtros > Mapa > Resynthetize
  • Filtros > Mapa > Style
  • Filtros > Renderizado > Texture
  • Menú Edición > Fill with synthetize texture

A diferencia de la herramienta “Saneado”; que solamente toma “una muestra” y la aplica en otra sección, la herramienta realmente “resintetiza” la textura, acomodándola a los pixeles de alrededor, manteniendo el equilibrio de color y contraste.

¿Algún ejemplo?

En una acción de “un minuto” tomé una foto de mi querida amiga Tatica (@tatadbb) y mi pana Richzendy (@richzendy) y al buen estilo de Tatica y su excelentes Gimp-Podcast hice una versión, el antes y el después de Richzendy sin pecas:

Foto Original:

Foto mejorada con Resynthetizer: eliminadas pecas, la gran peca del mentón de Rich, algunos lunares y reducidas las líneas de expresión:


Pues mejor que Nivea Visage! 😉

Espero ver a Tatica creando un Gimp-podcast a partir del plugin Resynthetizer y de las amplias posibilidades que ella como diseñadora le encontrará …

¿Qué pasa cuando unes Gimp y un VCS?

Todos los que alguna vez (o en este momento) se dedican al diseño gráfico, se encuentran con que la mayoría de las aplicaciones (desde Adobe Photoshop hasta Gimp) poseen un sistema de control de historia común y corriente a cualquier tipo de aplicación, atrás, adelante, hacer, deshacer, cuando mucho historias no-lineales, etc.

Pero ¿qué pasa cuándo unes una filosofía de programación con el trabajo de los diseñadores gráficos? … pues nace una nueva forma de trabajar en GIMP.

¿Qué es un VCS?

Para un programador no es un concepto nuevo, VCS significa Version Control System y se refiere a la forma como almacenamos el código, como parte de del control de cambios, gestión de flujo de trabajo, revisiones y versiones; como VCS en software libre tenemos proyectos como subversion, GIT, Mercurial o Bazaar.

¿Por qué GIMP?

Si, hay un desarrollador Microsoft en el equipo, ¿y qué?, en el software privativo no puedes echar mano del código fuente para “hackear” el sistema a tus necesidades, creo que este “Hack” de GIMP para soportar VCS es “una razón más” para darnos cuenta de lo útil y provechoso para todos que es liberar el código fuente de nuestras aplicaciones.

Nonlinear Revision Control for Images

El proyecto “Control de versiones No-lineal para imágenes” es un proyecto de doctorado de dos alumnos de la Universidad Tsing Hua de Taiwan, apoyados por el profesor Li Yi Wei (que a su vez trabajó en Nvidia y en Microsoft Research); fué expuesto en el “Summer Of Code” del SIGGRAPH 2011 (la conferencia mundial sobre diseño gráfico) usando GIMP como aplicación donde desarrollaron la teoría.

¿Qué permite?

TODO lo que podrías imaginarte en un sistema de control de versiones:

  • Branch: llevar dos o más versiones “paralelas” de una misma imagen
  • diff: permitir evaluar diferencias de dos o más “revisiones” y evaluar posibles parches de “diferencias”
  • merge: Fusionar dos versiones diferentes de una misma imagen, integrando los cambios de ambas versiones
  • Selective Replay and Undo: Me ha sorprendido la capacidad de hacer “re-commit” o re-aplicar los cambios hechos a una sección específica de la imagen (ejemplo: colorear o aplicar un filtro) con solamente seleccionar e indicar “replay” de manera selectiva.
  • Retornar a cualquier estado previo o posterior y obtener diffs de cada estado para crear nuevas “ramas” o versiones de desarrollo.

Alguna Demo?

Pues el video no tiene desperdicio:

Conclusiones

Luego de leer que GIMP en la versión 2.8 volvería a la forma “one window”, que traería la posibilidad de agrupar Layers (capas), grabación de “macros” (a lo Actions de Adobe Photoshop) y que el plugin “resintetizer” que tanto fué imitado y explotado por Photoshop ha vuelto a “renacer” y trae grandes mejoras, con esto, me quito el sombrero ante el proyecto GIMP.

Espero que los desarrolladores incorporen rápido estas características para sacar el máximo potencial a GIMP.

[GIMP] De regreso al dibujo!

GIMP siempre ha sido una herramienta excelente para diseño y dibujo en general, tiene una flexibilidad que hasta Photoshop le envidiaría (como poder cambiar al vuelo las características del pincel y su interacción con el puck o stylus de nuestra Tablet), claro que aun le faltan ciertas “cosas” de la fotografía (como una mejora del Healing Tool para que soporte Patch al estilo Photoshop, herramientas extendidas de clonación, etc) pero de plano, para dibujo, es la herramienta *casí* perfecta.

Regresando al dibujo

Debo admitir que salvo los intentos de explicar como funciona un tablet PC en Linux (artículos previos) no habia tenido la oportunidad de dedicarle toda una tarde completa a GIMP; hoy decidí retomar mi dibujo, tomé un trabajo a mano alzada escaneado previo; lo re-dibujé en GIMP y decidí ir más allá así que quise colorearlo!.

Acá, la ruta hasta el final!.

El motivo

Yuuki es un personaje manga de una serie llamada “megatokio“; siempre me ha encantado el dibujo manga de ese artista (Fred Gallagher alias Piro) ya que a la final, él como yo, es un Döjinshi (fan del dibujo y no un artista profesional).
Nunca he hecho cursos de ningún tipo, aunque espero algún día aprender más del género …

Y con una Tablet PC; que más puedo esperar sino mejorar en el dibujo? …

La Secuencia

Primero comencé con el “arte escaneado” que era solamente el trazado, luego de re-dibujado, comienza el proceso de pintura.

Acá, comencé pintando una capa marrón, luego un canal alpha (transparencia) con la forma del oso; así se van corrigiendo detalles.

Comenzando a pintar a Oso

El rostro: En el rostro no hubo muchos detalles, salvo el ojo, en el cual aproveché una característica de GIMP que me permite ir en descenso gradual entre 2 tonos de marrón dependiendo de la intensidad de la presión; eso me llevó a construir el iris del ojo.
Detalles del rostro de Yuuki

El oso: El oso consta de 4 capas; dos capas marrones en modo multiplicar, así obtuve el tono de marrón que quería, la otra capa son los detalles, trazos y difuminados con blur, que luego lleve  a modo de capa oscurecer y apliqué algunas sombras con la herramienta BURN/DODGE; la última capa son los detalles en negro (ojos, bordes, etc).
Sombras y matices de Oso

Conjunto y detalles: En el cabello, hice una mascara sobre el color para darle forma, luego trazos para darle la naturalidad de cabello, luego la herramienta burn (aclarar) en modo overlay (mezcla aclarar); el lazo consta de dos trazos de rojo + rosa, que luego de usar difuminar, causa ese gracioso gradiente.
Trabajando el rostro de Yuuki

El Resultado final

Luego de un par de horas (gracias a que la portatil tiene batería de 3 horas, ya que no había luz), este es el resultado final:

Yuuki y Oso (final)

(via: Flickr)

Nota: acá como se ve la portatil en modo “tablet” con el trabajo casi terminado:

Trabajando en Yuuki

[Linux] Habilitando sensibilidad de presión en Wacom y GIMP

Luego de activar el pen de la tablet PC en mi lenovo thinkpad X61; solo faltaba habilitarle la sensibilidad de presión; con esto obtendremos unos trazos más “naturales” a la hora de utilizar el lápiz.

La sensibilidad de presión es la posibilidad que tenemos en editores gráficos (como GIMP) de obtener trazos más claros o más oscuros detectando la presión que ejercemos sobre la pantalla (en mi caso, un tablet PC) o sobre la tableta gráfica (ej. una bamboo o una wacom intuos); unos trazos hechos con la sensibilidad de presión se verían así:

Trazos en GIMP con sensibilidad de presión

Trazos en GIMP con sensibilidad de presión

Herramienta necesaria:
Para ello debemos instalar los wacom-tools de la siguiente manera:

aptitude install wacom-tools

Luego de instalada esta herramienta; podemos usar el comando xsetwacom para interrogar el estado de la Tablet.

Un ejemplo, es que podemos obtener los valores actuales de la sensibilidad de presión con:

jesuslara@lexotanil:~$ xsetwacom -x get stylus PressCurve
Option    "PressCurve"    "50,0,100,50"

y del borrador:

jesuslara@lexotanil:~$ xsetwacom -x get eraser PressCurve    
 Option    "PressCurve"    "50,0,100,50"

Y podemos “fijar” los valores hasta dar con el óptimo:

xsetwacom -x set stylus "PressCurve" 50 0 100 50

Donde el comando recibe los valores de presión de una curva Bezier, lo más “bajo” y lo más “alto” (X0, Y0) y (X1,Y1), ejemplo:

Para generar líneas muy rectas y definidas podría ser 0,0,100,100

Bajo 0,0; la tablet PC Thinkpad no reconoce la ligera presión del lápiz, probando varios valores obtuvimos que:

15 0 100 85

Son los valores más “óptimos” para utilizar la Tablet PC como un recurso de dibujo sensible.

Un ejemplo de trazo natural en GIMP

Un ejemplo de trazo natural en GIMP

Haciendo que los valores perduren

Hay dos formas de mantener la sensibilidad de presión (PenPressure) se mantenga cuando reiniciemos el equipo.

Manteniendo configuración “por usuario”

Cada usuario puede tener una configuración específica de los valores de configuración de la tablet; en el archivo ~xinitrc se colocan comandos de X que deberán ejecutarse cuando se hayan iniciado la sesión X del usuario correctemente.

es obvio entonces que en el archivo /home/[tu usuario]/.xinitrc colocaremos:

xsetwacom -x set stylus "PressCurve" 15 0 100 85

La segunda forma es agregar ese valor como una opción (Option “PressCurve”) en la sección STYLUS de nuestro /etc/X11/xorg.conf (el archivo de configuración de X11); veamos una sección stylus completa:


Section "InputDevice"
Driver        "wacom"
Identifier    "stylus"
Option        "Device"        "/dev/ttyS0"
Option        "Type"          "stylus"
Option        "ForceDevice"   "ISDV4"
Option            "USB"            "on"
Option            "Button2"        "3"
Option "PressCurve" "50,0,100,50"
Option "KeepShape" "on"
EndSection

Y luego reiniciamos las X (CTRL+ALT+BACKSPACE) para obtener los cambios.

Haciendo uso del Pen en GIMP

Realmente el único que usamos hasta ahora en GIMP era CURSOR (es decir, el lapiz reemplaza el ratón); sin embargo, stylus es un modo de cursor con más opciones, entre ellas que GIMP memoriza el último estado del stylus y detecta opciones como por ejemplo, la sensibilidad de presión del mismo.

Para ello y luego de ejecutar GIMP, vamos al menú Editar > Preferencias y dentro de la ventana buscaremos la opción “Dispositivos de Entrada” a lo cual buscaremos un botón (a la derecha) que dice “Configurar los dispositivos de entrada extendidos …” y verán la siguiente ventana:

Dispositivos de entrada Extendidos

Dispositivos de entrada Extendidos

De la lista “Dispositivos” tomaremos a Stylus (y a Eraser) y cambiaremos su modo de Desactivado (Disabled) a Pantalla.

Y listo!, ya tendremos sensibilidad de presión en GIMP!.

Cuando el “Borrador” es borrador?

GIMP es indiferente a si estamos usando la parte de atrás o la de adelante; eso si, es bastante inteligente como para reconocer que son distintas y mucho más,  como para “memorizar” la última actividad realizada con ella (hasta reconoce que estoy usando un Lapiz completamente distinto!); asociar al botón “Eraser” del Lapiz “El comportamiento” (Behavior) de ser Goma de Borrar es tán sencillo como:

Lapiz de la Thinkpad X61

Lapiz de la Thinkpad X61

Girar el lápiz para quedar en modo “borra” (botón gris en la parte superior del lápiz)

Presionar en la barra de herramientas sobre “goma de borrar” con “La borra” del lápiz

Ir a la paleta “Pinceles” y escoger el diámetro que necesitamos para nuestra “borra”

(recordar que todos los “clicks” los harán con el botón borrador del lápiz)

listo!, a borrar! …

Si lo desean, pueden girar el lápiz a modo mina (stylus) y verán que la herramienta cambia a la última usada por este, si vuelven a girar a borra “Ta-daaaaan” es borra! … sencillo no?.

Algunos Ejemplos:

Ratón en GIMP con Sensibilidad habilitada (intento 1)

Ratón en GIMP con Sensibilidad habilitada (intento 1)

Son mis primeros intentos, aún se siente incómoda (más con el calor de la Tarjeta Madre a 51 grados centígrados en plena tarde) pero me imagino que ya me acostumbraré a usarla como medio de dibujo …

E iré publicando trabajos! …

A %d blogueros les gusta esto: